# # Conditional build: %bcond_without ada # build without ADA support %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_without var_tracking # Disable vartracking in debug, http://gcc.gnu.org/gcc-3.5/changes.html # %define snap 20040327 %define GCC_VERSION 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(pt_BR): Coleçăo dos compiladores GNU: o compilador C e arquivos compartilhados Name: gcc Version: %{GCC_VERSION} Release: 0.%{snap}.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/snapshots/%{version}-%{snap}/%{name}-%{version}-%{snap}.tar.bz2 # Source0-md5: eab7b638e1b5a2cee161463cf00f1515 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 # Source2-md5: 4736f3422ddfb808423b745629acc321 Patch0: %{name}-info.patch Patch1: %{name}-nolocalefiles.patch Patch2: %{name}-ada-link-new-libgnat.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: binutils >= 2.14 BuildRequires: bison BuildRequires: fileutils >= 4.0.41 %{?with_ada:%{!?with_bootstrap:BuildRequires: gcc(ada)}} %{?with_ada:BuildRequires: gcc-ada} BuildRequires: gettext-devel BuildRequires: glibc-devel >= 2.2.5-20 BuildRequires: perl-devel BuildRequires: texinfo >= 4.1 BuildRequires: zlib-devel Requires: binutils >= 2.14 Requires: cpp = %{epoch}:%{version}-%{release} Requires: libgcc = %{epoch}:%{version}-%{release} %{?with_ada:Provides: gcc(ada)} Conflicts: glibc-devel < 2.2.5-20 %if %{with var_tracking} Conflicts: gdb < 6.1 %endif URL: http://gcc.gnu.org/ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _slibdir /%{_lib} %ifarch sparc64 %define _slibdir64 /lib64 %define _libdir /usr/lib %define rpmcflags -O2 -mtune=ultrasparc %endif %if %{without var_tracking} && %{with debug} %define specflags -fno-var-tracking %endif %description A compiler aimed at integrating all the optimizations and features necessary for a high-performance and stable development environment. This package contains the C compiler and some files shared by various parts of the GNU Compiler Collection. In order to use another GCC 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 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 otro compilador de GCC será necesario que instale el subpaquete adecuado. %description -l pl Kompilator, posiadający duże możliwości optymalizacyjne niezbędne do wyprodukowania szybkiego i stablinego 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 z GCC, trzeba zainstalować odpowiedni podpakiet. %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(es): Biblioteca compartida de gcc Summary(pl): Biblioteka gcc Summary(pt_BR): Biblioteca runtime para o GCC Group: Libraries Obsoletes: libgcc1 %description -n libgcc Shared gcc library. %description -n libgcc -l es Biblioteca compartida de gcc. %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(es): Soporte de C++ para 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++ Requires: gcc = %{epoch}:%{version}-%{release} %description c++ This package adds C++ support to the GNU Compiler Collection. 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 c++ -l de Dieses Paket enthält die C++-Unterstützung für den GNU-Compiler-Collection. Es unterstützt die aktuelle C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine C++-Standard-Library ist nicht enthalten - sie ist getrennt erhältlich. %description c++ -l es Este paquete ańade soporte de C++ al GCC (colección de compiladores GNU). Ello incluye el soporte para la mayoría de la especificación actual de C++, incluyendo plantillas y manejo de excepciones. No incluye la biblioteca estándar de C++, la que es disponible separada. %description c++ -l fr Ce package ajoute un support C++ a la collection de compilateurs 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 c++ -l pl Ten pakiet dodaje obsługę C++ do kompilatora gcc. Ma wsparcie dla 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 C++ kitaplýđý bu pakette yer almaz. %package objc Summary: Objective C support for gcc Summary(de): Objektive C-Unterstützung für gcc Summary(es): Soporte de Objective C para gcc Summary(fr): Gestion d'Objective C pour gcc Summary(pl): Obsługa obiektowego C dla kompilatora gcc Summary(tr): gcc için Objective C desteđi Group: Development/Languages Obsoletes: egcc-objc Obsoletes: egcs-objc Requires: libobjc = %{epoch}:%{version}-%{release} Requires: gcc = %{epoch}:%{version}-%{release} %description objc This package adds Objective C support to the GNU Compiler Collection. 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 objc -l de Dieses Paket ergänzt den GNU-Compiler-Collection 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 objc -l es Este paquete ańade soporte de Objective C al GCC (colección de compiladores GNU). Objective C es un lenguaje orientado a objetos derivado de C, principalmente usado en sistemas que funcionan bajo NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de Objective C. %description objc -l fr Ce package ajoute un support Objective C a la collection de compilateurs 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 objc -l pl Ten pakiet dodaje obsługę obiektowego C do kompilatora gcc. Obiektowe C (objc) jest zorientowaną obiektowo pochodną języka C, używaną głównie w systemach używających NeXTSTEP. W pakiecie nie ma standardowej biblioteki objc (która znajduje się w osobnym pakiecie). %description objc -l tr 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 -n libobjc Summary: Objective C Libraries Summary(es): Bibliotecas de Objective C Summary(pl): Biblioteki Obiektowego C Group: Libraries Obsoletes: libobjc1 %description -n libobjc Objective C Libraries. %description -n libobjc -l es Bibliotecas de Objective C. %description -n libobjc -l pl Biblioteki Obiektowego C. %package -n libobjc-static Summary: Static Objective C Libraries Summary(es): Bibliotecas estáticas de Objective C Summary(pl): Statyczne Biblioteki Obiektowego C Group: Development/Libraries Requires: libobjc = %{epoch}:%{version}-%{release} %description -n libobjc-static Static Objective C Libraries. %description -n libobjc-static -l es Bibliotecas estáticas de Objective C. %description -n libobjc-static -l pl Statyczne biblioteki Obiektowego C. %package g77 Summary: Fortran 77 support for gcc Summary(es): Soporte de Fortran 77 para gcc Summary(pl): Obsługa Fortranu 77 dla gcc Summary(pt_BR): Suporte Fortran 77 para o GCC Group: Development/Languages/Fortran Obsoletes: egcs-g77 Requires: libg2c = %{epoch}:%{version}-%{release} %description g77 This package adds support for compiling Fortran 77 programs with the GNU compiler. %description g77 -l es Este paquete ańade soporte para compilar programas escritos en Fortran 77 con el compilador GNU. %description g77 -l pl 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(es): Bibliotecas de Fortran 77 Summary(pl): Biblioteki Fortranu 77 Group: Libraries %description -n libg2c Fortran 77 Libraries. %description -n libg2c -l es Bibliotecas de Fortran 77. %description -n libg2c -l pl Biblioteki Fortranu 77. %package -n libg2c-static Summary: Static Fortran 77 Libraries Summary(es): Bibliotecas estáticas de Fortran 77 Summary(pl): Statyczne Biblioteki Fortranu 77 Group: Development/Libraries Requires: libg2c = %{epoch}:%{version}-%{release} %description -n libg2c-static Static Fortran 77 Libraries. %description -n libg2c -l es Bibliotecas estáticas de Fortran 77. %description -n libg2c-static -l pl Statyczne biblioteki Fortranu 77. %package java Summary: Java support for gcc Summary(es): Soporte de Java para gcc Summary(pl): Obsługa Javy dla gcc Group: Development/Languages/Java Requires: %{name} = %{epoch}:%{version}-%{release} Requires: libgcj >= 3.0.0 Requires: libgcj-devel >= 3.0.0 Requires: java-shared Provides: gcj = %{epoch}:%{version}-%{release} %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 java -l es Este paquete ańade soporte experimental para compilar programas Java(tm) y su bytecode en código nativo. Para usarlo también va a necesitar el paquete libgcj. %description java -l pl Wsparcie dla kompilowania programów Java(tm) zrówno do bajt-kodu jak i do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby można było przeprowadzić kompilację. %package java-tools Summary: Shared java tools Summary(es): Herramientas compartidas de Java Summary(pl): Współdzielone narzędzia javy Group: Development/Languages/Java Provides: jar = %{epoch}:%{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 es Este paquete contiene herramientas que son comunes para cada implementación de Java(tm), como rmic o 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(es): Bibliotecas de clases de Java Summary(pl): Biblioteki Klas Javy Group: Libraries Requires: zlib Obsoletes: libgcj3 %description -n libgcj Java Class Libraries. %description -n libgcj -l es Bibliotecas de clases de Java. %description -n libgcj -l pl Biblioteki Klas Javy. %package -n libgcj-devel Summary: Development files for Java Class Libraries Summary(es): Ficheros de desarrollo para las bibliotecas de clases de Java Summary(pl): Pliki nagłówkowe dla Bibliotek Klas Javy Group: Development/Libraries Requires: libgcj = %{epoch}:%{version}-%{release} Requires: %{name}-java Obsoletes: libgcj3-devel %description -n libgcj-devel Development files for Java Class Libraries. %description -n libgcj-devel -l es Ficheros de desarrollo para las bibliotecas de clases de Java. %description -n libgcj-devel -l pl Pliki nagłówkowe dla Bibliotek Klas Javy. %package -n libgcj-static Summary: Static Java Class Libraries Summary(es): Bibliotecas estáticas de clases de Java Summary(pl): Statyczne Biblioteki Klas Javy Group: Development/Libraries Requires: libstdc++-devel = %{epoch}:%{version}-%{release} Requires: libgcj-devel = %{epoch}:%{version}-%{release} %description -n libgcj-static Static Java Class Libraries. %description -n libgcj-static -l es Bibliotecas estáticas de clases de Java. %description -n libgcj-static -l pl Statyczne Biblioteki Klas Javy. %package -n libstdc++ Summary: GNU c++ library Summary(es): Biblioteca C++ de GNU Summary(pl): Biblioteki GNU C++ Summary(pt_BR): Biblioteca C++ GNU Group: Libraries Obsoletes: libg++ Obsoletes: libstdc++3 %description -n libstdc++ 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 -n libstdc++ -l de 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 -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 partagées nécessaires ŕ l'exécution d'application C++. %description -n libstdc++ -l pl 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 -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. %package -n libstdc++-devel Summary: Header files and documentation for C++ development Summary(de): Header-Dateien zur Entwicklung mit C++ Summary(es): Ficheros de cabecera y documentación para desarrollo 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 Requires: libstdc++ = %{epoch}:%{version}-%{release} Requires: %{name}-c++ = %{epoch}:%{version}-%{release} 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(es): Biblioteca estándar estática de C++ Summary(pl): Statyczna biblioteka standardowa C++ Group: Development/Libraries Requires: libstdc++-devel = %{epoch}:%{version}-%{release} %description -n libstdc++-static Static C++ standard library. %description -n libstdc++-static -l es Biblioteca estándar estática de C++. %description -n libstdc++-static -l pl Statycza biblioteka standardowa C++. %package -n libffi Summary: Foreign Function Interface library Summary(es): Biblioteca de interfaz de funciones ajenas Summary(pl): Biblioteka zewnętrznych wywołań funkcji Group: Libraries %description -n libffi The libffi library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at run time. %description -n libffi -l es La biblioteca libffi provee una interfaz portable de programación de alto nivel para varias convenciones de llamada. Ello permite que un programador llame una función cualquiera especificada por una descripción de interfaz de llamada en el tiempo de ejecución. %description -n libffi -l pl Biblioteka libffi dostarcza prznoś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. %package -n libffi-devel Summary: Development files for Foreign Function Interface library Summary(es): Ficheros de desarrollo para libffi Summary(pl): Pliki nagłówkowe dla libffi Group: Development/Libraries Requires: libffi = %{epoch}:%{version}-%{release} %description -n libffi-devel Development files for Foreign Function Interface library. %description -n libffi-devel -l es Ficheros de desarrollo para libffi. %description -n libffi-devel -l pl Pliki nagłówkowe dla libffi. %package -n libffi-static Summary: Static Foreign Function Interface library Summary(es): Biblioteca libffi estática Summary(pl): Statyczna biblioteka libffi Group: Development/Libraries Requires: libffi-devel = %{epoch}:%{version}-%{release} %description -n libffi-static Static Foreign Function Interface library. %description -n libffi-static -l es Biblioteca libffi estática. %description -n libffi-static -l pl Statyczna biblioteka libffi. %package ada Summary: Ada support for gcc Summary(es): Soporte de Ada para gcc Summary(pl): Obsługa Ady do gcc Group: Development/Languages Requires: libgnat = %{epoch}:%{version}-%{release} Requires: gcc = %{epoch}:%{version}-%{release} Obsoletes: gcc-gnat Obsoletes: gnat-devel Provides: libgnat %description ada This package adds experimental support for compiling Ada programs. %description ada -l es Este paquete ańade soporte experimental para compilar programas en Ada. %description ada -l pl Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w Adzie. %package -n libgnat Summary: Ada standard libraries Summary(es): Bibliotecas estándares de Ada Summary(pl): Biblioteki standardowe dla Ady Group: Libraries Obsoletes: gnat Obsoletes: libgnat1 %description -n libgnat This package contains shared libraries needed to run programs written in Ada. %description -n libgnat -l es Este paquete contiene las bibliotecas compartidas necesarias para ejecutar programas escritos en Ada. %description -n libgnat -l pl Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów napisanych w Adzie. %package -n libgnat-static Summary: Static Ada standard libraries Summary(pl): Statyczne biblioteki standardowe dla Ady Group: Libraries Obsoletes: gnat-static %description -n libgnat-static This package contains static libraries for programs written in Ada. %description -n libgnat-static -l pl Ten pakiet zawiera biblioteki statyczne dla programów napisanych w Adzie. %package ksi Summary: Ksi support for gcc Summary(es): Soporte de Ksi para gcc Summary(pl): Obsługa Ksi dla gcc Version: %{GCC_VERSION}.%{KSI_VERSION} Group: Development/Languages Requires: gcc = %{epoch}:%{version}-%{release} %description ksi This package adds experimental support for compiling Ksi programs into native code. You proabably don't need it, unless your are going to develop a compiler using Ksi as intermediate representation or you are using such compiler (like Gont). %description ksi -l es Este paquete ańade soporte experimental para compilar programas de Ksi en código nativo. Probablemento no lo necesitará, a menos que vaya a desarrollar un compilador que use Ksi como representación intermedia o use tal compilador (como Gont). %description ksi -l pl Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w Ksi do kodu maszynowego. Prawdopodobnie nie potrzebujesz go, chyba że zamierzasz pisać kompilator używający Ksi jako reprezentacji pośredniczącej, lub używasz takiego kompilatora (jak Gont). %package -n cpp Summary: The C Pre Processor Summary(es): El preprocesador de C Summary(pl): Preprocesor C Summary(pt_BR): Preprocessador para a linguagem C Group: Development/Languages Version: %{GCC_VERSION} Obsoletes: egcs-cpp Obsoletes: gcc-cpp %description -n cpp 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 -n cpp -l es El preprocesador de C es un "procesador de macros" que es usado automáticamente por el compilador C para transformar su programa antes de que éste se actualmente compile. Se llama procesador de macros porque permite definir "macros", los que son abreviaciones concisas para construcciones más largas. El preprocesador C provee cuatro cualidadedes distintas que puede usar como le convenga: - Inclusión de ficheros de cabecera. Éstos son ficheros de declaraciones que pueden incorporarse a su programa. - Expansión de macros. Puede definir "macros", los que son abreviaciones para fragmentos arbitrarios de código C, y a lo largo del programa el preprocesador sustituirá los macros con sus definiciones. - Compilación condicional. Usando especiales directivas del preproceso puede incluir o excluir partes del programa según varias condiciones. - Control de líneas. Si usa un programa para combinar o reorganizar el código fuente en un fichero intermedio que luego es compilado, puede usar control de líneas para informar el compilador de dónde origina cada línea. %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 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 indentyfikatora 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. %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}-%{version}-%{snap} mv ksi-%{KSI_VERSION} gcc/ksi %patch0 -p1 %patch1 -p1 %patch2 -p1 # because we distribute modified version of gcc... perl -pi -e 's/(version.*)";/$1 (PLD Linux)";/' gcc/version.c perl -pi -e 's@(bug_report_url.*";@' gcc/version.c %build # cd gcc && autoconf; cd .. # autoconf is not needed! cp /usr/share/automake/config.sub . rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform} CFLAGS="%{rpmcflags}" \ CXXFLAGS="%{rpmcflags}" \ TEXCONFIG=false ../configure \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --libexecdir=%{_libexecdir} \ --infodir=%{_infodir} \ --mandir=%{_mandir} \ --enable-shared \ --enable-threads=posix \ --enable-__cxa_atexit \ --enable-languages="c,c++,f77%{?with_objc:,objc}%{?with_ada:,ada}%{?with_java:,java}" \ --enable-c99 \ --enable-long-long \ %ifarch amd64 --disable-multilib \ %else --enable-multilib \ %endif --enable-nls \ --with-gnu-as \ --with-gnu-ld \ --with-system-zlib \ --with-slibdir=%{_slibdir} \ --without-x \ %{_target_platform} PATH=$PATH:/sbin:%{_sbindir} cd .. %{__make} -C obj-%{_target_platform} profiledbootstrap \ BOOT_CFLAGS="%{rpmcflags}" \ STAGE1_CFLAGS="%{rpmcflags}" \ LDFLAGS_FOR_TARGET="%{rpmldflags}" \ mandir=%{_mandir} \ infodir=%{_infodir} %if %{with ada} %{__make} -C obj-%{_target_platform}/gcc gnatlib gnattools gnatlib-shared \ LDFLAGS_FOR_TARGET="%{rpmldflags}" \ mandir=%{_mandir} \ infodir=%{_infodir} %endif %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT{/lib,%{_datadir},%{_infodir}} cd obj-%{_target_platform} PATH=$PATH:/sbin:%{_sbindir} %{__make} install \ mandir=%{_mandir} \ infodir=%{_infodir} \ DESTDIR=$RPM_BUILD_ROOT %ifarch sparc64 ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \ $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc %endif ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc 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 %if %{with ada} # move ada shared libraries to proper place... mv $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so \ $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 #ln -sf libgnarl-3.15.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-3.15.so #ln -sf libgnat-3.15.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so #ln -sf libgnarl-3.15.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so %endif ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp cd .. %if %{with java} install -d java-doc cp -f libjava/doc/cni.sgml libjava/READ* java-doc cp -f fastjar/README java-doc/README.fastjar cp -f libffi/README java-doc/README.libffi cp -f libffi/LICENSE java-doc/LICENSE.libffi %endif %if %{with objc} cp -f libobjc/README gcc/objc/README.libobjc %endif # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version} for f in libstdc++.la libsupc++.la %{?with_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 \ %{?with_java:libgcj.la lib-org-w3c-dom.la lib-org-xml-sax.la libffi.la} \ %{?with_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 # include/ contains install-tools/include/* and headers that were fixed up # by fixincludes, we don't want former gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/) mkdir $gccdir/tmp # we have to save these however mv -f $gccdir/include/{%{?with_objc:objc,}g2c.h,syslimits.h%{?with_java:,gcj}} $gccdir/tmp rm -rf $gccdir/include mv -f $gccdir/tmp $gccdir/include cp $gccdir/install-tools/include/*.h $gccdir/include # but we don't want anything more from install-tools rm -rf $gccdir/install-tools %find_lang %{name} %find_lang libstdc\+\+ %clean rm -rf $RPM_BUILD_ROOT %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 java [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1 %postun java [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1 %post ksi [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1 %postun ksi [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1 %post -n cpp [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1 %postun -n cpp [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1 %post -p /sbin/ldconfig -n libgcc %postun -p /sbin/ldconfig -n libgcc %post -p /sbin/ldconfig -n libstdc++ %postun -p /sbin/ldconfig -n libstdc++ %post -p /sbin/ldconfig -n libobjc %postun -p /sbin/ldconfig -n libobjc %post -p /sbin/ldconfig -n libg2c %postun -p /sbin/ldconfig -n libg2c %post -p /sbin/ldconfig -n libgcj %postun -p /sbin/ldconfig -n libgcj %post -p /sbin/ldconfig -n libgnat %postun -p /sbin/ldconfig -n libgnat %post -p /sbin/ldconfig -n libffi %postun -p /sbin/ldconfig -n libffi %files -f %{name}.lang %defattr(644,root,root,755) %doc READ* ChangeLog BUGS FAQ LAST_UPDATED MAINTAINERS gcc/README.Portability %dir %{_libdir}/gcc %dir %{_libdir}/gcc/* %dir %{_libdir}/gcc/*/* %dir %{_libdir}/gcc/*/*/include %attr(755,root,root) %{_bindir}/*-gcc* %attr(755,root,root) %{_bindir}/gcc %attr(755,root,root) %{_bindir}/gccbug %attr(755,root,root) %{_bindir}/gcov %attr(755,root,root) %{_bindir}/cc %{_mandir}/man1/gcc.1* %{_mandir}/man1/cc.1* %{_mandir}/man1/gcov.1* %lang(fr) %{_mandir}/fr/man1/gcc.1* %lang(ja) %{_mandir}/ja/man1/gcc.1* %{_infodir}/gcc* %attr(755,root,root) %{_slibdir}*/lib*.so %{_libdir}/gcc/*/*/libgcov.a %{_libdir}/gcc/*/*/libgcc.a %{_libdir}/gcc/*/*/libgcc_eh.a %{_libdir}/gcc/*/*/specs %attr(644,root,root) %{_libdir}*/gcc/*/*/crt*.o %ifarch sparc64 %{_libdir}/gcc/*/*/*/libgcc.a %{_libdir}/gcc/*/*/*/libgcc_eh.a %attr(644,root,root) %{_libdir}*/gcc/*/*/*/crt*.o %endif %ifarch ppc %attr(644,root,root) %{_libdir}/gcc/*/*/ecrt*.o %attr(644,root,root) %{_libdir}/gcc/*/*/ncrt*.o %{_libdir}/gcc/*/*/nof %dir %{_libdir}/nof %endif %attr(755,root,root) %{_libdir}/gcc/*/*/cc1 %attr(755,root,root) %{_libdir}/gcc/*/*/collect2 %{_libdir}/gcc/*/*/include/*.h %exclude %{_libdir}/gcc/*/*/include/g2c.h %files -n libgcc %defattr(644,root,root,755) %attr(755,root,root) %{_slibdir}*/lib*.so.* %files c++ %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/g++ %attr(755,root,root) %{_bindir}/*-g++ %attr(755,root,root) %{_bindir}/c++ %attr(755,root,root) %{_bindir}/*-c++ %attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus %{_libdir}*/libsupc++.la %ifarch ppc %{_libdir}/nof/libsupc++.la %{_libdir}/nof/libsupc++.a %endif %{_libdir}*/libsupc++.a %{_mandir}/man1/g++.1* %{_libdir}/logging.properties %lang(ja) %{_mandir}/ja/man1/g++.1* %files -n libstdc++ -f libstdc++.lang %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}*/libstdc++.so.*.*.* %ifarch ppc %attr(755,root,root) %{_libdir}/nof/libstdc++.so.*.*.* %endif %files -n libstdc++-devel %defattr(644,root,root,755) %doc libstdc++-v3/docs/html %dir %{_includedir}/c++ %{_includedir}/c++/%{version}.0 %exclude %{_includedir}/c++/%{version}.0/*/bits/stdc++.h.gch %attr(755,root,root) %{_libdir}*/libstdc++.so %{_libdir}*/libstdc++.la %ifarch ppc %attr(755,root,root) %{_libdir}/nof/libstdc++.so %{_libdir}/nof/libstdc++.la %endif %files -n libstdc++-static %defattr(644,root,root,755) %{_libdir}*/libstdc++.a %ifarch ppc %{_libdir}/nof/libstdc++.a %endif %if %{with objc} %files objc %defattr(644,root,root,755) %doc gcc/objc/READ* %attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj %attr(755,root,root) %{_libdir}*/libobjc.so %{_libdir}*/libobjc.la %ifarch ppc %attr(755,root,root) %{_libdir}/nof/libobjc.so %{_libdir}/nof/libobjc.la %endif %{_libdir}/gcc/*/*/include/objc %files -n libobjc %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}*/libobjc.so.*.*.* %ifarch ppc %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.* %endif %files -n libobjc-static %defattr(644,root,root,755) %{_libdir}*/libobjc.a %ifarch ppc %{_libdir}/nof/libobjc.a %endif %endif %files g77 %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/g77 %attr(755,root,root) %{_bindir}/f77 %{_infodir}/g77* %attr(755,root,root) %{_libdir}/gcc/*/*/f771 %{_libdir}*/libfrtbegin.a %{_libdir}*/libg2c.la %attr(755,root,root) %{_libdir}*/libg2c.so %ifarch ppc %{_libdir}/nof/libfrtbegin.a %{_libdir}/nof/libg2c.la %attr(755,root,root) %{_libdir}/nof/libg2c.so %endif %{_libdir}/gcc/*/*/include/g2c.h %{_mandir}/man1/g77.1* %{_mandir}/man1/f77.1* %lang(ja) %{_mandir}/ja/man1/g77.1* %lang(ja) %{_mandir}/ja/man1/f77.1* %files -n libg2c %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}*/libg2c.so.*.*.* %ifarch ppc %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.* %endif %files -n libg2c-static %defattr(644,root,root,755) %{_libdir}*/libg2c.a %ifarch ppc %{_libdir}/nof/libg2c.a %endif %if %{with java} %files java %defattr(644,root,root,755) %doc java-doc/* %attr(755,root,root) %{_bindir}/gcj* %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/*/*/jc1 %attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain %{_pkgconfigdir}/libgcj.pc %{_infodir}/gcj* %{_mandir}/man1/jcf-* %{_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 %{_mandir}/man1/rmi* %{_mandir}/man1/jar* %{_infodir}/fastjar* %files -n libgcj %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/addr2name.awk %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.* %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.* %ifarch ppc %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.* %endif %files -n libgcj-devel %defattr(644,root,root,755) %{_includedir}/java %{_includedir}/javax #%%{_includedir}/org %{_includedir}/gcj %{_includedir}/j*.h %{_includedir}/gnu/* %{_libdir}/gcc/*/*/include/gcj %dir %{_libdir}/security %{_libdir}/security/* %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-org-*.la %ifarch ppc %{_libdir}/nof/lib*cj*.la %attr(755,root,root) %{_libdir}/nof/lib*cj*.so %endif %files -n libgcj-static %defattr(644,root,root,755) %{_libdir}/lib*cj*.a %{_libdir}/lib-org-*.a %ifarch ppc %{_libdir}/nof/lib*cj*.a %endif %files -n libffi %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libffi-*.so %files -n libffi-devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libffi.so %{_libdir}/libffi.la %{_includedir}/ffi* %files -n libffi-static %defattr(644,root,root,755) %{_libdir}/libffi.a %endif %if %{with ada} %files ada %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/gcc/*/*/gnat1 %{_libdir}/gcc/*/*/adainclude %dir %{_libdir}/gcc/*/*/adalib %{_libdir}/gcc/*/*/adalib/*.ali %ifnarch ppc %{_libdir}/gcc/*/*/adalib/libgmem.a %endif ##%{_libdir}/gcc/*/*/adalib/Makefile.adalib %attr(755,root,root) %{_bindir}/gnat* %{_infodir}/gnat* %attr(755,root,root) %{_libdir}/libgnat*.so %attr(755,root,root) %{_libdir}/libgnarl*.so ##%files -n libgnat ##%defattr(644,root,root,755) ##%attr(755,root,root) %{_libdir}/libgna*.so.1 %files -n libgnat-static %defattr(644,root,root,755) %{_libdir}/gcc/*/*/adalib/libgna*.a %endif %if 0 %files ksi %defattr(644,root,root,755) %doc gcc/ksi/README gcc/ksi/NEWS gcc/ksi/t/*.{ksi,c,foo} %{_infodir}/ksi* %attr(755,root,root) %{_libdir}/gcc/*/*/ksi1 %endif %files -n cpp %defattr(644,root,root,755) %attr(755,root,root) /lib/cpp %attr(755,root,root) %{_bindir}/cpp %{_mandir}/man1/cpp.1* %lang(ja) %{_mandir}/ja/man1/cpp.1* %{_infodir}/cpp*