Skip to content

Commit

Permalink
Upgrade: memkind version to 1.14.0
Browse files Browse the repository at this point in the history
  • Loading branch information
akhila-guruju committed Jan 31, 2025
1 parent 5a51e46 commit cf55228
Show file tree
Hide file tree
Showing 4 changed files with 139 additions and 36 deletions.
17 changes: 17 additions & 0 deletions SPECS-EXTENDED/memkind/Makefile.am.patch
Original file line number Diff line number Diff line change
@@ -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@ \
4 changes: 2 additions & 2 deletions SPECS-EXTENDED/memkind/memkind.signatures.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"Signatures": {
"memkind-1.10.0.tar.gz": "fcfd374b35d9b6865aa41fe2412f8a333aaa7a888f4adfeece56be259b3318aa"
"memkind-1.14.0.tar.gz": "ab366b20b5a87ea655483631fc762ba6eb59eb6c3a08652e643f1ee3f06a6a12"
}
}
}
150 changes: 118 additions & 32 deletions SPECS-EXTENDED/memkind/memkind.spec
Original file line number Diff line number Diff line change
@@ -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/<target>/<version>/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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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 <[email protected]> - 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 <[email protected]> - 1.14.0-10
- Initial Azure Linux import from Fedora 41 (license: MIT).
- License verified.

* Thu Jul 18 2024 Fedora Release Engineering <[email protected]> - 1.14.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild

* Mon Jul 8 2024 Rafael Aquini <[email protected]> - 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 <[email protected]> - 1.14.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Sun Jan 21 2024 Fedora Release Engineering <[email protected]> - 1.14.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Wed Nov 8 2023 Rafael Aquini <[email protected]> - 1.14.0-5
- SPDX migration

* Thu Jul 20 2023 Fedora Release Engineering <[email protected]> - 1.14.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Tue Jan 24 2023 Rafael Aquini <[email protected]> - 1.14.0-3
- Fix build issues after https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Thu Jan 19 2023 Fedora Release Engineering <[email protected]> - 1.14.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Fri Jan 13 2023 Rafael Aquini <[email protected]> - 1.14.0-1
- Update memkind source file to 1.14.0 upstream

* Thu Jul 21 2022 Fedora Release Engineering <[email protected]> - 1.13.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Fri Jan 28 2022 Rafael Aquini <[email protected]> - 1.13.0-1
- Update memkind source file to 1.13.0 upstream

* Thu Jan 20 2022 Fedora Release Engineering <[email protected]> - 1.11.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Mon Aug 23 2021 Rafael Aquini <[email protected]> - 1.11.0-1
- Update memkind source file to 1.11.0 upstream

* Thu Jul 22 2021 Fedora Release Engineering <[email protected]> - 1.10.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Tue Jan 26 2021 Fedora Release Engineering <[email protected]> - 1.10.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Thu Oct 15 2020 Rafael Aquini <[email protected]> - 1.10.1-2
- Work around false positive warning with gcc-11

* Wed Oct 07 2020 Rafael Aquini <[email protected]> - 1.10.1-1
- Update memkind source file to 1.10.1 upstream

* Wed Jul 29 2020 Jeff Law <[email protected]> - 1.10.0-3
- Avoid uninitialized variable in testsuite

* Tue Jul 28 2020 Fedora Release Engineering <[email protected]> - 1.10.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Sat Feb 01 2020 Rafael Aquini <[email protected]> - 1.10.0-1
- Update memkind source file to 1.10.0 upstream
Expand Down Expand Up @@ -185,3 +270,4 @@ rm -f %{buildroot}/%{_docdir}/%{name}/VERSION

* Mon May 18 2015 Rafael Aquini <[email protected]> - 0.2.2-1.20150518git
- Initial RPM packaging for Fedora

4 changes: 2 additions & 2 deletions cgmanifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}
},
Expand Down

0 comments on commit cf55228

Please sign in to comment.