diff --git a/SPECS-EXTENDED/memkind/Makefile.am.patch b/SPECS-EXTENDED/memkind/Makefile.am.patch new file mode 100644 index 00000000000..e8354a7e1dd --- /dev/null +++ b/SPECS-EXTENDED/memkind/Makefile.am.patch @@ -0,0 +1,17 @@ +diff --git a/Makefile.am b/Makefile.am +index 94937c2..f9763c8 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -684,9 +684,11 @@ end + endef + + static_lib: libmemkind.la +- bash -c "ar -M < <(echo -e '$(ar_prog)')" ++ echo -e "$(ar_prog)" > arprog.txt ++ ar -M < arprog.txt + cp libmemkind.a .libs/ + rm libmemkind.a ++ rm arprog.txt + + JEMALLOC_CONFIG = --enable-autogen @min_lg_align_opt@ --without-export --with-version=5.3.0-0-g54eaed1d8b56b1aa528be3bdd1877e59c56fa90c \ + @jemalloc_build_type_flags@ @memkind_initial_exec_tls@ --with-jemalloc-prefix=@memkind_prefix@ \ diff --git a/SPECS-EXTENDED/memkind/memkind.signatures.json b/SPECS-EXTENDED/memkind/memkind.signatures.json index 5a31f48b582..71978efbf49 100644 --- a/SPECS-EXTENDED/memkind/memkind.signatures.json +++ b/SPECS-EXTENDED/memkind/memkind.signatures.json @@ -1,5 +1,5 @@ { "Signatures": { - "memkind-1.10.0.tar.gz": "fcfd374b35d9b6865aa41fe2412f8a333aaa7a888f4adfeece56be259b3318aa" + "memkind-1.14.0.tar.gz": "ab366b20b5a87ea655483631fc762ba6eb59eb6c3a08652e643f1ee3f06a6a12" } -} +} \ No newline at end of file diff --git a/SPECS-EXTENDED/memkind/memkind.spec b/SPECS-EXTENDED/memkind/memkind.spec index dfae2358b64..b462944dfd5 100644 --- a/SPECS-EXTENDED/memkind/memkind.spec +++ b/SPECS-EXTENDED/memkind/memkind.spec @@ -1,27 +1,44 @@ +%global gittag0 v1.14.0 +# WORKAROUND to avoid breaking the build at the atrocious libtool shell scrip +# due to RPM environmental macros being lost for the subshells +%undefine _package_note_file + +Name: memkind +Summary: User Extensible Heap Manager +Version: 1.14.0 +Release: 10%{?dist} +License: BSD-2-Clause +URL: http://memkind.github.io/memkind Vendor: Microsoft Corporation Distribution: Azure Linux -%global gittag0 v1.10.0 - -Name: memkind -Summary: User Extensible Heap Manager -Version: 1.10.0 -Release: 2%{?dist} -License: BSD -URL: http://memkind.github.io/memkind -BuildRequires: automake libtool numactl-devel systemd gcc gcc-c++ - -# x86_64 is the only arch memkind will build and work due to -# its current dependency on SSE4.2 CRC32 instruction which -# is used to compute thread local storage arena mappings -# with polynomial accumulations via GCC's intrinsic _mm_crc32_u64 -# For further info check: -# - /lib/gcc///include/smmintrin.h -# - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36095 -# - http://en.wikipedia.org/wiki/SSE4 -ExclusiveArch: x86_64 + +BuildRequires: make +BuildRequires: patch +BuildRequires: automake +BuildRequires: libtool +BuildRequires: numactl-devel +BuildRequires: systemd +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: daxctl-devel +# memkind has been discontinued and archived upstream. See Bugzilla 2296288. +# We are deprecating it now, to flag any potential user of its future removal. +Provides: deprecated() + +# Upstream testing of memkind is done exclusively on x86_64; other archs +# are unsupported but may work. +ExclusiveArch: x86_64 +ExclusiveArch: ppc64 +ExclusiveArch: ppc64le +ExclusiveArch: s390x +ExclusiveArch: aarch64 Source0: https://github.com/%{name}/%{name}/archive/%{gittag0}/%{name}-%{version}.tar.gz +# unbreak the atrocious autotools Makefile.am construction for +# libmemkind archive creation target +Patch0: Makefile.am.patch + %description The memkind library is an user extensible heap manager built on top of jemalloc which enables control of memory characteristics and a @@ -38,8 +55,9 @@ features. This software is being made available for early evaluation. Feedback on design or implementation is greatly appreciated. %package devel -Summary: Memkind User Extensible Heap Manager development lib and tools -Requires: %{name} = %{version}-%{release} +Summary: Memkind User Extensible Heap Manager development lib and tools +Requires: %{name} = %{version}-%{release} +Provides: deprecated() %description devel Install header files and development aids to link memkind library @@ -52,35 +70,40 @@ alpha release. Feedback on design or implementation is greatly appreciated. %prep %setup -q -a 0 -n %{name}-%{version} +%patch -P0 -p1 %build -# It is required that we configure and build the jemalloc subdirectory -# before we configure and start building the top level memkind directory. -# To ensure the memkind build step is able to discover the output -# of the jemalloc build we must create an 'obj' directory, and build -# from within that directory. cd %{_builddir}/%{name}-%{version} echo %{version} > %{_builddir}/%{name}-%{version}/VERSION -./build.sh --prefix=%{_prefix} --includedir=%{_includedir} --libdir=%{_libdir} \ - --bindir=%{_bindir} --docdir=%{_docdir}/%{name} --mandir=%{_mandir} \ - --sbindir=%{_sbindir} +test -f configure || ./autogen.sh +%configure --enable-secure --enable-tls --prefix=%{_prefix} --libdir=%{_libdir} \ + --includedir=%{_includedir} --sbindir=%{_sbindir} --bindir=%{_bindir} \ + --mandir=%{_mandir} --docdir=%{_docdir}/%{name} \ + CFLAGS="$RPM_OPT_FLAGS -std=gnu99" LDFLAGS="%{build_ldflags}" +%{__make} V=1 %install cd %{_builddir}/%{name}-%{version} make DESTDIR=%{buildroot} INSTALL='install -p' install rm -f %{buildroot}/%{_libdir}/lib%{name}.{l,}a rm -f %{buildroot}/%{_libdir}/libautohbw.{l,}a +rm -f %{buildroot}/%{_libdir}/libmemtier.{l,}a rm -f %{buildroot}/%{_docdir}/%{name}/VERSION %ldconfig_scriptlets %files +%{_bindir}/memtier %{_libdir}/lib%{name}.so.* %{_libdir}/libautohbw.so.* +%{_libdir}/libmemtier.so.* %{_bindir}/%{name}-hbw-nodes %{_bindir}/%{name}-auto-dax-kmem-nodes %{_mandir}/man1/%{name}*.1.* +%{_mandir}/man1/memtier.1.* %{_mandir}/man7/autohbw.7.* +%{_mandir}/man7/memtier.7.* +%{_mandir}/man7/libmemtier.7.* %dir %{_docdir}/%{name} %doc %{_docdir}/%{name}/README %license %{_docdir}/%{name}/COPYING @@ -90,18 +113,80 @@ rm -f %{buildroot}/%{_docdir}/%{name}/VERSION %{_includedir}/hbwmalloc.h %{_includedir}/hbw_allocator.h %{_includedir}/pmem_allocator.h +%{_includedir}/fixed_allocator.h %{_libdir}/lib%{name}.so %{_libdir}/libautohbw.so +%{_libdir}/libmemtier.so %{_libdir}/pkgconfig/memkind.pc %{_mandir}/man3/%{name}*.3.* %{_mandir}/man3/hbwmalloc.3.* %{_mandir}/man3/hbwallocator.3.* %{_mandir}/man3/pmemallocator.3.* +%{_mandir}/man3/fixedallocator.3.* +%{_mandir}/man3/libmemtier.3.* %changelog -* Thu Oct 14 2021 Pawel Winogrodzki - 1.10.0-2 -- Initial CBL-Mariner import from Fedora 32 (license: MIT). -- Converting the 'Release' tag to the '[number].[distribution]' format. +* Wed Jan 15 2025 Akhila Guruju - 1.14.0-10 +- Initial Azure Linux import from Fedora 41 (license: MIT). +- License verified. + +* Thu Jul 18 2024 Fedora Release Engineering - 1.14.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jul 8 2024 Rafael Aquini - 1.14.0-8 +- Mark memkind as deprecated following its upstream discontinuation notice +- Fix minor typo on memkind.spec changelog section + +* Thu Jan 25 2024 Fedora Release Engineering - 1.14.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 1.14.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Nov 8 2023 Rafael Aquini - 1.14.0-5 +- SPDX migration + +* Thu Jul 20 2023 Fedora Release Engineering - 1.14.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jan 24 2023 Rafael Aquini - 1.14.0-3 +- Fix build issues after https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jan 19 2023 Fedora Release Engineering - 1.14.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jan 13 2023 Rafael Aquini - 1.14.0-1 +- Update memkind source file to 1.14.0 upstream + +* Thu Jul 21 2022 Fedora Release Engineering - 1.13.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jan 28 2022 Rafael Aquini - 1.13.0-1 +- Update memkind source file to 1.13.0 upstream + +* Thu Jan 20 2022 Fedora Release Engineering - 1.11.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Aug 23 2021 Rafael Aquini - 1.11.0-1 +- Update memkind source file to 1.11.0 upstream + +* Thu Jul 22 2021 Fedora Release Engineering - 1.10.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 1.10.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Oct 15 2020 Rafael Aquini - 1.10.1-2 +- Work around false positive warning with gcc-11 + +* Wed Oct 07 2020 Rafael Aquini - 1.10.1-1 +- Update memkind source file to 1.10.1 upstream + +* Wed Jul 29 2020 Jeff Law - 1.10.0-3 +- Avoid uninitialized variable in testsuite + +* Tue Jul 28 2020 Fedora Release Engineering - 1.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Sat Feb 01 2020 Rafael Aquini - 1.10.0-1 - Update memkind source file to 1.10.0 upstream @@ -185,3 +270,4 @@ rm -f %{buildroot}/%{_docdir}/%{name}/VERSION * Mon May 18 2015 Rafael Aquini - 0.2.2-1.20150518git - Initial RPM packaging for Fedora + diff --git a/cgmanifest.json b/cgmanifest.json index fa111a8732a..6517cc1056b 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -13051,8 +13051,8 @@ "type": "other", "other": { "name": "memkind", - "version": "1.10.0", - "downloadUrl": "https://github.com/memkind/memkind/archive/v1.10.0/memkind-1.10.0.tar.gz" + "version": "1.14.0", + "downloadUrl": "https://github.com/memkind/memkind/archive/v1.14.0/memkind-1.14.0.tar.gz" } } },