Compare commits

...

No commits in common. "c8" and "c10s" have entirely different histories.
c8 ... c10s

27 changed files with 1092 additions and 623 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

10
.gitignore vendored
View File

@ -1 +1,9 @@
SOURCES/2018_U2.tar.gz
/Tutorial.pdf
/Reference.pdf
/Getting_Started.pdf
/Design_Patterns.pdf
tbb*/
*.rpm
.*.log
/tbb*.tgz
/*.tar.gz

View File

@ -1 +0,0 @@
1d3e011649dbe9259156b6cb0fe15f375abd8f9c SOURCES/2018_U2.tar.gz

View File

@ -1,14 +0,0 @@
diff -up tbb44_20151115oss/include/tbb/machine/linux_ia32.h\~ tbb44_20151115oss/include/tbb/machine/linux_ia32.h
--- tbb44_20151115oss/include/tbb/machine/linux_ia32.h~ 2015-11-25 03:49:14.000000000 -0700
+++ tbb44_20151115oss/include/tbb/machine/linux_ia32.h 2016-01-14 20:29:45.251333321 -0700
@@ -34,7 +34,7 @@
#define __TBB_control_consistency_helper() __TBB_compiler_fence()
#define __TBB_acquire_consistency_helper() __TBB_compiler_fence()
#define __TBB_release_consistency_helper() __TBB_compiler_fence()
-#define __TBB_full_memory_fence() __asm__ __volatile__("mfence": : :"memory")
+#define __TBB_full_memory_fence() __sync_synchronize()
#if __TBB_ICC_ASM_VOLATILE_BROKEN
#define __TBB_VOLATILE
Diff finished. Thu Jan 14 20:30:12 2016

View File

@ -1,14 +0,0 @@
diff -up tbb44_20151115oss/build/Makefile.tbbmalloc\~ tbb44_20151115oss/build/Makefile.tbbmalloc
--- tbb44_20151115oss/build/Makefile.tbbmalloc~ 2016-01-14 20:20:49.514774850 -0700
+++ tbb44_20151115oss/build/Makefile.tbbmalloc 2016-01-14 20:36:32.126342096 -0700
@@ -51,7 +51,7 @@ ORIG_LINK_MALLOC.LIB:=$(LINK_MALLOC.LIB)
MALLOC_CPLUS.OBJ = backend.$(OBJ) large_objects.$(OBJ) backref.$(OBJ) tbbmalloc.$(OBJ)
MALLOC.OBJ := $(MALLOC_CPLUS.OBJ) $(MALLOC_ASM.OBJ) itt_notify_malloc.$(OBJ) frontend.$(OBJ)
PROXY.OBJ := proxy.$(OBJ) tbb_function_replacement.$(OBJ)
-M_CPLUS_FLAGS := $(subst $(WARNING_KEY),,$(M_CPLUS_FLAGS)) $(CXXFLAGS) $(DEFINE_KEY)__TBBMALLOC_BUILD=1
+M_CPLUS_FLAGS := $(CXXFLAGS) -fno-strict-aliasing $(DEFINE_KEY)__TBBMALLOC_BUILD=1
M_INCLUDES := $(INCLUDES) $(INCLUDE_KEY)$(MALLOC_ROOT) $(INCLUDE_KEY)$(MALLOC_SOURCE_ROOT)
# Suppress superfluous warnings for TBBMalloc compilation
Diff finished. Thu Jan 14 20:37:02 2016

View File

@ -1,37 +0,0 @@
diff -up tbb-2018_U2/build/linux.gcc.inc\~ tbb-2018_U2/build/linux.gcc.inc
--- tbb-2018_U2/build/linux.gcc.inc~ 2017-12-06 10:29:49.000000000 -0700
+++ tbb-2018_U2/build/linux.gcc.inc 2018-01-22 20:47:07.148422967 -0700
@@ -68,10 +68,10 @@ ifneq (,$(shell gcc -dumpversion | egrep
endif
ifeq ($(cfg), release)
- CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
+ CPLUS_FLAGS = $(CXXFLAGS) $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
endif
ifeq ($(cfg), debug)
- CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
+ CPLUS_FLAGS = $(CXXFLAGS) -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
endif
TBB_ASM.OBJ=
diff -up tbb-2018_U2/build/Makefile.tbbmalloc\~ tbb-2018_U2/build/Makefile.tbbmalloc
--- tbb-2018_U2/build/Makefile.tbbmalloc~ 2017-12-06 10:29:49.000000000 -0700
+++ tbb-2018_U2/build/Makefile.tbbmalloc 2018-01-22 20:47:30.104350662 -0700
@@ -51,7 +51,7 @@ ORIG_LINK_MALLOC.LIB:=$(LINK_MALLOC.LIB)
MALLOC_CPLUS.OBJ = backend.$(OBJ) large_objects.$(OBJ) backref.$(OBJ) tbbmalloc.$(OBJ)
MALLOC.OBJ := $(MALLOC_CPLUS.OBJ) $(MALLOC_ASM.OBJ) itt_notify_malloc.$(OBJ) frontend.$(OBJ)
PROXY.OBJ := proxy.$(OBJ) tbb_function_replacement.$(OBJ)
-M_CPLUS_FLAGS := $(subst $(WARNING_KEY),,$(M_CPLUS_FLAGS)) $(DEFINE_KEY)__TBBMALLOC_BUILD=1
+M_CPLUS_FLAGS := $(subst $(WARNING_KEY),,$(M_CPLUS_FLAGS)) $(CXXFLAGS) $(DEFINE_KEY)__TBBMALLOC_BUILD=1
M_INCLUDES := $(INCLUDES) $(INCLUDE_KEY)$(MALLOC_ROOT) $(INCLUDE_KEY)$(MALLOC_SOURCE_ROOT)
# Suppress superfluous warnings for TBBMalloc compilation
@@ -86,7 +86,7 @@ $(MALLOC.DLL) $(MALLOCPROXY.DLL): CPLUS_
$(MALLOC.DLL) $(MALLOCPROXY.DLL): M_CPLUS_FLAGS += $(SDL_FLAGS)
$(MALLOC.DLL): BUILDING_LIBRARY = $(MALLOC.DLL)
$(MALLOC.DLL): $(MALLOC.OBJ) $(MALLOC.RES) $(MALLOC_NO_VERSION.DLL)
- $(subst $(CPLUS),$(CONLY),$(LIB_LINK_CMD)) $(LIB_OUTPUT_KEY)$(MALLOC.DLL) $(MALLOC.OBJ) $(MALLOC.RES) $(LIB_LINK_LIBS) $(MALLOC_LINK_FLAGS)
+ $(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(MALLOC.DLL) $(MALLOC.OBJ) $(MALLOC.RES) $(LIB_LINK_LIBS) $(MALLOC_LINK_FLAGS)
ifneq (,$(MALLOCPROXY.DEF))
tbbmallocproxy.def: $(MALLOCPROXY.DEF)

View File

@ -1,556 +0,0 @@
%global upver 2018
%global uprel 2
Name: tbb
Summary: The Threading Building Blocks library abstracts low-level threading details
Version: %{upver}%{?uprel:.%{uprel}}
Release: 10%{?dist}.1
License: ASL 2.0
Group: Development/Tools
URL: http://threadingbuildingblocks.org/
Source0: https://github.com/01org/tbb/archive/%{upver}%{?uprel:_U%{uprel}}.tar.gz
# These three are downstream sources.
Source6: tbb.pc
Source7: tbbmalloc.pc
Source8: tbbmalloc_proxy.pc
# Propagate CXXFLAGS variable into flags used when compiling C++.
# This is so that RPM_OPT_FLAGS are respected.
Patch1: tbb-4.4-cxxflags.patch
# For 32-bit x86 only, don't assume that the mfence instruction is available.
# It was added with SSE2. This patch causes a lock xchg instruction to be
# emitted for non-SSE2 builds, and the mfence instruction to be emitted for
# SSE2-enabled builds.
Patch2: tbb-4.0-mfence.patch
# Don't snip -Wall from C++ flags. Add -fno-strict-aliasing, as that
# uncovers some static-aliasing warnings.
# Related: https://bugzilla.redhat.com/show_bug.cgi?id=1037347
Patch3: tbb-4.3-dont-snip-Wall.patch
# python3 is not available on RHEL <=7
%if 0%{?rhel} && 0%{?rhel} <= 7
# disable python3 by default
%bcond_with python3
%else
%bcond_without python3
%endif
# python2 is not available on RHEL > 7 and not needed on Fedora > 28
%if 0%{?rhel} > 7 || 0%{?fedora} > 28
# disable python2 by default
%bcond_with python2
%else
%bcond_without python2
%endif
BuildRequires: gcc-c++
BuildRequires: swig
%if %{with python2}
BuildRequires: python2-devel
%endif
%if %{with python3}
BuildRequires: python3-devel
%endif
%description
Threading Building Blocks (TBB) is a C++ runtime library that
abstracts the low-level threading details necessary for optimal
multi-core performance. It uses common C++ templates and coding style
to eliminate tedious threading implementation work.
TBB requires fewer lines of code to achieve parallelism than other
threading models. The applications you write are portable across
platforms. Since the library is also inherently scalable, no code
maintenance is required as more processor cores become available.
%package devel
Summary: The Threading Building Blocks C++ headers and shared development libraries
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
Header files and shared object symlinks for the Threading Building
Blocks (TBB) C++ libraries.
%package doc
Summary: The Threading Building Blocks documentation
Group: Documentation
%description doc
HTML documentation for the user of the Threading Building Block (TBB)
C++ library.
%if %{with python2}
%package -n python2-%{name}
Summary: Python 2 TBB module
%{?python_provide:%python_provide python2-%{name}}
Requires: tbb = %{version}-%{release}
%description -n python2-%{name}
Python 2 TBB module.
%endif
%if %{with python3}
%package -n python3-%{name}
Summary: Python 3 TBB module
%{?python_provide:%python_provide python3-%{name}}
Requires: tbb = %{version}-%{release}
%description -n python3-%{name}
Python 3 TBB module.
%endif
%prep
%setup -q -n %{name}-%{upver}_U%{uprel}
%patch1 -p1
%patch2 -p1
%patch3 -p1
# For repeatable builds, don't query the hostname or architecture
sed -i 's/"`hostname -s`" ("`uname -m`"/fedorabuild (%{_arch}/' \
build/version_info_linux.sh
# Do not assume the RTM instructions are available
sed -i 's/-mrtm//' build/linux.gcc.inc
%if %{with python2}
# Invoke the right python binary directly
sed -i 's,env python,python2,' python/TBB.py python/tbb/__*.py
%endif
%if %{with python3}
# Invoke the right python binary directly
sed -i 's,env python,python3,' python/TBB.py python/tbb/__*.py
%endif
# Remove shebang from files that don't need it
sed -i '/^#!/d' python/tbb/{pool,test}.py
# Fix libdir on 64-bit systems
if [ "%{_libdir}" != "%{_prefix}/lib" ]; then
sed -i.orig 's/"lib"/"%{_lib}"/' cmake/TBBMakeConfig.cmake
touch -r cmake/TBBMakeConfig.cmake.orig cmake/TBBMakeConfig.cmake
rm cmake/TBBMakeConfig.cmake.orig
fi
# Prepare to build the python module for both python 2 and python 3
%if %{with python2}
cp -a python python2
%endif
%if %{with python3}
cp -a python python3
sed -i 's,python,python3,g' python3/Makefile python3/rml/Makefile
sed -i 's,python2,python3,' python3/TBB.py python3/tbb/__*.py
# Invoke Python with the %%{__python3} executable instead of hardcoded python3
sed -i 's,PY_SETUP=python3,PY_SETUP=%{__python3},g' python3/Makefile
sed -i 's,python3 -m tbb test,%{__python3} -m tbb test,g' python3/Makefile
%endif
# Remove jQuery
rm doc/html/jquery.js
find doc/html -name '*.html' | xargs sed -i '/<script type="text.javascript" src="jquery.js"><.script>/d'
%build
%ifarch %{ix86}
# Build an SSE2-enabled version so the mfence instruction can be used
cp -a build build.orig
make %{?_smp_mflags} tbb_build_prefix=obj stdver=c++14 \
CXXFLAGS="$RPM_OPT_FLAGS -march=pentium4 -msse2" \
LDFLAGS="-Wl,--as-needed $RPM_LD_FLAGS"
mv build build.sse2
mv build.orig build
%endif
make %{?_smp_mflags} tbb_build_prefix=obj stdver=c++14 \
CXXFLAGS="$RPM_OPT_FLAGS" \
LDFLAGS="-Wl,--as-needed $RPM_LD_FLAGS"
for file in %{SOURCE6} %{SOURCE7} %{SOURCE8}; do
base=$(basename ${file})
sed 's/_FEDORA_VERSION/%{version}/' ${file} > ${base}
touch -r ${file} ${base}
done
# Build for python 2
%if %{with python2}
. build/obj_release/tbbvars.sh
pushd python2
make %{?_smp_mflags} -C rml stdver=c++14 \
CPLUS_FLAGS="%{optflags} -DDO_ITT_NOTIFY -DUSE_PTHREAD" \
PIC_KEY="-fPIC -Wl,--as-needed" \
LDFLAGS="$RPM_LD_FLAGS"
cp -p rml/libirml.so* .
%py2_build
popd
%endif
%if %{with python3}
# Build for python 3
. build/obj_release/tbbvars.sh
pushd python3
make %{?_smp_mflags} -C rml stdver=c++14 \
CPLUS_FLAGS="%{optflags} -DDO_ITT_NOTIFY -DUSE_PTHREAD" \
PIC_KEY="-fPIC -Wl,--as-needed" \
LDFLAGS="$RPM_LD_FLAGS"
cp -p rml/libirml.so* .
%py3_build
popd
%endif
%check
echo ============BEGIN TESTING===============
make -k test tbb_build_prefix=obj stdver=c++14 CXXFLAGS="$RPM_OPT_FLAGS" && true
echo ============END TESTING===========
%install
mkdir -p $RPM_BUILD_ROOT/%{_libdir}
mkdir -p $RPM_BUILD_ROOT/%{_includedir}
%ifarch %{ix86}
mkdir -p $RPM_BUILD_ROOT/%{_libdir}/sse2
pushd build.sse2/obj_release
for file in libtbb{,malloc{,_proxy}}; do
install -p -D -m 755 ${file}.so.2 $RPM_BUILD_ROOT/%{_libdir}/sse2
done
popd
%endif
pushd build/obj_release
for file in libtbb{,malloc{,_proxy}}; do
install -p -D -m 755 ${file}.so.2 $RPM_BUILD_ROOT/%{_libdir}
ln -s $file.so.2 $RPM_BUILD_ROOT/%{_libdir}/$file.so
done
popd
pushd include
find tbb -type f ! -name \*.htm\* -exec \
install -p -D -m 644 {} $RPM_BUILD_ROOT/%{_includedir}/{} \
\;
popd
for file in %{SOURCE6} %{SOURCE7} %{SOURCE8}; do
install -p -D -m 644 $(basename ${file}) \
$RPM_BUILD_ROOT/%{_libdir}/pkgconfig/$(basename ${file})
done
# Install the rml headers
mkdir -p $RPM_BUILD_ROOT%{_includedir}/rml
cp -p src/rml/include/*.h $RPM_BUILD_ROOT%{_includedir}/rml
# Python 2 install
%if %{with python2}
. build/obj_release/tbbvars.sh
pushd python2
%py2_install
chmod a+x $RPM_BUILD_ROOT%{python2_sitearch}/TBB.py
chmod a+x $RPM_BUILD_ROOT%{python2_sitearch}/tbb/__*.py
cp -p libirml.so.1 $RPM_BUILD_ROOT%{_libdir}
ln -s libirml.so.1 $RPM_BUILD_ROOT%{_libdir}/libirml.so
popd
%endif
# Python 3 install
%if %{with python3}
pushd python3
%py3_install
chmod a+x $RPM_BUILD_ROOT%{python3_sitearch}/TBB.py
chmod a+x $RPM_BUILD_ROOT%{python3_sitearch}/tbb/__*.py
cp -p libirml.so.1 $RPM_BUILD_ROOT%{_libdir}
ln -s libirml.so.1 $RPM_BUILD_ROOT%{_libdir}/libirml.so
popd
%endif
# Install the cmake files
mkdir -p $RPM_BUILD_ROOT%{_libdir}/cmake
cp -a cmake $RPM_BUILD_ROOT%{_libdir}/cmake/%{name}
rm $RPM_BUILD_ROOT%{_libdir}/cmake/%{name}/README.rst
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%doc doc/Release_Notes.txt README.md
%license LICENSE
%{_libdir}/*.so.2
%{_libdir}/libirml.so.1
%ifarch %{ix86}
%{_libdir}/sse2/*.so.2
%endif
%files devel
%doc CHANGES cmake/README.rst
%{_includedir}/rml
%{_includedir}/tbb
%{_libdir}/*.so
%{_libdir}/cmake/
%{_libdir}/pkgconfig/*.pc
%files doc
%doc doc/Release_Notes.txt
%doc doc/html
%if %{with python2}
%files -n python2-%{name}
%doc python/index.html
%{python2_sitearch}/TBB*
%{python2_sitearch}/tbb/
%endif
%if %{with python3}
%files -n python3-%{name}
%doc python3/index.html
%{python3_sitearch}/TBB*
%{python3_sitearch}/tbb/
%{python3_sitearch}/__pycache__/TBB*
%endif
%changelog
* Tue Feb 04 2025 Jonathan Wakely <jwakely@redhat.com> - 2018.2-10.1
- Remove jQuery from Doxygen files (RHEL-77669)
* Wed Feb 03 2021 Thomas Rodgers <trodgers@redhat.com> - 2018.2-10
- Apply patches from (BZ #1907561)
- Bump release
* Sun Dec 20 2020 Owen Taylor <otaylor@redhat.com> - 2018.2-9
- Fix build directory referenced in python2 build
- Move some python3 code that escaped back into a conditional
(BZ #1907561)
* Tue Nov 13 2018 Patsy Griffin Franklin <pfrankli@redhat.com> - 2018.2-9
- Require the correct version of tbb for python2-tbb and python3-tbb.
(BZ #1638041)
* Fri Sep 28 2018 Patsy Griffin Franklin <pfrankli@redhat.com> - 2018.2-8
- Run check for all supported architectures.
* Wed Aug 01 2018 Patsy Griffin Franklin <pfrankli@redhat.com> - 2018.2-7
- Selectively build python2 or python3 based on current version.
- Don't use pathfix.py as it fails prep on RHEL when building on systems
do not have python installled.
* Tue Jul 03 2018 Tomas Orsava <torsava@redhat.com> - 2018.2-6
- Switch hardcoded python3 path into the %%{__python3} macro
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2018.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Tue Jan 30 2018 Jerry James <loganjerry@gmail.com> - 2018.2-4
- Build libirml with the correct flags (bz 1540268)
- Do not build with -mrtm
* Mon Jan 29 2018 Iryna Shcherbina <ishcherb@redhat.com> - 2018.2-3
- Fix Python 2 dependency from python3-tbb
* Fri Jan 26 2018 Jerry James <loganjerry@gmail.com> - 2018.2-2
- Install libirml for the python interfaces
* Wed Jan 24 2018 Jerry James <loganjerry@gmail.com> - 2018.2-1
- Rebase to 2018 update 2
* Sat Nov 25 2017 Jerry James <loganjerry@gmail.com> - 2018.1-1
- Rebase to 2018 update 1
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2017.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2017.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Thu Jun 8 2017 Jerry James <loganjerry@gmail.com> - 2017.7-1
- Rebase to 2017 update 7
- Use the license macro
- Ship the new cmake files in -devel
* Tue May 16 2017 Jerry James <loganjerry@gmail.com> - 2017.6-1
- Rebase to 2017 update 6
* Fri Mar 17 2017 Jerry James <loganjerry@gmail.com> - 2017.5-1
- Rebase to 2017 update 5
- Change version scheme again to match upstream's change
- New source URL on github
- Drop upstreamed patch to fix detection of s390x as 64-bit arch
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2017-8.20161128
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Jan 02 2017 Dan Horák <dan[at]danny.cz> - 2017-7.20161128
- Fix detection of s390x as 64-bit arch (#1379632)
* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 2017-6.20161128
- Rebuild for Python 3.6
* Fri Dec 2 2016 Jerry James <loganjerry@gmail.com> - 2017-5.20161128
- Rebase to 2017 update 3
- Drop upstreamed s390x patch
* Wed Nov 2 2016 Jerry James <loganjerry@gmail.com> - 2017-4.20161004
- Rebase to 2017 update 2
* Fri Oct 07 2016 Dan Horák <dan[at]danny.cz> - 2017-3.20160916
- Fix detection of s390x as 64-bit arch (#1379632)
* Fri Sep 30 2016 Jerry James <loganjerry@gmail.com> - 2017-2.20160916
- New upstream release
* Thu Sep 22 2016 Jerry James <loganjerry@gmail.com> - 2017-1.20160722
- Rebase to 2017, new upstream version numbering scheme
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.4-8.20160526
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Wed Jun 1 2016 Jerry James <loganjerry@gmail.com> - 4.4-7.20160526
- Rebase to 4.4u5
- Build in C++14 mode
- Build the new python module
* Fri May 6 2016 Jerry James <loganjerry@gmail.com> - 4.4-6.20160413
- Rebase to 4.4u4
* Mon Apr 4 2016 Jerry James <loganjerry@gmail.com> - 4.4-5.20160316
- Add -fno-delete-null-pointer-checks to fix optimized code
* Fri Mar 18 2016 Jerry James <loganjerry@gmail.com> - 4.4-4.20160316
- Updated upstream tarball
- Link with RPM_LD_FLAGS
* Sat Feb 20 2016 Jerry James <loganjerry@gmail.com> - 4.4-3.20160128
- Rebase to 4.4u3
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.4-2.20151115
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jan 15 2016 Jerry James <loganjerry@gmail.com> - 4.4-1.20151115
- Rebase to 4.4u2
- Fix the mfence patch to actually emit a memory barrier (bz 1288314)
- Build an sse2 version for i386 for better performance on capable CPUs
- Enable use of C++0x features
- Drop out-of-date CHANGES.txt from git
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.3-3.20141204
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 4.3-2.20141204
- Rebuilt for GCC 5 C++11 ABI change
* Mon Jan 19 2015 Petr Machata <pmachata@redhat.com> - 4.3-1.20141204
- Rebase to 4.3u2
- Drop ExclusiveArch
* Thu Sep 25 2014 Karsten Hopp <karsten@redhat.com> 4.1-9.20130314
- enable ppc64le and run 'make test' on that new arch
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-8.20130314
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-7.20130314
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sun Jan 12 2014 Peter Robinson <pbrobinson@fedoraproject.org> 4.1-6.20130314
- Build on aarch64, minor spec cleanups
* Tue Dec 3 2013 Petr Machata <pmachata@redhat.com> - 4.1-5.20130314
- Fix building with -Werror=format-security (tbb-4.1-dont-snip-Wall.patch)
* Thu Oct 3 2013 Petr Machata <pmachata@redhat.com> - 4.1-4.20130314
- Fix %%install to also install include files that are not named *.h
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-3.20130314
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Tue May 28 2013 Petr Machata <pmachata@redhat.com> - 4.1-3.20130314
- Enable ARM arches
* Wed May 22 2013 Petr Machata <pmachata@redhat.com> - 4.1-2.20130314
- Fix mfence patch. Since the __TBB_full_memory_fence macro was
function-call-like, it stole () intended for function invocation.
* Wed May 22 2013 Petr Machata <pmachata@redhat.com> - 4.1-1.20130314
- Rebase to 4.1 update 3
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-7.20120408
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Tue Aug 28 2012 Petr Machata <pmachata@redhat.com> - 4.0-6.20120408
- Fix build on PowerPC
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-5.20120408
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Thu Jun 7 2012 Petr Machata <pmachata@redhat.com> - 4.0-4.20120408
- Rebase to 4.0 update 4
- Refresh Getting_Started.pdf, Reference.pdf, Tutorial.pdf
- Provide pkg-config files
- Resolves: #825402
* Thu Apr 05 2012 Karsten Hopp <karsten@redhat.com> 4.0-3.20110809
- tbb builds now on PPC(64)
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-2.20110809
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Oct 18 2011 Petr Machata <pmachata@redhat.com> - 4.0-1.20110809
- Rebase to 4.0
- Port the mfence patch
- Refresh the documentation bundle
* Tue Jul 26 2011 Petr Machata <pmachata@redhat.com> - 3.0-1.20110419
- Rebase to 3.0-r6
- Port both patches
- Package Design_Patterns.pdf
- Thanks to Richard Shaw for initial rebase patch
- Resolves: #723043
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2-3.20090809
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Thu Jun 10 2010 Petr Machata <pmachata@redhat.com> - 2.2-2.20090809
- Replace mfence instruction with xchg to make it run on ia32-class
machines without SSE2.
- Resolves: #600654
* Tue Nov 3 2009 Petr Machata <pmachata@redhat.com> - 2.2-1.20090809
- New upstream 2.2
- Resolves: #521571
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-3.20080605
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-2.20080605
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Fri Jun 13 2008 Petr Machata <pmachata@redhat.com> - 2.1-1.20080605
- New upstream 2.1
- Drop soname patch, parallel make patch, and GCC 4.3 patch
* Wed Feb 13 2008 Petr Machata <pmachata@redhat.com> - 2.0-4.20070927
- Review fixes
- Use updated URL
- More timestamp preservation
- Initial import into Fedora CVS
* Mon Feb 11 2008 Petr Machata <pmachata@redhat.com> - 2.0-3.20070927
- Review fixes
- Preserve timestamp of installed files
- Fix soname not to contain "debug"
* Tue Feb 5 2008 Petr Machata <pmachata@redhat.com> - 2.0-2.20070927
- Review fixes
- GCC 4.3 patchset
- Add BR util-linux net-tools
- Add full URL to Source0
- Build in debug mode to work around problems with GCC 4.3
* Mon Dec 17 2007 Petr Machata <pmachata@redhat.com> - 2.0-1.20070927
- Initial package.
- Using SONAME patch from Debian.

25
gating.yaml Normal file
View File

@ -0,0 +1,25 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
--- !Policy
product_versions:
- rhel-8
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

5
plans/ci.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: CI Gating Plan
discover:
how: fmf
execute:
how: tmt

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (tbb-2021.11.0.tar.gz) = 4779141b7602f2fa3a509fdd346824ba270a3a568df3649ce8cb51264d233df5cec5e5cb67b91319dd11d3d5e054697b4ed345e07216107985ddb6e1e7ef94e5

View File

@ -0,0 +1,43 @@
diff -up tbb-2019_U6/build/common_rules.inc.orig tbb-2019_U6/build/common_rules.inc
--- tbb-2019_U6/build/common_rules.inc.orig 2019-04-18 05:14:08.000000000 -0600
+++ tbb-2019_U6/build/common_rules.inc 2019-05-08 08:30:03.434532204 -0600
@@ -130,7 +130,7 @@ LINK_FILES+=$(TEST_LIBS)
# Customizations
$(KNOWN_WARNINGS): %.$(OBJ): %.cpp
- $(CPLUS) $(COMPILE_ONLY) $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
tbb_misc.$(OBJ): version_string.ver
tbb_misc.$(OBJ): INCLUDES+=$(INCLUDE_KEY).
diff -up tbb-2019_U6/build/Makefile.tbbmalloc.orig tbb-2019_U6/build/Makefile.tbbmalloc
--- tbb-2019_U6/build/Makefile.tbbmalloc.orig 2019-04-18 05:14:08.000000000 -0600
+++ tbb-2019_U6/build/Makefile.tbbmalloc 2019-05-08 08:30:03.447531968 -0600
@@ -47,11 +47,11 @@ ORIG_LINK_MALLOC.LIB:=$(LINK_MALLOC.LIB)
MALLOC_CPLUS.OBJ = backend.$(OBJ) large_objects.$(OBJ) backref.$(OBJ) tbbmalloc.$(OBJ)
MALLOC.OBJ := $(MALLOC_CPLUS.OBJ) $(MALLOC_ASM.OBJ) itt_notify_malloc.$(OBJ) frontend.$(OBJ)
PROXY.OBJ := proxy.$(OBJ) tbb_function_replacement.$(OBJ)
-M_CPLUS_FLAGS += $(DEFINE_KEY)__TBBMALLOC_BUILD=1
+M_CPLUS_FLAGS += -fno-strict-aliasing $(DEFINE_KEY)__TBBMALLOC_BUILD=1
M_INCLUDES := $(INCLUDES) $(INCLUDE_KEY)$(MALLOC_ROOT) $(INCLUDE_KEY)$(MALLOC_SOURCE_ROOT)
# Suppress superfluous warnings for TBBMalloc compilation
-$(MALLOC.OBJ): M_CPLUS_FLAGS := $(subst $(WARNING_KEY),,$(M_CPLUS_FLAGS)) $(WARNING_SUPPRESS)
+$(MALLOC.OBJ): M_CPLUS_FLAGS := $(M_CPLUS_FLAGS) $(WARNING_SUPPRESS)
# Suppress superfluous warnings for TBBMalloc proxy compilation
$(PROXY.OBJ): CPLUS_FLAGS += $(WARNING_SUPPRESS)
diff -up tbb-2019_U6/build/Makefile.test.orig tbb-2019_U6/build/Makefile.test
--- tbb-2019_U6/build/Makefile.test.orig 2019-05-08 08:30:03.448531949 -0600
+++ tbb-2019_U6/build/Makefile.test 2019-05-08 08:31:48.190498336 -0600
@@ -275,7 +275,7 @@ test_tbb_plain: $(TEST_PREREQUISITE) $(T
# For deprecated files, we don't mind warnings etc., thus compilation rules are most relaxed
-CPLUS_FLAGS_DEPRECATED = $(DEFINE_KEY)__TBB_TEST_DEPRECATED=1 $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(WARNING_SUPPRESS) $(INCLUDE_KEY)$(tbb_root)/src/test
+CPLUS_FLAGS_DEPRECATED = $(DEFINE_KEY)__TBB_TEST_DEPRECATED=1 $(CPLUS_FLAGS) $(WARNING_SUPPRESS) $(INCLUDE_KEY)$(tbb_root)/src/test
TEST_TBB_OLD.OBJ = test_concurrent_vector_v2.$(OBJ) test_concurrent_queue_v2.$(OBJ) test_mutex_v2.$(OBJ) test_task_scheduler_observer_v3.$(OBJ)
$(TEST_TBB_OLD.OBJ): CPLUS_FLAGS := $(CPLUS_FLAGS_DEPRECATED)
Diff finished. Wed May 8 08:31:49 2019

View File

@ -0,0 +1,12 @@
diff -up tbb-2019_U8/src/test/test_task_scheduler_init.cpp.orig tbb-2019_U8/src/test/test_task_scheduler_init.cpp
--- tbb-2019_U8/src/test/test_task_scheduler_init.cpp.orig 2019-06-06 04:29:15.000000000 -0600
+++ tbb-2019_U8/src/test/test_task_scheduler_init.cpp 2019-08-26 12:08:19.547880295 -0600
@@ -285,7 +285,7 @@ namespace TestBlockingTerminateNS {
}
};
void operator()() {
- const int numThreads = 4;
+ const int numThreads = 2;
tbb::task_scheduler_init init( numThreads );
Harness::SpinBarrier barrier( numThreads );
tbb::parallel_for( 0, numThreads, Body( barrier ) );

View File

@ -0,0 +1,56 @@
--- tbb-2020.2/oneTBB-2020.2/src/rml/test/test_thread_monitor.cpp 2020-03-30 13:38:06.000000000 +0200
+++ oneTBB-2020.2/src/rml/test/test_thread_monitor.cpp 2020-04-27 15:43:34.209452298 +0200
@@ -23,6 +23,7 @@
#include "thread_monitor.h"
#include "harness_memory.h"
#include "tbb/semaphore.cpp"
+#include <atomic>
class ThreadState {
void loop();
@@ -33,21 +34,21 @@
}
typedef rml::internal::thread_monitor thread_monitor;
thread_monitor monitor;
- volatile int request;
- volatile int ack;
- volatile unsigned clock;
- volatile unsigned stamp;
+ std::atomic<int> request;
+ std::atomic<int> ack;
+ std::atomic<unsigned> clock;
+ unsigned stamp;
ThreadState() : request(-1), ack(-1), clock(0) {}
};
void ThreadState::loop() {
for(;;) {
- ++clock;
if( ack==request ) {
thread_monitor::cookie c;
monitor.prepare_wait(c);
if( ack==request ) {
- REMARK("%p: request=%d ack=%d\n", this, request, ack );
+ REMARK("%p: request=%d ack=%d\n", this, request.load(), ack.load() );
+ ++clock;
monitor.commit_wait(c);
} else
monitor.cancel_wait();
@@ -60,7 +61,7 @@
rml::internal::thread_monitor::yield();
}
int r = request;
- ack = request;
+ ack = r;
if( !r ) return;
}
}
@@ -89,7 +90,7 @@
REPORT("Warning: thread %d not waiting\n",i);
break;
}
- } while( t[i].stamp!=t[i].clock );
+ } while( t[i].stamp==0 || t[i].stamp!=t[i].clock );
}
}
REMARK("notifying threads\n");

54
tbb-2020-attributes.patch Normal file
View File

@ -0,0 +1,54 @@
diff -up oneTBB-2020.2/src/tbbmalloc/proxy.cpp.orig oneTBB-2020.2/src/tbbmalloc/proxy.cpp
--- oneTBB-2020.2/src/tbbmalloc/proxy.cpp.orig 2020-03-31 06:40:13.752296189 -0600
+++ oneTBB-2020.2/src/tbbmalloc/proxy.cpp 2020-03-31 06:42:52.611900760 -0600
@@ -146,15 +146,7 @@ static inline void initPageSize()
1) detection that the proxy library is loaded
2) check that dlsym("malloc") found something different from our replacement malloc
*/
-// Starting from GCC 9, the -Wmissing-attributes warning was extended for alias below
-#if __GNUC__ == 9
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wmissing-attributes"
-#endif
-extern "C" void *__TBB_malloc_proxy(size_t) __attribute__ ((alias ("malloc")));
-#if __GNUC__ == 9
- #pragma GCC diagnostic pop
-#endif
+extern "C" void *__TBB_malloc_proxy(size_t) __attribute__ ((alias ("malloc"), copy (malloc)));
static void *orig_msize;
@@ -296,25 +288,17 @@ struct mallinfo mallinfo() __THROW
size_t dlmalloc_usable_size(const void *ptr) __attribute__ ((alias ("malloc_usable_size")));
#else // __ANDROID__
// C11 function, supported starting GLIBC 2.16
-void *aligned_alloc(size_t alignment, size_t size) __attribute__ ((alias ("memalign")));
+void *aligned_alloc(size_t alignment, size_t size) __attribute__ ((alias ("memalign"), copy (memalign)));
// Those non-standard functions are exported by GLIBC, and might be used
// in conjunction with standard malloc/free, so we must ovberload them.
// Bionic doesn't have them. Not removing from the linker scripts,
// as absent entry points are ignored by the linker.
-// Starting from GCC 9, the -Wmissing-attributes warning was extended for aliases below
-#if __GNUC__ == 9
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wmissing-attributes"
-#endif
-void *__libc_malloc(size_t size) __attribute__ ((alias ("malloc")));
-void *__libc_calloc(size_t num, size_t size) __attribute__ ((alias ("calloc")));
-void *__libc_memalign(size_t alignment, size_t size) __attribute__ ((alias ("memalign")));
-void *__libc_pvalloc(size_t size) __attribute__ ((alias ("pvalloc")));
-void *__libc_valloc(size_t size) __attribute__ ((alias ("valloc")));
-#if __GNUC__ == 9
- #pragma GCC diagnostic pop
-#endif
+void *__libc_malloc(size_t size) __attribute__ ((alias ("malloc"), copy (malloc)));
+void *__libc_calloc(size_t num, size_t size) __attribute__ ((alias ("calloc"), copy (calloc)));
+void *__libc_memalign(size_t alignment, size_t size) __attribute__ ((alias ("memalign"), copy (memalign)));
+void *__libc_pvalloc(size_t size) __attribute__ ((alias ("pvalloc"), copy (pvalloc)));
+void *__libc_valloc(size_t size) __attribute__ ((alias ("valloc"), copy (valloc)));
// call original __libc_* to support naive replacement of free via __libc_free etc
void __libc_free(void *ptr)
Diff finished. Tue Mar 31 06:43:27 2020

