|
|
a3627a0 |
# There have been no releases, so we use a git snapshot
|
|
|
b7cafdc |
%global gitdate 20200709
|
|
|
b7cafdc |
%global gittag 777c5d2d341ff742850b86e2fb29d24007ac9bae
|
|
|
a3627a0 |
%global shorttag %(cut -b -7 <<< %{gittag})
|
|
|
a6d497d |
%global user Macaulay2
|
|
|
a3627a0 |
|
|
|
a3627a0 |
Name: memtailor
|
|
|
a6d497d |
Version: 1.0
|
|
|
b7cafdc |
Release: 15.%{gitdate}.git%{shorttag}%{?dist}
|
|
|
a3627a0 |
Summary: C++ library of special-purpose memory allocators
|
|
|
a3627a0 |
|
|
|
a3627a0 |
License: BSD
|
|
|
a3627a0 |
URL: https://github.com/%{user}/%{name}
|
|
|
a3627a0 |
Source0: https://github.com/%{user}/%{name}/tarball/%{gittag}/%{user}-%{name}-%{shorttag}.tar.gz
|
|
|
a3627a0 |
|
|
|
a6d497d |
# Upstream wants to download gtest and compile it in; we don't
|
|
|
be37c91 |
Patch0: %{name}-gtest.patch
|
|
|
a6d497d |
|
|
|
be37c91 |
BuildRequires: gcc-c++
|
|
|
a3627a0 |
BuildRequires: gtest-devel
|
|
|
a3627a0 |
BuildRequires: libtool
|
|
|
3310964 |
BuildRequires: make
|
|
|
a3627a0 |
|
|
|
a3627a0 |
%description
|
|
|
a3627a0 |
Memtailor is a C++ library of special purpose memory allocators. It
|
|
|
a3627a0 |
currently offers an arena allocator and a memory pool.
|
|
|
a3627a0 |
|
|
|
a3627a0 |
The main motivation to use a memtailor allocator is better and more
|
|
|
a3627a0 |
predictable performance than you get with new/delete. Sometimes a
|
|
|
a3627a0 |
memtailor allocator can also be more convenient due to the ability to
|
|
|
a3627a0 |
free many allocations at one time.
|
|
|
a3627a0 |
|
|
|
a3627a0 |
The Memtailor memory pool is useful if you need to do many allocations
|
|
|
a3627a0 |
of a fixed size. For example a memory pool is well suited to allocate
|
|
|
a3627a0 |
the nodes in a linked list.
|
|
|
a3627a0 |
|
|
|
a3627a0 |
You can think of the Memtailor arena allocator as being similar to stack
|
|
|
a3627a0 |
allocation. Both kinds of allocation are very fast and require you to
|
|
|
a3627a0 |
allocate/deallocate memory in last-in-first-out order. Arena allocation
|
|
|
a3627a0 |
has the further benefits that it stays within the C++ standard, it will
|
|
|
a3627a0 |
not cause a stack overflow, you can have multiple arena allocators at
|
|
|
a3627a0 |
the same time and allocation is not tied to a function invocation.
|
|
|
a3627a0 |
|
|
|
a3627a0 |
%package devel
|
|
|
a3627a0 |
Summary: Development files for memtailor
|
|
|
a3627a0 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
a3627a0 |
|
|
|
a3627a0 |
%description devel
|
|
|
a3627a0 |
Files for developing applications that use memtailor.
|
|
|
a3627a0 |
|
|
|
a3627a0 |
%prep
|
|
|
825bcba |
%autosetup -p0 -n %{user}-%{name}-%{shorttag}
|
|
|
a3627a0 |
|
|
|
825bcba |
# Remove spurious executable bits
|
|
|
825bcba |
chmod a-x src/test/*.cpp
|
|
|
a3627a0 |
|
|
|
a3627a0 |
# Upstream doesn't generate the configure script
|
|
|
a3627a0 |
autoreconf -fi
|
|
|
a3627a0 |
|
|
|
a3627a0 |
%build
|
|
|
a3627a0 |
export GTEST_PATH=%{_prefix}
|
|
|
a6d497d |
export GTEST_VERSION=$(gtest-config --version)
|
|
|
be37c91 |
%configure --disable-static --enable-shared --with-gtest=yes
|
|
|
a3627a0 |
|
|
|
a3627a0 |
# Get rid of undesirable hardcoded rpaths; workaround libtool reordering
|
|
|
a3627a0 |
# -Wl,--as-needed after all the libraries.
|
|
|
a3627a0 |
sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
|
|
|
a3627a0 |
-e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
|
|
|
a3627a0 |
-e 's|CC=.g..|& -Wl,--as-needed|' \
|
|
|
a3627a0 |
-i libtool
|
|
|
a3627a0 |
|
|
|
825bcba |
%make_build
|
|
|
a3627a0 |
|
|
|
a3627a0 |
%install
|
|
|
a3627a0 |
%make_install
|
|
|
a3627a0 |
|
|
|
a3627a0 |
# We don't want the libtool archive
|
|
|
a3627a0 |
rm -f %{buildroot}%{_libdir}/lib%{name}.la
|
|
|
a3627a0 |
|
|
|
a3627a0 |
%check
|
|
|
825bcba |
LD_LIBRARY_PATH=$PWD/.libs make check
|
|
|
a3627a0 |
|
|
|
a3627a0 |
%files
|
|
|
a3627a0 |
%doc README.md
|
|
|
a3627a0 |
%license license.txt
|
|
|
a3627a0 |
%{_libdir}/lib%{name}.so.*
|
|
|
a3627a0 |
|
|
|
a3627a0 |
%files devel
|
|
|
a3627a0 |
%{_includedir}/%{name}/
|
|
|
a3627a0 |
%{_includedir}/%{name}.h
|
|
|
a3627a0 |
%{_libdir}/lib%{name}.so
|
|
|
a3627a0 |
%{_libdir}/pkgconfig/%{name}.pc
|
|
|
a3627a0 |
|
|
|
a3627a0 |
%changelog
|
|
|
b7cafdc |
* Thu Jun 17 2021 Jerry James <loganjerry@gmail.com> - 1.0-15.20200709.git777c5d2
|
|
|
b7cafdc |
- Update to latest upstream snapshot
|
|
|
b7cafdc |
|
|
|
a7afbc2 |
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-14.20200526.git1d13f96
|
|
|
a7afbc2 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
|
a7afbc2 |
|
|
|
b90bca4 |
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-13.20200526.git1d13f96
|
|
|
b90bca4 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
|
b90bca4 |
|
|
|
825bcba |
* Wed Jul 1 2020 Jerry James <loganjerry@gmail.com> - 1.0-12.20200526.git1d13f96
|
|
|
825bcba |
- Update to latest upstream snapshot
|
|
|
825bcba |
|
|
|
3b05d99 |
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-11.20160311.gite85453b
|
|
|
3b05d99 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
|
3b05d99 |
|
|
|
a051b15 |
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-10.20160311.gite85453b
|
|
|
a051b15 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
|
|
a051b15 |
|
|
|
ed520cd |
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-9.20160311.gite85453b
|
|
|
ed520cd |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
|
|
ed520cd |
|
|
|
d0a6359 |
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-8.20160311.gite85453b
|
|
|
d0a6359 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
|
|
d0a6359 |
|
|
|
f675e3f |
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-7.20160311.gite85453b
|
|
|
f675e3f |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
|
|
f675e3f |
|
|
|
1f6dd0d |
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-6.20160311.gite85453b
|
|
|
1f6dd0d |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
|
|
1f6dd0d |
|
|
|
5d4ea66 |
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-5.20160311.gite85453b
|
|
|
5d4ea66 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
|
|
5d4ea66 |
|
|
|
1a52d04 |
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-4.20160311.gite85453b
|
|
|
1a52d04 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
|
|
1a52d04 |
|
|
|
be37c91 |
* Mon Apr 4 2016 Jerry James <loganjerry@gmail.com> - 1.0-3.20160311.gite85453b
|
|
|
be37c91 |
- Update to latest upstream snapshot
|
|
|
be37c91 |
|
|
|
77330f0 |
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-2.20140924.git7b48b98
|
|
|
77330f0 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
|
|
77330f0 |
|
|
|
a6d497d |
* Sat Jan 16 2016 Jerry James <loganjerry@gmail.com> - 1.0-1.20140924.git7b48b98
|
|
|
a6d497d |
- Change to Macaulay2 repo
|
|
|
a6d497d |
- Revert Macaulay2 patch to disable libtool (memtailor-libtool.patch)
|
|
|
a6d497d |
- Use a patch instead of sed for gtest manipulations (memtailor-gtest.patch)
|
|
|
a6d497d |
|
|
|
a3627a0 |
* Fri Sep 4 2015 Jerry James <loganjerry@gmail.com> - 0-1.20130809.git722a30c
|
|
|
a3627a0 |
- Initial RPM
|