5 %bcond_with ada # build without ADA support
6 %bcond_with java # build without Java support
7 %bcond_with objc # build without ObjC support
8 %bcond_with ssp # build with stack-smashing protector support
9 %bcond_with multilib # build with multilib support
10 %ifnarch amd64 ppc64 s390x sparc64
11 %undefine with_multilib
14 Summary: GNU Compiler Collection: the C compiler and shared files
15 Summary(es): Colección de compiladores GNU: el compilador C y ficheros compartidos
16 Summary(pl): Kolekcja kompilatorów GNU: kompilator C i pliki wspó³dzielone
17 Summary(pt_BR): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
22 Group: Development/Languages
23 Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
24 # Source0-md5: 4a21ac777d4b5617283ce488b808da7b
25 Source2: http://www.trl.ibm.com/projects/security/ssp/gcc2_95_3/gcc_stack_protect.m4.gz
26 # Source2-md5: 07d93ad5fc07ca44cdaba46c658820de
27 Source3: %{name}-gcc_visibility.m4
28 Patch0: %{name}-info.patch
29 Patch1: %{name}-nolocalefiles.patch
30 Patch2: %{name}-ada-link-new-libgnat.patch
31 Patch3: %{name}-nodebug.patch
32 Patch4: %{name}-ssp.patch
33 Patch5: %{name}-ada-link.patch
34 Patch6: %{name}-pr15666.patch
36 # -fvisibility={default|internal|hidden|protected}
38 # Set the default ELF image symbol visibility to the specified option.
39 # All symbols will be marked with this unless overrided within the code.
40 # Using this feature can very substantially improve linking and load times
41 # of shared object libraries, produce more optimised code, provide near-perfect
42 # API export and prevent symbol clashes. It is strongly recommended that you
43 # use this in any shared objects you distribute.
45 # -fvisibility-inlines-hidden
47 # Causes all inlined methods to be marked with __attribute__((visibility("hidden")))
48 # so that they do not appear in the export table of a DSO and do not require a PLT
49 # indirection when used within the DSO. Enabling this option can have a dramatic
50 # effect on load and link times of a DSO as it massively reduces the size
51 # of the dynamic export table when the library makes heavy use of templates.
52 # While it can cause bloating through duplication of code within each DSO
53 # where it is used, often the wastage is less than the considerable space
54 # occupied by a long symbol name in the export table which is typical when using
55 # templates and namespaces.
57 # How to Write Shared Libraries: http://people.redhat.com/drepper/dsohowto.pdf
59 Patch7: %{name}-visibility.patch
60 Patch8: %{name}-cxxabi.patch
61 Patch9: %{name}-pr-rh.patch
63 Patch20: %{name}-ada-bootstrap.patch
64 URL: http://gcc.gnu.org/
65 BuildRequires: autoconf
66 BuildRequires: automake
67 BuildRequires: binutils >= 2:2.15.91.0.2
69 BuildRequires: fileutils >= 4.0.41
72 BuildRequires: gcc(ada)
73 BuildRequires: gcc-ada
75 BuildRequires: gettext-devel
76 BuildRequires: glibc-devel >= 2.2.5-20
77 BuildRequires: perl-devel
78 BuildRequires: texinfo >= 4.1
79 BuildRequires: zlib-devel
80 Requires: binutils >= 2:2.15.91.0.2
81 Requires: gcc-dirs >= 1.0-3
82 Provides: cpp = %{epoch}:%{version}-%{release}
83 %{?with_ada:Provides: gcc(ada)}
84 %{?with_ssp:Provides: gcc(ssp)}
85 Conflicts: glibc-devel < 2.2.5-20
86 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
88 %define _slibdir /%{_lib}
89 %ifarch amd64 ppc64 s390x sparc64
90 %define _slibdir32 /lib
91 %define _libdir32 /usr/lib
94 %define rpmcflags -O2 -mtune=ultrasparc
98 A compiler aimed at integrating all the optimizations and features
99 necessary for a high-performance and stable development environment.
101 This package contains the C compiler and some files shared by various
102 parts of the GNU Compiler Collection. In order to use another GCC
103 compiler you will need to install the appropriate subpackage.
106 Un compilador que intenta integrar todas las optimalizaciones y
107 características necesarias para un entorno de desarrollo eficaz y
110 Este paquete contiene el compilador de C y unos ficheros compartidos
111 por varias partes de la colección de compiladores GNU (GCC). Para usar
112 otro compilador de GCC será necesario que instale el subpaquete
116 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
117 wyprodukowania szybkiego i stabilnego kodu wynikowego.
119 Ten pakiet zawiera kompilator C i pliki wspó³dzielone przez ró¿ne
120 czê¶ci kolekcji kompilatorów GNU (GCC). ¯eby u¿ywaæ innego kompilatora
121 z GCC, trzeba zainstalowaæ odpowiedni podpakiet.
123 %description -l pt_BR
124 Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
125 GNU Compiler Collection.
128 Summary: Shared gcc library
129 Summary(es): Biblioteca compartida de gcc
130 Summary(pl): Biblioteka gcc
131 Summary(pt_BR): Biblioteca runtime para o GCC
137 %description libgcc -l es
138 Biblioteca compartida de gcc.
140 %description libgcc -l pl
141 Biblioteka dynamiczna gcc.
143 %description libgcc -l pt_BR
144 Biblioteca runtime para o GCC.
147 Summary: C++ support for gcc
148 Summary(es): Soporte de C++ para gcc
149 Summary(pl): Obs³uga C++ dla gcc
150 Summary(pt_BR): Suporte C++ para o gcc
151 Group: Development/Languages
152 Requires: %{name} = %{epoch}:%{version}-%{release}
155 This package adds C++ support to the GNU Compiler Collection. It
156 includes support for most of the current C++ specification, including
157 templates and exception handling. It does not include a standard C++
158 library, which is available separately.
160 %description c++ -l de
161 Dieses Paket enthält die C++-Unterstützung für den
162 GNU-Compiler-Collection. Es unterstützt die aktuelle
163 C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine
164 C++-Standard-Library ist nicht enthalten - sie ist getrennt
167 %description c++ -l es
168 Este paquete añade soporte de C++ al GCC (colección de compiladores
169 GNU). Ello incluye el soporte para la mayoría de la especificación
170 actual de C++, incluyendo plantillas y manejo de excepciones. No
171 incluye la biblioteca estándar de C++, la que es disponible separada.
173 %description c++ -l fr
174 Ce package ajoute un support C++ a la collection de compilateurs GNU.
175 Il comprend un support pour la plupart des spécifications actuelles de
176 C++, dont les modéles et la gestion des exceptions. Il ne comprend pas
177 une bibliothéque C++ standard, qui est disponible séparément.
179 %description c++ -l pl
180 Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
181 du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
182 standardowych bibliotek C++, które s± w oddzielnym pakiecie.
184 %description c++ -l pt_BR
185 Este pacote adiciona suporte C++ para o gcc.
187 %description c++ -l tr
188 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
189 aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
190 C++ kitaplýðý bu pakette yer almaz.
193 Summary: Objective C support for gcc
194 Summary(de): Objektive C-Unterstützung für gcc
195 Summary(es): Soporte de Objective C para gcc
196 Summary(fr): Gestion d'Objective C pour gcc
197 Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
198 Summary(tr): gcc için Objective C desteði
199 Group: Development/Languages
200 Requires: %{name} = %{epoch}:%{version}-%{release}
201 Requires: %{name}-libobjc = %{epoch}:%{version}-%{release}
204 This package adds Objective C support to the GNU Compiler Collection.
205 Objective C is a object oriented derivative of the C language, mainly
206 used on systems running NeXTSTEP. This package does not include the
207 standard objective C object library.
209 %description objc -l de
210 Dieses Paket ergänzt den GNU-Compiler-Collection durch
211 Objective-C-Support. Objective C ist ein objektorientiertes Derivat
212 von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt.
213 Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
215 %description objc -l es
216 Este paquete añade soporte de Objective C al GCC (colección de
217 compiladores GNU). Objective C es un lenguaje orientado a objetos
218 derivado de C, principalmente usado en sistemas que funcionan bajo
219 NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de
222 %description objc -l fr
223 Ce package ajoute un support Objective C a la collection de
224 compilateurs GNU. L'Objective C est un langage orienté objetdérivé du
225 langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce
226 package n'inclue pas la bibliothéque Objective C standard.
228 %description objc -l pl
229 Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
230 C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
231 g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
232 standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
234 %description objc -l tr
235 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
236 C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
237 sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
238 kitaplýðý bu pakette yer almaz.
241 Summary: Objective C Libraries
242 Summary(es): Bibliotecas de Objective C
243 Summary(pl): Biblioteki Obiektowego C
247 Objective C Libraries.
249 %description libobjc -l es
250 Bibliotecas de Objective C.
252 %description libobjc -l pl
253 Biblioteki Obiektowego C.
255 %package libobjc-static
256 Summary: Static Objective C Libraries
257 Summary(es): Bibliotecas estáticas de Objective C
258 Summary(pl): Statyczne Biblioteki Obiektowego C
259 Group: Development/Libraries
260 Requires: %{name}-libobjc = %{epoch}:%{version}-%{release}
262 %description libobjc-static
263 Static Objective C Libraries.
265 %description libobjc-static -l es
266 Bibliotecas estáticas de Objective C.
268 %description libobjc-static -l pl
269 Statyczne biblioteki Obiektowego C.
272 Summary: Fortran 77 support for gcc
273 Summary(es): Soporte de Fortran 77 para gcc
274 Summary(pl): Obs³uga Fortranu 77 dla gcc
275 Summary(pt_BR): Suporte Fortran 77 para o GCC
276 Group: Development/Languages/Fortran
277 Requires: %{name}-libg2c = %{epoch}:%{version}-%{release}
280 This package adds support for compiling Fortran 77 programs with the
283 %description g77 -l es
284 Este paquete añade soporte para compilar programas escritos en Fortran
285 77 con el compilador GNU.
287 %description g77 -l pl
288 Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
289 potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
291 %description g77 -l pt_BR
292 Suporte Fortran 77 para o GCC.
295 Summary: Fortran 77 Libraries
296 Summary(es): Bibliotecas de Fortran 77
297 Summary(pl): Biblioteki Fortranu 77
301 Fortran 77 Libraries.
303 %description libg2c -l es
304 Bibliotecas de Fortran 77.
306 %description libg2c -l pl
307 Biblioteki Fortranu 77.
309 %package libg2c-static
310 Summary: Static Fortran 77 Libraries
311 Summary(es): Bibliotecas estáticas de Fortran 77
312 Summary(pl): Statyczne Biblioteki Fortranu 77
313 Group: Development/Libraries
314 Requires: %{name}-libg2c = %{epoch}:%{version}-%{release}
316 %description libg2c-static
317 Static Fortran 77 Libraries.
319 %description libg2c -l es
320 Bibliotecas estáticas de Fortran 77.
322 %description libg2c-static -l pl
323 Statyczne biblioteki Fortranu 77.
326 Summary: Java support for gcc
327 Summary(es): Soporte de Java para gcc
328 Summary(pl): Obs³uga Javy dla gcc
329 Group: Development/Languages/Java
330 Requires: %{name} = %{epoch}:%{version}-%{release}
331 Requires: %{name}-libgcj = %{epoch}:%{version}-%{release}
332 Requires: %{name}-libgcj-devel = %{epoch}:%{version}-%{release}
333 Requires: java-shared
334 Provides: gcj = %{epoch}:%{version}-%{release}
337 This package adds experimental support for compiling Java(tm) programs
338 and bytecode into native code. To use this you will also need the
341 %description java -l es
342 Este paquete añade soporte experimental para compilar programas
343 Java(tm) y su bytecode en código nativo. Para usarlo también va a
344 necesitar el paquete libgcj.
346 %description java -l pl
347 Wsparcie dla kompilowania programów Java(tm) zarówno do bajt-kodu jak
348 i do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
349 by³o przeprowadziæ kompilacjê.
352 Summary: Shared java tools
353 Summary(es): Herramientas compartidas de Java
354 Summary(pl): Wspó³dzielone narzêdzia javy
355 Group: Development/Languages/Java
356 Provides: jar = %{epoch}:%{version}-%{release}
357 Provides: java-shared
360 Obsoletes: java-shared
362 %description java-tools
363 This package contains tools that are common for every Java(tm)
364 implementation, such as rmic or jar.
366 %description java-tools -l es
367 Este paquete contiene herramientas que son comunes para cada
368 implementación de Java(tm), como rmic o jar.
370 %description java-tools -l pl
371 Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji
372 Javy(tm), takie jak rmic czy jar.
375 Summary: Java Class Libraries
376 Summary(es): Bibliotecas de clases de Java
377 Summary(pl): Biblioteki Klas Javy
382 Java Class Libraries.
384 %description libgcj -l es
385 Bibliotecas de clases de Java.
387 %description libgcj -l pl
388 Biblioteki Klas Javy.
390 %package libgcj-devel
391 Summary: Development files for Java Class Libraries
392 Summary(es): Ficheros de desarrollo para las bibliotecas de clases de Java
393 Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
394 Group: Development/Libraries
395 Requires: %{name}-java = %{epoch}:%{version}-%{release}
396 Requires: %{name}-libgcj = %{epoch}:%{version}-%{release}
398 %description libgcj-devel
399 Development files for Java Class Libraries.
401 %description libgcj-devel -l es
402 Ficheros de desarrollo para las bibliotecas de clases de Java.
404 %description libgcj-devel -l pl
405 Pliki nag³ówkowe dla Bibliotek Klas Javy.
407 %package libgcj-static
408 Summary: Static Java Class Libraries
409 Summary(es): Bibliotecas estáticas de clases de Java
410 Summary(pl): Statyczne Biblioteki Klas Javy
411 Group: Development/Libraries
412 Requires: %{name}-libgcj-devel = %{epoch}:%{version}-%{release}
413 Requires: %{name}-libstdc++-devel = %{epoch}:%{version}-%{release}
415 %description libgcj-static
416 Static Java Class Libraries.
418 %description libgcj-static -l es
419 Bibliotecas estáticas de clases de Java.
421 %description libgcj-static -l pl
422 Statyczne Biblioteki Klas Javy.
425 Summary: GNU c++ library
426 Summary(es): Biblioteca C++ de GNU
427 Summary(pl): Biblioteki GNU C++
428 Summary(pt_BR): Biblioteca C++ GNU
431 %description libstdc++
432 This is the GNU implementation of the standard C++ libraries, along
433 with additional GNU tools. This package includes the shared libraries
434 necessary to run C++ applications.
436 %description libstdc++ -l de
437 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
438 weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
439 C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
441 %description libstdc++ -l es
442 Este es el soporte de las bibliotecas padrón del C++, junto con
443 herramientas GNU adicionales. El paquete incluye las bibliotecas
444 compartidas necesarias para ejecutar aplicaciones C++.
446 %description libstdc++ -l fr
447 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
448 des outils GNU supplémentaires. Ce package comprend les librairies
449 partagées nécessaires à l'exécution d'application C++.
451 %description libstdc++ -l pl
452 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
453 bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
454 uruchomienia aplikacji napisanych w C++.
456 %description libstdc++ -l pt_BR
457 Este pacote é uma implementação da biblioteca padrão C++ v3, um
458 subconjunto do padrão ISO 14882.
460 %description libstdc++ -l tr
461 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
462 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
464 %package libstdc++-devel
465 Summary: Header files and documentation for C++ development
466 Summary(de): Header-Dateien zur Entwicklung mit C++
467 Summary(es): Ficheros de cabecera y documentación para desarrollo C++
468 Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
469 Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
470 Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
471 Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
472 Group: Development/Libraries
473 Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
474 Requires: %{name}-libstdc++ = %{epoch}:%{version}-%{release}
475 Requires: glibc-devel
477 %description libstdc++-devel
478 This is the GNU implementation of the standard C++ libraries. This
479 package includes the header files needed for C++ development and
480 library documentation.
482 %description libstdc++-devel -l es
483 Este es el soporte de las bibliotecas padrón del lenguaje C++. Este
484 paquete incluye los archivos de inclusión y bibliotecas necesarios
485 para desarrollo de programas en lenguaje C++.
487 %description libstdc++-devel -l pl
488 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
489 bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
490 programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
492 %description libstdc++-devel -l pt_BR
493 Este pacote inclui os arquivos de inclusão e bibliotecas necessárias
494 para desenvolvimento de programas C++.
496 %package libstdc++-static
497 Summary: Static C++ standard library
498 Summary(es): Biblioteca estándar estática de C++
499 Summary(pl): Statyczna biblioteka standardowa C++
500 Group: Development/Libraries
501 Requires: %{name}-libstdc++-devel = %{epoch}:%{version}-%{release}
503 %description libstdc++-static
504 Static C++ standard library.
506 %description libstdc++-static -l es
507 Biblioteca estándar estática de C++.
509 %description libstdc++-static -l pl
510 Statyczna biblioteka standardowa C++.
513 Summary: Foreign Function Interface library
514 Summary(es): Biblioteca de interfaz de funciones ajenas
515 Summary(pl): Biblioteka zewnêtrznych wywo³añ funkcji
519 The libffi library provides a portable, high level programming
520 interface to various calling conventions. This allows a programmer to
521 call any function specified by a call interface description at run
524 %description libffi -l es
525 La biblioteca libffi provee una interfaz portable de programación de
526 alto nivel para varias convenciones de llamada. Ello permite que un
527 programador llame una función cualquiera especificada por una
528 descripción de interfaz de llamada en el tiempo de ejecución.
530 %description libffi -l pl
531 Biblioteka libffi dostarcza przeno¶nego, wysokopoziomowego
532 miêdzymordzia do ró¿nych konwencji wywo³añ funkcji. Pozwala to
533 programi¶cie wywo³ywaæ dowolne funkcje podaj±c konwencjê wywo³ania w
536 %package libffi-devel
537 Summary: Development files for Foreign Function Interface library
538 Summary(es): Ficheros de desarrollo para libffi
539 Summary(pl): Pliki nag³ówkowe dla libffi
540 Group: Development/Libraries
541 Requires: %{name}-libffi = %{epoch}:%{version}-%{release}
543 %description libffi-devel
544 Development files for Foreign Function Interface library.
546 %description libffi-devel -l es
547 Ficheros de desarrollo para libffi.
549 %description libffi-devel -l pl
550 Pliki nag³ówkowe dla libffi.
552 %package libffi-static
553 Summary: Static Foreign Function Interface library
554 Summary(es): Biblioteca libffi estática
555 Summary(pl): Statyczna biblioteka libffi
556 Group: Development/Libraries
557 Requires: %{name}-libffi-devel = %{epoch}:%{version}-%{release}
559 %description libffi-static
560 Static Foreign Function Interface library.
562 %description libffi-static -l es
563 Biblioteca libffi estática.
565 %description libffi-static -l pl
566 Statyczna biblioteka libffi.
569 Summary: Ada support for gcc
570 Summary(es): Soporte de Ada para gcc
571 Summary(pl): Obs³uga Ady do gcc
572 Group: Development/Languages
573 Requires: %{name} = %{epoch}:%{version}-%{release}
574 Requires: %{name}-libgnat = %{epoch}:%{version}-%{release}
577 This package adds experimental support for compiling Ada programs.
579 %description ada -l es
580 Este paquete añade soporte experimental para compilar programas en
583 %description ada -l pl
584 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w
588 Summary: Ada standard libraries
589 Summary(es): Bibliotecas estándares de Ada
590 Summary(pl): Biblioteki standardowe dla Ady
594 This package contains shared libraries needed to run programs written
597 %description libgnat -l es
598 Este paquete contiene las bibliotecas compartidas necesarias para
599 ejecutar programas escritos en Ada.
601 %description libgnat -l pl
602 Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów
605 %package libgnat-static
606 Summary: Static Ada standard libraries
607 Summary(pl): Statyczne biblioteki standardowe dla Ady
610 %description libgnat-static
611 This package contains static libraries for programs written in Ada.
613 %description libgnat-static -l pl
614 Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
618 %setup -q -n gcc-%{version}
623 %{!?debug:%patch3 -p1}
624 %{?with_ssp:%patch4 -p1}
632 # needed for bootstrap using gcc 3.3.x on alpha
633 # and even using the same 3.4.x(!) (but not Debian's 3.3.x) on ia64
637 # because we distribute modified version of gcc...
638 perl -pi -e 's/(version.*)";/$1 %{?with_ssp:SSP }(PLD Linux)";/' gcc/version.c
639 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
641 mv ChangeLog ChangeLog.general
644 # because pr16276 patch modifies configure.ac
648 cp -f /usr/share/automake/config.sub .
650 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
657 exec /usr/bin/gcc -m64 "$@"
663 CFLAGS="%{rpmcflags}" \
664 CXXFLAGS="%{rpmcflags}" \
668 --prefix=%{_prefix} \
669 --libdir=%{_libdir} \
670 --libexecdir=%{_libdir} \
671 --infodir=%{_infodir} \
672 --mandir=%{_mandir} \
673 --program-suffix="3" \
674 --enable-version-specific-runtime-libs \
676 --enable-threads=posix \
677 --enable-__cxa_atexit \
678 --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,f77}%{?with_objc:,objc}%{?with_ada:,ada}%{?with_java:,java}" \
682 %if %{without multilib}
690 --with-slibdir=%{_slibdir} \
694 PATH=$PATH:/sbin:%{_sbindir}
697 # - on alpha stage1 needs -O0 for 3.3->3.4 bootstrap (gnat from 3.3 is seriously broken)
698 # - on ia64 use bootstrap-lean as profiledbootstrap is broken (PR 13882, 15836, 16108)
699 %{__make} -C obj-%{_target_platform} \
705 GCJFLAGS="%{rpmcflags}" \
706 BOOT_CFLAGS="%{rpmcflags}" \
708 STAGE1_CFLAGS="%{rpmcflags} -O0" \
710 STAGE1_CFLAGS="%{rpmcflags}" \
712 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
717 # cannot build it in parallel
718 for tgt in gnatlib-shared gnattools gnatlib; do
719 %{__make} -C obj-%{_target_platform}/gcc $tgt \
720 BOOT_CFLAGS="%{rpmcflags}" \
721 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
728 rm -rf $RPM_BUILD_ROOT
729 install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
731 cd obj-%{_target_platform}
732 PATH=$PATH:/sbin:%{_sbindir}
734 %{__make} -j1 install \
736 infodir=%{_infodir} \
737 DESTDIR=$RPM_BUILD_ROOT
740 ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \
741 $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
744 ln -sf gcc3 $RPM_BUILD_ROOT%{_bindir}/cc3
745 echo ".so gcc3.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc3.1
748 ln -sf g773 $RPM_BUILD_ROOT%{_bindir}/f773
749 echo ".so g773.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f773.1
753 # move ada shared libraries to proper place...
754 mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
755 $RPM_BUILD_ROOT%{_libdir}
756 # check if symlink to be made is valid
757 test -f $RPM_BUILD_ROOT%{_libdir}/libgnat3.so.1
758 ln -sf libgnat3.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat3.so
759 ln -sf libgnarl3.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl3.so
760 ln -sf libgnat3.so $RPM_BUILD_ROOT%{_libdir}/libgnat3.so
761 ln -sf libgnarl3.so $RPM_BUILD_ROOT%{_libdir}/libgnarl3.so
768 cp -f libjava/doc/cni.sgml libjava/READ* java-doc
769 cp -f fastjar/README java-doc/README.fastjar
770 cp -f libffi/README java-doc/README.libffi
771 cp -f libffi/LICENSE java-doc/LICENSE.libffi
775 cp -f libobjc/README gcc/objc/README.libobjc
778 # include/ contains install-tools/include/* and headers that were fixed up
779 # by fixincludes, we don't want former
780 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
782 # we have to save these however
783 mv -f $gccdir/include/syslimits.h $gccdir/tmp
784 %{?with_cxx:mv -f $gccdir/include/c++ $gccdir/tmp}
785 %{?with_fortran:mv -f $gccdir/include/g2c.h $gccdir/tmp}
786 %{?with_objc:mv -f $gccdir/include/objc $gccdir/tmp}
787 %{?with_java:mv -f $gccdir/include/{libffi/ffitarget.h,gcj} $gccdir/tmp}
788 rm -rf $gccdir/include
789 mv -f $gccdir/tmp $gccdir/include
790 cp $gccdir/install-tools/include/*.h $gccdir/include
791 # but we don't want anything more from install-tools
792 rm -rf $gccdir/install-tools
795 ln -sf %{_slibdir}/libgcc_s.so.1 $gccdir/libgcc_s.so
796 ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/libgcc_s_32.so
800 zcat %{SOURCE2} > $RPM_BUILD_ROOT%{_aclocaldir}/gcc_stack_protect.m4
802 install %{SOURCE3} $RPM_BUILD_ROOT%{_aclocaldir}/gcc_visibility.m4
805 rm -rf $RPM_BUILD_ROOT
808 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
811 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
814 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
817 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
820 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
823 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
825 %post -p /sbin/ldconfig libgcc
826 %postun -p /sbin/ldconfig libgcc
827 %post -p /sbin/ldconfig libstdc++
828 %postun -p /sbin/ldconfig libstdc++
829 %post -p /sbin/ldconfig libobjc
830 %postun -p /sbin/ldconfig libobjc
831 %post -p /sbin/ldconfig libg2c
832 %postun -p /sbin/ldconfig libg2c
833 %post -p /sbin/ldconfig libgcj
834 %postun -p /sbin/ldconfig libgcj
835 %post -p /sbin/ldconfig libgnat
836 %postun -p /sbin/ldconfig libgnat
837 %post -p /sbin/ldconfig libffi
838 %postun -p /sbin/ldconfig libffi
841 %defattr(644,root,root,755)
842 %doc ChangeLog.general MAINTAINERS NEWS bugs.html faq.html
843 %doc gcc/{ChangeLog,ONEWS,README.Portability}
844 %dir %{_libdir}/gcc/*/*
845 %dir %{_libdir}/gcc/*/*/include
846 %{?with_ssp:%{_aclocaldir}/gcc_stack_protect.m4}
847 %{_aclocaldir}/gcc_visibility.m4
849 %attr(755,root,root) %{_bindir}/*-gcc*
850 %attr(755,root,root) %{_bindir}/gcc3
851 %attr(755,root,root) %{_bindir}/gccbug3
852 %attr(755,root,root) %{_bindir}/gcov3
853 %attr(755,root,root) %{_bindir}/cc3
854 %attr(755,root,root) %{_bindir}/cpp3
856 %{_mandir}/man1/cc3.1*
857 %{_mandir}/man1/cpp3.1*
858 %{_mandir}/man1/gcc3.1*
859 %{_mandir}/man1/gcov3.1*
861 %attr(755,root,root) %{_slibdir}/lib*.so
863 %{_slibdir}/libunwind.a
865 %{_libdir}/gcc/*/*/libgcov.a
866 %{_libdir}/gcc/*/*/libgcc.a
867 %{_libdir}/gcc/*/*/libgcc_eh.a
868 %{_libdir}/gcc/*/*/specs
869 %{_libdir}/gcc/*/*/crt*.o
871 %attr(755,root,root) %{_libdir}/gcc/*/*/libgcc_s*.so
872 %{_libdir}/gcc/*/*/32/libgcc.a
873 %{_libdir}/gcc/*/*/32/libgcc_eh.a
874 %{_libdir}/gcc/*/*/32/libgcov.a
875 %{_libdir}/gcc/*/*/32/crt*.o
878 %{_libdir}/gcc/*/*/ecrt*.o
879 %{_libdir}/gcc/*/*/ncrt*.o
880 %{_libdir}/gcc/*/*/nof
883 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1
884 %attr(755,root,root) %{_libdir}/gcc/*/*/collect2
886 %{_libdir}/gcc/*/*/include/*.h
887 %{?with_fortran:%exclude %{_libdir}/gcc/*/*/include/g2c.h}
890 %defattr(644,root,root,755)
891 %attr(755,root,root) %{_slibdir}*/lib*.so.*
893 %attr(755,root,root) %{_slibdir32}/lib*.so.*
898 %defattr(644,root,root,755)
899 %doc gcc/cp/{ChangeLog,NEWS}
900 %attr(755,root,root) %{_bindir}/g++3
901 %attr(755,root,root) %{_bindir}/*-g++3
902 %attr(755,root,root) %{_bindir}/c++3
903 %attr(755,root,root) %{_bindir}/*-c++3
904 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
905 %{_libdir}/gcc/*/*/libsupc++.la
906 %{_libdir}/gcc/*/*/libsupc++.a
908 %{_libdir}/gcc/*/*/nof/libsupc++.la
909 %{_libdir}/gcc/*/*/nof/libsupc++.a
912 %{_libdir32}/gcc/*/*/libsupc++.la
913 %{_libdir32}/gcc/*/*/libsupc++.a
915 %{_mandir}/man1/g++3.1*
918 %defattr(644,root,root,755)
919 %doc libstdc++-v3/{ChangeLog,README}
920 %attr(755,root,root) %{_libdir}/gcc/*/*/libstdc++.so.*.*.*
922 %attr(755,root,root) %{_libdir}/nof/gcc/*/*/libstdc++.so.*.*.*
925 %attr(755,root,root) %{_libdir32}/gcc/*/*/libstdc++.so.*.*.*
928 %files libstdc++-devel
929 %defattr(644,root,root,755)
930 %doc libstdc++-v3/docs/html
931 %{_libdir}/gcc/*/*/include/c++
932 %attr(755,root,root) %{_libdir}/gcc/*/*/libstdc++.so
933 %{_libdir}/gcc/*/*/libstdc++.la
935 %attr(755,root,root) %{_libdir}/gcc/*/*/nof/libstdc++.so
936 %{_libdir}/gcc/*/*/nof/libstdc++.la
939 %attr(755,root,root) %{_libdir32}/gcc/*/*/libstdc++.so
940 %{_libdir32}/gcc/*/*/libstdc++.la
943 %files libstdc++-static
944 %defattr(644,root,root,755)
945 %{_libdir}/gcc/*/*/libstdc++.a
947 %{_libdir}/gcc/*/*/nof/libstdc++.a
950 %{_libdir32}/gcc/*/*/libstdc++.a
956 %defattr(644,root,root,755)
958 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
959 %attr(755,root,root) %{_libdir}/libobjc.so
960 %{_libdir}/libobjc.la
962 %attr(755,root,root) %{_libdir}/nof/libobjc.so
963 %{_libdir}/nof/libobjc.la
966 %attr(755,root,root) %{_libdir32}/libobjc.so
967 %{_libdir32}/libobjc.la
969 %{_libdir}/gcc/*/*/include/objc
972 %defattr(644,root,root,755)
973 %doc libobjc/{ChangeLog,README*}
974 %attr(755,root,root) %{_libdir}/libobjc.so.*.*.*
976 %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.*
979 %attr(755,root,root) %{_libdir32}/libobjc.so.*.*.*
982 %files libobjc-static
983 %defattr(644,root,root,755)
986 %{_libdir}/nof/libobjc.a
989 %{_libdir32}/libobjc.a
995 %defattr(644,root,root,755)
996 %doc gcc/f/{BUGS,ChangeLog,NEWS}
997 %attr(755,root,root) %{_bindir}/g77-*
998 %attr(755,root,root) %{_bindir}/f77
1000 %attr(755,root,root) %{_libdir}/gcc/*/*/f771
1001 %{_libdir}/libfrtbegin.a
1002 %{_libdir}/libg2c.la
1003 %attr(755,root,root) %{_libdir}/libg2c.so
1005 %{_libdir}/nof/libfrtbegin.a
1006 %{_libdir}/nof/libg2c.la
1007 %attr(755,root,root) %{_libdir}/nof/libg2c.so
1009 %if %{with multilib}
1010 %{_libdir32}/libfrtbegin.a
1011 %{_libdir32}/libg2c.la
1012 %attr(755,root,root) %{_libdir32}/libg2c.so
1014 %{_libdir}/gcc/*/*/include/g2c.h
1015 %{_mandir}/man1/g77.1*
1016 %{_mandir}/man1/f77.1*
1019 %defattr(644,root,root,755)
1020 %doc libf2c/{ChangeLog,README,TODO}
1021 %attr(755,root,root) %{_libdir}/libg2c.so.*.*.*
1023 %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.*
1025 %if %{with multilib}
1026 %attr(755,root,root) %{_libdir32}/libg2c.so.*.*.*
1029 %files libg2c-static
1030 %defattr(644,root,root,755)
1033 %{_libdir}/nof/libg2c.a
1035 %if %{with multilib}
1036 %{_libdir32}/libg2c.a
1042 %defattr(644,root,root,755)
1043 %doc gcc/java/ChangeLog java-doc/*
1044 %attr(755,root,root) %{_bindir}/gcj*
1045 %attr(755,root,root) %{_bindir}/gij
1046 %attr(755,root,root) %{_bindir}/jcf-dump
1047 %attr(755,root,root) %{_bindir}/jv-*
1048 %attr(755,root,root) %{_bindir}/grepjar
1049 %attr(755,root,root) %{_bindir}/*-gcj*
1050 %attr(755,root,root) %{_libdir}/gcc/*/*/jc1
1051 %attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
1053 %{_mandir}/man1/jcf-*
1054 %{_mandir}/man1/jv-*
1055 %{_mandir}/man1/gij*
1056 %{_mandir}/man1/gcj*
1057 %{_mandir}/man1/grepjar*
1060 %defattr(644,root,root,755)
1061 %attr(755,root,root) %{_bindir}/rmi*
1062 %attr(755,root,root) %{_bindir}/jar
1063 %{_mandir}/man1/rmi*
1064 %{_mandir}/man1/jar*
1065 %{_infodir}/fastjar*
1068 %defattr(644,root,root,755)
1069 %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
1070 %attr(755,root,root) %{_bindir}/addr2name.awk
1071 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
1072 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
1074 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
1076 %{_libdir}/logging.properties
1079 %defattr(644,root,root,755)
1081 %{_includedir}/javax
1084 %{_includedir}/gnu/*
1085 %{_libdir}/gcc/*/*/include/gcj
1086 %dir %{_libdir}/security
1087 %{_libdir}/security/*
1088 %dir %{_datadir}/java
1089 %{_datadir}/java/libgcj*.jar
1090 %{_libdir}/lib*cj.spec
1091 %{_libdir}/lib*cj*.la
1092 %attr(755,root,root) %{_libdir}/lib*cj*.so
1093 %attr(755,root,root) %{_libdir}/lib-org-*.so
1094 %{_libdir}/lib-org-*.la
1096 %{_libdir}/nof/lib*cj*.la
1097 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so
1099 %{_pkgconfigdir}/libgcj.pc
1101 %files libgcj-static
1102 %defattr(644,root,root,755)
1103 %{_libdir}/lib*cj*.a
1104 %{_libdir}/lib-org-*.a
1106 %{_libdir}/nof/lib*cj*.a
1110 %defattr(644,root,root,755)
1111 %doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
1112 %attr(755,root,root) %{_libdir}/libffi-*.so
1115 %defattr(644,root,root,755)
1116 %{_libdir}/gcc/*/*/include/ffitarget.h
1117 %attr(755,root,root) %{_libdir}/libffi.so
1118 %{_libdir}/libffi.la
1119 %{_includedir}/ffi.h
1121 %files libffi-static
1122 %defattr(644,root,root,755)
1128 %defattr(644,root,root,755)
1129 %doc gcc/ada/ChangeLog
1130 %attr(755,root,root) %{_bindir}/gnat*
1131 %attr(755,root,root) %{_bindir}/gpr*
1132 %attr(755,root,root) %{_libdir}/libgnarl*.so
1133 %attr(755,root,root) %{_libdir}/libgnat*.so
1134 %attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
1135 %{_libdir}/gcc/*/*/adainclude
1136 %dir %{_libdir}/gcc/*/*/adalib
1137 %{_libdir}/gcc/*/*/adalib/*.ali
1138 %{_libdir}/gcc/*/*/adalib/g-trasym.o
1139 %{_libdir}/gcc/*/*/adalib/libgccprefix.a
1141 %{_libdir}/gcc/*/*/adalib/libgmem.a
1147 %defattr(644,root,root,755)
1148 %attr(755,root,root) %{_libdir}/libgnarl*.so.1
1149 %attr(755,root,root) %{_libdir}/libgnat*.so.1
1151 %files libgnat-static
1152 %defattr(644,root,root,755)
1153 %{_libdir}/gcc/*/*/adalib/libgnarl.a
1154 %{_libdir}/gcc/*/*/adalib/libgnat.a