#
%define DASHED_SNAP %{nil}
%define SNAP %(echo %{DASHED_SNAP} | sed -e "s#-##g")
-%define GCC_VERSION 3.2.2
-%define KSI_VERSION pre55
-%define EPOCH 5
+%define GCC_VERSION 3.2.3
+%define KSI_VERSION 1.0.1.1567
-Summary: GNU Compiler Collection
-Summary(pl): Kolekcja kompilatorów GNU
+Summary: GNU C Compiler
+Summary(pl): Kompilator C GNU
+Summary(pt_BR): C Compilador GNU (GCC)
Name: gcc
Version: %{GCC_VERSION}
-Release: 0.1
-Epoch: %{EPOCH}
+Release: 1
+Epoch: 5
License: GPL
Group: Development/Languages
+# Source0-md5: 23d1146d5efa0e0bfad9968dbb418e1e
Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{GCC_VERSION}/%{name}-%{GCC_VERSION}.tar.bz2
+# Source1-md5: 9e4bdd6492a7d7b650599e572169ff7a
Source1: ftp://ftp.pld.org.pl/people/malekith/ksi/ksi-%{KSI_VERSION}.tar.gz
-Source2: %{name}-non-english-man-pages.tar.bz2
-Patch0: %{name}-slibdir.patch
+# Source2-md5: 4736f3422ddfb808423b745629acc321
+Source2: http://ep09.kernel.pl/~djrzulf/%{name}-non-english-man-pages.tar.bz2
+Patch0: %{name}-info.patch
Patch1: %{name}-paths.patch
Patch2: %{name}-ada-no-addr2line.patch
Patch3: %{name}-ada-no-prefix.o.patch
Patch4: %{name}-nolocalefiles.patch
-
-Patch6: %{name}-info.patch
+Patch5: %{name}-gcc-page.c.patch
+Patch6: %{name}-ada-link-new-libgnat.patch
# -- stolen patches from RH --
Patch10: gcc32-ada-link.patch
Patch11: gcc32-attr-visibility.patch
Patch16: gcc32-boehm-gc-libs.patch
Patch17: gcc32-bogus-inline.patch
Patch18: gcc32-c++-nrv-test.patch
-Patch19: gcc32-c++-pretty_function.patch
Patch20: gcc32-c++-tsubst-asm.patch
Patch21: gcc32-cfg-eh.patch
Patch22: gcc32-debug-pr7241.patch
Patch25: gcc32-dwarf2-pr6381.patch
Patch26: gcc32-dwarf2-pr6436-test.patch
Patch27: gcc32-fde-merge-compat.patch
-Patch28: gcc32-fold-const-associate.patch
+
Patch29: gcc32-hard-reg-sharing.patch
Patch30: gcc32-hard-reg-sharing2.patch
Patch31: gcc32-i386-default-momit-leaf-frame-pointer.patch
Patch45: gcc32-tls3.patch
Patch46: gcc32-tls4.patch
Patch47: gcc32-tls5.patch
-Patch48: gcc32-bison_expect.patch
BuildRequires: autoconf
BuildRequires: bison
BuildRequires: fileutils >= 4.0.41
Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
wyprodukowania szybkiego i stablinego kodu wynikowego.
+%description -l pt_BR
+Este pacote adiciona infraestrutura básica e suporte a linguagem C
+ao Gnu Compiler Collection.
+
%package -n libgcc
Summary: Shared gcc library
Summary(pl): Biblioteka gcc
+Summary(pt_BR): Biblioteca runtime para o GCC
Group: Libraries
-Version: %{GCC_VERSION}
+Version: %{GCC_VERSION}
+Obsoletes: libgcc1
%description -n libgcc
Shared gcc library.
%description -n libgcc -l pl
Biblioteka dynamiczna gcc.
+%description -n libgcc -l pt_BR
+Biblioteca runtime para o GCC.
+
%package c++
Summary: C++ support for gcc
Summary(pl): Obs³uga C++ dla gcc
+Summary(pt_BR): Suporte C++ para o gcc
Group: Development/Languages
Obsoletes: egcc-c++
Obsoletes: egcs-c++
du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
standardowych bibliotek C++, które s± w oddzielnym pakiecie.
+%description c++ -l pt_BR
+Este pacote adiciona suporte C++ para o gcc.
+
%description c++ -l tr
Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
Summary(pl): Biblioteki Obiektowego C
Group: Libraries
Version: %{GCC_VERSION}
+Obsoletes: libobjc1
%description -n libobjc
Objective C Libraries.
%package g77
Summary: Fortran 77 support for gcc
Summary(pl): Obs³uga Fortranu 77 dla gcc
-Group: Development/Languages
+Summary(pt_BR): Suporte Fortran 77 para o GCC
+Group: Development/Languages/Fortran
Version: %{GCC_VERSION}
Obsoletes: egcs-g77
Requires: libg2c = %{GCC_VERSION}
Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
+%description g77 -l pt_BR
+Suporte Fortran 77 para o GCC.
+
%package -n libg2c
Summary: Fortran 77 Libraries
Summary(pl): Biblioteki Fortranu 77
Group: Libraries
-Version: %{GCC_VERSION}
+Version: %{GCC_VERSION}
%description -n libg2c
Fortran 77 Libraries.
Summary: Static Fortran 77 Libraries
Summary(pl): Statyczne Biblioteki Fortranu 77
Group: Development/Libraries
-Version: %{GCC_VERSION}
+Version: %{GCC_VERSION}
Requires: libg2c = %{GCC_VERSION}
%description -n libg2c-static
%package java
Summary: Java support for gcc
Summary(pl): Obs³uga Javy dla gcc
-Group: Development/Languages
-Version: %{GCC_VERSION}
+Group: Development/Languages/Java
+Version: %{GCC_VERSION}
Requires: %{name} = %{version}
Requires: libgcj >= 3.0.0
Requires: libgcj-devel >= 3.0.0
+Requires: java-shared
Provides: gcj = %{epoch}:%{GCC_VERSION}-%{release}
-Provides: jar = %{epoch}:%{GCC_VERSION}-%{release}
-Obsoletes: fastjar
%description java
This package adds experimental support for compiling Java(tm) programs
do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
by³o przeprowadziæ kompilacjê.
+%package java-tools
+Summary: Shared java tools
+Summary(pl): Wspó³dzielone narzêdzia javy
+Group: Development/Languages/Java
+Version: %{GCC_VERSION}
+Provides: jar = %{epoch}:%{GCC_VERSION}-%{release}
+Provides: java-shared
+Obsoletes: fastjar
+Obsoletes: java-shared
+Obsoletes: jar
+
+%description java-tools
+This package contains tools that are common for every Java(tm) implementation,
+such as rmic or jar.
+
+%description java-tools -l pl
+Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji Javy(tm), takie
+jak rmic czy jar.
+
%package -n libgcj
Summary: Java Class Libraries
Summary(pl): Biblioteki Klas Javy
Group: Libraries
Version: %{GCC_VERSION}
Requires: zlib
+Obsoletes: libgcj3
%description -n libgcj
Java Class Libraries.
Version: %{GCC_VERSION}
Requires: libgcj = %{GCC_VERSION}
Requires: %{name}-java
+Obsoletes: libgcj3-devel
%description -n libgcj-devel
Development files for Java Class Libraries.
%package -n libstdc++
Summary: GNU c++ library
Summary(pl): Biblioteki GNU C++
+Summary(pt_BR): Biblioteca C++ GNU
Group: Libraries
Version: %{GCC_VERSION}
Obsoletes: libg++
+Obsoletes: libstdc++3
%description -n libstdc++
This is the GNU implementation of the standard C++ libraries, along
weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
+%description -n libstdc++ -l es
+Este es el soporte de las bibliotecas padrón del C++, junto con
+herramientas GNU adicionales. El paquete incluye las bibliotecas
+compartidas necesarias para ejecutar aplicaciones C++.
+
%description -n libstdc++ -l fr
Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
des outils GNU supplémentaires. Ce package comprend les librairies
bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
uruchomienia aplikacji napisanych w C++.
+%description -n libstdc++ -l pt_BR
+Este pacote é uma implementação da biblioteca padrão C++ v3, um
+subconjunto do padrão ISO 14882.
+
%description -n libstdc++ -l tr
Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
Summary(de): Header-Dateien zur Entwicklung mit C++
Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
+Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
Group: Development/Libraries
Version: %{GCC_VERSION}
Requires: libstdc++ = %{GCC_VERSION}
-Requires: %{name}-c++
+Requires: %{name}-c++ = %{GCC_VERSION}
Obsoletes: libg++-devel
+Obsoletes: libstdc++3-devel
%description -n libstdc++-devel
This is the GNU implementation of the standard C++ libraries. This
package includes the header files needed for C++ development and
library documentation.
+%description -n libstdc++-devel -l es
+Este es el soporte de las bibliotecas padrón del lenguaje C++. Este paquete
+incluye los archivos de inclusión y bibliotecas necesarios para desarrollo de
+programas en lenguaje C++.
+
%description -n libstdc++-devel -l pl
Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
+%description -n libstdc++-devel -l pt_BR
+Este pacote inclui os arquivos de inclusão e bibliotecas necessárias para
+desenvolvimento de programas C++.
+
%package -n libstdc++-static
Summary: Static C++ standard library
Summary(pl): Statyczna biblioteka standardowa C++
Summary: Ada support for gcc
Summary(pl): Obs³uga Ady do gcc
Group: Development/Languages
-Version: %{GCC_VERSION}
+Version: %{GCC_VERSION}
Requires: libgnat = %{GCC_VERSION}
Requires: gcc = %{GCC_VERSION}
Obsoletes: gcc-gnat
Summary: Ada standard libraries
Summary(pl): Biblioteki standardowe dla Ady
Group: Libraries
-Version: %{GCC_VERSION}
+Version: %{GCC_VERSION}
Obsoletes: gnat
+Obsoletes: libgnat1
%description -n libgnat
This package contains shared libraries needed to run programs written
Summary: Static Ada standard libraries
Summary(pl): Statyczne biblioteki standardowe dla Ady
Group: Libraries
-Version: %{GCC_VERSION}
+Version: %{GCC_VERSION}
Obsoletes: gnat-static
%description -n libgnat-static
%package -n cpp
Summary: The C Pre Processor
Summary(pl): Preprocesor C
+Summary(pt_BR): Preprocessador para a linguagem C
Group: Development/Languages
Version: %{GCC_VERSION}
Obsoletes: egcs-cpp
line control to inform the compiler of where each source line
originally came from.
+%description -n cpp -l es
+Um preprocessador para a linguagem C.
+
%description -n cpp -l pl
Przeprocesor C jest "makro procesorem" który jest automatycznie
u¿ywany przez kompilator C do obróbki kompilowanego programu przed
s± zapamiêtywane informacje o tym, której linii pliku ¼ród³owego
odpowiada fragment pliku wynikowego.
+%description -n cpp -l pt_BR
+O preprocessador C é um "processador de macros", que é utilizado pelo
+compilador C para fazer algumas modificações no seu programa, antes da
+compilação em si. Ele é chamado de "processador de macros" porque
+permite a você definir "macros", que são abreviações para construções
+mais complicadas.
+
+O preprocessador C fornece quatro funcionalidades básicas: inclusão de
+arquivos de cabeçalho; expansão de macros; compilação condicional;
+e controle da numeração das linhas do programa.
+
%prep
%setup -q -a1 -n %{name}-%{GCC_VERSION}
mv ksi-%{KSI_VERSION} gcc/ksi
%patch0 -p1
%patch1 -p1
%patch2 -p1
-#%patch3 -p1
+%patch3 -p1
%patch4 -p1
+%patch5 -p1
+%patch6 -p1
-#%patch10
+%patch10 -p1
%patch11
%patch12
%patch13
#%patch16
%patch17
%patch18
-%patch19
%patch20
%patch21
%patch22
%patch25
%patch26
%patch27
-#%patch28
%patch29
%patch30
%patch31
%patch45
%patch46
%patch47
-#%patch48
-
-# fixme
-#%patch6 -p1
perl -p -i -e 's/";/ (PLD Linux)";/' gcc/version.c
--enable-shared \
--enable-threads=posix \
--enable-__cxa_atexit \
- --enable-languages="c,c++,f77,gcov%{?!_without_objc:,objc},ksi%{!?_without_ada:,ada}%{!?_without_java:,java}" \
+ --enable-languages="c,c++,f77,gcov%{?!_without_objc:,objc},ksi%{!?_without_ada:,ada}%{!?_without_java:,java}" \
--enable-c99 \
--enable-long-long \
--enable-multilib \
PATH=$PATH:/sbin:%{_sbindir}
%{__make} install \
- prefix=$RPM_BUILD_ROOT%{_prefix} \
- mandir=$RPM_BUILD_ROOT%{_mandir} \
- infodir=$RPM_BUILD_ROOT%{_infodir} \
- slibdir=$RPM_BUILD_ROOT/lib
+ DESTDIR=$RPM_BUILD_ROOT
ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
-echo .so gcc.1 > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
+echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
ln -sf g77 $RPM_BUILD_ROOT%{_bindir}/f77
-echo .so g77.1 > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
+echo ".so g77.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
%if %{!?_without_ada:1}%{?_without_ada:0}
# move ada shared libraries to proper place...
-mv $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/*-*so \
+mv $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/*-*so.1 \
$RPM_BUILD_ROOT%{_libdir}
-rm -f $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/*.so
+rm -f $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/*.so.1
(cd $RPM_BUILD_ROOT%{_libdir} && \
- ln -s libgnat-*so libgnat.so.1 && ln -s libgnat-*so libgnat.so && \
- ln -s libgnarl-*so libgnarl.so.1 && ln -s libgnarl-*so libgnarl.so)
+ ln -s libgnat-*so.1 libgnat.so.1 && ln -s libgnat-*so.1 libgnat.so && \
+ ln -s libgnarl-*so.1 libgnarl.so.1 && ln -s libgnarl-*so.1 libgnarl.so)
%endif
ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
%endif
# avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc-lib/*/%{version}
-for f in libstdc++.la %{!?_without_java:libgcj.la} ; do
+for f in libstdc++.la libsupc++.la %{!?_without_java:libgcj.la} ; do
perl -pi -e 's@-L[^ ]*[acs.] @@g' $RPM_BUILD_ROOT%{_libdir}/$f
done
+# normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
+for f in libstdc++.la libsupc++.la libg2c.la \
+ %{!?_without_java:libgcj.la} %{!?_without_objc:libobjc.la}; do
+ perl -pi -e "s@^libdir='.*@libdir='/usr/lib'@" $RPM_BUILD_ROOT%{_libdir}/$f
+done
bzip2 -dc %{SOURCE2} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
mv -f $RPM_BUILD_ROOT%{_mandir}/ja/man1/{cccp,cpp}.1
%attr(755,root,root) %{_bindir}/gij
%attr(755,root,root) %{_bindir}/jcf-dump
%attr(755,root,root) %{_bindir}/jv-*
-%attr(755,root,root) %{_bindir}/rmi*
-%attr(755,root,root) %{_bindir}/jar
%attr(755,root,root) %{_bindir}/grepjar
%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/jc1
%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/jvgenmain
%{_mandir}/man1/jv-*
%{_mandir}/man1/gij*
%{_mandir}/man1/gcj*
+
+%files java-tools
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/rmi*
+%attr(755,root,root) %{_bindir}/jar
%{_mandir}/man1/rmi*
%files -n libgcj
%{_libdir}/lib*cj*.la
%attr(755,root,root) %{_libdir}/lib*cj*.so
%ifarch ppc
-%{_libdir}/nof/lib*cj.spec
%{_libdir}/nof/lib*cj*.la
%attr(755,root,root) %{_libdir}/nof/lib*cj*.so
%endif
%files -n libgnat
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libgna*-*so
+%attr(755,root,root) %{_libdir}/libgna*-*so.1
%files -n libgnat-static
%defattr(644,root,root,755)