3 # - http://gcc.gnu.org/PR11203 (inline-asm)
4 # - http://gcc.gnu.org/PR14776 (target / wrong SSE-code)
5 # - http://gcc.gnu.org/PR18378 (regression)
10 %bcond_with ada # build without ADA support
11 %bcond_with java # build without Java support
12 %bcond_with objc # build without ObjC support
13 %bcond_with ssp # build with stack-smashing protector support
14 %bcond_with multilib # build with multilib support
15 %ifnarch amd64 ppc64 s390x sparc64
16 %undefine with_multilib
19 Summary: GNU Compiler Collection: the C compiler and shared files
20 Summary(es): Colección de compiladores GNU: el compilador C y ficheros compartidos
21 Summary(pl): Kolekcja kompilatorów GNU: kompilator C i pliki wspó³dzielone
22 Summary(pt_BR): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
27 Group: Development/Languages
28 Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
29 # Source0-md5: e744b30c834360fccac41eb7269a3011
30 Source2: http://www.trl.ibm.com/projects/security/ssp/gcc2_95_3/gcc_stack_protect.m4.gz
31 # Source2-md5: 07d93ad5fc07ca44cdaba46c658820de
32 Source3: %{name}-gcc_visibility.m4
33 Patch0: %{name}-info.patch
34 Patch1: %{name}-nolocalefiles.patch
35 Patch2: %{name}-ada-link-new-libgnat.patch
36 Patch3: %{name}-nodebug.patch
37 Patch4: %{name}-ssp.patch
38 Patch5: %{name}-ada-link.patch
39 Patch6: %{name}-pr15666.patch
40 Patch7: %{name}-pr16276.patch
41 Patch8: %{name}-pr18185.patch
43 # -fvisibility={default|internal|hidden|protected}
45 # Set the default ELF image symbol visibility to the specified option.
46 # All symbols will be marked with this unless overrided within the code.
47 # Using this feature can very substantially improve linking and load times
48 # of shared object libraries, produce more optimised code, provide near-perfect
49 # API export and prevent symbol clashes. It is strongly recommended that you
50 # use this in any shared objects you distribute.
52 # -fvisibility-inlines-hidden
54 # Causes all inlined methods to be marked with __attribute__((visibility("hidden")))
55 # so that they do not appear in the export table of a DSO and do not require a PLT
56 # indirection when used within the DSO. Enabling this option can have a dramatic
57 # effect on load and link times of a DSO as it massively reduces the size
58 # of the dynamic export table when the library makes heavy use of templates.
59 # While it can cause bloating through duplication of code within each DSO
60 # where it is used, often the wastage is less than the considerable space
61 # occupied by a long symbol name in the export table which is typical when using
62 # templates and namespaces.
64 # How to Write Shared Libraries: http://people.redhat.com/drepper/dsohowto.pdf
66 Patch9: %{name}-visibility.patch
67 Patch10: %{name}-pr13470.patch
68 Patch11: %{name}-cxxabi.patch
69 Patch12: %{name}-pr-rh.patch
71 Patch20: %{name}-ada-bootstrap.patch
72 URL: http://gcc.gnu.org/
73 BuildRequires: autoconf
74 BuildRequires: automake
75 BuildRequires: binutils >= 2:2.15.91.0.2
77 BuildRequires: fileutils >= 4.0.41
80 BuildRequires: gcc(ada)
81 BuildRequires: gcc-ada
83 BuildRequires: gettext-devel
84 BuildRequires: glibc-devel >= 2.2.5-20
85 BuildRequires: perl-devel
86 BuildRequires: texinfo >= 4.1
87 BuildRequires: zlib-devel
88 Requires: binutils >= 2:2.15.91.0.2
89 Requires: gcc-dirs >= 1.0-3
90 Provides: cpp = %{epoch}:%{version}-%{release}
91 %{?with_ada:Provides: gcc(ada)}
92 %{?with_ssp:Provides: gcc(ssp)}
93 Conflicts: glibc-devel < 2.2.5-20
94 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
96 %define _slibdir /%{_lib}
97 %ifarch amd64 ppc64 s390x sparc64
98 %define _slibdir32 /lib
99 %define _libdir32 /usr/lib
102 %define rpmcflags -O2 -mtune=ultrasparc
106 A compiler aimed at integrating all the optimizations and features
107 necessary for a high-performance and stable development environment.
109 This package contains the C compiler and some files shared by various
110 parts of the GNU Compiler Collection. In order to use another GCC
111 compiler you will need to install the appropriate subpackage.
114 Un compilador que intenta integrar todas las optimalizaciones y
115 características necesarias para un entorno de desarrollo eficaz y
118 Este paquete contiene el compilador de C y unos ficheros compartidos
119 por varias partes de la colección de compiladores GNU (GCC). Para usar
120 otro compilador de GCC será necesario que instale el subpaquete
124 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
125 wyprodukowania szybkiego i stabilnego kodu wynikowego.
127 Ten pakiet zawiera kompilator C i pliki wspó³dzielone przez ró¿ne
128 czê¶ci kolekcji kompilatorów GNU (GCC). ¯eby u¿ywaæ innego kompilatora
129 z GCC, trzeba zainstalowaæ odpowiedni podpakiet.
131 %description -l pt_BR
132 Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
133 GNU Compiler Collection.
136 Summary: Shared gcc library
137 Summary(es): Biblioteca compartida de gcc
138 Summary(pl): Biblioteka gcc
139 Summary(pt_BR): Biblioteca runtime para o GCC
145 %description libgcc -l es
146 Biblioteca compartida de gcc.
148 %description libgcc -l pl
149 Biblioteka dynamiczna gcc.
151 %description libgcc -l pt_BR
152 Biblioteca runtime para o GCC.
155 Summary: C++ support for gcc
156 Summary(es): Soporte de C++ para gcc
157 Summary(pl): Obs³uga C++ dla gcc
158 Summary(pt_BR): Suporte C++ para o gcc
159 Group: Development/Languages
160 Requires: %{name} = %{epoch}:%{version}-%{release}
163 This package adds C++ support to the GNU Compiler Collection. It
164 includes support for most of the current C++ specification, including
165 templates and exception handling. It does not include a standard C++
166 library, which is available separately.
168 %description c++ -l de
169 Dieses Paket enthält die C++-Unterstützung für den
170 GNU-Compiler-Collection. Es unterstützt die aktuelle
171 C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine
172 C++-Standard-Library ist nicht enthalten - sie ist getrennt
175 %description c++ -l es
176 Este paquete añade soporte de C++ al GCC (colección de compiladores
177 GNU). Ello incluye el soporte para la mayoría de la especificación
178 actual de C++, incluyendo plantillas y manejo de excepciones. No
179 incluye la biblioteca estándar de C++, la que es disponible separada.
181 %description c++ -l fr
182 Ce package ajoute un support C++ a la collection de compilateurs GNU.
183 Il comprend un support pour la plupart des spécifications actuelles de
184 C++, dont les modéles et la gestion des exceptions. Il ne comprend pas
185 une bibliothéque C++ standard, qui est disponible séparément.
187 %description c++ -l pl
188 Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
189 du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
190 standardowych bibliotek C++, które s± w oddzielnym pakiecie.
192 %description c++ -l pt_BR
193 Este pacote adiciona suporte C++ para o gcc.
195 %description c++ -l tr
196 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
197 aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
198 C++ kitaplýðý bu pakette yer almaz.
201 Summary: Objective C support for gcc
202 Summary(de): Objektive C-Unterstützung für gcc
203 Summary(es): Soporte de Objective C para gcc
204 Summary(fr): Gestion d'Objective C pour gcc
205 Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
206 Summary(tr): gcc için Objective C desteði
207 Group: Development/Languages
208 Requires: %{name} = %{epoch}:%{version}-%{release}
209 Requires: %{name}-libobjc = %{epoch}:%{version}-%{release}
212 This package adds Objective C support to the GNU Compiler Collection.
213 Objective C is a object oriented derivative of the C language, mainly
214 used on systems running NeXTSTEP. This package does not include the
215 standard objective C object library.
217 %description objc -l de
218 Dieses Paket ergänzt den GNU-Compiler-Collection durch
219 Objective-C-Support. Objective C ist ein objektorientiertes Derivat
220 von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt.
221 Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
223 %description objc -l es
224 Este paquete añade soporte de Objective C al GCC (colección de
225 compiladores GNU). Objective C es un lenguaje orientado a objetos
226 derivado de C, principalmente usado en sistemas que funcionan bajo
227 NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de
230 %description objc -l fr
231 Ce package ajoute un support Objective C a la collection de
232 compilateurs GNU. L'Objective C est un langage orienté objetdérivé du
233 langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce
234 package n'inclue pas la bibliothéque Objective C standard.
236 %description objc -l pl
237 Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
238 C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
239 g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
240 standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
242 %description objc -l tr
243 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
244 C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
245 sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
246 kitaplýðý bu pakette yer almaz.
249 Summary: Objective C Libraries
250 Summary(es): Bibliotecas de Objective C
251 Summary(pl): Biblioteki Obiektowego C
255 Objective C Libraries.
257 %description libobjc -l es
258 Bibliotecas de Objective C.
260 %description libobjc -l pl
261 Biblioteki Obiektowego C.
263 %package libobjc-static
264 Summary: Static Objective C Libraries
265 Summary(es): Bibliotecas estáticas de Objective C
266 Summary(pl): Statyczne Biblioteki Obiektowego C
267 Group: Development/Libraries
268 Requires: %{name}-libobjc = %{epoch}:%{version}-%{release}
270 %description libobjc-static
271 Static Objective C Libraries.
273 %description libobjc-static -l es
274 Bibliotecas estáticas de Objective C.
276 %description libobjc-static -l pl
277 Statyczne biblioteki Obiektowego C.
280 Summary: Fortran 77 support for gcc
281 Summary(es): Soporte de Fortran 77 para gcc
282 Summary(pl): Obs³uga Fortranu 77 dla gcc
283 Summary(pt_BR): Suporte Fortran 77 para o GCC
284 Group: Development/Languages/Fortran
285 Requires: %{name}-libg2c = %{epoch}:%{version}-%{release}
288 This package adds support for compiling Fortran 77 programs with the
291 %description g77 -l es
292 Este paquete añade soporte para compilar programas escritos en Fortran
293 77 con el compilador GNU.
295 %description g77 -l pl
296 Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
297 potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
299 %description g77 -l pt_BR
300 Suporte Fortran 77 para o GCC.
303 Summary: Fortran 77 Libraries
304 Summary(es): Bibliotecas de Fortran 77
305 Summary(pl): Biblioteki Fortranu 77
309 Fortran 77 Libraries.
311 %description libg2c -l es
312 Bibliotecas de Fortran 77.
314 %description libg2c -l pl
315 Biblioteki Fortranu 77.
317 %package libg2c-static
318 Summary: Static Fortran 77 Libraries
319 Summary(es): Bibliotecas estáticas de Fortran 77
320 Summary(pl): Statyczne Biblioteki Fortranu 77
321 Group: Development/Libraries
322 Requires: %{name}-libg2c = %{epoch}:%{version}-%{release}
324 %description libg2c-static
325 Static Fortran 77 Libraries.
327 %description libg2c -l es
328 Bibliotecas estáticas de Fortran 77.
330 %description libg2c-static -l pl
331 Statyczne biblioteki Fortranu 77.
334 Summary: Java support for gcc
335 Summary(es): Soporte de Java para gcc
336 Summary(pl): Obs³uga Javy dla gcc
337 Group: Development/Languages/Java
338 Requires: %{name} = %{epoch}:%{version}-%{release}
339 Requires: %{name}-libgcj = %{epoch}:%{version}-%{release}
340 Requires: %{name}-libgcj-devel = %{epoch}:%{version}-%{release}
341 Requires: java-shared
342 Provides: gcj = %{epoch}:%{version}-%{release}
345 This package adds experimental support for compiling Java(tm) programs
346 and bytecode into native code. To use this you will also need the
349 %description java -l es
350 Este paquete añade soporte experimental para compilar programas
351 Java(tm) y su bytecode en código nativo. Para usarlo también va a
352 necesitar el paquete libgcj.
354 %description java -l pl
355 Wsparcie dla kompilowania programów Java(tm) zarówno do bajt-kodu jak i
356 do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
357 by³o przeprowadziæ kompilacjê.
360 Summary: Shared java tools
361 Summary(es): Herramientas compartidas de Java
362 Summary(pl): Wspó³dzielone narzêdzia javy
363 Group: Development/Languages/Java
364 Provides: jar = %{epoch}:%{version}-%{release}
365 Provides: java-shared
368 Obsoletes: java-shared
370 %description java-tools
371 This package contains tools that are common for every Java(tm)
372 implementation, such as rmic or jar.
374 %description java-tools -l es
375 Este paquete contiene herramientas que son comunes para cada
376 implementación de Java(tm), como rmic o jar.
378 %description java-tools -l pl
379 Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji
380 Javy(tm), takie jak rmic czy jar.
383 Summary: Java Class Libraries
384 Summary(es): Bibliotecas de clases de Java
385 Summary(pl): Biblioteki Klas Javy
390 Java Class Libraries.
392 %description libgcj -l es
393 Bibliotecas de clases de Java.
395 %description libgcj -l pl
396 Biblioteki Klas Javy.
398 %package libgcj-devel
399 Summary: Development files for Java Class Libraries
400 Summary(es): Ficheros de desarrollo para las bibliotecas de clases de Java
401 Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
402 Group: Development/Libraries
403 Requires: %{name}-java = %{epoch}:%{version}-%{release}
404 Requires: %{name}-libgcj = %{epoch}:%{version}-%{release}
406 %description libgcj-devel
407 Development files for Java Class Libraries.
409 %description libgcj-devel -l es
410 Ficheros de desarrollo para las bibliotecas de clases de Java.
412 %description libgcj-devel -l pl
413 Pliki nag³ówkowe dla Bibliotek Klas Javy.
415 %package libgcj-static
416 Summary: Static Java Class Libraries
417 Summary(es): Bibliotecas estáticas de clases de Java
418 Summary(pl): Statyczne Biblioteki Klas Javy
419 Group: Development/Libraries
420 Requires: %{name}-libgcj-devel = %{epoch}:%{version}-%{release}
421 Requires: %{name}-libstdc++-devel = %{epoch}:%{version}-%{release}
423 %description libgcj-static
424 Static Java Class Libraries.
426 %description libgcj-static -l es
427 Bibliotecas estáticas de clases de Java.
429 %description libgcj-static -l pl
430 Statyczne Biblioteki Klas Javy.
433 Summary: GNU c++ library
434 Summary(es): Biblioteca C++ de GNU
435 Summary(pl): Biblioteki GNU C++
436 Summary(pt_BR): Biblioteca C++ GNU
439 %description libstdc++
440 This is the GNU implementation of the standard C++ libraries, along
441 with additional GNU tools. This package includes the shared libraries
442 necessary to run C++ applications.
444 %description libstdc++ -l de
445 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
446 weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
447 C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
449 %description libstdc++ -l es
450 Este es el soporte de las bibliotecas padrón del C++, junto con
451 herramientas GNU adicionales. El paquete incluye las bibliotecas
452 compartidas necesarias para ejecutar aplicaciones C++.
454 %description libstdc++ -l fr
455 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
456 des outils GNU supplémentaires. Ce package comprend les librairies
457 partagées nécessaires à l'exécution d'application C++.
459 %description libstdc++ -l pl
460 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
461 bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
462 uruchomienia aplikacji napisanych w C++.
464 %description libstdc++ -l pt_BR
465 Este pacote é uma implementação da biblioteca padrão C++ v3, um
466 subconjunto do padrão ISO 14882.
468 %description libstdc++ -l tr
469 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
470 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
472 %package libstdc++-devel
473 Summary: Header files and documentation for C++ development
474 Summary(de): Header-Dateien zur Entwicklung mit C++
475 Summary(es): Ficheros de cabecera y documentación para desarrollo C++
476 Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
477 Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
478 Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
479 Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
480 Group: Development/Libraries
481 Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
482 Requires: %{name}-libstdc++ = %{epoch}:%{version}-%{release}
483 Requires: glibc-devel
485 %description libstdc++-devel
486 This is the GNU implementation of the standard C++ libraries. This
487 package includes the header files needed for C++ development and
488 library documentation.
490 %description libstdc++-devel -l es
491 Este es el soporte de las bibliotecas padrón del lenguaje C++. Este
492 paquete incluye los archivos de inclusión y bibliotecas necesarios
493 para desarrollo de programas en lenguaje C++.
495 %description libstdc++-devel -l pl
496 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
497 bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
498 programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
500 %description libstdc++-devel -l pt_BR
501 Este pacote inclui os arquivos de inclusão e bibliotecas necessárias
502 para desenvolvimento de programas C++.
504 %package libstdc++-static
505 Summary: Static C++ standard library
506 Summary(es): Biblioteca estándar estática de C++
507 Summary(pl): Statyczna biblioteka standardowa C++
508 Group: Development/Libraries
509 Requires: %{name}-libstdc++-devel = %{epoch}:%{version}-%{release}
511 %description libstdc++-static
512 Static C++ standard library.
514 %description libstdc++-static -l es
515 Biblioteca estándar estática de C++.
517 %description libstdc++-static -l pl
518 Statyczna biblioteka standardowa C++.
521 Summary: Foreign Function Interface library
522 Summary(es): Biblioteca de interfaz de funciones ajenas
523 Summary(pl): Biblioteka zewnêtrznych wywo³añ funkcji
527 The libffi library provides a portable, high level programming
528 interface to various calling conventions. This allows a programmer to
529 call any function specified by a call interface description at run
532 %description libffi -l es
533 La biblioteca libffi provee una interfaz portable de programación de
534 alto nivel para varias convenciones de llamada. Ello permite que un
535 programador llame una función cualquiera especificada por una
536 descripción de interfaz de llamada en el tiempo de ejecución.
538 %description libffi -l pl
539 Biblioteka libffi dostarcza przeno¶nego, wysokopoziomowego
540 miêdzymordzia do ró¿nych konwencji wywo³añ funkcji. Pozwala to
541 programi¶cie wywo³ywaæ dowolne funkcje podaj±c konwencjê wywo³ania w
544 %package libffi-devel
545 Summary: Development files for Foreign Function Interface library
546 Summary(es): Ficheros de desarrollo para libffi
547 Summary(pl): Pliki nag³ówkowe dla libffi
548 Group: Development/Libraries
549 Requires: %{name}-libffi = %{epoch}:%{version}-%{release}
551 %description libffi-devel
552 Development files for Foreign Function Interface library.
554 %description libffi-devel -l es
555 Ficheros de desarrollo para libffi.
557 %description libffi-devel -l pl
558 Pliki nag³ówkowe dla libffi.
560 %package libffi-static
561 Summary: Static Foreign Function Interface library
562 Summary(es): Biblioteca libffi estática
563 Summary(pl): Statyczna biblioteka libffi
564 Group: Development/Libraries
565 Requires: %{name}-libffi-devel = %{epoch}:%{version}-%{release}
567 %description libffi-static
568 Static Foreign Function Interface library.
570 %description libffi-static -l es
571 Biblioteca libffi estática.
573 %description libffi-static -l pl
574 Statyczna biblioteka libffi.
577 Summary: Ada support for gcc
578 Summary(es): Soporte de Ada para gcc
579 Summary(pl): Obs³uga Ady do gcc
580 Group: Development/Languages
581 Requires: %{name} = %{epoch}:%{version}-%{release}
582 Requires: %{name}-libgnat = %{epoch}:%{version}-%{release}
585 This package adds experimental support for compiling Ada programs.
587 %description ada -l es
588 Este paquete añade soporte experimental para compilar programas en
591 %description ada -l pl
592 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w
596 Summary: Ada standard libraries
597 Summary(es): Bibliotecas estándares de Ada
598 Summary(pl): Biblioteki standardowe dla Ady
602 This package contains shared libraries needed to run programs written
605 %description libgnat -l es
606 Este paquete contiene las bibliotecas compartidas necesarias para
607 ejecutar programas escritos en Ada.
609 %description libgnat -l pl
610 Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów
613 %package libgnat-static
614 Summary: Static Ada standard libraries
615 Summary(pl): Statyczne biblioteki standardowe dla Ady
618 %description libgnat-static
619 This package contains static libraries for programs written in Ada.
621 %description libgnat-static -l pl
622 Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
626 %setup -q -n gcc-%{version}
631 %{!?debug:%patch3 -p1}
632 %{?with_ssp:%patch4 -p1}
643 # needed for bootstrap using gcc 3.3.x on alpha
644 # and even using the same 3.4.x(!) (but not Debian's 3.3.x) on ia64
648 # because we distribute modified version of gcc...
649 perl -pi -e 's/(version.*)";/$1 %{?with_ssp:SSP }(PLD Linux)";/' gcc/version.c
650 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
652 mv ChangeLog ChangeLog.general
655 # because pr16276 patch modifies configure.ac
659 cp -f /usr/share/automake/config.sub .
661 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
668 exec /usr/bin/gcc -m64 "$@"
674 CFLAGS="%{rpmcflags}" \
675 CXXFLAGS="%{rpmcflags}" \
679 --prefix=%{_prefix} \
680 --libdir=%{_libdir} \
681 --libexecdir=%{_libdir} \
682 --infodir=%{_infodir} \
683 --mandir=%{_mandir} \
684 --program-suffix="-3.4" \
685 --enable-version-specific-runtime-libs \
687 --enable-threads=posix \
688 --enable-__cxa_atexit \
689 --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,f77}%{?with_objc:,objc}%{?with_ada:,ada}%{?with_java:,java}" \
693 %if %{without multilib}
701 --with-slibdir=%{_slibdir} \
705 PATH=$PATH:/sbin:%{_sbindir}
708 # - on alpha stage1 needs -O0 for 3.3->3.4 bootstrap (gnat from 3.3 is seriously broken)
709 # - on ia64 use bootstrap-lean as profiledbootstrap is broken (PR 13882, 15836, 16108)
710 %{__make} -C obj-%{_target_platform} \
716 GCJFLAGS="%{rpmcflags}" \
717 BOOT_CFLAGS="%{rpmcflags}" \
719 STAGE1_CFLAGS="%{rpmcflags} -O0" \
721 STAGE1_CFLAGS="%{rpmcflags}" \
723 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
728 # cannot build it in parallel
729 for tgt in gnatlib-shared gnattools gnatlib; do
730 %{__make} -C obj-%{_target_platform}/gcc $tgt \
731 BOOT_CFLAGS="%{rpmcflags}" \
732 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
739 rm -rf $RPM_BUILD_ROOT
740 install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
742 cd obj-%{_target_platform}
743 PATH=$PATH:/sbin:%{_sbindir}
745 %{__make} -j1 install \
747 infodir=%{_infodir} \
748 DESTDIR=$RPM_BUILD_ROOT
751 ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \
752 $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
755 ln -sf gcc-3.4 $RPM_BUILD_ROOT%{_bindir}/cc-3.4
756 echo ".so gcc-3.4.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc-3.4.1
759 ln -sf g77-3.4 $RPM_BUILD_ROOT%{_bindir}/f77-3.4
760 echo ".so g77-3.4.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f77-3.4.1
764 # move ada shared libraries to proper place...
765 mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
766 $RPM_BUILD_ROOT%{_libdir}
767 # check if symlink to be made is valid
768 test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so.1
769 ln -sf libgnat-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so
770 ln -sf libgnarl-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-3.4.so
771 ln -sf libgnat-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
772 ln -sf libgnarl-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
779 cp -f libjava/doc/cni.sgml libjava/READ* java-doc
780 cp -f fastjar/README java-doc/README.fastjar
781 cp -f libffi/README java-doc/README.libffi
782 cp -f libffi/LICENSE java-doc/LICENSE.libffi
786 cp -f libobjc/README gcc/objc/README.libobjc
789 # include/ contains install-tools/include/* and headers that were fixed up
790 # by fixincludes, we don't want former
791 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
793 # we have to save these however
794 mv -f $gccdir/include/syslimits.h $gccdir/tmp
795 %{?with_cxx:mv -f $gccdir/include/c++ $gccdir/tmp}
796 %{?with_fortran:mv -f $gccdir/include/g2c.h $gccdir/tmp}
797 %{?with_objc:mv -f $gccdir/include/objc $gccdir/tmp}
798 %{?with_java:mv -f $gccdir/include/{libffi/ffitarget.h,gcj} $gccdir/tmp}
799 rm -rf $gccdir/include
800 mv -f $gccdir/tmp $gccdir/include
801 cp $gccdir/install-tools/include/*.h $gccdir/include
802 # but we don't want anything more from install-tools
803 rm -rf $gccdir/install-tools
806 ln -sf %{_slibdir}/libgcc_s.so.1 $gccdir/libgcc_s.so
807 ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/libgcc_s_32.so
811 zcat %{SOURCE2} > $RPM_BUILD_ROOT%{_aclocaldir}/gcc_stack_protect.m4
813 install %{SOURCE3} $RPM_BUILD_ROOT%{_aclocaldir}/gcc_visibility.m4
816 rm -rf $RPM_BUILD_ROOT
819 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
822 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
825 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
828 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
831 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
834 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
836 %post -p /sbin/ldconfig libgcc
837 %postun -p /sbin/ldconfig libgcc
838 %post -p /sbin/ldconfig libstdc++
839 %postun -p /sbin/ldconfig libstdc++
840 %post -p /sbin/ldconfig libobjc
841 %postun -p /sbin/ldconfig libobjc
842 %post -p /sbin/ldconfig libg2c
843 %postun -p /sbin/ldconfig libg2c
844 %post -p /sbin/ldconfig libgcj
845 %postun -p /sbin/ldconfig libgcj
846 %post -p /sbin/ldconfig libgnat
847 %postun -p /sbin/ldconfig libgnat
848 %post -p /sbin/ldconfig libffi
849 %postun -p /sbin/ldconfig libffi
852 %defattr(644,root,root,755)
853 %doc ChangeLog.general MAINTAINERS NEWS bugs.html faq.html
854 %doc gcc/{ChangeLog,ONEWS,README.Portability}
855 %dir %{_libdir}/gcc/*/*
856 %dir %{_libdir}/gcc/*/*/include
857 %{?with_ssp:%{_aclocaldir}/gcc_stack_protect.m4}
858 %{_aclocaldir}/gcc_visibility.m4
860 %attr(755,root,root) %{_bindir}/*-gcc*
861 %attr(755,root,root) %{_bindir}/gcc-*
862 %attr(755,root,root) %{_bindir}/gccbug-*
863 %attr(755,root,root) %{_bindir}/gcov-*
864 %attr(755,root,root) %{_bindir}/cc-*
865 %attr(755,root,root) %{_bindir}/cpp-*
867 %{_mandir}/man1/cc-*.1*
868 %{_mandir}/man1/cpp-*.1*
869 %{_mandir}/man1/gcc-*.1*
870 %{_mandir}/man1/gcov-*.1*
872 %attr(755,root,root) %{_slibdir}/lib*.so
874 %{_slibdir}/libunwind.a
876 %{_libdir}/gcc/*/*/libgcov.a
877 %{_libdir}/gcc/*/*/libgcc.a
878 %{_libdir}/gcc/*/*/libgcc_eh.a
879 %{_libdir}/gcc/*/*/specs
880 %{_libdir}/gcc/*/*/crt*.o
882 %attr(755,root,root) %{_libdir}/gcc/*/*/libgcc_s*.so
883 %{_libdir}/gcc/*/*/32/libgcc.a
884 %{_libdir}/gcc/*/*/32/libgcc_eh.a
885 %{_libdir}/gcc/*/*/32/libgcov.a
886 %{_libdir}/gcc/*/*/32/crt*.o
889 %{_libdir}/gcc/*/*/ecrt*.o
890 %{_libdir}/gcc/*/*/ncrt*.o
891 %{_libdir}/gcc/*/*/nof
894 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1
895 %attr(755,root,root) %{_libdir}/gcc/*/*/collect2
897 %{_libdir}/gcc/*/*/include/*.h
898 %{?with_fortran:%exclude %{_libdir}/gcc/*/*/include/g2c.h}
901 %defattr(644,root,root,755)
902 %attr(755,root,root) %{_slibdir}*/lib*.so.*
904 %attr(755,root,root) %{_slibdir32}/lib*.so.*
909 %defattr(644,root,root,755)
910 %doc gcc/cp/{ChangeLog,NEWS}
911 %attr(755,root,root) %{_bindir}/g++-*
912 %attr(755,root,root) %{_bindir}/*-g++-*
913 %attr(755,root,root) %{_bindir}/c++-*
914 %attr(755,root,root) %{_bindir}/*-c++-*
915 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
916 %{_libdir}/gcc/*/*/libsupc++.la
917 %{_libdir}/gcc/*/*/libsupc++.a
919 %{_libdir}/gcc/*/*/nof/libsupc++.la
920 %{_libdir}/gcc/*/*/nof/libsupc++.a
923 %{_libdir32}/gcc/*/*/libsupc++.la
924 %{_libdir32}/gcc/*/*/libsupc++.a
926 %{_mandir}/man1/g++-*.1*
929 %defattr(644,root,root,755)
930 %doc libstdc++-v3/{ChangeLog,README}
931 %attr(755,root,root) %{_libdir}/gcc/*/*/libstdc++.so.*.*.*
933 %attr(755,root,root) %{_libdir}/nof/gcc/*/*/libstdc++.so.*.*.*
936 %attr(755,root,root) %{_libdir32}/gcc/*/*/libstdc++.so.*.*.*
939 %files libstdc++-devel
940 %defattr(644,root,root,755)
941 %doc libstdc++-v3/docs/html
942 %{_libdir}/gcc/*/*/include/c++
943 %attr(755,root,root) %{_libdir}/gcc/*/*/libstdc++.so
944 %{_libdir}/gcc/*/*/libstdc++.la
946 %attr(755,root,root) %{_libdir}/gcc/*/*/nof/libstdc++.so
947 %{_libdir}/gcc/*/*/nof/libstdc++.la
950 %attr(755,root,root) %{_libdir32}/gcc/*/*/libstdc++.so
951 %{_libdir32}/gcc/*/*/libstdc++.la
954 %files libstdc++-static
955 %defattr(644,root,root,755)
956 %{_libdir}/gcc/*/*/libstdc++.a
958 %{_libdir}/gcc/*/*/nof/libstdc++.a
961 %{_libdir32}/gcc/*/*/libstdc++.a
967 %defattr(644,root,root,755)
969 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
970 %attr(755,root,root) %{_libdir}/libobjc.so
971 %{_libdir}/libobjc.la
973 %attr(755,root,root) %{_libdir}/nof/libobjc.so
974 %{_libdir}/nof/libobjc.la
977 %attr(755,root,root) %{_libdir32}/libobjc.so
978 %{_libdir32}/libobjc.la
980 %{_libdir}/gcc/*/*/include/objc
983 %defattr(644,root,root,755)
984 %doc libobjc/{ChangeLog,README*}
985 %attr(755,root,root) %{_libdir}/libobjc.so.*.*.*
987 %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.*
990 %attr(755,root,root) %{_libdir32}/libobjc.so.*.*.*
993 %files libobjc-static
994 %defattr(644,root,root,755)
997 %{_libdir}/nof/libobjc.a
1000 %{_libdir32}/libobjc.a
1006 %defattr(644,root,root,755)
1007 %doc gcc/f/{BUGS,ChangeLog,NEWS}
1008 %attr(755,root,root) %{_bindir}/g77-*
1009 %attr(755,root,root) %{_bindir}/f77
1011 %attr(755,root,root) %{_libdir}/gcc/*/*/f771
1012 %{_libdir}/libfrtbegin.a
1013 %{_libdir}/libg2c.la
1014 %attr(755,root,root) %{_libdir}/libg2c.so
1016 %{_libdir}/nof/libfrtbegin.a
1017 %{_libdir}/nof/libg2c.la
1018 %attr(755,root,root) %{_libdir}/nof/libg2c.so
1020 %if %{with multilib}
1021 %{_libdir32}/libfrtbegin.a
1022 %{_libdir32}/libg2c.la
1023 %attr(755,root,root) %{_libdir32}/libg2c.so
1025 %{_libdir}/gcc/*/*/include/g2c.h
1026 %{_mandir}/man1/g77.1*
1027 %{_mandir}/man1/f77.1*
1030 %defattr(644,root,root,755)
1031 %doc libf2c/{ChangeLog,README,TODO}
1032 %attr(755,root,root) %{_libdir}/libg2c.so.*.*.*
1034 %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.*
1036 %if %{with multilib}
1037 %attr(755,root,root) %{_libdir32}/libg2c.so.*.*.*
1040 %files libg2c-static
1041 %defattr(644,root,root,755)
1044 %{_libdir}/nof/libg2c.a
1046 %if %{with multilib}
1047 %{_libdir32}/libg2c.a
1053 %defattr(644,root,root,755)
1054 %doc gcc/java/ChangeLog java-doc/*
1055 %attr(755,root,root) %{_bindir}/gcj*
1056 %attr(755,root,root) %{_bindir}/gij
1057 %attr(755,root,root) %{_bindir}/jcf-dump
1058 %attr(755,root,root) %{_bindir}/jv-*
1059 %attr(755,root,root) %{_bindir}/grepjar
1060 %attr(755,root,root) %{_bindir}/*-gcj*
1061 %attr(755,root,root) %{_libdir}/gcc/*/*/jc1
1062 %attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
1064 %{_mandir}/man1/jcf-*
1065 %{_mandir}/man1/jv-*
1066 %{_mandir}/man1/gij*
1067 %{_mandir}/man1/gcj*
1068 %{_mandir}/man1/grepjar*
1071 %defattr(644,root,root,755)
1072 %attr(755,root,root) %{_bindir}/rmi*
1073 %attr(755,root,root) %{_bindir}/jar
1074 %{_mandir}/man1/rmi*
1075 %{_mandir}/man1/jar*
1076 %{_infodir}/fastjar*
1079 %defattr(644,root,root,755)
1080 %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
1081 %attr(755,root,root) %{_bindir}/addr2name.awk
1082 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
1083 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
1085 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
1087 %{_libdir}/logging.properties
1090 %defattr(644,root,root,755)
1092 %{_includedir}/javax
1095 %{_includedir}/gnu/*
1096 %{_libdir}/gcc/*/*/include/gcj
1097 %dir %{_libdir}/security
1098 %{_libdir}/security/*
1099 %dir %{_datadir}/java
1100 %{_datadir}/java/libgcj*.jar
1101 %{_libdir}/lib*cj.spec
1102 %{_libdir}/lib*cj*.la
1103 %attr(755,root,root) %{_libdir}/lib*cj*.so
1104 %attr(755,root,root) %{_libdir}/lib-org-*.so
1105 %{_libdir}/lib-org-*.la
1107 %{_libdir}/nof/lib*cj*.la
1108 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so
1110 %{_pkgconfigdir}/libgcj.pc
1112 %files libgcj-static
1113 %defattr(644,root,root,755)
1114 %{_libdir}/lib*cj*.a
1115 %{_libdir}/lib-org-*.a
1117 %{_libdir}/nof/lib*cj*.a
1121 %defattr(644,root,root,755)
1122 %doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
1123 %attr(755,root,root) %{_libdir}/libffi-*.so
1126 %defattr(644,root,root,755)
1127 %{_libdir}/gcc/*/*/include/ffitarget.h
1128 %attr(755,root,root) %{_libdir}/libffi.so
1129 %{_libdir}/libffi.la
1130 %{_includedir}/ffi.h
1132 %files libffi-static
1133 %defattr(644,root,root,755)
1139 %defattr(644,root,root,755)
1140 %doc gcc/ada/ChangeLog
1141 %attr(755,root,root) %{_bindir}/gnat*
1142 %attr(755,root,root) %{_bindir}/gpr*
1143 %attr(755,root,root) %{_libdir}/libgnarl*.so
1144 %attr(755,root,root) %{_libdir}/libgnat*.so
1145 %attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
1146 %{_libdir}/gcc/*/*/adainclude
1147 %dir %{_libdir}/gcc/*/*/adalib
1148 %{_libdir}/gcc/*/*/adalib/*.ali
1149 %{_libdir}/gcc/*/*/adalib/g-trasym.o
1150 %{_libdir}/gcc/*/*/adalib/libgccprefix.a
1152 %{_libdir}/gcc/*/*/adalib/libgmem.a
1158 %defattr(644,root,root,755)
1159 %attr(755,root,root) %{_libdir}/libgnarl*.so.1
1160 %attr(755,root,root) %{_libdir}/libgnat*.so.1
1162 %files libgnat-static
1163 %defattr(644,root,root,755)
1164 %{_libdir}/gcc/*/*/adalib/libgnarl.a
1165 %{_libdir}/gcc/*/*/adalib/libgnat.a