View File

@ -0,0 +1,37 @@
From c18342ba667d1f33f5e9a773aa86b091a9694b97 Mon Sep 17 00:00:00 2001
From: Sergei Trofimovich <slyich@gmail.com>
Date: Fri, 20 May 2022 07:50:00 +0100
Subject: [PATCH] tbb_2020: fix build on gcc-13
On gcc-13 build started failing due to 'task' identifier collision as:
../../include/tbb/task.h:300:20: error: declaration of 'tbb::task& tbb::internal::task_prefix::task()' changes meaning of 'task' [-fpermissive]
300 | tbb::task& task() {return *reinterpret_cast<tbb::task*>(this+1);}
| ^~~~
../../include/tbb/task.h:252:9: note: used here to mean 'class tbb::task'
252 | task* next_offloaded;
| ^~~~
../../include/tbb/task.h:43:7: note: declared here
43 | class task;
| ^~~~
The change adds explicit qualifier to class name to avoid ambiguity with method name.
Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
---
include/tbb/task.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/tbb/task.h b/include/tbb/task.h
index 5e137c6999..b5fb1ac35e 100644
--- a/include/tbb/task.h
+++ b/include/tbb/task.h
@@ -249,7 +249,7 @@ namespace internal {
#if __TBB_TASK_PRIORITY
//! Pointer to the next offloaded lower priority task.
/** Used to maintain a list of offloaded tasks inside the scheduler. **/
- task* next_offloaded;
+ tbb::task* next_offloaded;
#endif
#if __TBB_PREVIEW_RESUMABLE_TASKS

30
tbb-2021-Werror.patch Normal file
View File

@ -0,0 +1,30 @@
diff -up oneTBB-2021.11.0/cmake/compilers/Clang.cmake.orig oneTBB-2021.11.0/cmake/compilers/Clang.cmake
--- oneTBB-2021.11.0/cmake/compilers/Clang.cmake.orig 2023-11-17 09:23:05.000000000 -0700
+++ oneTBB-2021.11.0/cmake/compilers/Clang.cmake 2023-12-28 20:35:24.422191660 -0700
@@ -46,11 +46,6 @@ endif()
set(TBB_WARNING_LEVEL -Wall -Wextra $<$<BOOL:${TBB_STRICT}>:-Werror>)
set(TBB_TEST_WARNING_FLAGS -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor)
-# Ignore -Werror set through add_compile_options() or added to CMAKE_CXX_FLAGS if TBB_STRICT is disabled.
-if (NOT TBB_STRICT AND COMMAND tbb_remove_compile_flag)
- tbb_remove_compile_flag(-Werror)
-endif()
-
# Enable Intel(R) Transactional Synchronization Extensions (-mrtm) and WAITPKG instructions support (-mwaitpkg) on relevant processors
if (CMAKE_SYSTEM_PROCESSOR MATCHES "(AMD64|amd64|i.86|x86)")
set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm $<$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},12.0>>:-mwaitpkg>)
diff -up oneTBB-2021.11.0/cmake/compilers/GNU.cmake.orig oneTBB-2021.11.0/cmake/compilers/GNU.cmake
--- oneTBB-2021.11.0/cmake/compilers/GNU.cmake.orig 2023-11-17 09:23:05.000000000 -0700
+++ oneTBB-2021.11.0/cmake/compilers/GNU.cmake 2023-12-28 20:37:54.828060692 -0700
@@ -42,11 +42,6 @@ endif()
set(TBB_COMMON_LINK_LIBS ${CMAKE_DL_LIBS})
-# Ignore -Werror set through add_compile_options() or added to CMAKE_CXX_FLAGS if TBB_STRICT is disabled.
-if (NOT TBB_STRICT AND COMMAND tbb_remove_compile_flag)
- tbb_remove_compile_flag(-Werror)
-endif()
-
if (NOT ${CMAKE_CXX_COMPILER_ID} STREQUAL Intel)
# gcc 6.0 and later have -flifetime-dse option that controls elimination of stores done outside the object lifetime
set(TBB_DSE_FLAG $<$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},6.0>>:-flifetime-dse=1>)

