Rafael Aquini ba6bfc7
%global gittag0 v1.7.0
Rafael Aquini c4a8ab2
Rafael Aquini c4a8ab2
Name: memkind
Rafael Aquini c4a8ab2
Summary: User Extensible Heap Manager
Rafael Aquini ba6bfc7
Version: 1.7.0
Rafael Aquini ba6bfc7
Release: 1%{?checkout}%{?dist}
Rafael Aquini c4a8ab2
License: BSD
Rafael Aquini c4a8ab2
Group: System Environment/Libraries
Rafael Aquini c4a8ab2
URL: http://memkind.github.io/memkind
Rafael Aquini 521f6dc
BuildRequires: automake libtool numactl-devel systemd
Rafael Aquini c4a8ab2
Rafael Aquini 7ecf775
# x86_64 is the only arch memkind will build and work due to
Rafael Aquini 7ecf775
# its current dependency on SSE4.2 CRC32 instruction which
Rafael Aquini c4a8ab2
# is used to compute thread local storage arena mappings
Rafael Aquini c4a8ab2
# with polynomial accumulations via GCC's intrinsic _mm_crc32_u64
Rafael Aquini c4a8ab2
# For further info check: 
Rafael Aquini c4a8ab2
# - /lib/gcc/<target>/<version>/include/smmintrin.h
Rafael Aquini c4a8ab2
# - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36095 
Rafael Aquini c4a8ab2
# - http://en.wikipedia.org/wiki/SSE4
Rafael Aquini c4a8ab2
ExclusiveArch: x86_64
Rafael Aquini c4a8ab2
Rafael Aquini 658deb9
Source0: https://github.com/%{name}/%{name}/archive/%{gittag0}/%{name}-%{version}.tar.gz
Rafael Aquini e1a90f9
Rafael Aquini c4a8ab2
%description
Rafael Aquini c4a8ab2
The memkind library is an user extensible heap manager built on top of
Rafael Aquini c4a8ab2
jemalloc which enables control of memory characteristics and a
Rafael Aquini c4a8ab2
partitioning of the heap between kinds of memory.  The kinds of memory
Rafael Aquini c4a8ab2
are defined by operating system memory policies that have been applied
Rafael Aquini c4a8ab2
to virtual address ranges. Memory characteristics supported by
Rafael Aquini c4a8ab2
memkind without user extension include control of NUMA and page size
Rafael Aquini c4a8ab2
features. The jemalloc non-standard interface has been extended to
Rafael Aquini c4a8ab2
enable specialized arenas to make requests for virtual memory from the
Rafael Aquini c4a8ab2
operating system through the memkind partition interface. Through the
Rafael Aquini c4a8ab2
other memkind interfaces the user can control and extend memory
Rafael Aquini c4a8ab2
partition features and allocate memory while selecting enabled
Rafael Aquini c4a8ab2
features. This software is being made available for early evaluation.
Rafael Aquini c4a8ab2
Feedback on design or implementation is greatly appreciated.
Rafael Aquini c4a8ab2
Rafael Aquini c4a8ab2
%package devel
Rafael Aquini c4a8ab2
Summary: Memkind User Extensible Heap Manager development lib and tools
Rafael Aquini c4a8ab2
Group: Development/Libraries
Rafael Aquini c4a8ab2
Requires: %{name} = %{version}-%{release}
Rafael Aquini c4a8ab2
Rafael Aquini c4a8ab2
%description devel
Rafael Aquini c4a8ab2
Install header files and development aids to link memkind library 
Rafael Aquini c4a8ab2
into applications. The memkind library is an user extensible heap manager 
Rafael Aquini c4a8ab2
built on top of jemalloc which enables control of memory characteristics and
Rafael Aquini c4a8ab2
heap partitioning on different kinds of memory. This software is being made 
Rafael Aquini c4a8ab2
available for early evaluation. The memkind library should be considered 
Rafael Aquini c4a8ab2
pre-alpha: bugs may exist and the interfaces may be subject to change prior to 
Rafael Aquini c4a8ab2
alpha release. Feedback on design or implementation is greatly appreciated.
Rafael Aquini c4a8ab2
Rafael Aquini c4a8ab2
%prep
Rafael Aquini 658deb9
%setup -q -a 0 -n %{name}-%{version}
Rafael Aquini c4a8ab2
Rafael Aquini c4a8ab2
%build
Rafael Aquini c4a8ab2
# It is required that we configure and build the jemalloc subdirectory
Rafael Aquini c4a8ab2
# before we configure and start building the top level memkind directory.
Rafael Aquini c4a8ab2
# To ensure the memkind build step is able to discover the output
Rafael Aquini c4a8ab2
# of the jemalloc build we must create an 'obj' directory, and build
Rafael Aquini c4a8ab2
# from within that directory.
Rafael Aquini 658deb9
cd %{_builddir}/%{name}-%{version}
Rafael Aquini 658deb9
echo %{version} > %{_builddir}/%{name}-%{version}/VERSION
Rafael Aquini ba6bfc7
./build.sh --prefix=%{_prefix} --includedir=%{_includedir} --libdir=%{_libdir} \
Rafael Aquini ba6bfc7
           --bindir=%{_bindir} --docdir=%{_docdir}/%{name} --mandir=%{_mandir} \
