Compare commits

...

5 Commits

3 changed files with 113 additions and 42 deletions

View File

@ -0,0 +1,24 @@
diff -ru gcc-10.1.0/libstdc++-v3/include/bits/atomic_futex.h gcc-10.1.0.patched/libstdc++-v3/include/bits/atomic_futex.h
--- gcc-10.1.0/libstdc++-v3/include/bits/atomic_futex.h 2020-05-07 12:50:02.000000000 +0200
+++ gcc-10.1.0.patched/libstdc++-v3/include/bits/atomic_futex.h 2020-06-08 18:18:38.544259479 +0200
@@ -49,7 +49,7 @@
_GLIBCXX_BEGIN_NAMESPACE_VERSION
#ifdef _GLIBCXX_HAS_GTHREADS
-#if defined(_GLIBCXX_HAVE_LINUX_FUTEX) && ATOMIC_INT_LOCK_FREE > 1
+#if defined(_GLIBCXX_HAVE_LINUX_FUTEX)
struct __atomic_futex_unsigned_base
{
// Returns false iff a timeout occurred.
diff -ru gcc-10.1.0/libstdc++-v3/src/c++11/futex.cc gcc-10.1.0.patched/libstdc++-v3/src/c++11/futex.cc
--- gcc-10.1.0/libstdc++-v3/src/c++11/futex.cc 2020-05-07 12:50:02.000000000 +0200
+++ gcc-10.1.0.patched/libstdc++-v3/src/c++11/futex.cc 2020-06-08 18:19:20.413501894 +0200
@@ -24,7 +24,7 @@
#include <bits/atomic_futex.h>
#ifdef _GLIBCXX_HAS_GTHREADS
-#if defined(_GLIBCXX_HAVE_LINUX_FUTEX) && ATOMIC_INT_LOCK_FREE > 1
+#if defined(_GLIBCXX_HAVE_LINUX_FUTEX)
#include <chrono>
#include <climits>
#include <syscall.h>

View File

@ -1,5 +0,0 @@
#!/bin/sh
gij --classpath /usr/share/java/ecj.jar \
org.eclipse.jdt.internal.compiler.batch.GCCMain \
${1+"$@"}

126
gcc.spec
View File

@ -39,20 +39,19 @@
%define majver %(echo %version | cut -d. -f 1-2) %define majver %(echo %version | cut -d. -f 1-2)
Name: gcc Name: gcc
Version: 10.1.0 Version: 11.3.0
Release: 1mamba Release: 1mamba
Summary: GNU Compiler Collection (C, C++, Fortran, Go, Ada) Summary: GNU Compiler Collection (C, C++, Fortran, Go, Ada)
Group: Applications/Development Group: Applications/Development
Vendor: openmamba Vendor: openmamba
Distribution: openmamba Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it> Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: http://gcc.gnu.org/ URL: https://gcc.gnu.org/
Source: ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}%{?gcc_extraver}.tar.xz Source: https://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}%{?gcc_extraver}.tar.xz
Source1: ftp://sourceware.org/pub/java/ecj-latest.jar Source1: ftp://sourceware.org/pub/java/ecj-latest.jar
Source2: gcc-4.3.2-ecj1-wrapper
Patch2: gcc4-java-nomulti.patch
Patch0: %{name}-4.5.0-no_fixincludes.patch Patch0: %{name}-4.5.0-no_fixincludes.patch
Patch1: %{name}-4.0.2-zextract.patch Patch1: %{name}-4.0.2-zextract.patch
Patch2: gcc4-java-nomulti.patch
Patch3: %{name}-4.0.2-BufferStrategy.patch Patch3: %{name}-4.0.2-BufferStrategy.patch
Patch4: %{name}-4.0.2-failure_with_compound_literals.patch Patch4: %{name}-4.0.2-failure_with_compound_literals.patch
Patch5: %{name}-4.1.1-arm-t-linux.patch Patch5: %{name}-4.1.1-arm-t-linux.patch
@ -67,6 +66,7 @@ Patch14: gcc-4.8.0-libffi-texinfo.patch
Patch15: gcc-4.9.0-upstream-fixes-1.patch Patch15: gcc-4.9.0-upstream-fixes-1.patch
Patch16: gcc-4.9.2-arm-lra-bootstrap.patch Patch16: gcc-4.9.2-arm-lra-bootstrap.patch
Patch19: gcc-7.1.0-cross-ftbfs-ucontet_t.patch Patch19: gcc-7.1.0-cross-ftbfs-ucontet_t.patch
Patch20: gcc-10.1.0-arm-provide-futex-atomic-functions.patch
License: GPL License: GPL
## AUTOBUILDREQ-BEGIN ## AUTOBUILDREQ-BEGIN
## AUTOBUILDREQ-END ## AUTOBUILDREQ-END
@ -105,26 +105,18 @@ BuildRequires: glibc-devel >= 2.5
BuildRequires: tetex >= 3.0 BuildRequires: tetex >= 3.0
BuildRequires: libgtk2-devel >= 2.8.17 BuildRequires: libgtk2-devel >= 2.8.17
BuildRequires: libalsa-devel >= 1.0.11 BuildRequires: libalsa-devel >= 1.0.11
%if "%{?disable_jack}" != "1"
BuildRequires: dssi-devel >= 0.9
BuildRequires: libjack-devel >= 0.101.1
%endif
%if "%{?disable_gjdoc}" != "1"
BuildRequires: antlr
%endif
BuildRequires: libcairo-devel >= 1.4.10 BuildRequires: libcairo-devel >= 1.4.10
BuildRequires: libxcb-util-devel >= 0.2 BuildRequires: libxcb-util-devel >= 0.2
BuildRequires: libisl-devel >= 0.14 BuildRequires: libisl-devel >= 0.14
#% endif #% endif
#% else #% else
# BuildRequires: cross-%{target_cpu}-glibc%{?glibc_require_append} >= 2.5 #BuildRequires: cross-%{target_cpu}-glibc%{?glibc_require_append} >= 2.5
%endif %endif
Requires(post):%{__install_info} Requires(post):%{__install_info}
Requires: %{name}-cpp = %{version}-%{release} Requires: %{name}-cpp = %{version}-%{release}
Requires: libgcc >= %{version}-%{release} Requires: libgcc >= %{version}-%{release}
Requires: binutils >= 2.16.1 Requires: binutils >= 2.16.1
BuildRoot: %{_tmppath}/%{name}-%{version}-root
%description %description
A compiler aimed at integrating all the optimizations and features necessary for a high-performance and stable development environment. A compiler aimed at integrating all the optimizations and features necessary for a high-performance and stable development environment.
@ -314,7 +306,8 @@ Summary: Fortran 95 support for gcc
Group: Applications/Development Group: Applications/Development
Requires: libgfortran = %{version}-%{release} Requires: libgfortran = %{version}-%{release}
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Obsoletes: gcc-g77, gcc-gfortran Obsoletes: gcc-g77 < 10.3.0
Obsoletes: gcc-gfortran < 10.3.0
%description fortran %description fortran
This package adds support for compiling Fortran 95 programs with the GNU compiler. This package adds support for compiling Fortran 95 programs with the GNU compiler.
@ -481,6 +474,21 @@ Requires: libasan = %{version}-%{release}
%description -n libasan-devel %description -n libasan-devel
This package contains static libraries and headers to be used for development. This package contains static libraries and headers to be used for development.
%package -n libhwasan
Summary: GCC HW address sanitizer runtime library
Group: System/Libraries
%description -n libhwasan
This package contains the GCC HW addess sanitizer runtime library.
%package -n libhwasan-devel
Summary: libhwasan development libraries and headers
Group: Development/Libraries
Requires: libhwasan = %{version}-%{release}
%description -n libhwasan-devel
This package contains static libraries and headers to be used for development.
%package -n liblsan %package -n liblsan
Summary: GCC Leak Sanitizer runtime library Summary: GCC Leak Sanitizer runtime library
Group: System/Libraries Group: System/Libraries
@ -572,7 +580,7 @@ Summary: Cross Platform gcc for %{_target_platform}
Group: Development/Tools Group: Development/Tools
Requires: cross-%{_target_platform}-binutils Requires: cross-%{_target_platform}-binutils
%if "%{?stage1}" != "1" %if "%{?stage1}" != "1"
Obsoletes: cross-%{_target_platform}-%{name}-stage1 Obsoletes: cross-%{_target_platform}-%{name}-stage1 <= %{version}
%endif %endif
AutoReqProv: no AutoReqProv: no
@ -600,10 +608,21 @@ Cross Platform gcc for %{_target_platform}.
%patch11 -p1 %patch11 -p1
%ifarch arm %ifarch arm
# workaround for gcc-go %patch20 -p1
cp libgo/go/internal/syscall/unix/{getrandom_linux_arm.go,dummy.go} ## 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 %endif
# Do not run fixincludes
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
%build %build
#:<< ____EOF #:<< ____EOF
rm -rf ../%{name}-build-%{_target_platform} rm -rf ../%{name}-build-%{_target_platform}
@ -659,6 +678,13 @@ case %{_target_platform} in
ADDITIONAL_OPTS="--with-slibdir=$slibdir --enable-multilib" ADDITIONAL_OPTS="--with-slibdir=$slibdir --enable-multilib"
%endif %endif
;; ;;
aarch64-*)
%if "%{_target_platform}" != "%{_host}"
ADDITIONAL_OPTS="--with-slibdir=/usr/%{_target_platform}/lib64"
%else
ADDITIONAL_OPTS="--with-slibdir=$slibdir"
%endif
;;
*) *)
echo "Error: target not supported." echo "Error: target not supported."
exit 1 exit 1
@ -729,9 +755,6 @@ CROSS_SYSTEM_HEADER_DIR=/usr/%{_target_platform}/include \
--x-libraries=%{_libdir} \ --x-libraries=%{_libdir} \
--with-system-zlib \ --with-system-zlib \
--with-isl \ --with-isl \
%if "%{?disable_jack}" == "1"
--disable-dssi \
%endif
%if "%{_target_platform}" != "%{_host}" %if "%{_target_platform}" != "%{_host}"
--enable-symvers=gnu \ --enable-symvers=gnu \
--disable-libsanitizer \ --disable-libsanitizer \
@ -758,8 +781,9 @@ CROSS_SYSTEM_HEADER_DIR=/usr/%{_target_platform}/include \
%endif %endif
%else %else
make %{?_smp_mflags} CFLAGS='-O -I/usr/include/freetype2' LIBCFLAGS='-g -O2' \ make %{?_smp_mflags} CFLAGS="%{optflags}" CXXFLAGS="%{optflags}"
LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap # CFLAGS='-O -I/usr/include/freetype2' LIBCFLAGS='-g -O2' \
# LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap
%endif %endif
%if "%{target_cpu}" != "avr" %if "%{target_cpu}" != "avr"
@ -772,10 +796,10 @@ cd ../..
%endif %endif
%endif %endif
%endif # stage1 = 1 %endif
%install %install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" [ "%{buildroot}" != "/" ] && rm -rf "%{buildroot}"
cd ../%{name}-build-%{_target_platform} cd ../%{name}-build-%{_target_platform}
make DESTDIR=%{buildroot} install make DESTDIR=%{buildroot} install
@ -843,10 +867,11 @@ mv %{buildroot}%{_prefix}/lib32/libstdc++.so.*-gdb.py %{buildroot}%{_datadir}/gd
#done) #done)
# fix permissions # fix permissions
#chmod 755 %{buildroot}/%{_lib}/libgcc_s.so.1 chmod 755 %{buildroot}/%{_libdir}/libgcc_s.so.1
#cp gcc/doc/*.pdf ../gcc-%{version}%{?gcc_extraver}/gcc/doc/ #cp gcc/doc/*.pdf ../gcc-%{version}%{?gcc_extraver}/gcc/doc/
%else # target_platform != host %else
# target_platform != host
rm -rf %{buildroot}%{_infodir}/* rm -rf %{buildroot}%{_infodir}/*
rm -rf %{buildroot}%{_mandir}/man7/{fsf-funding.*,gfdl.*,gpl.*} rm -rf %{buildroot}%{_mandir}/man7/{fsf-funding.*,gfdl.*,gpl.*}
rm -rf %{buildroot}%{_datadir}/locale/* rm -rf %{buildroot}%{_datadir}/locale/*
@ -866,7 +891,7 @@ rm -f %{buildroot}%{_infodir}/libffi.info*
#%endif #%endif
%clean %clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" [ "%{buildroot}" != "/" ] && rm -rf "%{buildroot}"
%post -n libgcc -p /sbin/ldconfig %post -n libgcc -p /sbin/ldconfig
%postun -n libgcc -p /sbin/ldconfig %postun -n libgcc -p /sbin/ldconfig
@ -936,7 +961,7 @@ rm -f %{buildroot}%{_infodir}/libffi.info*
%{_bindir}/%{_target_platform}-gcov %{_bindir}/%{_target_platform}-gcov
%dir %{_libdir}/gcc %dir %{_libdir}/gcc
%{_libdir}/gcc/* %{_libdir}/gcc/*
%ifarch x86_64 %ifarch x86_64 aarch64
%exclude %{_libdir}/gcc/%{_target_platform}/%{version}/32/* %exclude %{_libdir}/gcc/%{_target_platform}/%{version}/32/*
%endif %endif
%dir %{_prefix}/libexec/gcc/%{_target_platform}/%{version} %dir %{_prefix}/libexec/gcc/%{_target_platform}/%{version}
@ -1074,7 +1099,7 @@ rm -f %{buildroot}%{_infodir}/libffi.info*
%files -n libasan %files -n libasan
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/libasan.so.* %{_libdir}/libasan.so.*
%ifarch x86_64 %ifarch x86_64 aarch64
%{_libdir}/libtsan.so.* %{_libdir}/libtsan.so.*
%endif %endif
@ -1084,14 +1109,26 @@ rm -f %{buildroot}%{_infodir}/libffi.info*
%{_libdir}/libasan.la %{_libdir}/libasan.la
%{_libdir}/libasan.so %{_libdir}/libasan.so
%{_libdir}/libasan_preinit.o %{_libdir}/libasan_preinit.o
%ifarch x86_64 %ifarch x86_64 aarch64
%{_libdir}/libtsan.a %{_libdir}/libtsan.a
%{_libdir}/libtsan.la %{_libdir}/libtsan.la
%{_libdir}/libtsan.so %{_libdir}/libtsan.so
%{_libdir}/libtsan_preinit.o %{_libdir}/libtsan_preinit.o
%endif %endif
%ifarch x86_64 %ifarch aarch64
%files -n libhwasan
%defattr(-,root,root)
%{_libdir}/libhwasan.so.*
%files -n libhwasan-devel
%defattr(-,root,root)
%{_libdir}/libhwasan.a
%{_libdir}/libhwasan.la
%{_libdir}/libhwasan.so
%endif
%ifarch x86_64 aarch64
%files -n liblsan %files -n liblsan
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/liblsan.so.* %{_libdir}/liblsan.so.*
@ -1202,7 +1239,7 @@ rm -f %{buildroot}%{_infodir}/libffi.info*
%dir %{_includedir}/c++ %dir %{_includedir}/c++
%{_includedir}/c++/* %{_includedir}/c++/*
#%doc libstdc++-v3/{ChangeLog*,README*,doc/html/} #%doc libstdc++-v3/{ChangeLog*,README*,doc/html/}
%endif "%{disable_cpp} %endif
# #
# D language # D language
@ -1252,9 +1289,9 @@ rm -f %{buildroot}%{_infodir}/libffi.info*
%ifarch ppc %ifarch ppc
%{_libdir}/nof/libgfortran.so.* %{_libdir}/nof/libgfortran.so.*
%endif %endif
%endif # disable_fortran != 1 %endif
%ifnarch arm %ifnarch arm aarch64
%files -n libquadmath %files -n libquadmath
%defattr(-,root,root) %defattr(-,root,root)
%{_libdir}/libquadmath.so.* %{_libdir}/libquadmath.so.*
@ -1317,7 +1354,7 @@ rm -f %{buildroot}%{_infodir}/libffi.info*
#%doc gcc/doc/gccinstall.pdf #%doc gcc/doc/gccinstall.pdf
#%doc gcc/doc/gcc.pdf #%doc gcc/doc/gcc.pdf
#%doc gcc/doc/gccint.pdf #%doc gcc/doc/gccint.pdf
%endif # "%{disable_doc}" != "1" %endif
# #
# Multilib # Multilib
@ -1463,9 +1500,24 @@ rm -f %{buildroot}%{_infodir}/libffi.info*
%{_prefix}/libexec/gcc/%{_target_platform}/%{version}/* %{_prefix}/libexec/gcc/%{_target_platform}/%{version}/*
%endif %endif
%{_mandir}/man1/%{_target_platform}-* %{_mandir}/man1/%{_target_platform}-*
%endif # cross-platform %endif
%changelog %changelog
* Thu Apr 28 2022 Silvan Calarco <silvan.calarco@mambasoft.it> 11.3.0-1mamba
- update to 11.3.0
* Wed Jul 28 2021 Automatic Build System <autodist@mambasoft.it> 11.2.0-1mamba
- automatic version update by autodist
* Thu Apr 29 2021 Automatic Build System <autodist@mambasoft.it> 11.1.0-1mamba
- automatic version update by autodist
* Fri Jul 24 2020 Automatic Build System <autodist@mambasoft.it> 10.2.0-1mamba
- automatic version update by autodist
* Mon Jun 08 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 10.1.0-2mamba
- arm: added patch to provide futex atomic functions _M_futex_notify_all and _M_futex_wait_until (armv7)
* Mon May 11 2020 Automatic Build System <autodist@mambasoft.it> 10.1.0-1mamba * Mon May 11 2020 Automatic Build System <autodist@mambasoft.it> 10.1.0-1mamba
- automatic version update by autodist - automatic version update by autodist