View File

@ -0,0 +1,12 @@
diff -up oneTBB-2021.7.0/src/tbbmalloc/frontend.cpp.orig oneTBB-2021.7.0/src/tbbmalloc/frontend.cpp
--- oneTBB-2021.6.0/src/tbbmalloc/frontend.cpp.orig 2022-10-07 08:34:12.000000000 -0600
+++ oneTBB-2021.6.0/src/tbbmalloc/frontend.cpp 2022-11-03 13:28:39.050045201 -0600
@@ -1516,7 +1516,7 @@ bool Block::readyToShare()
{
MallocMutex::scoped_lock scoped_cs(publicFreeListLock);
if ( (oldVal=publicFreeList)==nullptr )
- (intptr_t&)(publicFreeList) = UNUSABLE;
+ publicFreeList = reinterpret_cast<FreeObject *>(UNUSABLE);
}
#endif
return oldVal==nullptr;

View File

@ -0,0 +1,26 @@
From db2f2116adfb545bb76c92205f91e3e3f0f9e44a Mon Sep 17 00:00:00 2001
From: Thomas Rodgers <rodgert@twrodgers.com>
Date: Wed, 2 Jun 2021 15:18:30 -0700
Subject: [PATCH] Mark tbb::empty_task::execute with [[gnu::used]]
---
include/tbb/task.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/tbb/task.h b/include/tbb/task.h
index 5e137c6..5b60163 100644
--- a/include/tbb/task.h
+++ b/include/tbb/task.h
@@ -1040,6 +1040,9 @@ inline void task::resume(suspend_point tag) {
//! task that does nothing. Useful for synchronization.
/** @ingroup task_scheduling */
class __TBB_DEPRECATED_IN_VERBOSE_MODE empty_task: public task {
+#if __has_cpp_attribute(gnu::used)
+ [[gnu::used]]
+#endif
task* execute() __TBB_override {
return NULL;
}
--
2.31.1

8
tbb.rpmlintrc Normal file
View File

@ -0,0 +1,8 @@
# THIS FILE IS FOR WHITELISTING RPMLINT ERRORS AND WARNINGS IN TASKOTRON
# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#Whitelisting_errors
# The dictionary lacks some technical words
addFilter(r'spelling-error .* symlinks')
# We use whatever version of jquery doxygen gives us
addFilter(r'W: unversioned-explicit-provides bundled\(jquery\)')

575
tbb.spec Normal file
View File

@ -0,0 +1,575 @@
# If docs should point to local python3-docs rather than website.
# python3-docs is not shipped in RHEL 9+
%bcond py3docs %{undefined rhel}
Name: tbb
Summary: The Threading Building Blocks library abstracts low-level threading details
Version: 2021.11.0
Release: 7%{?dist}
License: Apache-2.0 AND BSD-3-Clause
URL: http://threadingbuildingblocks.org/
Source0: https://github.com/oneapi-src/oneTBB/archive/v%{version}/%{name}-%{version}.tar.gz
# These two are downstream sources.
Source7: tbbmalloc.pc
Source8: tbbmalloc_proxy.pc
# TBB tries to remove -Werror from the compiler flags, which turns
# -Werror=format-security into =format-security
Patch0: tbb-2021-Werror.patch
# Fix code that violates the strict aliasing rules.
Patch1: tbb-2021-strict-aliasing.patch
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: hwloc
BuildRequires: hwloc-devel
BuildRequires: make
BuildRequires: python3-devel
%if %{with py3docs}
BuildRequires: python3-docs
%endif
BuildRequires: %{py3_dist setuptools}
BuildRequires: %{py3_dist sphinx}
BuildRequires: %{py3_dist sphinx-rtd-theme}
BuildRequires: swig
%description
Threading Building Blocks (TBB) is a C++ runtime library that
abstracts the low-level threading details necessary for optimal
multi-core performance. It uses common C++ templates and coding style
to eliminate tedious threading implementation work.
TBB requires fewer lines of code to achieve parallelism than other
threading models. The applications you write are portable across
platforms. Since the library is also inherently scalable, no code
maintenance is required as more processor cores become available.
%package bind
Summary: NUMA support library for TBB
Requires: %{name}%{?_isa} = %{version}-%{release}
%description bind
NUMA support library for TBB, allowing the binding of tasks to selected
CPU cores.
%package devel
Summary: The Threading Building Blocks C++ headers and shared development libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-bind%{?_isa} = %{version}-%{release}
%description devel
Header files and shared object symlinks for the Threading Building
Blocks (TBB) C++ libraries.
%package doc
Summary: The Threading Building Blocks documentation
%ifarch %{ix86}
# https://bugzilla.redhat.com/show_bug.cgi?id=2174300
Conflicts: %{name}-doc.x86_64
%endif
%description doc
PDF documentation for the user of the Threading Building Block (TBB)
C++ library.
%package -n python3-%{name}
Summary: Python 3 TBB module
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n python3-%{name}
Python 3 TBB module.
%prep
%autosetup -p1 -n oneTBB-%{version}
# Invoke the right python binary directly
for fil in $(grep -Frl %{_bindir}/env python); do
sed -i.orig 's,env python3,python3,' $fil
touch -r $fil.orig $fil
rm $fil.orig
done
%if %{with py3docs}
# Use local objects.inv for intersphinx
sed -e "s|\('https://docs\.python\.org/': \)None|\1'%{_docdir}/python3-docs/html/objects.inv'|" \
-i doc/GSG/conf.py doc/main/conf.py
%endif
%generate_buildrequires
cd python
%pyproject_buildrequires
%build
export TBBROOT=$PWD
export PYTHONPATH=$(sed "s,%{_prefix},$PWD/%{_vpath_builddir}/python/build," <<< %{python3_sitearch})
%cmake \
-DCMAKE_CXX_STANDARD=17 \
-DTBB4PY_BUILD:BOOL=ON \
-DTBB_STRICT:BOOL=OFF \
-DCMAKE_HWLOC_2_4_LIBRARY_PATH=%{_libdir}/libhwloc.so \
-DCMAKE_HWLOC_2_4_INCLUDE_PATH=%{_includedir}/hwloc \
%cmake_build
# The python package is not built the Fedora way. Do it over.
unset PYTHONPATH
export LD_LIBRARY_PATH=$(ls -1d $PWD/%{_vpath_builddir}/*relwithdebinfo)
export LDFLAGS="-L $LD_LIBRARY_PATH %{build_ldflags}"
cd python
%pyproject_wheel
cd -
# Build documentation
export BUILD_TYPE=oneapi
sphinx-build doc/GSG getting-started
sphinx-build doc/main html
%install
%cmake_install
# The python package is not installed the Fedora way. Do it over.
rm -fr %{buildroot}%{python3_sitearch}
cd python
%pyproject_install
cd -
mkdir -p %{buildroot}/%{_libdir}/pkgconfig
for file in %{SOURCE7} %{SOURCE8}; do
target=%{buildroot}/%{_libdir}/pkgconfig/$(basename ${file})
sed 's/_FEDORA_VERSION/%{version}/' $file > $target
touch -r $file $target
done
# Upstream installs tbb32.pc on 32-bit but it's already in a separate directory
# because %_libdir is different for 32-bit and 64-bit, so rename it to tbb.pc.
if [ -f %{buildroot}/%{_libdir}/pkgconfig/%{name}32.pc ]; then
mv %{buildroot}/%{_libdir}/pkgconfig/%{name}32.pc %{buildroot}/%{_libdir}/pkgconfig/%{name}.pc
fi
rm -fr %{buildroot}%{_datadir}/doc
%check
# Running the tests in parallel often leads to resource exhaustion.
ctest --output-on-failure --force-new-ctest-process
%files
%doc README.md
%license LICENSE.txt
%{_libdir}/libtbb.so.12*
%{_libdir}/libtbbmalloc.so.2*
%{_libdir}/libtbbmalloc_proxy.so.2*
%{_libdir}/libirml.so.1
%files bind
%{_libdir}/libtbbbind_2_5.so.3*
%files devel
%doc cmake/README.md
%{_includedir}/oneapi/
%{_includedir}/tbb/
%{_libdir}/*.so
%{_libdir}/cmake/TBB/
%{_libdir}/pkgconfig/*.pc
%files doc
%doc getting-started html
%files -n python3-%{name}
%doc python/README.md
%{python3_sitearch}/TBB*
%{python3_sitearch}/tbb/
%{python3_sitearch}/__pycache__/TBB*
%changelog
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 2021.11.0-7
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 2021.11.0-6
- Bump release for June 2024 mass rebuild
* Thu Jan 25 2024 Jonathan Wakely <jwakely@fedoraproject.org> - 2021.11.0-5
- Remove Requires:python3-docs for tbb-doc subpackage
* Mon Jan 22 2024 Jonathan Wakely <jwakely@fedoraproject.org> - 2021.11.0-4
- Rename 32-bit arch /usr/lib/pkgconfig/tbb32.pc to tbb.pc
* Fri Jan 19 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 2021.11.0-3
- Avoid python3-docs dependency on RHEL
* Wed Jan 17 2024 Jonathan Wakely <jwakely@fedoraproject.org> - 2021.11.0-2
- Add patch for strict aliasing violation
* Thu Dec 28 2023 Jerry James <loganjerry@gmail.com> - 2021.11.0-1
- Rebase to version 2021.11.0
- New -bind subpackage for the NUMA support library
- Build with cmake
- Minor spec file cleanups
* Thu Aug 10 2023 Jonathan Wakely <jwakely@fedoraproject.org> - 2020.3-21
- SPDX migration
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2020.3-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jun 28 2023 Python Maint <python-maint@redhat.com> - 2020.3-19
- Rebuilt for Python 3.12
* Tue Jun 27 2023 Jonathan Wakely <jwakely@fedoraproject.org> - 2020.3-18
- Add conflicts tag for tbb-doc (#2174300)
- Remove outdated provides for bundled(jquery)
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 2020.3-17
- Rebuilt for Python 3.12
* Tue Feb 21 2023 Jonathan Wakely <jwakely@redhat.com> - 2020.3-16
- Add versioned Requires: to python module
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2020.3-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Jan 16 2023 Thomas Rodgers <trodgers@redhat.com> - 2020.3-14
- Fix build failure with GCC13 (bz 2161412)
* Wed Jan 11 2023 Thomas Rodgers <trodgers@redhat.com> - 2020.3-13
- Fix build failure with Python 3.12.0 (bz 2154975)
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2020.3-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2020.3-11
- Rebuilt for Python 3.11
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2020.3-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2020.3-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jun 09 2021 Thomas Rodgers <trodgers@redhat.com> - 2020.3-8
- Merge change to remove baseos-qe.koji-build.scratch-build.validation ahajkova
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2020.3-7
- Rebuilt for Python 3.10
* Thu Jun 3 2021 Thomas Rodgers <trodgers@redhat.com> - 2020.3-6
- Fix ABI regression in tbb::empty_task caused by switch to LTO
* Mon Feb 22 2021 Jerry James <loganjerry@gmail.com> - 2020.3-5
- Fix cmake file installation some more (bz 1930389)
* Thu Feb 18 2021 Jerry James <loganjerry@gmail.com> - 2020.3-4
- Fix cmake file installation (bz 1930389)
- Allow use of RTM instructions when available
- At upstream's suggestion, do not force ITT_NOTIFY support
- Drop -fetchadd64 patch, only needed for forced ITT_NOTIFY support
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2020.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2020.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 27 2020 Jerry James <loganjerry@gmail.com> - 2020.3-1
- Rebase to version 2020.3
* Tue Jul 14 2020 Tom Stellard <tstellar@redhat.com> - 2020.2-4
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 2020.2-3
- Rebuilt for Python 3.9
* Mon Apr 27 2020 Timm Baeder <tbaeder@redhat.com> - 2020.2-2
- Pass the compiler to when building
- Update the tbb-2019-test-thread-monitor.patch to use std::atomic
* Tue Mar 31 2020 Jerry James <loganjerry@gmail.com> - 2020.2-1
- Rebase to version 2020.2
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2020.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Jan 22 2020 Jerry James <loganjerry@gmail.com> - 2020.1-1
- Rebase to version 2020.1
* Tue Dec 31 2019 Jerry James <loganjerry@gmail.com> - 2020-1
- Rebase to version 2020
* Sat Oct 12 2019 Jerry James <loganjerry@gmail.com> - 2019.9-1
- Rebase to 2019 update 9
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 2019.8-4
- Rebuilt for Python 3.8.0rc1 (#1748018)
* Tue Aug 27 2019 Jerry James <loganjerry@gmail.com> - 2019.8-3
- Add -test-thread-monitor and -test-task-scheduler-init patches to fix FTBFS
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 2019.8-3
- Rebuilt for Python 3.8
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2019.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Jun 8 2019 Jerry James <loganjerry@gmail.com> - 2019.8-1
- Rebase to 2019 update 8
* Thu May 23 2019 Jerry James <loganjerry@gmail.com> - 2019.7-1
- Rebase to 2019 update 7
* Thu May 9 2019 Jerry James <loganjerry@gmail.com> - 2019.6-1
- Rebase to 2019 update 6
- Add -attributes patch to silence gcc warnings
* Mon Mar 25 2019 Jerry James <loganjerry@gmail.com> - 2019.5-1
- Rebase to 2019 update 5
* Mon Mar 4 2019 Jerry James <loganjerry@gmail.com> - 2019.4-1
- Rebase to 2019 update 4
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2019.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Dec 8 2018 Jerry James <loganjerry@gmail.com> - 2019.3-1
- Rebase to 2019 update 3
* Fri Nov 16 2018 Jerry James <loganjerry@gmail.com> - 2019.2-1
- Rebase to 2019 update 2
* Thu Oct 4 2018 Jerry James <loganjerry@gmail.com> - 2019.1-1
- Rebase to 2019 update 1
- Drop special SSE2 build for 32-bit x86 as that is now default
- Drop unneeded -cxxflags patch
- Drop python 2 support (bz 1629761)
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2018.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jul 3 2018 Jerry James <loganjerry@gmail.com> - 2018.5-1
- Rebase to 2018 update 5
- Run check script on all architectures
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 2018.4-2
- Rebuilt for Python 3.7
* Thu May 31 2018 Jerry James <loganjerry@gmail.com> - 2018.4-1
- Rebase to 2018 update 4
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2018.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Tue Jan 30 2018 Jerry James <loganjerry@gmail.com> - 2018.2-4
- Build libirml with the correct flags (bz 1540268)
- Do not build with -mrtm
* Mon Jan 29 2018 Iryna Shcherbina <ishcherb@redhat.com> - 2018.2-3
- Fix Python 2 dependency from python3-tbb
* Fri Jan 26 2018 Jerry James <loganjerry@gmail.com> - 2018.2-2
- Install libirml for the python interfaces
* Wed Jan 24 2018 Jerry James <loganjerry@gmail.com> - 2018.2-1
- Rebase to 2018 update 2
* Sat Nov 25 2017 Jerry James <loganjerry@gmail.com> - 2018.1-1
- Rebase to 2018 update 1
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2017.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2017.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Thu Jun 8 2017 Jerry James <loganjerry@gmail.com> - 2017.7-1
- Rebase to 2017 update 7
- Use the license macro
- Ship the new cmake files in -devel
* Tue May 16 2017 Jerry James <loganjerry@gmail.com> - 2017.6-1
- Rebase to 2017 update 6
* Fri Mar 17 2017 Jerry James <loganjerry@gmail.com> - 2017.5-1
- Rebase to 2017 update 5
- Change version scheme again to match upstream's change
- New source URL on github
- Drop upstreamed patch to fix detection of s390x as 64-bit arch
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2017-8.20161128
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Jan 02 2017 Dan Horák <dan[at]danny.cz> - 2017-7.20161128
- Fix detection of s390x as 64-bit arch (#1379632)
* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 2017-6.20161128
- Rebuild for Python 3.6
* Fri Dec 2 2016 Jerry James <loganjerry@gmail.com> - 2017-5.20161128
- Rebase to 2017 update 3
- Drop upstreamed s390x patch
* Wed Nov 2 2016 Jerry James <loganjerry@gmail.com> - 2017-4.20161004
- Rebase to 2017 update 2
* Fri Oct 07 2016 Dan Horák <dan[at]danny.cz> - 2017-3.20160916
- Fix detection of s390x as 64-bit arch (#1379632)
* Fri Sep 30 2016 Jerry James <loganjerry@gmail.com> - 2017-2.20160916
- New upstream release
* Thu Sep 22 2016 Jerry James <loganjerry@gmail.com> - 2017-1.20160722
- Rebase to 2017, new upstream version numbering scheme
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.4-8.20160526
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Wed Jun 1 2016 Jerry James <loganjerry@gmail.com> - 4.4-7.20160526
- Rebase to 4.4u5
- Build in C++14 mode
- Build the new python module
* Fri May 6 2016 Jerry James <loganjerry@gmail.com> - 4.4-6.20160413
- Rebase to 4.4u4
* Mon Apr 4 2016 Jerry James <loganjerry@gmail.com> - 4.4-5.20160316
- Add -fno-delete-null-pointer-checks to fix optimized code
* Fri Mar 18 2016 Jerry James <loganjerry@gmail.com> - 4.4-4.20160316
- Updated upstream tarball
- Link with RPM_LD_FLAGS
* Sat Feb 20 2016 Jerry James <loganjerry@gmail.com> - 4.4-3.20160128
- Rebase to 4.4u3
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.4-2.20151115
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Fri Jan 15 2016 Jerry James <loganjerry@gmail.com> - 4.4-1.20151115
- Rebase to 4.4u2
- Fix the mfence patch to actually emit a memory barrier (bz 1288314)
- Build an sse2 version for i386 for better performance on capable CPUs
- Enable use of C++0x features
- Drop out-of-date CHANGES.txt from git
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.3-3.20141204
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 4.3-2.20141204
- Rebuilt for GCC 5 C++11 ABI change
* Mon Jan 19 2015 Petr Machata <pmachata@redhat.com> - 4.3-1.20141204
- Rebase to 4.3u2
- Drop ExclusiveArch
* Thu Sep 25 2014 Karsten Hopp <karsten@redhat.com> 4.1-9.20130314
- enable ppc64le and run 'make test' on that new arch
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-8.20130314
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-7.20130314
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sun Jan 12 2014 Peter Robinson <pbrobinson@fedoraproject.org> 4.1-6.20130314
- Build on aarch64, minor spec cleanups
* Tue Dec 3 2013 Petr Machata <pmachata@redhat.com> - 4.1-5.20130314
- Fix building with -Werror=format-security (tbb-4.1-dont-snip-Wall.patch)
* Thu Oct 3 2013 Petr Machata <pmachata@redhat.com> - 4.1-4.20130314
- Fix %%install to also install include files that are not named *.h
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-3.20130314
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Tue May 28 2013 Petr Machata <pmachata@redhat.com> - 4.1-3.20130314
- Enable ARM arches
* Wed May 22 2013 Petr Machata <pmachata@redhat.com> - 4.1-2.20130314
- Fix mfence patch. Since the __TBB_full_memory_fence macro was
function-call-like, it stole () intended for function invocation.
* Wed May 22 2013 Petr Machata <pmachata@redhat.com> - 4.1-1.20130314
- Rebase to 4.1 update 3
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-7.20120408
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Tue Aug 28 2012 Petr Machata <pmachata@redhat.com> - 4.0-6.20120408
- Fix build on PowerPC
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-5.20120408
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Thu Jun 7 2012 Petr Machata <pmachata@redhat.com> - 4.0-4.20120408
- Rebase to 4.0 update 4
- Refresh Getting_Started.pdf, Reference.pdf, Tutorial.pdf
- Provide pkg-config files
- Resolves: #825402
* Thu Apr 05 2012 Karsten Hopp <karsten@redhat.com> 4.0-3.20110809
- tbb builds now on PPC(64)
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-2.20110809
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Oct 18 2011 Petr Machata <pmachata@redhat.com> - 4.0-1.20110809
- Rebase to 4.0
- Port the mfence patch
- Refresh the documentation bundle
* Tue Jul 26 2011 Petr Machata <pmachata@redhat.com> - 3.0-1.20110419
- Rebase to 3.0-r6
- Port both patches
- Package Design_Patterns.pdf
- Thanks to Richard Shaw for initial rebase patch
- Resolves: #723043
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2-3.20090809
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Thu Jun 10 2010 Petr Machata <pmachata@redhat.com> - 2.2-2.20090809
- Replace mfence instruction with xchg to make it run on ia32-class
machines without SSE2.
- Resolves: #600654
* Tue Nov 3 2009 Petr Machata <pmachata@redhat.com> - 2.2-1.20090809
- New upstream 2.2
- Resolves: #521571
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-3.20080605
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-2.20080605
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Fri Jun 13 2008 Petr Machata <pmachata@redhat.com> - 2.1-1.20080605
- New upstream 2.1
- Drop soname patch, parallel make patch, and GCC 4.3 patch
* Wed Feb 13 2008 Petr Machata <pmachata@redhat.com> - 2.0-4.20070927
- Review fixes
- Use updated URL
- More timestamp preservation
- Initial import into Fedora CVS
* Mon Feb 11 2008 Petr Machata <pmachata@redhat.com> - 2.0-3.20070927
- Review fixes
- Preserve timestamp of installed files
- Fix soname not to contain "debug"
* Tue Feb 5 2008 Petr Machata <pmachata@redhat.com> - 2.0-2.20070927
- Review fixes
- GCC 4.3 patchset
- Add BR util-linux net-tools
- Add full URL to Source0
- Build in debug mode to work around problems with GCC 4.3
* Mon Dec 17 2007 Petr Machata <pmachata@redhat.com> - 2.0-1.20070927
- Initial package.
- Using SONAME patch from Debian.

View File

@ -0,0 +1,66 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /tools/tbb/Sanity/upstream
# Description: Test for package tbb that tests the whole library
# Author: Filip Holec <fholec@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2012 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/tools/tbb/Sanity/upstream
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Filip Holec <fholec@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test for package tbb that tests the whole library" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: tbb" >> $(METADATA)
@echo "Requires: tbb tbb-devel rpm-build gcc-c++" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Bug: 844976" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
@echo "Architectures: x86_64 ppc64le aarch64 s390x" >> $(METADATA)
rhts-lint $(METADATA)

View File

@ -0,0 +1,7 @@
PURPOSE of /tools/tbb/Sanity/upstream
Description: Test for package tbb that tests the whole library
Author: Filip Holec <fholec@redhat.com>
Bug summary: [RFE] Provide tbb (dependency of suitesparse, SciPy)
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=844976
Test for package tbb that tests the whole library

View File

@ -0,0 +1,19 @@
summary: Test for package tbb that tests the whole library
description: |
Bug summary: [RFE] Provide tbb (dependency of suitesparse, SciPy)
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=844976
Test for package tbb that tests the whole library
contact: Filip Holec <fholec@redhat.com>
component:
- tbb
test: ./runtest.sh
framework: beakerlib
recommend:
- tbb
- tbb-devel
- rpm-build
- gcc-c++
duration: 5m
extra-summary: /tools/tbb/Sanity/upstream
extra-task: /tools/tbb/Sanity/upstream

106
tests/sanity_test/runtest.sh Executable file
View File

@ -0,0 +1,106 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/tbb/Sanity/upstream
# Description: Test for package tbb that tests the whole library
# Author: Filip Holec <fholec@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2012 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh
PACKAGES=${PACKAGES:-tbb}
REQUIRES=${REQUIRES:-tbb-devel}
rlJournalStart
rlPhaseStartSetup
# Determine what architecture is the test running on
ARCH=$(rlGetPrimaryArch)
# work around https://bugzilla.redhat.com/show_bug.cgi?id=1374681
sed -i 's/\/mnt\/redhat\/scripts\/rel-eng\/utility\/find_package/\/usr\/bin\/find_package/' /usr/share/beakerlib/plugins/rh-internal.sh
wget -O /usr/bin/find_package http://nfs.englab.brq.redhat.com/scratch/mcermak/conf/find_package
chmod a+rx /usr/bin/find_package
# Supported architectures are i386 and x86_64
if [ $ARCH = "i386" -o $ARCH="x86_64" ] ; then
# Check if RPMs are installed
rlAssertRpm --all
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
# Download tests from lookaside and decompress them
PY_COLLECTION=$(echo $COLLECTIONS | egrep -o 'python\w+')
if [[ -n $PY_COLLECTION ]] && rlIsRHEL 6
then
echo "${PY_COLLECTION}-tbb"
rlRun "rlFetchSrcForInstalled ${PY_COLLECTION}-tbb" \
0 "Download tbb source RPM"
if [ "$PY_COLLECTION" == "python27" ]
then
FLAGS="CXXFLAGS='-I/opt/rh/python27/root/usr/include/ -L/opt/rh/python27/root/usr/lib64'"
tbb_prefix="/tbb"
else
FLAGS="CXXFLAGS='-I/opt/rh/python33/root/usr/include/ -L/opt/rh/python33/root/usr/lib64'"
tbb_prefix=""
fi
else
FLAGS=""
echo tbb
rlRun "rlFetchSrcForInstalled tbb" \
0 "Download tbb source RPM"
fi
rlRun "rpm --define '_topdir $TmpDir' -i *src.rpm" \
0 "Installing the source rpm"
rlRun "mkdir BUILD" 0 "Creating BUILD directory"
rlRun "rpmbuild --nodeps --define '_topdir $TmpDir' -bp $TmpDir/SPECS/*spec" \
0 "Preparing sources"
rlRun "pushd ./BUILD/" 0 "Go to source directory"
else
rlLog "tbb is not available for $ARCH, skipping the test"
fi
rlPhaseEnd
rlPhaseStartTest
# Test if architecture is supported
if [ $ARCH = "i386" -o $ARCH="x86_64" ] ; then
# Make and make fibonacci
rlRun "pushd .${tbb_prefix}/oneTBB*/examples/test_all/fibonacci; make ${FLAGS}" 0 \
"Enter fibonacci example directory and make"
# Run the fibonacci test
rlRun "./fibonacci" 0 \
"Testing fibonacci (which is complex testing of nearly all tbb library)"
fi
rlPhaseEnd
rlPhaseStartCleanup
# Test if architecture is supported
if [ $ARCH = "i386" -o $ARCH="x86_64" ] ; then
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
fi
rlPhaseEnd
rlJournalPrintText
rlJournalEnd