#
# TODO:
-# - http://gcc.gnu.org/PR11203
-# - http://gcc.gnu.org/PR17384
-# - http://gcc.gnu.org/PR17567
+# - http://gcc.gnu.org/PR11203 (inline-asm)
+# - http://gcc.gnu.org/PR14776 (target / wrong SSE-code)
+# - http://gcc.gnu.org/PR18378 (regression)
#
# Conditional build:
%bcond_without ada # build without ADA support
%bcond_without java # build without Java support
-%bcond_without objc # build without objc support
+%bcond_without objc # build without ObjC support
%bcond_with ssp # build with stack-smashing protector support
#
-%define _snap 20041008
-#
Summary: GNU Compiler Collection: the C compiler and shared files
Summary(es): Colección de compiladores GNU: el compilador C y ficheros compartidos
Summary(pl): Kolekcja kompilatorów GNU: kompilator C i pliki wspó³dzielone
Summary(pt_BR): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
Name: gcc
Version: 3.4.3
-Release: 0.%{_snap}.1
-#Release: 1
+Release: 4.1
Epoch: 5
License: GPL
Group: Development/Languages
-#Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
-#Source0: ftp://gcc.gnu.org/pub/gcc/prerelease-%{version}-%{_snap}/gcc-%{version}-%{_snap}.tar.bz2
-Source0: ftp://gcc.gnu.org/pub/gcc/snapshots/3.4-%{_snap}/gcc-3.4-%{_snap}.tar.bz2
-# Source0-md5: 9e5a58db111be1b31227b5a1139a740b
+Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
+# Source0-md5: e744b30c834360fccac41eb7269a3011
Source1: http://ep09.pld-linux.org/~djrzulf/gcc33/%{name}-non-english-man-pages.tar.bz2
# Source1-md5: 4736f3422ddfb808423b745629acc321
Source2: http://www.trl.ibm.com/projects/security/ssp/gcc2_95_3/gcc_stack_protect.m4.gz
# Source2-md5: 07d93ad5fc07ca44cdaba46c658820de
+Source3: gcc_visibility.m4
Patch0: %{name}-info.patch
Patch1: %{name}-nolocalefiles.patch
Patch2: %{name}-ada-link-new-libgnat.patch
Patch5: %{name}-ada-link.patch
Patch6: %{name}-pr15666.patch
Patch7: %{name}-pr16276.patch
-Patch8: %{name}-ada-bootstrap.patch
+Patch8: %{name}-pr18185.patch
#
# -fvisibility={default|internal|hidden|protected}
#
#
Patch9: %{name}-visibility.patch
#
+Patch20: %{name}-ada-bootstrap.patch
URL: http://gcc.gnu.org/
BuildRequires: autoconf
BuildRequires: automake
-BuildRequires: binutils >= 2.15.91.0.2
+BuildRequires: binutils >= 2:2.15.91.0.2
BuildRequires: bison
BuildRequires: fileutils >= 4.0.41
BuildRequires: flex
%endif
BuildRequires: gettext-devel
BuildRequires: glibc-devel >= 2.2.5-20
-BuildRequires: gzip
BuildRequires: perl-devel
BuildRequires: texinfo >= 4.1
BuildRequires: zlib-devel
-Requires: binutils >= 2.15.91.0.2
+Requires: binutils >= 2:2.15.91.0.2
+Requires: gcc-dirs >= 1.0-3
Requires: libgcc = %{epoch}:%{version}-%{release}
Provides: cpp = %{epoch}:%{version}-%{release}
%{?with_ada:Provides: gcc(ada)}
%define _slibdir /%{_lib}
%ifarch sparc64
-%define _slibdir64 /lib64
+%define _slibdir32 /lib
%define _libdir /usr/lib
%define rpmcflags -O2 -mtune=ultrasparc
%endif
+%ifarch amd64
+%define _slibdir32 /lib
+%define _libdir /usr/lib
+%endif
%description
A compiler aimed at integrating all the optimizations and features
compiler you will need to install the appropriate subpackage.
%description -l es
-Un compilador destinado a la integración de todas las optimalizaciones
-y características necesarias para un entorno de desarrollo eficaz y
+Un compilador que intenta integrar todas las optimalizaciones y
+características necesarias para un entorno de desarrollo eficaz y
estable.
Este paquete contiene el compilador de C y unos ficheros compartidos
-por varias parted de la colección de compiladores GNU (GCC). Para usar
+por varias partes de la colección de compiladores GNU (GCC). Para usar
otro compilador de GCC será necesario que instale el subpaquete
adecuado.
Group: Development/Libraries
Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
Requires: libstdc++ = %{epoch}:%{version}-%{release}
+Requires: glibc-devel
Obsoletes: libg++-devel
Obsoletes: libstdc++3-devel
Adzie.
%prep
-# prerelease
-#setup -q -n %{name}-%{version}-%{_snap} -a1
-# snapshot
-%setup -q -n %{name}-3.4-%{_snap} -a1
-# final
-#setup -q -n %{name}-%{version} -a1
+%setup -q -a1
%patch0 -p1
%patch1 -p1
%{?with_ssp:%patch4 -p1}
%patch5 -p1
%patch6 -p0
-%patch7 -p0
+#%patch7 -p0
+%patch8 -p1
+%patch9 -p1
+
%ifarch alpha ia64
# needed for bootstrap using gcc 3.3.x on alpha
# and even using the same 3.4.x(!) (but not Debian's 3.3.x) on ia64
-%patch8 -p2
+%patch20 -p2
%endif
-%patch9 -p1
# because we distribute modified version of gcc...
perl -pi -e 's/(version.*)";/$1 %{?with_ssp:SSP }(PLD Linux)";/' gcc/version.c
rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
+CC=%__cc
+%ifarch sparc64
+cat > gcc64 <<"EOF"
+#!/bin/sh
+exec /usr/bin/gcc -m64 "$@"
+EOF
+chmod +x gcc64
+CC=`pwd`/gcc64
+%endif
+
+%ifarch amd64
+cat > gcc64 <<"EOF"
+#!/bin/sh
+exec /usr/bin/gcc -m64 "$@"
+EOF
+chmod +x gcc64
+CC=`pwd`/gcc64
+%endif
+
+
CFLAGS="%{rpmcflags}" \
CXXFLAGS="%{rpmcflags}" \
+CC="$CC" \
TEXCONFIG=false ../configure \
--prefix=%{_prefix} \
--libdir=%{_libdir} \
- --libexecdir=%{_libexecdir} \
+ --libexecdir=%{_libdir} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--enable-shared \
done
%endif
-# snapshot doesn't contain these files...
-[ -r "NEWS" ] || touch NEWS
-[ -r "gcc/f/BUGS" ] || touch gcc/f/BUGS
-[ -r "gcc/f/NEWS" ] || touch gcc/f/NEWS
-
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
# but we don't want anything more from install-tools
rm -rf $gccdir/install-tools
+%ifarch sparc64
+ln -sf %{_slibdir}*/libgcc_s.so.1 $gccdir/libgcc_s.so
+ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/libgcc_s_32.so
+%endif
+
+%ifarch amd64
+ln -sf %{_slibdir}*/libgcc_s.so.1 $gccdir/libgcc_s.so
+ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/libgcc_s_32.so
+%endif
+
%find_lang %{name}
%find_lang libstdc\+\+
%if %{with ssp}
zcat %{SOURCE2} > $RPM_BUILD_ROOT%{_aclocaldir}/gcc_stack_protect.m4
%endif
+install %{SOURCE3} $RPM_BUILD_ROOT%{_aclocaldir}/gcc_visibility.m4
%clean
rm -rf $RPM_BUILD_ROOT
%defattr(644,root,root,755)
%doc ChangeLog.general MAINTAINERS NEWS bugs.html faq.html
%doc gcc/{ChangeLog,ONEWS,README.Portability}
-%dir %{_libdir}/gcc
-%dir %{_libdir}/gcc/*
%dir %{_libdir}/gcc/*/*
%dir %{_libdir}/gcc/*/*/include
%{?with_ssp:%{_aclocaldir}/gcc_stack_protect.m4}
+%{_aclocaldir}/gcc_visibility.m4
%attr(755,root,root) %{_bindir}/*-gcc*
%attr(755,root,root) %{_bindir}/gcc
%attr(755,root,root) /lib/cpp
%attr(755,root,root) %{_slibdir}*/lib*.so
+%ifarch ia64
+%{_slibdir}*/libunwind.a
+%endif
%{_libdir}/gcc/*/*/libgcov.a
%{_libdir}/gcc/*/*/libgcc.a
%{_libdir}/gcc/*/*/libgcc_eh.a
%ifarch sparc64
%{_libdir}/gcc/*/*/*/libgcc.a
%{_libdir}/gcc/*/*/*/libgcc_eh.a
+%{_libdir}/gcc/*/*/*/libgcov.a
+%{_libdir}/gcc/*/*/libgcc*so
%attr(644,root,root) %{_libdir}*/gcc/*/*/*/crt*.o
%endif
%ifarch ppc
%files -n libgcc
%defattr(644,root,root,755)
%attr(755,root,root) %{_slibdir}*/lib*.so.*
+%ifarch sparc64
+%attr(755,root,root) %{_slibdir32}/lib*.so.*
+%endif
%files c++
%defattr(644,root,root,755)