Index: SPECS/gcc41.spec =================================================================== --- SPECS.orig/gcc41.spec +++ SPECS/gcc41.spec @@ -7,10 +7,10 @@ %else %define build_ada 0 %endif -%define build_fortran 1 -%define build_java 1 -%define build_objc 1 -%define run_tests 1 +%define build_fortran 0 +%define build_java 0 +%define build_objc 0 +%define run_tests 0 %ifarch s390x %define multilib_32_arch s390 %endif @@ -28,7 +28,7 @@ Name: gcc %define gcc_version 4.1.1 Version: 4.1.2 %define gcc_release 13 -Release: %{gcc_release}%{?dist} +Release: %{gcc_release}%{?dist}.fa1 %if "%{version}" != "%{gcc_version}" %define gcc_provides 4.1.1-52%{?dist} %endif @@ -46,7 +46,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version # Need binutils which support .weakref >= 2.16.91.0.3-1 # Need binutils which support --hash-style=gnu >= 2.17.50.0.2-7 # Need binutils which support mffgpr and mftgpr >= 2.17.50.0.2-8 -BuildRequires: binutils >= 2.17.50.0.2-8 +# Need binutils which support 2-argument .movsp >= 2.17.50.0.5 +BuildRequires: binutils >= 2.17.50.0.5 BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo, sharutils %if %{build_java} BuildRequires: /usr/bin/fastjar @@ -81,7 +82,8 @@ Requires: cpp = %{version}-%{release} # Need binutils that support .weakref # Need binutils that supports --hash-style=gnu # Need binutils that support mffgpr/mftgpr -Requires: binutils >= 2.17.50.0.2-8 +# Need binutils that support 2-argument .movsp >= 2.17.50.0.5 +Requires: binutils >= 2.17.50.0.5 # Make sure gdb will understand DW_FORM_strp Conflicts: gdb < 5.1-2 Requires: glibc-devel >= 2.2.90-12 @@ -141,13 +143,21 @@ Patch23: gcc41-pr28690.patch Patch24: gcc41-pr32468.patch Patch25: gcc41-pr32468-2.patch Patch26: gcc41-rh245424.patch +Patch27: gcc41-arm-config-guess-fix.patch +Patch28: gcc41-armeabi-floatundi-redefine.diff +Patch29: gcc41-pr28516.patch +Patch30: gcc41-unbreak-armv4t.patch Patch100: gcc41-pr29703.patch Patch101: gcc41-libjava-anonverscript.patch Patch102: gcc41-ppc64-libffi-unwind.patch Patch103: gcc41-pr30110.patch +# On ARM EABI systems, we do want -gnueabi to be part of the +# target triple. +%ifnarch %{arm} %define _gnu %{nil} +%endif %ifarch sparc %define gcc_target_platform sparc64-%{_vendor}-%{_target_os} %endif @@ -506,6 +516,12 @@ which are required to run programs compi %patch24 -p0 -b .pr32468~ %patch25 -p0 -b .pr32468-2~ %patch26 -p0 -b .rh245424~ +%patch27 -p0 -b .armconfig~ +%patch28 -p0 -b .armsymbol~ +%patch29 -p0 -b .pr28516~ +%ifarch armv4tl +%patch30 -p0 -b .armv4t~ +%endif %patch100 -p0 -b .pr29703~ %patch101 -p0 -b .libjava-anonverscript~ @@ -1047,8 +1063,10 @@ EOF chmod 755 $RPM_BUILD_ROOT%{_prefix}/bin/c?9 mkdir -p $RPM_BUILD_ROOT%{_prefix}/sbin +%ifnarch %{arm} gcc -static -Os %{SOURCE1} -o $RPM_BUILD_ROOT%{_prefix}/sbin/libgcc_post_upgrade strip $RPM_BUILD_ROOT%{_prefix}/sbin/libgcc_post_upgrade +%endif %if "%{version}" != "%{gcc_version}" mv -f $RPM_BUILD_ROOT%{_prefix}/libexec/gcc/%{gcc_target_platform}/{%{version},%{gcc_version}} ln -sf %{gcc_version} $RPM_BUILD_ROOT%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{version} @@ -1166,10 +1184,12 @@ if [ $1 = 0 ]; then --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || : fi +%ifnarch %{arm} # Because glibc Prereq's libgcc and /sbin/ldconfig # comes from glibc, it might not exist yet when # libgcc is installed %post -n libgcc -p %{_prefix}/sbin/libgcc_post_upgrade +%endif %post -n libstdc++ -p /sbin/ldconfig @@ -1328,7 +1348,9 @@ fi %defattr(-,root,root) /%{_lib}/libgcc_s-%{version}-%{DATE}.so.1 /%{_lib}/libgcc_s.so.1 +%ifnarch %{arm} %{_prefix}/sbin/libgcc_post_upgrade +%endif %doc gcc/COPYING.LIB %files c++