Compare commits

...

4 Commits

3 changed files with 146 additions and 145 deletions

View File

@ -1,12 +0,0 @@
--- 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_"))

View File

@ -0,0 +1,15 @@
Avoid leaking current data on generated file for Ada.
Index: gcc/ada/gcc-interface/Makefile.in
===================================================================
--- gcc/ada/gcc-interface/Makefile.in (revision 268977)
+++ gcc/ada/gcc-interface/Makefile.in (working copy)
@@ -2407,6 +2407,7 @@ $(RTSDIR)/s-oscons.ads: ../stamp-gnatlib
$(OSCONS_CPP) ; \
$(OSCONS_EXTRACT) ; \
../bldtools/oscons/xoscons s-oscons)
+ touch -r $(fsrcpfx)ada/gsocket.h $@
gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR) $(RTSDIR)/s-oscons.ads
test -f $(RTSDIR)/s-oscons.ads || exit 1

264
gcc.spec
View File

@ -1,7 +1,3 @@
# 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}"
# % define target_platform %{cross_target_cpu}-openmamba-linux-gnu
@ -18,8 +14,7 @@
%define _ld ld
%endif
%define gcc_branch %(echo %{version} | cut -d. -f 1-2)
#% define gcc_extraver -20050810
%define gcc_ver %(echo %{version} | cut -d+ -f1)
# use stage1 == 1 to have a gcc build not depending on
# glibc library; this is usually the first needed step in
@ -35,25 +30,34 @@
# % define bootstrap_append -stage2
#% endif
%define gittag %(echo %version | cut -d+ -f2 | cut -d. -f2)
%define libstdcxx_name libstdc++6
%define MAJver %(echo %version | cut -d. -f 1)
%define majver %(echo %version | cut -d. -f 1-2)
Name: gcc
Version: 14.1.0
Release: 1mamba
Version: 14.2.1+20240909git.3951efed
Release: 2mamba
Summary: GNU Compiler Collection (C, C++, Fortran, Go, Ada)
Group: Applications/Development
Vendor: openmamba
Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: https://gcc.gnu.org/
Source: https://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.xz
#Source: https://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}.tar.bz2
Source: https://sourceware.org/git/gcc.git/releases%2Fgcc-14@%{gittag}/gcc-%{version}.tar.bz2
Patch0: gcc-10.1.0-arm-provide-futex-atomic-functions.patch
Patch1: gcc-13.1.1-libgomp-workaround-null-environ.patch
Patch1: gcc-14.2.1+20240909git.3951efed-ada-repro.patch
License: GPL
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libgmp-devel
BuildRequires: libisl-devel
BuildRequires: libmpc-devel
BuildRequires: libmpfr-devel
BuildRequires: libz-devel
BuildRequires: libzstd-devel
## AUTOBUILDREQ-END
%if "%{?cross_target_cpu}" == ""
BuildRequires: binutils
@ -187,7 +191,7 @@ Provides: libgcc_s.so.1(GLIBC_2.0)
%endif
%description -n libgcc
The libgcc package contains GCC shared libraries for gcc %{gcc_branch}.
The libgcc package contains GCC shared libraries for gcc.
#
# Preprocessor
@ -320,11 +324,11 @@ Requires: libgo-devel = %{version}-%{release}
The GNU compiler for the Go programming language.
%package -n libgo
Summary: Library for the Go programmi language
Summary: Library for the Go programming language
Group: System/Libraries
%description -n libgo
Library for the Go programmi language.
Library for the Go programming language.
%package -n libgo-devel
Summary: Development headers and static library for libgo
@ -332,7 +336,7 @@ Group: Development/Libraries
Requires: libgo = %{version}-%{release}
%description -n libgo-devel
Development files for the library for the Go programmi language.
Development files for the library for the Go programming language.
#
# Fortran 95 Libraries
@ -344,6 +348,36 @@ Group: System/Libraries
%description -n libgfortran
This package contains Fortran 95 shared library which is needed to run Fortran 95 dynamically linked programs.
#
# Modula-2 compiler
#
%package m2
Summary: The GNU frontend for the Modula-2 programming language
Group: System/Libraries
Requires: libm2 = %{version}-%{release}
Requires: libm2-devel = %{version}-%{release}
%description m2
The GNU frontend for the Modula-2 programming language.
%package -n libm2
Summary: Library for the Modula-2 programming language
Group: System/Libraries
%description -n libm2
Library for the Modula-2 programming language.
%package -n libm2-devel
Summary: Development headers and static library for libm2
Group: Development/Libraries
Requires: libm2 = %{version}-%{release}
%description -n libm2-devel
Development files for the library for the Modula-2 programming language.
#
# Other libraries
#
%package -n libiberty-devel
Summary: Development files for libiberty
Group: Development/Libraries
@ -604,23 +638,14 @@ Cross Platform gcc for %{_target_platform}.
%endif
%patch 0 -p1
%ifarch arm
%patch 1 -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
const (
getrandomTrap uintptr = 384
copyFileRangeTrap uintptr = 391
)
__EOF
%endif
%patch 1 -p0 -b .ada-repro
# Do not run fixincludes
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
# 14.1.1: from Fedora, trying to fix aarch64 problems
sed -i -e '/ldp_fusion/s/Init(1)/Init(0)/' gcc/config/aarch64/aarch64.opt
%build
#:<< ____EOF
rm -rf ../%{name}-build-%{_target_platform}
@ -632,13 +657,10 @@ cd ../%{name}-build-%{_target_platform}
slibdir=%{_libdir}
# BUILD_LANGUAGES is only used in final (not staged) build
BUILD_LANGUAGES=c,objc,lto,d
# TODO: ada: configure: error: GNAT is required to build ada
BUILD_LANGUAGES=c,objc,lto,d,rust
%if "%{disable_cpp}" != "1"
# Fortran won't build cross platform (?)
BUILD_LANGUAGES="${BUILD_LANGUAGES},c++,obj-c++"
BUILD_LANGUAGES="${BUILD_LANGUAGES},c++,obj-c++,m2"
%endif
%if "%{disable_fortran}" != "1"
# Fortran won't build cross platform (?)
@ -647,14 +669,19 @@ BUILD_LANGUAGES="${BUILD_LANGUAGES},fortran"
%if "%{disable_go}" != "1"
BUILD_LANGUAGES="${BUILD_LANGUAGES},go"
%endif
#%if "%{disable_ada}" != "1"
#BUILD_LANGUAGES="${BUILD_LANGUAGES},ada"
## Bootstrap GNAT (ada) with prebuilt toolchains
## x86_64: https://github.com/alire-project/GNAT-FSF-builds/releases/download/gnat-14.2.0-1/gnat-x86_64-linux-14.2.0-1.tar.gz
## x86: https://community.download.adacore.com/v1/c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6?filename=gnat-gpl-2014-x86-linux-bin.tar.gz&rand=1247
#export CC=~/gnat-x86_64-linux-14.2.0-1/bin/gcc
#export PATH=$PATH:~/gnat-x86_64-linux-14.2.0-1/bin
#%endif
case %{_target_platform} in
i386-*|i486-*|i586-*|i686-*|athlon-*)
ADDITIONAL_OPTS="--with-arch=pentium4"
;;
ppc-* | powerpc-*)
ADDITIONAL_OPTS=""
;;
arm-*)
abi=%{_target_platform}
abi=`echo ${abi/*-}`
@ -810,8 +837,6 @@ for p in gcc-%{version} gcc gcc-ar gcc-nm gcc-ranlib c++ g++ gfortran; do
rm -f %{buildroot}%{_bindir}/%{_target_platform}-$p
done
ln -s gcc %{buildroot}%{_bindir}/%{_target_platform}-gcc-%{version}
for p in gcc gcc-ar gcc-nm gcc-ranlib cc gcov c++ g++ gfortran; do
ln -s $p %{buildroot}%{_bindir}/%{_target_platform}-$p
done
@ -820,7 +845,7 @@ done
mv %{buildroot}%{_bindir}/go %{buildroot}%{_bindir}/gcc-go
install -d -m755 %{buildroot}%{_libdir}/bfd-plugins
ln -sf ../../libexec/gcc/%{_target_platform}/%{version}/liblto_plugin.so %{buildroot}%{_libdir}/bfd-plugins/
ln -sf ../../libexec/gcc/%{_target_platform}/%{gcc_ver}/liblto_plugin.so %{buildroot}%{_libdir}/bfd-plugins/
# create symlinks
# mkdir -p %{buildroot}/%{_lib}
@ -878,7 +903,7 @@ chmod 755 %{buildroot}/%{_libdir}/libgcc_s.so.1
rm -rf %{buildroot}%{_infodir}/*
rm -rf %{buildroot}%{_mandir}/man7/{fsf-funding.*,gfdl.*,gpl.*}
rm -rf %{buildroot}%{_datadir}/locale/*
rm -rf %{buildroot}%{_datadir}/gcc-%{version}/python/libstdcxx/*
rm -rf %{buildroot}%{_datadir}/gcc-%{gcc_ver}/python/libstdcxx/*
# FIXME: since 5.2.0
rm -rf %{buildroot}%{_libdir}/libcc1.*
%endif
@ -895,33 +920,13 @@ rm -f %{buildroot}%{_infodir}/libffi.info*
rm -f %{buildroot}%{_infodir}/dir
%ifarch aarch64
rm -f %{buildroot}%{_infodir}/libquadmath.info*
%endif
%clean
[ "%{buildroot}" != "/" ] && rm -rf "%{buildroot}"
%post -n libgcc -p /sbin/ldconfig
%postun -n libgcc -p /sbin/ldconfig
%post -n %{libstdcxx_name} -p /sbin/ldconfig
%postun -n %{libstdcxx_name} -p /sbin/ldconfig
%post -n libgdruntime -p /sbin/ldconfig
%postun -n libgdruntime -p /sbin/ldconfig
%post -n libgfortran -p /sbin/ldconfig
%postun -n libgfortran -p /sbin/ldconfig
%post -n libquadmath -p /sbin/ldconfig
%postun -n libquadmath -p /sbin/ldconfig
%post -n libatomic -p /sbin/ldconfig
%postun -n libatomic -p /sbin/ldconfig
%post -n libasan -p /sbin/ldconfig
%postun -n libasan -p /sbin/ldconfig
%post -n liblsan -p /sbin/ldconfig
%postun -n liblsan -p /sbin/ldconfig
%post doc
%install_info cppinternals.info
%install_info gcc.info
@ -958,23 +963,20 @@ rm -f %{buildroot}%{_infodir}/dir
%{_bindir}/gcov-tool
%{_bindir}/lto-dump
%{_bindir}/%{_target_platform}-cc
%{_bindir}/%{_target_platform}-gcc-%{version}
%{_bindir}/%{_target_platform}-gcc
%{_bindir}/%{_target_platform}-gcc-ar
%{_bindir}/%{_target_platform}-gcc-nm
%{_bindir}/%{_target_platform}-gcc-ranlib
%{_bindir}/%{_target_platform}-gcov
%{_bindir}/%{_target_platform}-gcc-%{gcc_ver}
%dir %{_libdir}/gcc
%{_libdir}/gcc/*
%ifarch x86_64 aarch64
%exclude %{_libdir}/gcc/%{_target_platform}/%{version}/32/*
%exclude %{_libdir}/gcc/%{_target_platform}/%{gcc_ver}/32/*
%endif
%dir %{_prefix}/libexec/gcc/%{_target_platform}/%{version}
%{_prefix}/libexec/gcc/%{_target_platform}/%{version}/*
%dir %{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_ver}
%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_ver}/*
%{_libdir}/bfd-plugins/liblto_plugin.so
%{_datadir}/gcc-%{version}/python/libstdcxx/__init__.py
%{_datadir}/gcc-%{version}/python/libstdcxx/v6/__init__.py
%{_datadir}/gcc-%{version}/python/libstdcxx/v6/printers.py
%{_mandir}/man1/gcc.1.*
%{_mandir}/man1/gcov.1.*
%{_mandir}/man1/gcov-dump.1.*
@ -984,15 +986,12 @@ rm -f %{buildroot}%{_infodir}/dir
%{_mandir}/man7/gfdl.7.*
%{_mandir}/man7/gpl.7.*
%doc gcc/{README*,*ChangeLog*}
%exclude %{_libdir}/gcc/%{_target_platform}/%{version}/include/objc
%exclude %{_libdir}/gcc/%{_target_platform}/%{version}/include/ssp
%exclude %{_libdir}/gcc/%{_target_platform}/%{gcc_ver}/include/objc
%exclude %{_libdir}/gcc/%{_target_platform}/%{gcc_ver}/include/ssp
%files -n libgcc
%defattr(-,root,root)
%{_libdir}/libgcc*
%ifarch ppc
%{_libdir}/nof/libgcc*
%endif
%files cpp -f cpplib.lang
%defattr(-,root,root)
@ -1028,59 +1027,36 @@ rm -f %{buildroot}%{_infodir}/dir
%files -n libgomp
%defattr(-,root,root)
%{_libdir}/libgomp.so.*
%ifarch ppc
%{_libdir}/nof/libgomp.so.*
%endif
%files -n libgomp-devel
%defattr(-,root,root)
%{_libdir}/libgomp.a
%{_libdir}/libgomp.so
%{_libdir}/libgomp.spec
%ifarch ppc
%{_libdir}/nof/libgomp.a
%{_libdir}/nof/libgomp.so
%{_libdir}/nof/libgomp.spec
%endif
%{_datadir}/info/libgomp.info.gz
%files -n libobjc
%defattr(-,root,root)
%{_libdir}/libobjc.so.*
%ifarch ppc
%{_libdir}/nof/libobjc.so.*
%endif
%files -n libobjc-devel
%defattr(-,root,root)
%{_libdir}/libobjc.a
%{_libdir}/libobjc.so
%ifarch ppc
%{_libdir}/nof/libobjc.a
%{_libdir}/nof/libobjc.so
%endif
%dir %{_libdir}/gcc/%{_target_platform}/%{version}/include/objc
%{_libdir}/gcc/%{_target_platform}/%{version}/include/objc/*
%dir %{_libdir}/gcc/%{_target_platform}/%{gcc_ver}/include/objc
%{_libdir}/gcc/%{_target_platform}/%{gcc_ver}/include/objc/*
%files -n libssp
%defattr(-,root,root)
%{_libdir}/libssp.so.*
%ifarch ppc
%{_libdir}/nof/libssp.so.*
%endif
%files -n libssp-devel
%defattr(-,root,root)
%{_libdir}/libssp.a
%{_libdir}/libssp.so
%{_libdir}/libssp_nonshared.a
%ifarch ppc
%{_libdir}/nof/libssp.a
%{_libdir}/nof/libssp.so
%{_libdir}/nof/libssp_nonshared.a
%endif
%dir %{_libdir}/gcc/%{_target_platform}/%{version}/include/ssp
%{_libdir}/gcc/%{_target_platform}/%{version}/include/ssp/*
%dir %{_libdir}/gcc/%{_target_platform}/%{gcc_ver}/include/ssp
%{_libdir}/gcc/%{_target_platform}/%{gcc_ver}/include/ssp/*
%files -n libasan
%defattr(-,root,root)
@ -1152,16 +1128,16 @@ rm -f %{buildroot}%{_infodir}/dir
%{_bindir}/g++
%{_bindir}/%{_target_platform}-c++
%{_bindir}/%{_target_platform}-g++
%{_datadir}/gcc-%{version}/python/libstdcxx/v6/xmethods.py
%{_mandir}/man1/g++.1.*
#%doc gcc/cp/ChangeLog*
%files -n %{libstdcxx_name}
%defattr(-,root,root)
%{_libdir}/libstdc++.so.*
%ifarch ppc
%{_libdir}/nof/libstdc++.so.*
%endif
%dir %{_datadir}/gcc-%{gcc_ver}/python/libstdcxx
%{_datadir}/gcc-%{gcc_ver}/python/libstdcxx/__init__.py
%dir %{_datadir}/gcc-%{gcc_ver}/python/libstdcxx/v6
%{_datadir}/gcc-%{gcc_ver}/python/libstdcxx/v6/*.py
%files -n %{libstdcxx_name}-debug
%defattr(-,root,root)
@ -1174,11 +1150,6 @@ rm -f %{buildroot}%{_infodir}/dir
%{_libdir}/libstdc++.so
%{_libdir}/libsupc++.a
%{_libdir}/libstdc++fs.a
%ifarch ppc
%{_libdir}/nof/libstdc++.a
%{_libdir}/nof/libstdc++.so
%{_libdir}/nof/libsupc++.a
%endif
%dir %{_includedir}/c++
%{_includedir}/c++/*
#%doc libstdc++-v3/{ChangeLog*,README*,doc/html/}
@ -1215,18 +1186,11 @@ rm -f %{buildroot}%{_infodir}/dir
%{_libdir}/libgfortran.a
%{_libdir}/libgfortran.so
%{_libdir}/libgfortran.spec
%ifarch ppc
%{_libdir}/nof/libgfortran.a
%{_libdir}/nof/libgfortran.so
%endif
%{_mandir}/man1/gfortran.1.*
%files -n libgfortran
%defattr(-,root,root)
%{_libdir}/libgfortran.so.*
%ifarch ppc
%{_libdir}/nof/libgfortran.so.*
%endif
%endif
%ifnarch arm aarch64
@ -1258,8 +1222,8 @@ rm -f %{buildroot}%{_infodir}/dir
%files -n libgo
%defattr(-,root,root)
%{_libdir}/libgo.so.*
%dir %{_libdir}/go/%{version}/%{_target_platform}
%{_libdir}/go/%{version}/%{_target_platform}/*
%dir %{_libdir}/go/%{gcc_ver}/%{_target_platform}
%{_libdir}/go/%{gcc_ver}/%{_target_platform}/*
%files -n libgo-devel
%defattr(-,root,root)
@ -1269,6 +1233,32 @@ rm -f %{buildroot}%{_infodir}/dir
%{_libdir}/libgolibbegin.a
%endif
%files m2
%defattr(-,root,root)
%{_bindir}/gccrs
%{_bindir}/gm2
%{_bindir}/%{_target_platform}-gccrs
%{_bindir}/%{_target_platform}-gm2
%{_infodir}/m2.info.gz
%{_mandir}/man1/gm2.1*
%files -n libm2
%defattr(-,root,root)
%ifarch x86_64
%{_prefix}/lib32/libm2*.so.*
%endif
%{_libdir}/libm2*.so.*
%files -n libm2-devel
%defattr(-,root,root)
%ifarch x86_64
%{_prefix}/lib32/libm2*.a
%{_prefix}/lib32/libm2*.so
%endif
%{_libdir}/libm2*.a
%{_libdir}/libm2*.so
%{_libdir}/libm2*.a
%files doc
%defattr(-,root,root)
%{_infodir}/cpp.info.*
@ -1282,8 +1272,8 @@ rm -f %{buildroot}%{_infodir}/dir
#%doc gcc/doc/gfortran.pdf
%endif
%endif
%ifnarch aarch64
%{_infodir}/libquadmath.info.*
%if "%{disable_doc}" != "1"
%endif
#
@ -1293,8 +1283,8 @@ rm -f %{buildroot}%{_infodir}/dir
%files -n gcc-multilib
%defattr(-,root,root)
%{_sysconfdir}/ld.so.conf.d/lib32-gcc.conf
%dir %{_libdir}/gcc/%{_target_platform}/%{version}/32
%{_libdir}/gcc/%{_target_platform}/%{version}/32/*
%dir %{_libdir}/gcc/%{_target_platform}/%{gcc_ver}/32
%{_libdir}/gcc/%{_target_platform}/%{gcc_ver}/32/*
%{_prefix}/lib32/libgcc_s.so
%{_prefix}/lib32/libgcc_s.so.1
#
@ -1322,9 +1312,9 @@ rm -f %{buildroot}%{_infodir}/dir
# go
#
%dir %{_prefix}/lib32/go
%dir %{_prefix}/lib32/go/%{version}
%dir %{_prefix}/lib32/go/%{version}/%{_target_platform}
%{_prefix}/lib32/go/%{version}/%{_target_platform}/*
%dir %{_prefix}/lib32/go/%{gcc_ver}
%dir %{_prefix}/lib32/go/%{gcc_ver}/%{_target_platform}
%{_prefix}/lib32/go/%{gcc_ver}/%{_target_platform}/*
%{_prefix}/lib32/libgo.a
%{_prefix}/lib32/libgo.so
%{_prefix}/lib32/libgo.so.*
@ -1382,21 +1372,29 @@ rm -f %{buildroot}%{_infodir}/dir
%{_prefix}/%{_target_platform}/lib/*
%endif
%endif
%if "%{target_cpu}" == "ppc"
%{_prefix}/%{_target_platform}/%{_lib}/nof/libgfortran.a
%{_prefix}/%{_target_platform}/%{_lib}/nof/libobjc.a
%endif
%endif
%{_libdir}/gcc/%{_target_platform}/%{version}/*
%{_libdir}/gcc/%{_target_platform}/%{gcc_ver}/*
%if "%{target_cpu}" == "x86_64"
%{_libexecdir}/gcc/%{_target_platform}/%{version}/*
%{_libexecdir}/gcc/%{_target_platform}/%{gcc_ver}/*
%else
%{_prefix}/libexec/gcc/%{_target_platform}/%{version}/*
%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_ver}/*
%endif
%{_mandir}/man1/%{_target_platform}-*
%endif
%changelog
* Sat Oct 05 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 14.2.1+20240909git.3951efed-2mamba
- enable more languages: m2, rust
* Mon Sep 09 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 14.2.1+20240909git.3951efed-1mamba
- update to 14.2.1+20240909git.3951efed
* Tue Aug 13 2024 Automatic Build System <autodist@openmamba.org> 14.2.0-1mamba
- automatic version update by autodist
* Mon Jun 17 2024 Automatic Build System <autodist@openmamba.org> 14.1.1.20240615git.a4f8e9e-1mamba
- update to 14.1.1.20240615git.a4f8e9e
* Thu May 09 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 14.1.0-1mamba
- update to 14.1.0