Rafael Aquini ba6bfc7
           --sbindir=%{_sbindir}
Rafael Aquini c4a8ab2
Rafael Aquini c4a8ab2
%install
Rafael Aquini 658deb9
cd %{_builddir}/%{name}-%{version}
Rafael Aquini ba6bfc7
make DESTDIR=%{buildroot} INSTALL='install -p' install
Rafael Aquini c4a8ab2
rm -f %{buildroot}/%{_libdir}/lib%{name}.{l,}a
Rafael Aquini ba6bfc7
rm -f %{buildroot}/%{_libdir}/libautohbw.{l,}a
Rafael Aquini c4a8ab2
rm -f %{buildroot}/%{_docdir}/%{name}/VERSION
Rafael Aquini c4a8ab2
Rafael Aquini e1a90f9
%post -p /sbin/ldconfig
Rafael Aquini c4a8ab2
Rafael Aquini c4a8ab2
%postun -p /sbin/ldconfig
Rafael Aquini c4a8ab2
Rafael Aquini c4a8ab2
%files
Rafael Aquini c4a8ab2
%defattr(-,root,root,-)
Rafael Aquini c4a8ab2
%{_libdir}/lib%{name}.so.*
Rafael Aquini ba6bfc7
%{_libdir}/libautohbw.so.*
Rafael Aquini c4a8ab2
%{_bindir}/%{name}-hbw-nodes
Rafael Aquini e1a90f9
%dir %{_docdir}/%{name}
Rafael Aquini e1a90f9
%doc %{_docdir}/%{name}/README
Rafael Aquini e1a90f9
%license %{_docdir}/%{name}/COPYING
Rafael Aquini c4a8ab2
Rafael Aquini c4a8ab2
%files devel
Rafael Aquini c4a8ab2
%defattr(-,root,root,-)
Rafael Aquini 7f4ab05
%dir %{_includedir}/%{name}
Rafael Aquini 7f4ab05
%dir %{_includedir}/%{name}/internal/
Rafael Aquini 7f4ab05
%{_includedir}/%{name}/internal/*.h
Rafael Aquini c4a8ab2
%{_includedir}/%{name}*.h
Rafael Aquini c4a8ab2
%{_includedir}/hbwmalloc.h
Rafael Aquini 7f4ab05
%{_includedir}/hbw_allocator.h
Rafael Aquini c4a8ab2
%{_libdir}/lib%{name}.so
Rafael Aquini ba6bfc7
%{_libdir}/libautohbw.so
Rafael Aquini c4a8ab2
%{_mandir}/man3/hbwmalloc.3.*
Rafael Aquini 7f4ab05
%{_mandir}/man3/hbwallocator.3.*
Rafael Aquini c4a8ab2
%{_mandir}/man3/%{name}*.3.*
Rafael Aquini c4a8ab2
Rafael Aquini c4a8ab2
%changelog
Rafael Aquini ba6bfc7
* Fri Mar 23 2018 Rafael Aquini <aquini@linux.com> - 1.7.0-1
Rafael Aquini ba6bfc7
- Update memkind source file to 1.7.0 upstream
Rafael Aquini ba6bfc7
53b6e30
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-4
53b6e30
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
53b6e30
5cb1b7c
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-3
5cb1b7c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
5cb1b7c
0b6cb0f
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-2
0b6cb0f
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
0b6cb0f
Rafael Aquini f4320b1
* Mon Mar 27 2017 Rafael Aquini <aquini@linux.com> - 1.5.0-1
Rafael Aquini f4320b1
- Update memkind source file to 1.5.0 upstream
Rafael Aquini f4320b1
Rafael Aquini 710ac10
* Fri Feb 17 2017 Rafael Aquini <aquini@linux.com> - 1.4.0-1
Rafael Aquini 710ac10
- Update memkind source file to 1.4.0 upstream
Rafael Aquini 710ac10
d8778a3
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.0-2
d8778a3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
d8778a3
Rafael Aquini f553f5d
* Wed Nov 16 2016 Rafael Aquini <aquini@linux.com> - 1.3.0-1
Rafael Aquini f553f5d
- Update memkind source file to 1.3.0 upstream
Rafael Aquini f553f5d
Rafael Aquini c17e4e7
* Wed Jun 08 2016 Rafael Aquini <aquini@linux.com> - 1.1.0-1
Rafael Aquini c17e4e7
- Update memkind source file to 1.1.0 upstream
Rafael Aquini c17e4e7
Rafael Aquini 7f4ab05
* Thu Mar 17 2016 Rafael Aquini <aquini@linux.com> - 1.0.0-1
Rafael Aquini 7f4ab05
- Update memkind source file to 1.0.0 upstream
Rafael Aquini 7f4ab05
Rafael Aquini e1a90f9
* Sun Feb 07 2016 Rafael Aquini <aquini@linux.com> - 0.3.0-5
Rafael Aquini e1a90f9
- Fix rpmlint error dir-or-file-in-var-run for /var/run/memkind
Rafael Aquini e1a90f9
Rafael Aquini 521f6dc
* Sat Feb 06 2016 Rafael Aquini <aquini@linux.com> - 0.3.0-4
Rafael Aquini 521f6dc
- Update upstream fixes for memkind-0.3.0
Rafael Aquini 521f6dc
- Switch old init.d scripts for systemd unit service
Rafael Aquini 521f6dc
- Fix fc24 build error
Rafael Aquini 521f6dc
ebd372f
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.0-3
ebd372f
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
ebd372f
Rafael Aquini 531cdaa
* Tue Nov 17 2015 Rafael Aquini <aquini@linux.com> - 0.3.0-2
Rafael Aquini 531cdaa
- Minor clean-ups and adjustments required for the RPM
Rafael Aquini 531cdaa
Rafael Aquini 658deb9
* Tue Nov 17 2015 Rafael Aquini <aquini@linux.com> - 0.3.0-1
Rafael Aquini 658deb9
- Update memkind source file to 0.3.0 upstream
Rafael Aquini 658deb9
9d31e6f
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.2-4.20150525git
9d31e6f
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
9d31e6f
Rafael Aquini 658deb9
* Mon May 25 2015 Rafael Aquini <aquini@linux.com> - 0.2.2-3.20150525git
Rafael Aquini c4a8ab2
- Get rid of obsolete m4 macros usage on autotool scripts
Rafael Aquini c4a8ab2
Rafael Aquini 658deb9
* Mon May 18 2015 Rafael Aquini <aquini@linux.com> - 0.2.2-2.20150525git
Rafael Aquini c4a8ab2
- Fix to BuildRequires and License Text Marker in spec file (1222709#c1)
Rafael Aquini c4a8ab2
Rafael Aquini 658deb9
* Mon May 18 2015 Rafael Aquini <aquini@linux.com> - 0.2.2-1.20150518git
Rafael Aquini c4a8ab2
- Initial RPM packaging for Fedora