3 # - fix ada build errors
4 # - provide as full gcc 3.x as possible without conflicting with gcc 4.x
5 # - should be named gcc3.4 or so, gcc3 is too ambiguous
6 # (there were 4 different ABIs and very different compatibility issues)
11 %bcond_with ada # build without ADA support
12 %bcond_with java # build without Java support
13 %bcond_with objc # build without ObjC support
14 %bcond_with ssp # build with stack-smashing protector support
15 %bcond_with multilib # build with multilib support
16 %ifnarch amd64 ppc64 s390x sparc64
17 %undefine with_multilib
20 Summary: GNU Compiler Collection: the C compiler and shared files
21 Summary(es): Colección de compiladores GNU: el compilador C y ficheros compartidos
22 Summary(pl): Kolekcja kompilatorów GNU: kompilator C i pliki wspó³dzielone
23 Summary(pt_BR): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
28 Group: Development/Languages
29 Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
30 # Source0-md5: 4a21ac777d4b5617283ce488b808da7b
31 Source2: http://www.trl.ibm.com/projects/security/ssp/gcc2_95_3/gcc_stack_protect.m4.gz
32 # Source2-md5: 07d93ad5fc07ca44cdaba46c658820de
33 Source3: %{name}-gcc_visibility.m4
34 Patch0: %{name}-info.patch
35 Patch1: %{name}-nolocalefiles.patch
36 Patch2: %{name}-ada-link-new-libgnat.patch
37 Patch3: %{name}-nodebug.patch
38 Patch4: %{name}-ssp.patch
39 Patch5: %{name}-ada-link.patch
40 Patch6: %{name}-pr15666.patch
42 # -fvisibility={default|internal|hidden|protected}
44 # Set the default ELF image symbol visibility to the specified option.
45 # All symbols will be marked with this unless overrided within the code.
46 # Using this feature can very substantially improve linking and load times
47 # of shared object libraries, produce more optimised code, provide near-perfect
48 # API export and prevent symbol clashes. It is strongly recommended that you
49 # use this in any shared objects you distribute.
51 # -fvisibility-inlines-hidden
53 # Causes all inlined methods to be marked with __attribute__((visibility("hidden")))
54 # so that they do not appear in the export table of a DSO and do not require a PLT
55 # indirection when used within the DSO. Enabling this option can have a dramatic
56 # effect on load and link times of a DSO as it massively reduces the size
57 # of the dynamic export table when the library makes heavy use of templates.
58 # While it can cause bloating through duplication of code within each DSO
59 # where it is used, often the wastage is less than the considerable space
60 # occupied by a long symbol name in the export table which is typical when using
61 # templates and namespaces.
63 # How to Write Shared Libraries: http://people.redhat.com/drepper/dsohowto.pdf
65 Patch7: %{name}-visibility.patch
66 Patch8: %{name}-cxxabi.patch
67 Patch9: %{name}-pr-rh.patch
69 Patch20: %{name}-ada-bootstrap.patch
70 URL: http://gcc.gnu.org/
71 BuildRequires: autoconf
72 BuildRequires: automake
73 BuildRequires: binutils >= 2:2.15.91.0.2
75 BuildRequires: fileutils >= 4.0.41
78 BuildRequires: gcc(ada)
79 BuildRequires: gcc-ada
81 BuildRequires: gettext-devel
82 BuildRequires: glibc-devel >= 2.2.5-20
83 BuildRequires: perl-devel
84 BuildRequires: texinfo >= 4.1
85 BuildRequires: zlib-devel
86 Requires: binutils >= 2:2.15.91.0.2
87 Requires: gcc-dirs >= 1.0-3
88 Provides: cpp = %{epoch}:%{version}-%{release}
89 %{?with_ada:Provides: gcc(ada)}
90 %{?with_ssp:Provides: gcc(ssp)}
91 Conflicts: glibc-devel < 2.2.5-20
92 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
94 %define _slibdir /%{_lib}
95 %ifarch amd64 ppc64 s390x sparc64
96 %define _slibdir32 /lib
97 %define _libdir32 /usr/lib
100 %define rpmcflags -O2 -mtune=ultrasparc
104 A compiler aimed at integrating all the optimizations and features
105 necessary for a high-performance and stable development environment.
107 This package contains the C compiler and some files shared by various
108 parts of the GNU Compiler Collection. In order to use another GCC
109 compiler you will need to install the appropriate subpackage.
112 Un compilador que intenta integrar todas las optimalizaciones y
113 características necesarias para un entorno de desarrollo eficaz y
116 Este paquete contiene el compilador de C y unos ficheros compartidos
117 por varias partes de la colección de compiladores GNU (GCC). Para usar
118 otro compilador de GCC será necesario que instale el subpaquete
122 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
123 wyprodukowania szybkiego i stabilnego kodu wynikowego.
125 Ten pakiet zawiera kompilator C i pliki wspó³dzielone przez ró¿ne
126 czê¶ci kolekcji kompilatorów GNU (GCC). ¯eby u¿ywaæ innego kompilatora
127 z GCC, trzeba zainstalowaæ odpowiedni podpakiet.
129 %description -l pt_BR
130 Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
131 GNU Compiler Collection.
134 Summary: Shared gcc library
135 Summary(es): Biblioteca compartida de gcc
136 Summary(pl): Biblioteka gcc
137 Summary(pt_BR): Biblioteca runtime para o GCC
143 %description libgcc -l es
144 Biblioteca compartida de gcc.
146 %description libgcc -l pl
147 Biblioteka dynamiczna gcc.
149 %description libgcc -l pt_BR
150 Biblioteca runtime para o GCC.
153 Summary: C++ support for gcc
154 Summary(es): Soporte de C++ para gcc
155 Summary(pl): Obs³uga C++ dla gcc
156 Summary(pt_BR): Suporte C++ para o gcc
157 Group: Development/Languages
158 Requires: %{name} = %{epoch}:%{version}-%{release}
161 This package adds C++ support to the GNU Compiler Collection. It
162 includes support for most of the current C++ specification, including
163 templates and exception handling. It does not include a standard C++
164 library, which is available separately.
166 %description c++ -l de
167 Dieses Paket enthält die C++-Unterstützung für den
168 GNU-Compiler-Collection. Es unterstützt die aktuelle
169 C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine
170 C++-Standard-Library ist nicht enthalten - sie ist getrennt
173 %description c++ -l es
174 Este paquete añade soporte de C++ al GCC (colección de compiladores
175 GNU). Ello incluye el soporte para la mayoría de la especificación
176 actual de C++, incluyendo plantillas y manejo de excepciones. No
177 incluye la biblioteca estándar de C++, la que es disponible separada.
179 %description c++ -l fr
180 Ce package ajoute un support C++ a la collection de compilateurs GNU.
181 Il comprend un support pour la plupart des spécifications actuelles de
182 C++, dont les modéles et la gestion des exceptions. Il ne comprend pas
183 une bibliothéque C++ standard, qui est disponible séparément.
185 %description c++ -l pl
186 Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
187 du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
188 standardowych bibliotek C++, które s± w oddzielnym pakiecie.
190 %description c++ -l pt_BR
191 Este pacote adiciona suporte C++ para o gcc.
193 %description c++ -l tr
194 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
195 aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
196 C++ kitaplýðý bu pakette yer almaz.
199 Summary: Objective C support for gcc
200 Summary(de): Objektive C-Unterstützung für gcc
201 Summary(es): Soporte de Objective C para gcc
202 Summary(fr): Gestion d'Objective C pour gcc
203 Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
204 Summary(tr): gcc için Objective C desteði
205 Group: Development/Languages
206 Requires: %{name} = %{epoch}:%{version}-%{release}
207 Requires: %{name}-libobjc = %{epoch}:%{version}-%{release}
210 This package adds Objective C support to the GNU Compiler Collection.
211 Objective C is a object oriented derivative of the C language, mainly
212 used on systems running NeXTSTEP. This package does not include the
213 standard objective C object library.
215 %description objc -l de
216 Dieses Paket ergänzt den GNU-Compiler-Collection durch
217 Objective-C-Support. Objective C ist ein objektorientiertes Derivat
218 von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt.
219 Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
221 %description objc -l es
222 Este paquete añade soporte de Objective C al GCC (colección de
223 compiladores GNU). Objective C es un lenguaje orientado a objetos
224 derivado de C, principalmente usado en sistemas que funcionan bajo
225 NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de
228 %description objc -l fr
229 Ce package ajoute un support Objective C a la collection de
230 compilateurs GNU. L'Objective C est un langage orienté objetdérivé du
231 langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce
232 package n'inclue pas la bibliothéque Objective C standard.
234 %description objc -l pl
235 Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
236 C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
237 g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
238 standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
240 %description objc -l tr
241 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
242 C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
243 sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
244 kitaplýðý bu pakette yer almaz.
247 Summary: Objective C Libraries
248 Summary(es): Bibliotecas de Objective C
249 Summary(pl): Biblioteki Obiektowego C
253 Objective C Libraries.
255 %description libobjc -l es
256 Bibliotecas de Objective C.
258 %description libobjc -l pl
259 Biblioteki Obiektowego C.
261 %package libobjc-static
262 Summary: Static Objective C Libraries
263 Summary(es): Bibliotecas estáticas de Objective C
264 Summary(pl): Statyczne Biblioteki Obiektowego C
265 Group: Development/Libraries
266 Requires: %{name}-libobjc = %{epoch}:%{version}-%{release}
268 %description libobjc-static
269 Static Objective C Libraries.
271 %description libobjc-static -l es
272 Bibliotecas estáticas de Objective C.
274 %description libobjc-static -l pl
275 Statyczne biblioteki Obiektowego C.
278 Summary: Fortran 77 support for gcc
279 Summary(es): Soporte de Fortran 77 para gcc
280 Summary(pl): Obs³uga Fortranu 77 dla gcc
281 Summary(pt_BR): Suporte Fortran 77 para o GCC
282 Group: Development/Languages/Fortran
283 Requires: %{name}-libg2c = %{epoch}:%{version}-%{release}
286 This package adds support for compiling Fortran 77 programs with the
289 %description g77 -l es
290 Este paquete añade soporte para compilar programas escritos en Fortran
291 77 con el compilador GNU.
293 %description g77 -l pl
294 Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
295 potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
297 %description g77 -l pt_BR
298 Suporte Fortran 77 para o GCC.
301 Summary: Fortran 77 Libraries
302 Summary(es): Bibliotecas de Fortran 77
303 Summary(pl): Biblioteki Fortranu 77
307 Fortran 77 Libraries.
309 %description libg2c -l es
310 Bibliotecas de Fortran 77.
312 %description libg2c -l pl
313 Biblioteki Fortranu 77.
315 %package libg2c-static
316 Summary: Static Fortran 77 Libraries
317 Summary(es): Bibliotecas estáticas de Fortran 77
318 Summary(pl): Statyczne Biblioteki Fortranu 77
319 Group: Development/Libraries
320 Requires: %{name}-libg2c = %{epoch}:%{version}-%{release}
322 %description libg2c-static
323 Static Fortran 77 Libraries.
325 %description libg2c -l es
326 Bibliotecas estáticas de Fortran 77.
328 %description libg2c-static -l pl
329 Statyczne biblioteki Fortranu 77.
332 Summary: Java support for gcc
333 Summary(es): Soporte de Java para gcc
334 Summary(pl): Obs³uga Javy dla gcc
335 Group: Development/Languages/Java
336 Requires: %{name} = %{epoch}:%{version}-%{release}
337 Requires: %{name}-libgcj = %{epoch}:%{version}-%{release}
338 Requires: %{name}-libgcj-devel = %{epoch}:%{version}-%{release}
339 Requires: java-shared
340 Provides: gcj = %{epoch}:%{version}-%{release}
343 This package adds experimental support for compiling Java(tm) programs
344 and bytecode into native code. To use this you will also need the
347 %description java -l es
348 Este paquete añade soporte experimental para compilar programas
349 Java(tm) y su bytecode en código nativo. Para usarlo también va a
350 necesitar el paquete libgcj.
352 %description java -l pl
353 Wsparcie dla kompilowania programów Java(tm) zarówno do bajt-kodu jak
354 i do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
355 by³o przeprowadziæ kompilacjê.
358 Summary: Shared java tools
359 Summary(es): Herramientas compartidas de Java
360 Summary(pl): Wspó³dzielone narzêdzia javy
361 Group: Development/Languages/Java
362 Provides: jar = %{epoch}:%{version}-%{release}
363 Provides: java-shared
366 Obsoletes: java-shared
368 %description java-tools
369 This package contains tools that are common for every Java(tm)
370 implementation, such as rmic or jar.
372 %description java-tools -l es
373 Este paquete contiene herramientas que son comunes para cada
374 implementación de Java(tm), como rmic o jar.
376 %description java-tools -l pl
377 Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji
378 Javy(tm), takie jak rmic czy jar.
381 Summary: Java Class Libraries
382 Summary(es): Bibliotecas de clases de Java
383 Summary(pl): Biblioteki Klas Javy
388 Java Class Libraries.
390 %description libgcj -l es
391 Bibliotecas de clases de Java.
393 %description libgcj -l pl
394 Biblioteki Klas Javy.
396 %package libgcj-devel
397 Summary: Development files for Java Class Libraries
398 Summary(es): Ficheros de desarrollo para las bibliotecas de clases de Java
399 Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
400 Group: Development/Libraries
401 Requires: %{name}-java = %{epoch}:%{version}-%{release}
402 Requires: %{name}-libgcj = %{epoch}:%{version}-%{release}
404 %description libgcj-devel
405 Development files for Java Class Libraries.
407 %description libgcj-devel -l es
408 Ficheros de desarrollo para las bibliotecas de clases de Java.
410 %description libgcj-devel -l pl
411 Pliki nag³ówkowe dla Bibliotek Klas Javy.
413 %package libgcj-static
414 Summary: Static Java Class Libraries
415 Summary(es): Bibliotecas estáticas de clases de Java
416 Summary(pl): Statyczne Biblioteki Klas Javy
417 Group: Development/Libraries
418 Requires: %{name}-libgcj-devel = %{epoch}:%{version}-%{release}
419 Requires: %{name}-libstdc++-devel = %{epoch}:%{version}-%{release}
421 %description libgcj-static
422 Static Java Class Libraries.
424 %description libgcj-static -l es
425 Bibliotecas estáticas de clases de Java.
427 %description libgcj-static -l pl
428 Statyczne Biblioteki Klas Javy.
431 Summary: GNU c++ library
432 Summary(es): Biblioteca C++ de GNU
433 Summary(pl): Biblioteki GNU C++
434 Summary(pt_BR): Biblioteca C++ GNU
437 %description libstdc++
438 This is the GNU implementation of the standard C++ libraries, along
439 with additional GNU tools. This package includes the shared libraries
440 necessary to run C++ applications.
442 %description libstdc++ -l de
443 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
444 weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
445 C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
447 %description libstdc++ -l es
448 Este es el soporte de las bibliotecas padrón del C++, junto con
449 herramientas GNU adicionales. El paquete incluye las bibliotecas
450 compartidas necesarias para ejecutar aplicaciones C++.
452 %description libstdc++ -l fr
453 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
454 des outils GNU supplémentaires. Ce package comprend les librairies
455 partagées nécessaires à l'exécution d'application C++.
457 %description libstdc++ -l pl
458 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
459 bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
460 uruchomienia aplikacji napisanych w C++.
462 %description libstdc++ -l pt_BR
463 Este pacote é uma implementação da biblioteca padrão C++ v3, um
464 subconjunto do padrão ISO 14882.
466 %description libstdc++ -l tr
467 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
468 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
470 %package libstdc++-devel
471 Summary: Header files and documentation for C++ development
472 Summary(de): Header-Dateien zur Entwicklung mit C++
473 Summary(es): Ficheros de cabecera y documentación para desarrollo C++
474 Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
475 Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
476 Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
477 Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
478 Group: Development/Libraries
479 Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
480 Requires: %{name}-libstdc++ = %{epoch}:%{version}-%{release}
481 Requires: glibc-devel
483 %description libstdc++-devel
484 This is the GNU implementation of the standard C++ libraries. This
485 package includes the header files needed for C++ development and
486 library documentation.
488 %description libstdc++-devel -l es
489 Este es el soporte de las bibliotecas padrón del lenguaje C++. Este
490 paquete incluye los archivos de inclusión y bibliotecas necesarios
491 para desarrollo de programas en lenguaje C++.
493 %description libstdc++-devel -l pl
494 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
495 bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
496 programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
498 %description libstdc++-devel -l pt_BR
499 Este pacote inclui os arquivos de inclusão e bibliotecas necessárias
500 para desenvolvimento de programas C++.
502 %package libstdc++-static
503 Summary: Static C++ standard library
504 Summary(es): Biblioteca estándar estática de C++
505 Summary(pl): Statyczna biblioteka standardowa C++
506 Group: Development/Libraries
507 Requires: %{name}-libstdc++-devel = %{epoch}:%{version}-%{release}
509 %description libstdc++-static
510 Static C++ standard library.
512 %description libstdc++-static -l es
513 Biblioteca estándar estática de C++.
515 %description libstdc++-static -l pl
516 Statyczna biblioteka standardowa C++.
519 Summary: Foreign Function Interface library
520 Summary(es): Biblioteca de interfaz de funciones ajenas
521 Summary(pl): Biblioteka zewnêtrznych wywo³añ funkcji
525 The libffi library provides a portable, high level programming
526 interface to various calling conventions. This allows a programmer to
527 call any function specified by a call interface description at run
530 %description libffi -l es
531 La biblioteca libffi provee una interfaz portable de programación de
532 alto nivel para varias convenciones de llamada. Ello permite que un
533 programador llame una función cualquiera especificada por una
534 descripción de interfaz de llamada en el tiempo de ejecución.
536 %description libffi -l pl
537 Biblioteka libffi dostarcza przeno¶nego, wysokopoziomowego
538 miêdzymordzia do ró¿nych konwencji wywo³añ funkcji. Pozwala to
539 programi¶cie wywo³ywaæ dowolne funkcje podaj±c konwencjê wywo³ania w
542 %package libffi-devel
543 Summary: Development files for Foreign Function Interface library
544 Summary(es): Ficheros de desarrollo para libffi
545 Summary(pl): Pliki nag³ówkowe dla libffi
546 Group: Development/Libraries
547 Requires: %{name}-libffi = %{epoch}:%{version}-%{release}
549 %description libffi-devel
550 Development files for Foreign Function Interface library.
552 %description libffi-devel -l es
553 Ficheros de desarrollo para libffi.
555 %description libffi-devel -l pl
556 Pliki nag³ówkowe dla libffi.
558 %package libffi-static
559 Summary: Static Foreign Function Interface library
560 Summary(es): Biblioteca libffi estática
561 Summary(pl): Statyczna biblioteka libffi
562 Group: Development/Libraries
563 Requires: %{name}-libffi-devel = %{epoch}:%{version}-%{release}
565 %description libffi-static
566 Static Foreign Function Interface library.
568 %description libffi-static -l es
569 Biblioteca libffi estática.
571 %description libffi-static -l pl
572 Statyczna biblioteka libffi.
575 Summary: Ada support for gcc
576 Summary(es): Soporte de Ada para gcc
577 Summary(pl): Obs³uga Ady do gcc
578 Group: Development/Languages
579 Requires: %{name} = %{epoch}:%{version}-%{release}
580 Requires: %{name}-libgnat = %{epoch}:%{version}-%{release}
583 This package adds experimental support for compiling Ada programs.
585 %description ada -l es
586 Este paquete añade soporte experimental para compilar programas en
589 %description ada -l pl
590 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w
594 Summary: Ada standard libraries
595 Summary(es): Bibliotecas estándares de Ada
596 Summary(pl): Biblioteki standardowe dla Ady
600 This package contains shared libraries needed to run programs written
603 %description libgnat -l es
604 Este paquete contiene las bibliotecas compartidas necesarias para
605 ejecutar programas escritos en Ada.
607 %description libgnat -l pl
608 Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów
611 %package libgnat-static
612 Summary: Static Ada standard libraries
613 Summary(pl): Statyczne biblioteki standardowe dla Ady
616 %description libgnat-static
617 This package contains static libraries for programs written in Ada.
619 %description libgnat-static -l pl
620 Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
624 %setup -q -n gcc-%{version}
629 %{!?debug:%patch3 -p1}
630 %{?with_ssp:%patch4 -p1}
638 # needed for bootstrap using gcc 3.3.x on alpha
639 # and even using the same 3.4.x(!) (but not Debian's 3.3.x) on ia64
643 # because we distribute modified version of gcc...
644 perl -pi -e 's/(version.*)";/$1 %{?with_ssp:SSP }(PLD Linux)";/' gcc/version.c
645 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
647 mv ChangeLog ChangeLog.general
650 # because pr16276 patch modifies configure.ac
654 cp -f /usr/share/automake/config.sub .
656 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
663 exec /usr/bin/gcc -m64 "$@"
669 CFLAGS="%{rpmcflags}" \
670 CXXFLAGS="%{rpmcflags}" \
674 --prefix=%{_prefix} \
675 --libdir=%{_libdir} \
676 --libexecdir=%{_libdir} \
677 --infodir=%{_infodir} \
678 --mandir=%{_mandir} \
679 --program-suffix="3" \
680 --enable-version-specific-runtime-libs \
682 --enable-threads=posix \
683 --enable-__cxa_atexit \
684 --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,f77}%{?with_objc:,objc}%{?with_ada:,ada}%{?with_java:,java}" \
688 %if %{without multilib}
696 --with-slibdir=%{_slibdir} \
700 PATH=$PATH:/sbin:%{_sbindir}
703 # - on alpha stage1 needs -O0 for 3.3->3.4 bootstrap (gnat from 3.3 is seriously broken)
704 # - on ia64 use bootstrap-lean as profiledbootstrap is broken (PR 13882, 15836, 16108)
705 %{__make} -C obj-%{_target_platform} \
711 GCJFLAGS="%{rpmcflags}" \
712 BOOT_CFLAGS="%{rpmcflags}" \
714 STAGE1_CFLAGS="%{rpmcflags} -O0" \
716 STAGE1_CFLAGS="%{rpmcflags}" \
718 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
723 # cannot build it in parallel
724 for tgt in gnatlib-shared gnattools gnatlib; do
725 %{__make} -C obj-%{_target_platform}/gcc $tgt \
726 BOOT_CFLAGS="%{rpmcflags}" \
727 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
734 rm -rf $RPM_BUILD_ROOT
735 install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
737 cd obj-%{_target_platform}
738 PATH=$PATH:/sbin:%{_sbindir}
740 %{__make} -j1 install \
742 infodir=%{_infodir} \
743 DESTDIR=$RPM_BUILD_ROOT
746 ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \
747 $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
750 ln -sf gcc3 $RPM_BUILD_ROOT%{_bindir}/cc3
751 echo ".so gcc3.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc3.1
754 ln -sf g773 $RPM_BUILD_ROOT%{_bindir}/f773
755 echo ".so g773.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f773.1
759 # move ada shared libraries to proper place...
760 mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
761 $RPM_BUILD_ROOT%{_libdir}
762 # check if symlink to be made is valid
763 test -f $RPM_BUILD_ROOT%{_libdir}/libgnat3.so.1
764 ln -sf libgnat3.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat3.so
765 ln -sf libgnarl3.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl3.so
766 ln -sf libgnat3.so $RPM_BUILD_ROOT%{_libdir}/libgnat3.so
767 ln -sf libgnarl3.so $RPM_BUILD_ROOT%{_libdir}/libgnarl3.so
774 cp -f libjava/doc/cni.sgml libjava/READ* java-doc
775 cp -f fastjar/README java-doc/README.fastjar
776 cp -f libffi/README java-doc/README.libffi
777 cp -f libffi/LICENSE java-doc/LICENSE.libffi
781 cp -f libobjc/README gcc/objc/README.libobjc
784 # include/ contains install-tools/include/* and headers that were fixed up
785 # by fixincludes, we don't want former
786 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
788 # we have to save these however
789 mv -f $gccdir/include/syslimits.h $gccdir/tmp
790 %{?with_cxx:mv -f $gccdir/include/c++ $gccdir/tmp}
791 %{?with_fortran:mv -f $gccdir/include/g2c.h $gccdir/tmp}
792 %{?with_objc:mv -f $gccdir/include/objc $gccdir/tmp}
793 %{?with_java:mv -f $gccdir/include/{libffi/ffitarget.h,gcj} $gccdir/tmp}
794 rm -rf $gccdir/include
795 mv -f $gccdir/tmp $gccdir/include
796 cp $gccdir/install-tools/include/*.h $gccdir/include
797 # but we don't want anything more from install-tools
798 rm -rf $gccdir/install-tools
801 ln -sf %{_slibdir}/libgcc_s.so.1 $gccdir/libgcc_s.so
802 ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/libgcc_s_32.so
806 zcat %{SOURCE2} > $RPM_BUILD_ROOT%{_aclocaldir}/gcc_stack_protect.m4
808 install %{SOURCE3} $RPM_BUILD_ROOT%{_aclocaldir}/gcc_visibility.m4
811 rm -rf $RPM_BUILD_ROOT
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
826 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
829 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
831 %post -p /sbin/ldconfig libgcc
832 %postun -p /sbin/ldconfig libgcc
833 %post -p /sbin/ldconfig libstdc++
834 %postun -p /sbin/ldconfig libstdc++
835 %post -p /sbin/ldconfig libobjc
836 %postun -p /sbin/ldconfig libobjc
837 %post -p /sbin/ldconfig libg2c
838 %postun -p /sbin/ldconfig libg2c
839 %post -p /sbin/ldconfig libgcj
840 %postun -p /sbin/ldconfig libgcj
841 %post -p /sbin/ldconfig libgnat
842 %postun -p /sbin/ldconfig libgnat
843 %post -p /sbin/ldconfig libffi
844 %postun -p /sbin/ldconfig libffi
847 %defattr(644,root,root,755)
848 %doc ChangeLog.general MAINTAINERS NEWS bugs.html faq.html
849 %doc gcc/{ChangeLog,ONEWS,README.Portability}
850 %dir %{_libdir}/gcc/*/*
851 %dir %{_libdir}/gcc/*/*/include
852 %{?with_ssp:%{_aclocaldir}/gcc_stack_protect.m4}
853 %{_aclocaldir}/gcc_visibility.m4
855 %attr(755,root,root) %{_bindir}/*-gcc*
856 %attr(755,root,root) %{_bindir}/gcc3
857 %attr(755,root,root) %{_bindir}/gccbug3
858 %attr(755,root,root) %{_bindir}/gcov3
859 %attr(755,root,root) %{_bindir}/cc3
860 %attr(755,root,root) %{_bindir}/cpp3
862 %{_mandir}/man1/cc3.1*
863 %{_mandir}/man1/cpp3.1*
864 %{_mandir}/man1/gcc3.1*
865 %{_mandir}/man1/gcov3.1*
867 %attr(755,root,root) %{_slibdir}/lib*.so
869 %{_slibdir}/libunwind.a
871 %{_libdir}/gcc/*/*/libgcov.a
872 %{_libdir}/gcc/*/*/libgcc.a
873 %{_libdir}/gcc/*/*/libgcc_eh.a
874 %{_libdir}/gcc/*/*/specs
875 %{_libdir}/gcc/*/*/crt*.o
877 %attr(755,root,root) %{_libdir}/gcc/*/*/libgcc_s*.so
878 %{_libdir}/gcc/*/*/32/libgcc.a
879 %{_libdir}/gcc/*/*/32/libgcc_eh.a
880 %{_libdir}/gcc/*/*/32/libgcov.a
881 %{_libdir}/gcc/*/*/32/crt*.o
884 %{_libdir}/gcc/*/*/ecrt*.o
885 %{_libdir}/gcc/*/*/ncrt*.o
886 %{_libdir}/gcc/*/*/nof
889 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1
890 %attr(755,root,root) %{_libdir}/gcc/*/*/collect2
892 %{_libdir}/gcc/*/*/include/*.h
893 %{?with_fortran:%exclude %{_libdir}/gcc/*/*/include/g2c.h}
896 %defattr(644,root,root,755)
897 %attr(755,root,root) %{_slibdir}*/lib*.so.*
899 %attr(755,root,root) %{_slibdir32}/lib*.so.*
904 %defattr(644,root,root,755)
905 %doc gcc/cp/{ChangeLog,NEWS}
906 %attr(755,root,root) %{_bindir}/g++3
907 %attr(755,root,root) %{_bindir}/*-g++3
908 %attr(755,root,root) %{_bindir}/c++3
909 %attr(755,root,root) %{_bindir}/*-c++3
910 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
911 %{_libdir}/gcc/*/*/libsupc++.la
912 %{_libdir}/gcc/*/*/libsupc++.a
914 %{_libdir}/gcc/*/*/nof/libsupc++.la
915 %{_libdir}/gcc/*/*/nof/libsupc++.a
918 %{_libdir32}/gcc/*/*/libsupc++.la
919 %{_libdir32}/gcc/*/*/libsupc++.a
921 %{_mandir}/man1/g++3.1*
924 %defattr(644,root,root,755)
925 %doc libstdc++-v3/{ChangeLog,README}
926 %attr(755,root,root) %{_libdir}/gcc/*/*/libstdc++.so.*.*.*
928 %attr(755,root,root) %{_libdir}/nof/gcc/*/*/libstdc++.so.*.*.*
931 %attr(755,root,root) %{_libdir32}/gcc/*/*/libstdc++.so.*.*.*
934 %files libstdc++-devel
935 %defattr(644,root,root,755)
936 %doc libstdc++-v3/docs/html
937 %{_libdir}/gcc/*/*/include/c++
938 %attr(755,root,root) %{_libdir}/gcc/*/*/libstdc++.so
939 %{_libdir}/gcc/*/*/libstdc++.la
941 %attr(755,root,root) %{_libdir}/gcc/*/*/nof/libstdc++.so
942 %{_libdir}/gcc/*/*/nof/libstdc++.la
945 %attr(755,root,root) %{_libdir32}/gcc/*/*/libstdc++.so
946 %{_libdir32}/gcc/*/*/libstdc++.la
949 %files libstdc++-static
950 %defattr(644,root,root,755)
951 %{_libdir}/gcc/*/*/libstdc++.a
953 %{_libdir}/gcc/*/*/nof/libstdc++.a
956 %{_libdir32}/gcc/*/*/libstdc++.a
962 %defattr(644,root,root,755)
964 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
965 %attr(755,root,root) %{_libdir}/libobjc.so
966 %{_libdir}/libobjc.la
968 %attr(755,root,root) %{_libdir}/nof/libobjc.so
969 %{_libdir}/nof/libobjc.la
972 %attr(755,root,root) %{_libdir32}/libobjc.so
973 %{_libdir32}/libobjc.la
975 %{_libdir}/gcc/*/*/include/objc
978 %defattr(644,root,root,755)
979 %doc libobjc/{ChangeLog,README*}
980 %attr(755,root,root) %{_libdir}/libobjc.so.*.*.*
982 %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.*
985 %attr(755,root,root) %{_libdir32}/libobjc.so.*.*.*
988 %files libobjc-static
989 %defattr(644,root,root,755)
992 %{_libdir}/nof/libobjc.a
995 %{_libdir32}/libobjc.a
1001 %defattr(644,root,root,755)
1002 %doc gcc/f/{BUGS,ChangeLog,NEWS}
1003 %attr(755,root,root) %{_bindir}/g77-*
1004 %attr(755,root,root) %{_bindir}/f77
1006 %attr(755,root,root) %{_libdir}/gcc/*/*/f771
1007 %{_libdir}/libfrtbegin.a
1008 %{_libdir}/libg2c.la
1009 %attr(755,root,root) %{_libdir}/libg2c.so
1011 %{_libdir}/nof/libfrtbegin.a
1012 %{_libdir}/nof/libg2c.la
1013 %attr(755,root,root) %{_libdir}/nof/libg2c.so
1015 %if %{with multilib}
1016 %{_libdir32}/libfrtbegin.a
1017 %{_libdir32}/libg2c.la
1018 %attr(755,root,root) %{_libdir32}/libg2c.so
1020 %{_libdir}/gcc/*/*/include/g2c.h
1021 %{_mandir}/man1/g77.1*
1022 %{_mandir}/man1/f77.1*
1025 %defattr(644,root,root,755)
1026 %doc libf2c/{ChangeLog,README,TODO}
1027 %attr(755,root,root) %{_libdir}/libg2c.so.*.*.*
1029 %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.*
1031 %if %{with multilib}
1032 %attr(755,root,root) %{_libdir32}/libg2c.so.*.*.*
1035 %files libg2c-static
1036 %defattr(644,root,root,755)
1039 %{_libdir}/nof/libg2c.a
1041 %if %{with multilib}
1042 %{_libdir32}/libg2c.a
1048 %defattr(644,root,root,755)
1049 %doc gcc/java/ChangeLog java-doc/*
1050 %attr(755,root,root) %{_bindir}/gcj*
1051 %attr(755,root,root) %{_bindir}/gij
1052 %attr(755,root,root) %{_bindir}/jcf-dump
1053 %attr(755,root,root) %{_bindir}/jv-*
1054 %attr(755,root,root) %{_bindir}/grepjar
1055 %attr(755,root,root) %{_bindir}/*-gcj*
1056 %attr(755,root,root) %{_libdir}/gcc/*/*/jc1
1057 %attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
1059 %{_mandir}/man1/jcf-*
1060 %{_mandir}/man1/jv-*
1061 %{_mandir}/man1/gij*
1062 %{_mandir}/man1/gcj*
1063 %{_mandir}/man1/grepjar*
1066 %defattr(644,root,root,755)
1067 %attr(755,root,root) %{_bindir}/rmi*
1068 %attr(755,root,root) %{_bindir}/jar
1069 %{_mandir}/man1/rmi*
1070 %{_mandir}/man1/jar*
1071 %{_infodir}/fastjar*
1074 %defattr(644,root,root,755)
1075 %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
1076 %attr(755,root,root) %{_bindir}/addr2name.awk
1077 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
1078 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
1080 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
1082 %{_libdir}/logging.properties
1085 %defattr(644,root,root,755)
1087 %{_includedir}/javax
1090 %{_includedir}/gnu/*
1091 %{_libdir}/gcc/*/*/include/gcj
1092 %dir %{_libdir}/security
1093 %{_libdir}/security/*
1094 %dir %{_datadir}/java
1095 %{_datadir}/java/libgcj*.jar
1096 %{_libdir}/lib*cj.spec
1097 %{_libdir}/lib*cj*.la
1098 %attr(755,root,root) %{_libdir}/lib*cj*.so
1099 %attr(755,root,root) %{_libdir}/lib-org-*.so
1100 %{_libdir}/lib-org-*.la
1102 %{_libdir}/nof/lib*cj*.la
1103 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so
1105 %{_pkgconfigdir}/libgcj.pc
1107 %files libgcj-static
1108 %defattr(644,root,root,755)
1109 %{_libdir}/lib*cj*.a
1110 %{_libdir}/lib-org-*.a
1112 %{_libdir}/nof/lib*cj*.a
1116 %defattr(644,root,root,755)
1117 %doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
1118 %attr(755,root,root) %{_libdir}/libffi-*.so
1121 %defattr(644,root,root,755)
1122 %{_libdir}/gcc/*/*/include/ffitarget.h
1123 %attr(755,root,root) %{_libdir}/libffi.so
1124 %{_libdir}/libffi.la
1125 %{_includedir}/ffi.h
1127 %files libffi-static
1128 %defattr(644,root,root,755)
1134 %defattr(644,root,root,755)
1135 %doc gcc/ada/ChangeLog
1136 %attr(755,root,root) %{_bindir}/gnat*
1137 %attr(755,root,root) %{_bindir}/gpr*
1138 %attr(755,root,root) %{_libdir}/libgnarl*.so
1139 %attr(755,root,root) %{_libdir}/libgnat*.so
1140 %attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
1141 %{_libdir}/gcc/*/*/adainclude
1142 %dir %{_libdir}/gcc/*/*/adalib
1143 %{_libdir}/gcc/*/*/adalib/*.ali
1144 %{_libdir}/gcc/*/*/adalib/g-trasym.o
1145 %{_libdir}/gcc/*/*/adalib/libgccprefix.a
1147 %{_libdir}/gcc/*/*/adalib/libgmem.a
1153 %defattr(644,root,root,755)
1154 %attr(755,root,root) %{_libdir}/libgnarl*.so.1
1155 %attr(755,root,root) %{_libdir}/libgnat*.so.1
1157 %files libgnat-static
1158 %defattr(644,root,root,755)
1159 %{_libdir}/gcc/*/*/adalib/libgnarl.a
1160 %{_libdir}/gcc/*/*/adalib/libgnat.a