Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade: memkind version to 1.14.0 #12164

Draft
wants to merge 1 commit into
base: 3.0-dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading