%bcond_without java # build without Java support
%bcond_without objc # build without objc support
%bcond_with bootstrap # don't BR gcc(ada) (temporary for Ac upgrade bootstrap)
-%bcond_with pp # build with ProPolice
#
%define DASHED_SNAP %{nil}
%define SNAP %(echo %{DASHED_SNAP} | sed -e "s#-##g")
-%define GCC_VERSION 3.3.3
+%define GCC_VERSION 3.3.5
%define KSI_VERSION 1.1.0.1567
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(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: %{GCC_VERSION}
-Release: 0.1
+Release: 1
Epoch: 5
License: GPL
Group: Development/Languages
Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{GCC_VERSION}/%{name}-%{GCC_VERSION}.tar.bz2
-# Source0-md5: 3c6cfd9fcd180481063b4058cf6faff2
+# Source0-md5: 70ee088b498741bb08c779f9617df3a5
+# Source0-size: 23833856
Source1: ftp://ftp.pld-linux.org/people/malekith/ksi/ksi-%{KSI_VERSION}.tar.gz
# Source1-md5: 66f07491b44f06928fd95b0e65bb8cd3
Source2: http://ep09.pld-linux.org/~djrzulf/gcc33/%{name}-non-english-man-pages.tar.bz2
Patch1: %{name}-paths.patch
Patch2: %{name}-nolocalefiles.patch
Patch3: %{name}-ada-link-new-libgnat.patch
+Patch4: %{name}-nodebug.patch
+Patch5: %{name}-cse-find_best_addr.patch
+Patch6: %{name}-alpha-regno-mode.patch
+Patch7: %{name}-amd64-thunk.patch
# -- stolen patches from RH --
Patch10: gcc32-ada-link.patch
Patch11: gcc32-boehm-gc-libs.patch
Patch22: gcc32-java-no-rpath.patch
Patch23: gcc32-test-rh65771.patch
Patch24: gcc32-test-rotate.patch
-Patch25: %{name}-3.3.1-propolice.patch
BuildRequires: autoconf
BuildRequires: automake
-BuildRequires: binutils >= 2.14
+BuildRequires: binutils >= 2:2.15.90.0.3
BuildRequires: bison
BuildRequires: fileutils >= 4.0.41
%{?with_ada:%{!?with_bootstrap:BuildRequires: gcc(ada)}}
BuildRequires: perl-devel
BuildRequires: texinfo >= 4.1
BuildRequires: zlib-devel
-Requires: binutils >= 2.14
-Requires: cpp = %{epoch}:%{GCC_VERSION}
-Requires: libgcc = %{epoch}:%{GCC_VERSION}
+Requires: binutils >= 2:2.15.90.0.3
+Requires: cpp = %{epoch}:%{GCC_VERSION}-%{release}
+Requires: gcc-dirs
+Requires: libgcc = %{epoch}:%{GCC_VERSION}-%{release}
%{?with_ada:Provides: gcc(ada)}
Conflicts: glibc-devel < 2.2.5-20
URL: http://gcc.gnu.org/
%description -l pl
Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
-wyprodukowania szybkiego i stablinego kodu wynikowego.
+wyprodukowania szybkiego i stabilnego kodu wynikowego.
Ten pakiet zawiera kompilator C i pliki wspó³dzielone przez ró¿ne
czê¶ci kolekcji kompilatorów GNU (GCC). ¯eby u¿ywaæ innego kompilatora
Summary(pl): Obs³uga C++ dla gcc
Summary(pt_BR): Suporte C++ para o gcc
Group: Development/Languages
+Requires: %{name} = %{epoch}:%{GCC_VERSION}-%{release}
Obsoletes: egcc-c++
Obsoletes: egcs-c++
-Requires: gcc = %{epoch}:%{GCC_VERSION}
%description c++
This package adds C++ support to the GNU Compiler Collection. It
Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
Summary(tr): gcc için Objective C desteði
Group: Development/Languages
+Requires: %{name} = %{epoch}:%{GCC_VERSION}-%{release}
+Requires: libobjc = %{epoch}:%{GCC_VERSION}-%{release}
Obsoletes: egcc-objc
Obsoletes: egcs-objc
-Requires: libobjc = %{epoch}:%{GCC_VERSION}
-Requires: gcc = %{epoch}:%{GCC_VERSION}
%description objc
This package adds Objective C support to the GNU Compiler Collection.
Summary(pl): Statyczne Biblioteki Obiektowego C
Group: Development/Libraries
Version: %{GCC_VERSION}
-Requires: libobjc = %{epoch}:%{GCC_VERSION}
+Requires: libobjc = %{epoch}:%{GCC_VERSION}-%{release}
%description -n libobjc-static
Static Objective C Libraries.
Summary(pt_BR): Suporte Fortran 77 para o GCC
Group: Development/Languages/Fortran
Version: %{GCC_VERSION}
+Requires: %{name} = %{epoch}:%{GCC_VERSION}-%{release}
+Requires: libg2c = %{epoch}:%{GCC_VERSION}-%{release}
Obsoletes: egcs-g77
-Requires: libg2c = %{epoch}:%{GCC_VERSION}
%description g77
This package adds support for compiling Fortran 77 programs with the
Summary(pl): Statyczne Biblioteki Fortranu 77
Group: Development/Libraries
Version: %{GCC_VERSION}
-Requires: libg2c = %{epoch}:%{GCC_VERSION}
+Requires: libg2c = %{epoch}:%{GCC_VERSION}-%{release}
%description -n libg2c-static
Static Fortran 77 Libraries.
Summary(pl): Obs³uga Javy dla gcc
Group: Development/Languages/Java
Version: %{GCC_VERSION}
-Requires: %{name} = %{epoch}:%{version}
-Requires: libgcj >= 3.0.0
-Requires: libgcj-devel >= 3.0.0
+Requires: %{name} = %{epoch}:%{GCC_VERSION}-%{release}
+Requires: libgcj-devel = %{epoch}:%{GCC_VERSION}-%{release}
Requires: java-shared
Provides: gcj = %{epoch}:%{GCC_VERSION}-%{release}
necesitar el paquete libgcj.
%description java -l pl
-Wsparcie dla kompilowania programów Java(tm) zrówno do bajt-kodu jak i
+Wsparcie dla kompilowania programów Java(tm) zarówno do bajt-kodu jak i
do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
by³o przeprowadziæ kompilacjê.
Provides: jar = %{epoch}:%{GCC_VERSION}-%{release}
Provides: java-shared
Obsoletes: fastjar
-Obsoletes: java-shared
Obsoletes: jar
+Obsoletes: java-shared
%description java-tools
This package contains tools that are common for every Java(tm)
Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
Group: Development/Libraries
Version: %{GCC_VERSION}
-Requires: libgcj = %{epoch}:%{GCC_VERSION}
-Requires: %{name}-java
+Requires: %{name}-java = %{epoch}:%{GCC_VERSION}-%{release}
+Requires: libgcj = %{epoch}:%{GCC_VERSION}-%{release}
Obsoletes: libgcj3-devel
%description -n libgcj-devel
Summary(pl): Statyczne Biblioteki Klas Javy
Group: Development/Libraries
Version: %{GCC_VERSION}
-Requires: libstdc++-devel = %{epoch}:%{GCC_VERSION}
-Requires: libgcj-devel = %{epoch}:%{GCC_VERSION}
+Requires: libgcj-devel = %{epoch}:%{GCC_VERSION}-%{release}
+Requires: libstdc++-devel = %{epoch}:%{GCC_VERSION}-%{release}
%description -n libgcj-static
Static Java Class Libraries.
Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
Group: Development/Libraries
Version: %{GCC_VERSION}
-Requires: libstdc++ = %{epoch}:%{GCC_VERSION}
-Requires: %{name}-c++ = %{epoch}:%{GCC_VERSION}
+Requires: %{name}-c++ = %{epoch}:%{GCC_VERSION}-%{release}
+Requires: libstdc++ = %{epoch}:%{GCC_VERSION}-%{release}
Obsoletes: libg++-devel
Obsoletes: libstdc++3-devel
Summary(pl): Statyczna biblioteka standardowa C++
Group: Development/Libraries
Version: %{GCC_VERSION}
-Requires: libstdc++-devel = %{epoch}:%{GCC_VERSION}
+Requires: libstdc++-devel = %{epoch}:%{GCC_VERSION}-%{release}
%description -n libstdc++-static
Static C++ standard library.
Biblioteca estándar estática de C++.
%description -n libstdc++-static -l pl
-Statycza biblioteka standardowa C++.
+Statyczna biblioteka standardowa C++.
%package -n libffi
Summary: Foreign Function Interface library
descripción de interfaz de llamada en el tiempo de ejecución.
%description -n libffi -l pl
-Biblioteka libffi dostarcza przno¶nego, wysokopoziomowego
+Biblioteka libffi dostarcza przeno¶nego, wysokopoziomowego
miêdzymordzia do ró¿nych konwencji wywo³añ funkcji. Pozwala to
programi¶cie wywo³ywaæ dowolne funkcje podaj±c konwencjê wywo³ania w
czasie wykonania.
Summary(pl): Pliki nag³ówkowe dla libffi
Group: Development/Libraries
Version: %{GCC_VERSION}
-Requires: libffi = %{epoch}:%{GCC_VERSION}
+Requires: libffi = %{epoch}:%{GCC_VERSION}-%{release}
%description -n libffi-devel
Development files for Foreign Function Interface library.
Summary(pl): Statyczna biblioteka libffi
Group: Development/Libraries
Version: %{GCC_VERSION}
-Requires: libffi-devel = %{epoch}:%{GCC_VERSION}
+Requires: libffi-devel = %{epoch}:%{GCC_VERSION}-%{release}
%description -n libffi-static
Static Foreign Function Interface library.
Summary(pl): Obs³uga Ady do gcc
Group: Development/Languages
Version: %{GCC_VERSION}
-Requires: libgnat = %{epoch}:%{GCC_VERSION}
-Requires: gcc = %{epoch}:%{GCC_VERSION}
+Requires: %{name} = %{epoch}:%{GCC_VERSION}-%{release}
+Requires: libgnat = %{epoch}:%{GCC_VERSION}-%{release}
Obsoletes: gcc-gnat
Obsoletes: gnat-devel
Summary(pl): Obs³uga Ksi dla gcc
Version: %{GCC_VERSION}.%{KSI_VERSION}
Group: Development/Languages
-Requires: gcc = %{epoch}:%{GCC_VERSION}
+Requires: %{name} = %{epoch}:%{GCC_VERSION}-%{release}
%description ksi
This package adds experimental support for compiling Ksi programs into
cada línea.
%description -n cpp -l pl
-Przeprocesor C jest "makro procesorem" który jest automatycznie
+Preprocesor C jest "makro procesorem" który jest automatycznie
u¿ywany przez kompilator C do obróbki kompilowanego programu przed
w³a¶ciw± kompilacj±. Jest on nazywany makroprocesorem, poniewa¿
umo¿liwia definiowanie i rozwijanie makr umo¿liwiaj±cych skracanie
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%{!?debug:%patch4 -p1}
+%patch5 -p1
+%ifarch alpha
+%patch6 -p1
+%endif
+%ifarch amd64
+# not sure if it wouldn't break x86 (it shouldn't, but better safe than sorry)
+%patch7 -p1
+%endif
%patch10 -p1
%patch11
%patch22
%patch23
%patch24
-%{?with_pp:%patch25 -p1}
# because we distribute modified version of gcc...
perl -pi -e 's/(version.*)";/$1 (PLD Linux)";/' gcc/version.c
cd ..
%{__make} -C obj-%{_target_platform} bootstrap-lean \
+ GCJFLAGS="%{rpmcflags}" \
LDFLAGS_FOR_TARGET="%{rpmldflags}" \
mandir=%{_mandir} \
infodir=%{_infodir}
%if %{with ada}
-%{__make} -C obj-%{_target_platform}/gcc gnatlib gnattools gnatlib-shared \
+for tgt in gnatlib gnattools gnatlib-shared; do
+%{__make} -C obj-%{_target_platform}/gcc $tgt \
LDFLAGS_FOR_TARGET="%{rpmldflags}" \
mandir=%{_mandir} \
infodir=%{_infodir}
+done
%endif
%install
%if %{with ada}
# move ada shared libraries to proper place...
mv $RPM_BUILD_ROOT%{_libdir}/gcc-lib/*/*/adalib/*.so.1 \
- $RPM_BUILD_ROOT%{_libdir}/
+ $RPM_BUILD_ROOT%{_libdir}
# check if symlink to be made is valid
test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-3.15.so.1
ln -sf libgnat-3.15.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-3.15.so
%files -f %{name}.lang
%defattr(644,root,root,755)
%doc READ* ChangeLog
-%dir %{_libdir}/gcc-lib
-%dir %{_libdir}/gcc-lib/*
%dir %{_libdir}/gcc-lib/*/*
%dir %{_libdir}/gcc-lib/*/*/include
%attr(755,root,root) %{_bindir}/*-gcc*
%{_libdir}/gcc-lib/*/*/libgcc.a
%{_libdir}/gcc-lib/*/*/libgcc_eh.a
%{_libdir}/gcc-lib/*/*/specs
-%attr(644,root,root) %{_libdir}*/gcc-lib/*/*/crt*.o
+%{_libdir}*/gcc-lib/*/*/crt*.o
%ifarch sparc64
%{_libdir}/gcc-lib/*/*/*/libgcc.a
%{_libdir}/gcc-lib/*/*/*/libgcc_eh.a
-%attr(644,root,root) %{_libdir}*/gcc-lib/*/*/*/crt*.o
+%{_libdir}*/gcc-lib/*/*/*/crt*.o
%endif
%ifarch ppc
-%attr(644,root,root) %{_libdir}/gcc-lib/*/*/ecrt*.o
-%attr(644,root,root) %{_libdir}/gcc-lib/*/*/ncrt*.o
+%{_libdir}/gcc-lib/*/*/ecrt*.o
+%{_libdir}/gcc-lib/*/*/ncrt*.o
%{_libdir}/gcc-lib/*/*/nof
%dir %{_libdir}/nof
%endif
%attr(755,root,root) %{_bindir}/gij
%attr(755,root,root) %{_bindir}/jcf-dump
%attr(755,root,root) %{_bindir}/jv-*
-%attr(755,root,root) %{_bindir}/grepjar
%attr(755,root,root) %{_bindir}/*-gcj
%attr(755,root,root) %{_libdir}/gcc-lib/*/*/jc1
%attr(755,root,root) %{_libdir}/gcc-lib/*/*/jvgenmain
%{_mandir}/man1/jv-*
%{_mandir}/man1/gij*
%{_mandir}/man1/gcj*
-%{_mandir}/man1/grepjar*
%files java-tools
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/rmi*
%attr(755,root,root) %{_bindir}/jar
+%attr(755,root,root) %{_bindir}/grepjar
%{_mandir}/man1/rmi*
%{_mandir}/man1/jar*
+%{_mandir}/man1/grepjar*
%{_infodir}/fastjar*
%files -n libgcj
%attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
%ifarch ppc
%attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
+%attr(755,root,root) %{_libdir}/nof/lib-org*.so.*
%endif
%files -n libgcj-devel
%dir %{_datadir}/java
%{_datadir}/java/libgcj*.jar
%{_libdir}/lib*cj.spec
-%{_libdir}/lib*cj*.la
%attr(755,root,root) %{_libdir}/lib*cj*.so
%attr(755,root,root) %{_libdir}/lib-org-*.so
+%{_libdir}/lib*cj*.la
%{_libdir}/lib-org-*.la
%ifarch ppc
-%{_libdir}/nof/lib*cj*.la
%attr(755,root,root) %{_libdir}/nof/lib*cj*.so
+%attr(755,root,root) %{_libdir}/nof/lib-org-*.so
+%{_libdir}/nof/lib*cj*.la
+%{_libdir}/nof/lib-org-*.la
%endif
%files -n libgcj-static
%{_libdir}/lib-org-*.a
%ifarch ppc
%{_libdir}/nof/lib*cj*.a
+%{_libdir}/nof/lib-org-*.a
%endif
%files -n libffi
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libffi-*.so
+%ifarch ppc
+%attr(755,root,root) %{_libdir}/nof/libffi-*.so
+%endif
%files -n libffi-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libffi.so
%{_libdir}/libffi.la
+%ifarch ppc
+%attr(755,root,root) %{_libdir}/nof/libffi.so
+%{_libdir}/nof/libffi.la
+%endif
%{_includedir}/ffi*
%files -n libffi-static
%defattr(644,root,root,755)
%{_libdir}/libffi.a
+%ifarch ppc
+%{_libdir}/nof/libffi.a
+%endif
%endif
%if %{with ada}