From 9d818337b1f35a9fb57b7f8a663858ac04d42842 Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Fri, 5 Jan 2024 22:37:56 +0100 Subject: [PATCH] libgomp: patch to workaround environ null pointer in initialize_env [release 13.1.1-2mamba;Tue Jun 20 2023] --- ....1.1-libgomp-workaround-null-environ.patch | 12 ++++ gcc.spec | 58 ++++++++++++++----- 2 files changed, 54 insertions(+), 16 deletions(-) create mode 100644 gcc-13.1.1-libgomp-workaround-null-environ.patch diff --git a/gcc-13.1.1-libgomp-workaround-null-environ.patch b/gcc-13.1.1-libgomp-workaround-null-environ.patch new file mode 100644 index 0000000..717bb0c --- /dev/null +++ b/gcc-13.1.1-libgomp-workaround-null-environ.patch @@ -0,0 +1,12 @@ +--- gcc-13.1.1/libgomp/env.c.orig 2023-06-20 10:11:45.125868665 +0200 ++++ gcc-13.1.1/libgomp/env.c 2023-06-20 10:04:18.089095860 +0200 +@@ -2059,6 +2059,9 @@ + none = gomp_get_initial_icv_item (GOMP_DEVICE_NUM_FOR_NO_SUFFIX); + initialize_icvs (&none->icvs); + ++ if (environ == 0) fprintf(stderr, "FIXME: initialize_env: environ is not initialized\n"); ++ ++ if (environ != 0) + for (env = environ; *env != 0; env++) + { + if (!startswith (*env, "OMP_")) diff --git a/gcc.spec b/gcc.spec index de88775..c942318 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,4 +1,6 @@ # openmamba cross platform gcc specfile +%define git_commit 9a167ee2f8b9a0859fbab6cfdc276cf1f272effe +%define git_commit_ver 13.1.1 %define target_cpu %(echo %{_target_platform} | cut -d- -f1) %if "%{?_target_platform}" != "%{_host}" @@ -39,7 +41,7 @@ %define majver %(echo %version | cut -d. -f 1-2) Name: gcc -Version: 12.2.0 +Version: 13.1.1 Release: 2mamba Summary: GNU Compiler Collection (C, C++, Fortran, Go, Ada) Group: Applications/Development @@ -47,8 +49,8 @@ Vendor: openmamba Distribution: openmamba Packager: Silvan Calarco URL: https://gcc.gnu.org/ -Source: https://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.xz -Source1: ftp://sourceware.org/pub/java/ecj-latest.jar +Source: https://sourceware.org/git/gcc.git/master@%{git_commit}/gcc-%{version}.tar.bz2 +#Source: https://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.xz Patch0: %{name}-4.5.0-no_fixincludes.patch Patch1: %{name}-4.0.2-zextract.patch Patch2: gcc4-java-nomulti.patch @@ -67,6 +69,7 @@ Patch15: gcc-4.9.0-upstream-fixes-1.patch Patch16: gcc-4.9.2-arm-lra-bootstrap.patch Patch19: gcc-7.1.0-cross-ftbfs-ucontet_t.patch Patch20: gcc-10.1.0-arm-provide-futex-atomic-functions.patch +Patch21: gcc-13.1.1-libgomp-workaround-null-environ.patch License: GPL ## AUTOBUILDREQ-BEGIN ## AUTOBUILDREQ-END @@ -112,7 +115,7 @@ BuildRequires: libisl-devel >= 0.14 #% else #BuildRequires: cross-%{target_cpu}-glibc%{?glibc_require_append} >= 2.5 %endif -BuildConflicts: libldc-devel +#BuildConflicts: libldc-devel Requires(post):%{__install_info} Requires: %{name}-cpp = %{version}-%{release} Requires: libgcc >= %{version}-%{release} @@ -591,7 +594,15 @@ Cross Platform gcc for %{_target_platform}. %debug_package %endif +# Don't clean build at the end +%global __spec_rmbuild_cmd /bin/true + %prep +%if "%{git_commit_ver}" != "%{version}" +echo "Needed to update git commit for gcc %{version}" +exit 1 +%endif + %setup -q -n gcc-%{version}%{?gcc_extraver} #-D -T #:<< ___EOF @@ -600,15 +611,17 @@ Cross Platform gcc for %{_target_platform}. %define _build_id_links none %endif -%if "%{_target_platform}" != "%{_build}" -%patch9 -p1 -%endif +#%if "%{_target_platform}" != "%{_build}" +#%patch 9 -p1 +#%endif -# psignal_fix_bootstrap_build -%patch11 -p1 +## psignal_fix_bootstrap_build +#%patch 11 -p1 + +%patch 21 -p1 %ifarch arm -%patch20 -p1 +%patch 20 -p1 ## workaround for gcc-go #cp libgo/go/internal/syscall/unix/{getrandom_linux_arm.go,dummy.go} cat >> libgo/go/internal/syscall/unix/dummy.go << __EOF @@ -652,7 +665,7 @@ BUILD_LANGUAGES="${BUILD_LANGUAGES},go" case %{_target_platform} in i386-*|i486-*|i586-*|i686-*|athlon-*) - ADDITIONAL_OPTS="--with-arch=i686" + ADDITIONAL_OPTS="--with-arch=pentium4" ;; ppc-* | powerpc-*) ADDITIONAL_OPTS="" @@ -1108,7 +1121,7 @@ rm -f %{buildroot}%{_infodir}/libffi.info* %{_libdir}/libtsan_preinit.o %endif -%ifarch aarch64 +%ifarch aarch64 x86_64 %files -n libhwasan %defattr(-,root,root) %{_libdir}/libhwasan.so.* @@ -1117,9 +1130,8 @@ rm -f %{buildroot}%{_infodir}/libffi.info* %defattr(-,root,root) %{_libdir}/libhwasan.a %{_libdir}/libhwasan.so -%endif +%{_libdir}/libhwasan_preinit.o -%ifarch x86_64 aarch64 %files -n liblsan %defattr(-,root,root) %{_libdir}/liblsan.so.* @@ -1188,7 +1200,8 @@ rm -f %{buildroot}%{_infodir}/libffi.info* # # C++ language # -%files c++ +# NOTE: libstdc++.lang moved here to prevent x86 biarch conflict of libstdc++6 +%files c++ -f libstdc++.lang %defattr(-,root,root) %{_bindir}/c++ %{_bindir}/g++ @@ -1198,7 +1211,7 @@ rm -f %{buildroot}%{_infodir}/libffi.info* %{_mandir}/man1/g++.1.* #%doc gcc/cp/ChangeLog* -%files -n %{libstdcxx_name} -f libstdc++.lang +%files -n %{libstdcxx_name} %defattr(-,root,root) %{_libdir}/libstdc++.so.* %ifarch ppc @@ -1212,6 +1225,7 @@ rm -f %{buildroot}%{_infodir}/libffi.info* %files -n %{libstdcxx_name}-devel %defattr(-,root,root) %{_libdir}/libstdc++.a +%{_libdir}/libstdc++exp.a %{_libdir}/libstdc++.so %{_libdir}/libsupc++.a %{_libdir}/libstdc++fs.a @@ -1325,7 +1339,9 @@ rm -f %{buildroot}%{_infodir}/libffi.info* #%doc gcc/doc/gfortran.pdf %endif %endif +%ifnarch arm aarch64 %{_infodir}/libquadmath.info.* +%endif %if "%{disable_doc}" != "1" #%doc gcc/doc/cpp.pdf #%doc gcc/doc/cppinternals.pdf @@ -1347,6 +1363,7 @@ rm -f %{buildroot}%{_infodir}/libffi.info* %{_prefix}/lib32/libgcc_s.so.1 # %{_prefix}/lib32/libstdc++.*a +%{_prefix}/lib32/libstdc++exp.a %{_prefix}/lib32/libstdc++.so %{_prefix}/lib32/libstdc++.so.* %{_prefix}/lib32/libstdc++fs.*a @@ -1461,6 +1478,15 @@ rm -f %{buildroot}%{_infodir}/libffi.info* %endif %changelog +* Tue Jun 20 2023 Silvan Calarco 13.1.1-2mamba +- libgomp: patch to workaround environ null pointer in initialize_env + +* Sat Jun 17 2023 Silvan Calarco 13.1.1-1mamba +- update to 13.1.1 + +* Sat Jun 10 2023 Silvan Calarco 13.1.0-1mamba +- update to 13.1.0 + * Thu Sep 29 2022 Silvan Calarco 12.2.0-2mamba - gcc-multilib: add /usr/lib32 to ldconfig paths