diff --git a/gcc.spec b/gcc.spec index 25aefc1466ae91c9f72f6b0d6b0e3300410cf6b2..34ab6d62aafccaf2ce7f8558d9ecd07f3baee317 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,8 +1,7 @@ -%global DATE 20190804 +%global DATE 20210203 %define debug_package %{nil} %global gcc_version 7.3.0 -%global gcc_release 20190804 %global isl_version 0.14 %global cloog_version 0.18.4 @@ -23,6 +22,7 @@ %global build_libquadmath 1 %endif %global build_libasan 1 +%global build_libubsan 1 %global build_libatomic 1 %global build_libitm 1 %global attr_ifunc 1 @@ -30,13 +30,14 @@ %global build_libstdcxx_docs 0 %global build_java_tar 0 %global build_libtsan 1 +%global build_liblsan 1 %global build_libilp32 0 %global build_check 0 Summary: Various compilers (C, C++, Objective-C, Java, ...) Name: gcc Version: 7.3.0 -Release: %{gcc_release}.35 +Release: %{DATE}.36 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD Group: Development/Languages #Source0: hcc-aarch64-linux-release.tar.bz2 @@ -306,6 +307,42 @@ Requires: libtsan = %{version}-%{release} %description -n libtsan-static This package contains Thread Sanitizer static runtime library. +%package -n libubsan +Summary: The Undefined Behavior Sanitizer runtime library +Group: System Environment/Libraries +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info + +%description -n libubsan +This package contains the Undefined Behavior Sanitizer library +which is used for -fsanitize=undefined instrumented programs. + +%package -n libubsan-static +Summary: The Undefined Behavior Sanitizer static library +Group: Development/Libraries +Requires: libubsan = %{version}-%{release} + +%description -n libubsan-static +This package contains Undefined Behavior Sanitizer static runtime library. + +%package -n liblsan +Summary: The Leak Sanitizer runtime library +Group: System Environment/Libraries +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info + +%description -n liblsan +This package contains the Leak Sanitizer library +which is used for -fsanitize=leak instrumented programs. + +%package -n liblsan-static +Summary: The Leak Sanitizer static library +Group: Development/Libraries +Requires: liblsan = %{version}-%{release} + +%description -n liblsan-static +This package contains Leak Sanitizer static runtime library. + %package plugin-devel Summary: Support for compiling GCC plugins Group: Development/Languages @@ -1104,6 +1141,9 @@ ln -sf ../../../libatomic.so.1.* libatomic.so ln -sf ../../../libasan.so.4.* libasan.so mv ../../../libasan_preinit.o libasan_preinit.o %endif +%if %{build_libubsan} +ln -sf ../../../libubsan.so.0.* libubsan.so +%endif %if %{build_java} ln -sf ../../../libgcj.so.14.* libgcj.so ln -sf ../../../libgcj-tools.so.14.* libgcj-tools.so @@ -1166,15 +1206,23 @@ mv ../../../../libilp32/libasan_preinit.o ilp32/libasan_preinit.o %endif %endif %endif +%if %{build_libubsan} +ln -sf ../../../../%{_lib}/libubsan.so.0.* libubsan.so +%endif %if %{build_libtsan} rm -f libtsan.so echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/libtsan.so.0.* | sed 's,^.*libt,libt,'`' )' > libtsan.so +mv ../../../../%{_lib}/libtsan_preinit.o libtsan_preinit.o %ifarch aarch64 %if %{build_libilp32} echo 'INPUT ( %{_prefix}/libilp32/'`echo ../../../../libilp32/libtsan.so.0.* | sed 's,^.*libt,libt,'`' )' > ilp32/libtsan.so %endif %endif %endif +%if %{build_liblsan} +rm -f liblsan.so +echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/liblsan.so.0.* | sed 's,^.*libl,libl,'`' )' > liblsan.so +%endif %if %{build_java} ln -sf ../../../../%{_lib}/libgcj.so.14.* libgcj.so ln -sf ../../../../%{_lib}/libgcj-tools.so.14.* libgcj-tools.so @@ -1239,6 +1287,9 @@ mv -f %{buildroot}%{_prefix}/libilp32/libasan.*a $FULLLPATH/ilp32/ %endif %endif %endif +%if %{build_libubsan} +mv -f %{buildroot}%{_prefix}/%{_lib}/libubsan.*a $FULLLPATH/ +%endif %if %{build_libtsan} mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan.*a $FULLLPATH/ %ifarch aarch64 @@ -1247,6 +1298,9 @@ mv -f %{buildroot}%{_prefix}/libilp32/libtsan.*a $FULLLPATH/ilp32/ %endif %endif %endif +%if %{build_liblsan} +mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan.*a $FULLLPATH/ +%endif %if %{build_go} mv -f %{buildroot}%{_prefix}/%{_lib}/libgo.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libgobegin.*a $FULLLPATH/ @@ -1333,6 +1387,11 @@ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libasan.so.4.* | sed 's,^.*l echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libasan.so.4.* | sed 's,^.*liba,liba,'`' )' > 64/libasan.so mv ../../../../lib64/libasan_preinit.o 64/libasan_preinit.o %endif +%if %{build_libubsan} +rm -f libubsan.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libubsan.so.0.* | sed 's,^.*libu,libu,'`' )' > libubsan.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libubsan.so.0.* | sed 's,^.*libu,libu,'`' )' > 64/libubsan.so +%endif %if %{build_java} ln -sf ../`echo ../../../../lib/libgcj.so.14.* | sed s~/lib/~/lib64/~` 64/libgcj.so ln -sf ../`echo ../../../../lib/libgcj-tools.so.14.* | sed s~/lib/~/lib64/~` 64/libgcj-tools.so @@ -1368,6 +1427,10 @@ ln -sf ../lib64/libatomic.a 64/libatomic.a ln -sf lib32/libasan.a libasan.a ln -sf ../lib64/libasan.a 64/libasan.a %endif +%if %{build_libubsan} +ln -sf lib32/libubsan.a libubsan.a +ln -sf ../lib64/libubsan.a 64/libubsan.a +%endif %if %{build_go} ln -sf lib32/libgo.a libgo.a ln -sf ../lib64/libgo.a 64/libgo.a @@ -1420,6 +1483,11 @@ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libasan.so.4.* | sed 's, echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libasan.so.4.* | sed 's,^.*liba,liba,'`' )' > 32/libasan.so mv ../../../../lib/libasan_preinit.o 32/libasan_preinit.o %endif +%if %{build_libubsan} +rm -f libubsan.so +echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libubsan.so.0.* | sed 's,^.*libu,libu,'`' )' > libubsan.so +echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libubsan.so.0.* | sed 's,^.*libu,libu,'`' )' > 32/libubsan.so +%endif %if %{build_java} ln -sf ../`echo ../../../../lib64/libgcj.so.14.* | sed s~/../lib64/~/~` 32/libgcj.so ln -sf ../`echo ../../../../lib64/libgcj-tools.so.14.* | sed s~/../lib64/~/~` 32/libgcj-tools.so @@ -1455,6 +1523,10 @@ ln -sf lib64/libatomic.a libatomic.a ln -sf ../lib32/libasan.a 32/libasan.a ln -sf lib64/libasan.a libasan.a %endif +%if %{build_libubsan} +ln -sf ../lib32/libubsan.a 32/libubsan.a +ln -sf lib64/libubsan.a libubsan.a +%endif %if %{build_go} ln -sf ../lib32/libgo.a 32/libgo.a ln -sf lib64/libgo.a libgo.a @@ -1490,6 +1562,9 @@ ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{version}/libatomi %if %{build_libasan} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{version}/libasan.a 32/libasan.a %endif +%if %{build_libubsan} +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{version}/libubsan.a 32/libubsan.a +%endif %if %{build_go} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{version}/libgo.a 32/libgo.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{version}/libgobegin.a 32/libgobegin.a @@ -1510,14 +1585,16 @@ strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \ -o -name libmudflap.a -o -name libmudflapth.a \ -o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \ -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \ - -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \) \ + -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \ + -o -name libubsan.a -o -name liblsan.a \) \ -a -type f` %endif strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \ -o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \ -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \ - -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \) \ + -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \ + -o -name libubsan.a -o -name liblsan.a \) \ -a -type f` @@ -1538,9 +1615,15 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1.* %if %{build_libasan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.4.* %endif +%if %{build_libubsan} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.0.* +%endif %if %{build_libtsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0.* %endif +%if %{build_liblsan} +chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.* +%endif %if %{build_go} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.4.* %endif @@ -1894,10 +1977,18 @@ fi #%postun -n libasan -p /sbin/ldconfig +#%post -n libubsan -p /sbin/ldconfig + +#%postun -n libubsan -p /sbin/ldconfig + #%post -n libtsan -p /sbin/ldconfig #%postun -n libtsan -p /sbin/ldconfig +#%post -n liblsan -p /sbin/ldconfig + +#%postun -n liblsan -p /sbin/ldconfig + #%post -n libgo -p /sbin/ldconfig #%postun -n libgo -p /sbin/ldconfig @@ -2135,6 +2226,10 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libasan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libasan_preinit.o %endif +%if %{build_libubsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libubsan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libubsan.so +%endif %endif %ifarch aarch64 aarch64_ilp32 %if %{build_libilp32} @@ -2172,6 +2267,10 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libasan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libasan_preinit.o %endif +%if %{build_libubsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libubsan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libubsan.so +%endif %endif %ifarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.a @@ -2195,9 +2294,9 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan_preinit.o %endif -%if %{build_libtsan} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan.so +%if %{build_libubsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libubsan.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libubsan.so %endif %else %if %{build_libatomic} @@ -2207,8 +2306,8 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libasan_preinit.o %endif -%if %{build_libtsan} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan.so +%if %{build_libubsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libubsan.so %endif %endif %ifarch aarch64 arch64_ilp32 @@ -2225,6 +2324,13 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/ilp32/libgcc_s.so %endif %endif +%if %{build_libtsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libtsan_preinit.o +%endif +%if %{build_liblsan} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/liblsan.so +%endif %dir %{_prefix}/libexec/getconf %{_prefix}/libexec/getconf/default #%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING* COPYING.RUNTIME @@ -3003,6 +3109,30 @@ fi #%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT %endif +%if %{build_libubsan} +%files -n libubsan +%defattr(-,root,root,-) +%{_prefix}/%{_lib}/libubsan.so.0* + +%files -n libubsan-static +%defattr(-,root,root,-) +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} +%ifarch sparcv9 ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libubsan.a +%endif +%ifarch sparc64 ppc64 ppc64p7 +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libubsan.a +%endif +%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libubsan.a +%endif +#%doc rpm.doc/changelogs/libsanitizer/ChangeLog* +%endif + %if %{build_libtsan} %files -n libtsan %defattr(-,root,root,-) @@ -3020,6 +3150,20 @@ fi #%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT %endif +%if %{build_liblsan} +%files -n liblsan +%defattr(-,root,root,-) +%{_prefix}/%{_lib}/liblsan.so.0* + +%files -n liblsan-static +%defattr(-,root,root,-) +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/liblsan.a +#%doc rpm.doc/changelogs/libsanitizer/ChangeLog* +%endif + %if %{build_go} %files go %defattr(-,root,root,-) @@ -3141,6 +3285,9 @@ fi %changelog +* Wed Feb 03 2021 eastb233 - 7.3.0-20210203.36 +- gcc.spec: Add libubsan, libubsan-static, liblsan, liblsan-static rpm packages + * Wed Oct 28 2020 jeff200902 - 7.3.0-20190804.35 - fixed PR c++/81589, error with is_trivially_constructible.