--- /dev/null
+%define rname gcc
+%define rver 2.95.3
+%define STDC_VERSION 2.10.0
+Summary: GNU Compiler Collection
+Summary(pl): Kolekcja kompilatorów GNU
+Name: %{rname}2
+Version: %{rver}
+Release: 1
+License: GPL
+Group: Development/Languages
+Group(de): Entwicklung/Sprachen
+Group(pl): Programowanie/Jêzyki
+Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{rname}-%{version}.tar.gz
+Patch0: %{name}-info.patch
+Patch1: %{name}-pld-linux.patch
+Patch2: %{name}-libstdc++.patch
+Patch3: %{name}-bootstrap.patch
+Patch4: %{name}-cpp-macro-doc.patch
+Patch5: %{name}-default-arch.patch
+Patch6: %{name}-libstdc++-out-of-mem.patch
+Patch7: %{name}-libstdc++-wstring.patch
+Patch8: %{name}-libstdc++-bastring.patch
+Patch9: %{name}-manpage.patch
+Patch10: %{name}-cpp-dos-newlines.patch
+Patch11: %{name}-gpc.patch
+Patch12: %{name}-m68k-pic.patch
+Patch13: %{name}-sparc32-rfi.patch
+Patch14: %{name}-builtin-apply.patch
+Patch15: %{name}-ppc-ice.patch
+Patch16: %{name}-ppc-descriptions.patch
+Patch17: %{name}-alpha-complex-float.patch
+Patch18: %{name}-gcj-vs-iconv.patch
+Patch19: %{name}-libobjc.patch
+Patch20: %{name}-pointer-arith.patch
+Patch21: %{name}-crtendS.patch
+Patch22: %{name}-suffix.patch
+BuildRequires: bison
+BuildRequires: texinfo
+Requires: binutils >= 2.9.1.0.25
+Requires: cpp2 = %{version}
+URL: http://gcc.gnu.org/
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+A compiler aimed at integrating all the optimizations and features
+necessary for a high-performance and stable development environment.
+
+%description -l pl
+Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
+wyprodukowania szybkiego i stablinego kodu wynikowego.
+
+%package c++
+Summary: C++ support for gcc
+Summary(fr): Support C++ pour le compilateur gcc
+Summary(pl): Wspomaganie C++ dla kompilatora gcc
+Summary(tr): gcc için C++ desteði
+Group: Development/Languages
+Group(de): Entwicklung/Sprachen
+Group(pl): Programowanie/Jêzyki
+Obsoletes: egcc-c++
+Obsoletes: egcs-c++
+
+%description c++
+This package adds C++ support to the GNU C compiler. It includes
+support for most of the current C++ specification, including templates
+and exception handling. It does not include a standard C++ library,
+which is available separately.
+
+%description -l de c++
+Dieses Paket enthält die C++-Unterstützung für den GNU-C-Compiler. Es
+unterstützt die aktuelle C++-Spezifikation, inkl. Templates und
+Ausnahmeverarbeitung. Eine C++-Standard-Library ist nicht enthalten -
+sie ist getrennt erhältlich.
+
+%description -l fr c++
+Ce package ajoute un support C++ au compilateur c GNU. Il comprend un
+support pour la plupart des spécifications actuelles de C++, dont les
+modéles et la gestion des exceptions. Il ne comprend pas une
+bibliothéque C++ standard, qui est disponible séparément.
+
+%description -l pl c++
+Programy z tego pakietu zapewniaj± wsparcie dla C++ do gcc. Posiada
+wspomaganie dla du¿ej ilo¶ci obecnych specyfikacji C++, nie posiada
+natomiast standardowych bibliotek C++, które s± w oddzielnym pakiecie.
+
+%description -l tr c++
+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
+C++ kitaplýðý bu pakette yer almaz.
+
+%package objc
+Summary: Objective C support for gcc
+Summary(de): Objektive C-Unterstützung für gcc
+Summary(fr): Gestion d'Objective C pour gcc
+Summary(pl): Wspomaganie obiektowego C dla kompilatora gcc
+Summary(tr): gcc için Objective C desteði
+Group: Development/Languages
+Group(de): Entwicklung/Sprachen
+Group(pl): Programowanie/Jêzyki
+Obsoletes: egcc-objc
+Obsoletes: egcs-objc
+
+%description objc
+This package adds Objective C support to the GNU C compiler. Objective
+C is a object oriented derivative of the C language, mainly used on
+systems running NeXTSTEP. This package does not include the standard
+objective C object library.
+
+%description -l de objc
+Dieses Paket ergänzt den GNU-C-Compiler durch Objective-C-Support.
+Objective C ist ein objektorientiertes Derivat von C, das zur
+Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt. Die
+Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
+
+%description -l fr objc
+Ce package ajoute un support Objective C au compilateur C GNU.
+L'Objective C est un langage orienté objetdérivé du langage C,
+principalement utilisé sur les systèmes NeXTSTEP. Ce package n'inclue
+pas la bibliothéque Objective C standard.
+
+%description -l pl objc
+Ten pakiet jest wsparciem obiektowego C dla kompilatora gcc. W
+pakiecie nie ma jeszcze bibliotek C-obj.
+
+%description -l tr objc
+Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
+C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
+sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
+kitaplýðý bu pakette yer almaz.
+
+%package g77
+Summary: Fortran 77 support for gcc
+Summary(pl): Wspomaganie Fortran 77 dla gcc
+Group: Development/Languages
+Group(de): Entwicklung/Sprachen
+Group(pl): Programowanie/Jêzyki
+Obsoletes: egcs-g77
+
+%description g77
+This apckage adds support for compiling Fortran 77 programs with the
+GNU compiler.
+
+%description -l pl g77
+Ten pakiet jest wsparciem Fortran 77 dla kompilatora gcc. Jest
+potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
+
+%package chill
+Summary: CHILL support for gcc
+Summary(pl): Wspomoganie CHILL dla gcc
+Group: Development/Languages
+Group(de): Entwicklung/Sprachen
+Group(pl): Programowanie/Jêzyki
+Requires: %{rname} = %{version}
+
+%description chill
+This package adds support for compiling CHILL programs with the GNU
+compiler.
+
+Chill is the "CCITT High-Level Language", where CCITT is the old name
+for what is now ITU, the International Telecommunications Union. It is
+is language in the Modula2 family, and targets many of the same
+applications as Ada (especially large embedded systems). Chill was
+never used much in the United States, but is still being used in
+Europe, Brazil, Korea, and other places.
+
+%description -l pl chill
+Ten pakiet dodaje do gcc mo¿liwo¶æ kompilowania programów w jêzyku
+CHILL.
+
+%package java
+Summary: Java support for gcc
+Summary(pl): Wspomoganie Java dla gcc
+Group: Development/Languages
+Group(de): Entwicklung/Sprachen
+Group(pl): Programowanie/Jêzyki
+Requires: %{rname} = %{version}
+Requires: libgcj2 >= 2.95.1
+
+%description java
+This package adds experimental support for compiling Java(tm) programs
+and bytecode into native code. To use this you will also need the
+libgcj package.
+
+%description -l pl java
+Ten pakiet dodaje do gcc (eksperymentaln±) mo¿liwo¶æ kompilowania
+programów w Javie(tm) i bytecode do kodu procesora. Wymaga pakietu
+libgcj.
+
+%package -n libstdc++2
+Summary: GNU c++ library
+Summary(pl): Biblioteki GNU C++
+Group: Libraries
+Group(de): Libraries
+Group(fr): Librairies
+Group(pl): Biblioteki
+Version: %{STDC_VERSION}
+Obsoletes: libg++
+
+%description -n libstdc++2
+This is the GNU implementation of the standard C++ libraries, along
+with additional GNU tools. This package includes the shared libraries
+necessary to run C++ applications.
+
+%description -l de -n libstdc++2
+Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
+weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
+C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
+
+%description -l fr -n libstdc++2
+Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
+des outils GNU supplémentaires. Ce package comprend les librairies
+partagées nécessaires à l'exécution d'application C++.
+
+%description -l pl -n libstdc++2
+Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
+bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
+uruchomienia aplikacji napisanych w C++.
+
+%description -l tr -n libstdc++2
+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.
+
+%package -n libstdc++2-devel
+Summary: Header files and libraries for C++ development
+Summary(de): Header-Dateien und Libraries zur Entwicklung mit C++
+Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
+Summary(pl): Pliki nag³ówkowe do programowania z u¿yciem bibliotek C++
+Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
+Group: Development/Libraries
+Group(de): Entwicklung/Libraries
+Group(fr): Development/Librairies
+Group(pl): Programowanie/Biblioteki
+Version: %{STDC_VERSION}
+Requires: libstdc++2 = %{STDC_VERSION}
+Requires: %{rname}-c++
+Obsoletes: libg++-devel
+
+%description -n libstdc++2-devel
+This is the GNU implementation of the standard C++ libraries. This
+package includes the header files and libraries needed for C++
+development.
+
+%description -l pl -n libstdc++2-devel
+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++.
+
+%package -n libstdc++2-static
+Summary: Static c++ standard library
+Summary(pl): Biblioteka statyczna c++
+Group: Development/Libraries
+Group(de): Entwicklung/Libraries
+Group(fr): Development/Librairies
+Group(pl): Programowanie/Biblioteki
+Version: %{STDC_VERSION}
+Requires: libstdc++2-devel = %{STDC_VERSION}
+
+%description -n libstdc++2-static
+Static c++ standard library.
+
+%description -l pl -n libstdc++2-static
+Biblioteka statyczna C++.
+
+%package -n cpp2
+Summary: The C Pre Processor
+Summary(pl): Preprocesor C
+Group: Development/Languages
+Group(de): Entwicklung/Sprachen
+Group(pl): Programowanie/Jêzyki
+Obsoletes: egcs-cpp
+
+%description -n cpp2
+The C preprocessor is a "macro processor" that is used automatically
+by the C compiler to transform your program before actual compilation.
+It is called a macro processor because it allows you to define
+"macros", which are brief abbreviations for longer constructs.
+
+The C preprocessor provides four separate facilities that you can use
+as you see fit:
+
+- Inclusion of header files. These are files of declarations that can
+ be substituted into your program.
+- Macro expansion. You can define "macros", which are abbreviations
+ for arbitrary fragments of C code, and then the C preprocessor will
+ replace the macros with their definitions throughout the program.
+- Conditional compilation. Using special preprocessing directives, you
+ can include or exclude parts of the program according to various
+ conditions.
+- Line control. If you use a program to combine or rearrange source
+ files into an intermediate file which is then compiled, you can use
+ line control to inform the compiler of where each source line
+ originally came from.
+
+%description -l pl -n cpp2
+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
+d³ugich konstrukcji w jêzyku C.
+
+Preprocesor C umo¿liwia wykonywanie czterech ró¿nych typów operacji:
+
+- Do³±czanie plików (np. nag³ówkowych). Wstawia pliki w miejscu
+ deklaracji polecenia do³±czenia innego pliku.
+- Rozwijanie makr. Mo¿na definiowaæ "makra" nadaj±c im identyfikatory,
+ których pó¼niejsze u¿ycie powoduje podczas rozwijania podmienienie
+ identyfikatora deklarowan± wcze¶niej warto¶ci±.
+- Kompilacja warunkowa. W zale¿no¶ci od obecno¶ci symboli i dyrektyw w
+ ¶rodowisku preprocesora s± w³±czane warunkowo, b±d¼ nie, pewne
+ fragmenty obrabianego strumienia tekstów.
+- Kontrola linii ¼ród³a. Niezale¿nie od tego jakim przeobra¿eniom
+ podlega wynikowy strumieñ danych w wyniku rozwijania makr i do³±czania
+ s± zapamiêtywane informacje o tym, której linii pliku ¼ród³owego
+ odpowiada fragment pliku wynikowego.
+
+%prep
+%setup -q -n %{rname}-%{rver}
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p0
+%patch5 -p0
+%patch6 -p0
+%patch7 -p0
+%patch8 -p0
+%patch9 -p0
+%patch10 -p0
+%patch11 -p1
+%ifarch m68k
+%patch12 -p0
+%endif
+%ifarch sparc sparc32
+%patch13 -p0
+%patch14 -p0
+%endif
+%ifarch ppc
+%patch15 -p0
+%patch16 -p0
+%endif
+%ifarch alpha
+%patch17 -p1
+%endif
+%patch18 -p0
+%patch19 -p0
+%patch20 -p0
+%patch21 -p1
+%patch22 -p1
+
+%build
+(cd gcc; autoconf)
+rm -rf obj-%{_target_platform}
+install -d obj-%{_target_platform} && cd obj-%{_target_platform}
+
+CFLAGS="%{rpmcflags}" \
+CXXFLAGS="%{rpmcflags}" \
+TEXCONFIG=false ../configure \
+ --prefix=%{_prefix} \
+ --infodir=%{_infodir} \
+ --enable-shared \
+%ifnarch sparc sparc64
+ --enable-threads=posix \
+ --enable-haifa \
+%endif
+ --with-gnu-as \
+ --with-gnu-ld \
+ --with-gxx-include-dir="\$\{prefix\}/include/g++" \
+ --disable-nls \
+ --program-suffix="2" \
+ %{_target_platform}
+
+PATH=$PATH:/sbin:%{_sbindir}
+touch ../gcc/c-gperf.h
+
+cd ..
+%{__make} -C obj-%{_target_platform} bootstrap \
+ LDFLAGS_FOR_TARGET="%{rpmldflags}" \
+ mandir=%{_mandir} \
+ infodir=%{_infodir}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{/lib,%{_datadir}}
+
+cd obj-%{_target_platform}
+PATH=$PATH:/sbin:%{_sbindir}
+
+%{__make} install \
+ prefix=$RPM_BUILD_ROOT%{_prefix} \
+ mandir=$RPM_BUILD_ROOT%{_mandir} \
+ infodir=$RPM_BUILD_ROOT%{_infodir}
+
+%{__make} install \
+ prefix=$RPM_BUILD_ROOT%{_prefix} \
+ mandir=$RPM_BUILD_ROOT%{_mandir} \
+ infodir=$RPM_BUILD_ROOT%{_infodir} -C texinfo
+
+ln -sf gcc2 $RPM_BUILD_ROOT%{_bindir}/cc2
+
+ln -sf g772 $RPM_BUILD_ROOT%{_bindir}/f772
+(cd $RPM_BUILD_ROOT%{_libdir} ; ln -sf libstdc++.so.*.*.* $RPM_BUILD_ROOT%{_libdir}/libstdc++.so)
+ln -sf %{_bindir}/cpp2 $RPM_BUILD_ROOT/lib/cpp2
+
+gzip -9nf ../READ* ../ChangeLog ../gcc/ch/chill.brochure
+
+cd $RPM_BUILD_ROOT%{_bindir}
+mv chill chill2
+mv %{_target_platform}-gcc %{_target_platform}-gcc2
+mv jcf-dump jcf-dump2
+mv jv-scan jv-scan2
+mv gcjh gcjh2
+
+%post
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%postun
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%post g77
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%postun g77
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%post chill
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%postun chill
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%post -n cpp2
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%postun -n cpp2
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+
+%post -p /sbin/ldconfig -n libstdc++2
+%postun -p /sbin/ldconfig -n libstdc++2
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%doc READ* ChangeLog.gz
+
+%dir %{_libdir}/gcc-lib
+%dir %{_libdir}/gcc-lib/%{_target_cpu}*
+%dir %{_libdir}/gcc-lib/%{_target_cpu}*/*
+%dir %{_libdir}/gcc-lib/%{_target_cpu}*/*/include
+
+%attr(755,root,root) %{_bindir}/%{_target_cpu}*-gcc2
+%attr(755,root,root) %{_bindir}/gcc2
+%attr(755,root,root) %{_bindir}/gcov2
+%attr(755,root,root) %{_bindir}/protoize2
+%attr(755,root,root) %{_bindir}/unprotoize2
+%attr(755,root,root) %{_bindir}/cc2
+
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/SYSCALLS.c.X
+%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/libgcc.a
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/lib*.map
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/specs
+
+%ifnarch alpha
+%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/crt*.o
+%endif
+
+%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/collect2
+
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/float.h
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/iso646.h
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/limits.h
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/proto.h
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/stdarg.h
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/stdbool.h
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/stddef.h
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/syslimits.h
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/va-*.h
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/varargs.h
+
+%files c++
+%defattr(644,root,root,755)
+
+%attr(755,root,root) %{_bindir}/g++2
+%attr(755,root,root) %{_bindir}/c++2
+%attr(755,root,root) %{_bindir}/c++filt2
+%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1plus
+
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/exception
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/new
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/typeinfo
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/new.h
+
+%files objc
+%defattr(644,root,root,755)
+
+%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1obj
+
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/libobjc.a
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/objc
+
+%files g77
+%defattr(644,root,root,755)
+
+%attr(755,root,root) %{_bindir}/g772
+%attr(755,root,root) %{_bindir}/f772
+
+%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/f771
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/libg2c.a
+
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/g2c.h
+
+%files chill
+%defattr(644,root,root,755)
+%doc gcc/ch/chill.brochure.gz
+
+%attr(755,root,root) %{_bindir}/chill2
+
+%{_infodir}/chill*
+
+%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1chill
+%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/chill*.o
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/libchill.a
+
+%files java
+%defattr(644,root,root,755)
+
+%attr(755,root,root) %{_bindir}/gcj2
+%attr(755,root,root) %{_bindir}/gcjh2
+%attr(755,root,root) %{_bindir}/jcf-dump2
+%attr(755,root,root) %{_bindir}/jv-scan2
+
+%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/jc1
+%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/jvgenmain
+
+%files -n libstdc++2
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libstdc++.so.*.*.*
+
+%files -n libstdc++2-devel
+%defattr(644,root,root,755)
+%{_includedir}/g++
+%attr(755,root,root) %{_libdir}/libstdc++.so
+
+%files -n libstdc++2-static
+%defattr(644,root,root,755)
+%attr(644,root,root) %{_libdir}/libstdc++.a
+
+%files -n cpp2
+%defattr(644,root,root,755)
+%attr(755,root,root) /lib/cpp2
+%attr(755,root,root) %{_bindir}/cpp2
+%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cpp0