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)
8 %bcond_without ada # build without ADA support
9 %bcond_without java # build without Java support
10 %bcond_without objc # build without ObjC support
11 %bcond_with ssp # build with stack-smashing protector support
12 %bcond_with multilib # build with multilib support
13 %ifnarch amd64 ppc64 s390x sparc64
14 %undefine with_multilib
17 Summary: GNU Compiler Collection: the C compiler and shared files
18 Summary(es): Colección de compiladores GNU: el compilador C y ficheros compartidos
19 Summary(pl): Kolekcja kompilatorów GNU: kompilator C i pliki wspó³dzielone
20 Summary(pt_BR): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
26 Group: Development/Languages
27 Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
28 # Source0-md5: b594ff4ea4fbef4ba9220887de713dfe
29 Source1: http://ep09.pld-linux.org/~djrzulf/gcc33/%{name}-non-english-man-pages.tar.bz2
30 # Source1-md5: 4736f3422ddfb808423b745629acc321
31 Source2: http://www.trl.ibm.com/projects/security/ssp/gcc2_95_3/gcc_stack_protect.m4.gz
32 # Source2-md5: 07d93ad5fc07ca44cdaba46c658820de
33 Source3: 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
41 Patch7: %{name}-pr16276.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 Patch8: %{name}-visibility.patch
68 Patch20: %{name}-ada-bootstrap.patch
69 URL: http://gcc.gnu.org/
70 BuildRequires: autoconf
71 BuildRequires: automake
72 BuildRequires: binutils >= 2:2.15.91.0.2
74 BuildRequires: fileutils >= 4.0.41
77 BuildRequires: gcc(ada)
78 BuildRequires: gcc-ada
80 BuildRequires: gettext-devel
81 BuildRequires: glibc-devel >= 2.2.5-20
82 BuildRequires: perl-devel
83 BuildRequires: texinfo >= 4.1
84 BuildRequires: zlib-devel
85 Requires: binutils >= 2:2.15.91.0.2
86 Requires: gcc-dirs >= 1.0-3
87 Requires: libgcc = %{epoch}:%{version}-%{release}
88 Provides: cpp = %{epoch}:%{version}-%{release}
89 %{?with_ada:Provides: gcc(ada)}
90 %{?with_ssp:Provides: gcc(ssp)}
91 # ksi for gcc > 3.3.x not ready yet
97 Conflicts: glibc-devel < 2.2.5-20
98 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
100 %define _slibdir /%{_lib}
101 %ifarch amd64 ppc64 s390x sparc64
102 %define _slibdir32 /lib
103 %define _libdir32 /usr/lib
106 %define rpmcflags -O2 -mtune=ultrasparc
110 A compiler aimed at integrating all the optimizations and features
111 necessary for a high-performance and stable development environment.
113 This package contains the C compiler and some files shared by various
114 parts of the GNU Compiler Collection. In order to use another GCC
115 compiler you will need to install the appropriate subpackage.
118 Un compilador que intenta integrar todas las optimalizaciones y
119 características necesarias para un entorno de desarrollo eficaz y
122 Este paquete contiene el compilador de C y unos ficheros compartidos
123 por varias partes de la colección de compiladores GNU (GCC). Para usar
124 otro compilador de GCC será necesario que instale el subpaquete
128 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
129 wyprodukowania szybkiego i stabilnego kodu wynikowego.
131 Ten pakiet zawiera kompilator C i pliki wspó³dzielone przez ró¿ne
132 czê¶ci kolekcji kompilatorów GNU (GCC). ¯eby u¿ywaæ innego kompilatora
133 z GCC, trzeba zainstalowaæ odpowiedni podpakiet.
135 %description -l pt_BR
136 Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
137 GNU Compiler Collection.
140 Summary: Shared gcc library
141 Summary(es): Biblioteca compartida de gcc
142 Summary(pl): Biblioteka gcc
143 Summary(pt_BR): Biblioteca runtime para o GCC
147 %description -n libgcc
150 %description -n libgcc -l es
151 Biblioteca compartida de gcc.
153 %description -n libgcc -l pl
154 Biblioteka dynamiczna gcc.
156 %description -n libgcc -l pt_BR
157 Biblioteca runtime para o GCC.
160 Summary: C++ support for gcc
161 Summary(es): Soporte de C++ para gcc
162 Summary(pl): Obs³uga C++ dla gcc
163 Summary(pt_BR): Suporte C++ para o gcc
164 Group: Development/Languages
165 Requires: %{name} = %{epoch}:%{version}-%{release}
170 This package adds C++ support to the GNU Compiler Collection. It
171 includes support for most of the current C++ specification, including
172 templates and exception handling. It does not include a standard C++
173 library, which is available separately.
175 %description c++ -l de
176 Dieses Paket enthält die C++-Unterstützung für den
177 GNU-Compiler-Collection. Es unterstützt die aktuelle
178 C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine
179 C++-Standard-Library ist nicht enthalten - sie ist getrennt
182 %description c++ -l es
183 Este paquete añade soporte de C++ al GCC (colección de compiladores
184 GNU). Ello incluye el soporte para la mayoría de la especificación
185 actual de C++, incluyendo plantillas y manejo de excepciones. No
186 incluye la biblioteca estándar de C++, la que es disponible separada.
188 %description c++ -l fr
189 Ce package ajoute un support C++ a la collection de compilateurs GNU.
190 Il comprend un support pour la plupart des spécifications actuelles de
191 C++, dont les modéles et la gestion des exceptions. Il ne comprend pas
192 une bibliothéque C++ standard, qui est disponible séparément.
194 %description c++ -l pl
195 Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
196 du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
197 standardowych bibliotek C++, które s± w oddzielnym pakiecie.
199 %description c++ -l pt_BR
200 Este pacote adiciona suporte C++ para o gcc.
202 %description c++ -l tr
203 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
204 aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
205 C++ kitaplýðý bu pakette yer almaz.
208 Summary: Objective C support for gcc
209 Summary(de): Objektive C-Unterstützung für gcc
210 Summary(es): Soporte de Objective C para gcc
211 Summary(fr): Gestion d'Objective C pour gcc
212 Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
213 Summary(tr): gcc için Objective C desteði
214 Group: Development/Languages
215 Requires: %{name} = %{epoch}:%{version}-%{release}
216 Requires: libobjc = %{epoch}:%{version}-%{release}
221 This package adds Objective C support to the GNU Compiler Collection.
222 Objective C is a object oriented derivative of the C language, mainly
223 used on systems running NeXTSTEP. This package does not include the
224 standard objective C object library.
226 %description objc -l de
227 Dieses Paket ergänzt den GNU-Compiler-Collection durch
228 Objective-C-Support. Objective C ist ein objektorientiertes Derivat
229 von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt.
230 Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
232 %description objc -l es
233 Este paquete añade soporte de Objective C al GCC (colección de
234 compiladores GNU). Objective C es un lenguaje orientado a objetos
235 derivado de C, principalmente usado en sistemas que funcionan bajo
236 NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de
239 %description objc -l fr
240 Ce package ajoute un support Objective C a la collection de
241 compilateurs GNU. L'Objective C est un langage orienté objetdérivé du
242 langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce
243 package n'inclue pas la bibliothéque Objective C standard.
245 %description objc -l pl
246 Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
247 C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
248 g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
249 standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
251 %description objc -l tr
252 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
253 C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
254 sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
255 kitaplýðý bu pakette yer almaz.
258 Summary: Objective C Libraries
259 Summary(es): Bibliotecas de Objective C
260 Summary(pl): Biblioteki Obiektowego C
264 %description -n libobjc
265 Objective C Libraries.
267 %description -n libobjc -l es
268 Bibliotecas de Objective C.
270 %description -n libobjc -l pl
271 Biblioteki Obiektowego C.
273 %package -n libobjc-static
274 Summary: Static Objective C Libraries
275 Summary(es): Bibliotecas estáticas de Objective C
276 Summary(pl): Statyczne Biblioteki Obiektowego C
277 Group: Development/Libraries
278 Requires: libobjc = %{epoch}:%{version}-%{release}
280 %description -n libobjc-static
281 Static Objective C Libraries.
283 %description -n libobjc-static -l es
284 Bibliotecas estáticas de Objective C.
286 %description -n libobjc-static -l pl
287 Statyczne biblioteki Obiektowego C.
290 Summary: Fortran 77 support for gcc
291 Summary(es): Soporte de Fortran 77 para gcc
292 Summary(pl): Obs³uga Fortranu 77 dla gcc
293 Summary(pt_BR): Suporte Fortran 77 para o GCC
294 Group: Development/Languages/Fortran
295 Requires: libg2c = %{epoch}:%{version}-%{release}
299 This package adds support for compiling Fortran 77 programs with the
302 %description g77 -l es
303 Este paquete añade soporte para compilar programas escritos en Fortran
304 77 con el compilador GNU.
306 %description g77 -l pl
307 Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
308 potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
310 %description g77 -l pt_BR
311 Suporte Fortran 77 para o GCC.
314 Summary: Fortran 77 Libraries
315 Summary(es): Bibliotecas de Fortran 77
316 Summary(pl): Biblioteki Fortranu 77
319 %description -n libg2c
320 Fortran 77 Libraries.
322 %description -n libg2c -l es
323 Bibliotecas de Fortran 77.
325 %description -n libg2c -l pl
326 Biblioteki Fortranu 77.
328 %package -n libg2c-static
329 Summary: Static Fortran 77 Libraries
330 Summary(es): Bibliotecas estáticas de Fortran 77
331 Summary(pl): Statyczne Biblioteki Fortranu 77
332 Group: Development/Libraries
333 Requires: libg2c = %{epoch}:%{version}-%{release}
335 %description -n libg2c-static
336 Static Fortran 77 Libraries.
338 %description -n libg2c -l es
339 Bibliotecas estáticas de Fortran 77.
341 %description -n libg2c-static -l pl
342 Statyczne biblioteki Fortranu 77.
345 Summary: Java support for gcc
346 Summary(es): Soporte de Java para gcc
347 Summary(pl): Obs³uga Javy dla gcc
348 Group: Development/Languages/Java
349 Requires: %{name} = %{epoch}:%{version}-%{release}
350 Requires: libgcj = %{epoch}:%{version}-%{release}
351 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
352 Requires: java-shared
353 Provides: gcj = %{epoch}:%{version}-%{release}
356 This package adds experimental support for compiling Java(tm) programs
357 and bytecode into native code. To use this you will also need the
360 %description java -l es
361 Este paquete añade soporte experimental para compilar programas
362 Java(tm) y su bytecode en código nativo. Para usarlo también va a
363 necesitar el paquete libgcj.
365 %description java -l pl
366 Wsparcie dla kompilowania programów Java(tm) zarówno do bajt-kodu jak i
367 do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
368 by³o przeprowadziæ kompilacjê.
371 Summary: Shared java tools
372 Summary(es): Herramientas compartidas de Java
373 Summary(pl): Wspó³dzielone narzêdzia javy
374 Group: Development/Languages/Java
375 Provides: jar = %{epoch}:%{version}-%{release}
376 Provides: java-shared
379 Obsoletes: java-shared
381 %description java-tools
382 This package contains tools that are common for every Java(tm)
383 implementation, such as rmic or jar.
385 %description java-tools -l es
386 Este paquete contiene herramientas que son comunes para cada
387 implementación de Java(tm), como rmic o jar.
389 %description java-tools -l pl
390 Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji
391 Javy(tm), takie jak rmic czy jar.
394 Summary: Java Class Libraries
395 Summary(es): Bibliotecas de clases de Java
396 Summary(pl): Biblioteki Klas Javy
401 %description -n libgcj
402 Java Class Libraries.
404 %description -n libgcj -l es
405 Bibliotecas de clases de Java.
407 %description -n libgcj -l pl
408 Biblioteki Klas Javy.
410 %package -n libgcj-devel
411 Summary: Development files for Java Class Libraries
412 Summary(es): Ficheros de desarrollo para las bibliotecas de clases de Java
413 Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
414 Group: Development/Libraries
415 Requires: %{name}-java = %{epoch}:%{version}-%{release}
416 Requires: libgcj = %{epoch}:%{version}-%{release}
417 Obsoletes: libgcj3-devel
419 %description -n libgcj-devel
420 Development files for Java Class Libraries.
422 %description -n libgcj-devel -l es
423 Ficheros de desarrollo para las bibliotecas de clases de Java.
425 %description -n libgcj-devel -l pl
426 Pliki nag³ówkowe dla Bibliotek Klas Javy.
428 %package -n libgcj-static
429 Summary: Static Java Class Libraries
430 Summary(es): Bibliotecas estáticas de clases de Java
431 Summary(pl): Statyczne Biblioteki Klas Javy
432 Group: Development/Libraries
433 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
434 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
436 %description -n libgcj-static
437 Static Java Class Libraries.
439 %description -n libgcj-static -l es
440 Bibliotecas estáticas de clases de Java.
442 %description -n libgcj-static -l pl
443 Statyczne Biblioteki Klas Javy.
445 %package -n libstdc++
446 Summary: GNU c++ library
447 Summary(es): Biblioteca C++ de GNU
448 Summary(pl): Biblioteki GNU C++
449 Summary(pt_BR): Biblioteca C++ GNU
452 Obsoletes: libstdc++3
454 %description -n libstdc++
455 This is the GNU implementation of the standard C++ libraries, along
456 with additional GNU tools. This package includes the shared libraries
457 necessary to run C++ applications.
459 %description -n libstdc++ -l de
460 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
461 weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
462 C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
464 %description -n libstdc++ -l es
465 Este es el soporte de las bibliotecas padrón del C++, junto con
466 herramientas GNU adicionales. El paquete incluye las bibliotecas
467 compartidas necesarias para ejecutar aplicaciones C++.
469 %description -n libstdc++ -l fr
470 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
471 des outils GNU supplémentaires. Ce package comprend les librairies
472 partagées nécessaires à l'exécution d'application C++.
474 %description -n libstdc++ -l pl
475 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
476 bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
477 uruchomienia aplikacji napisanych w C++.
479 %description -n libstdc++ -l pt_BR
480 Este pacote é uma implementação da biblioteca padrão C++ v3, um
481 subconjunto do padrão ISO 14882.
483 %description -n libstdc++ -l tr
484 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
485 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
487 %package -n libstdc++-devel
488 Summary: Header files and documentation for C++ development
489 Summary(de): Header-Dateien zur Entwicklung mit C++
490 Summary(es): Ficheros de cabecera y documentación para desarrollo C++
491 Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
492 Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
493 Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
494 Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
495 Group: Development/Libraries
496 Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
497 Requires: libstdc++ = %{epoch}:%{version}-%{release}
498 Requires: glibc-devel
499 Obsoletes: libg++-devel
500 Obsoletes: libstdc++3-devel
502 %description -n libstdc++-devel
503 This is the GNU implementation of the standard C++ libraries. This
504 package includes the header files needed for C++ development and
505 library documentation.
507 %description -n libstdc++-devel -l es
508 Este es el soporte de las bibliotecas padrón del lenguaje C++. Este
509 paquete incluye los archivos de inclusión y bibliotecas necesarios
510 para desarrollo de programas en lenguaje C++.
512 %description -n libstdc++-devel -l pl
513 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
514 bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
515 programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
517 %description -n libstdc++-devel -l pt_BR
518 Este pacote inclui os arquivos de inclusão e bibliotecas necessárias
519 para desenvolvimento de programas C++.
521 %package -n libstdc++-static
522 Summary: Static C++ standard library
523 Summary(es): Biblioteca estándar estática de C++
524 Summary(pl): Statyczna biblioteka standardowa C++
525 Group: Development/Libraries
526 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
528 %description -n libstdc++-static
529 Static C++ standard library.
531 %description -n libstdc++-static -l es
532 Biblioteca estándar estática de C++.
534 %description -n libstdc++-static -l pl
535 Statyczna biblioteka standardowa C++.
538 Summary: Foreign Function Interface library
539 Summary(es): Biblioteca de interfaz de funciones ajenas
540 Summary(pl): Biblioteka zewnêtrznych wywo³añ funkcji
543 %description -n libffi
544 The libffi library provides a portable, high level programming
545 interface to various calling conventions. This allows a programmer to
546 call any function specified by a call interface description at run
549 %description -n libffi -l es
550 La biblioteca libffi provee una interfaz portable de programación de
551 alto nivel para varias convenciones de llamada. Ello permite que un
552 programador llame una función cualquiera especificada por una
553 descripción de interfaz de llamada en el tiempo de ejecución.
555 %description -n libffi -l pl
556 Biblioteka libffi dostarcza przeno¶nego, wysokopoziomowego
557 miêdzymordzia do ró¿nych konwencji wywo³añ funkcji. Pozwala to
558 programi¶cie wywo³ywaæ dowolne funkcje podaj±c konwencjê wywo³ania w
561 %package -n libffi-devel
562 Summary: Development files for Foreign Function Interface library
563 Summary(es): Ficheros de desarrollo para libffi
564 Summary(pl): Pliki nag³ówkowe dla libffi
565 Group: Development/Libraries
566 Requires: libffi = %{epoch}:%{version}-%{release}
568 %description -n libffi-devel
569 Development files for Foreign Function Interface library.
571 %description -n libffi-devel -l es
572 Ficheros de desarrollo para libffi.
574 %description -n libffi-devel -l pl
575 Pliki nag³ówkowe dla libffi.
577 %package -n libffi-static
578 Summary: Static Foreign Function Interface library
579 Summary(es): Biblioteca libffi estática
580 Summary(pl): Statyczna biblioteka libffi
581 Group: Development/Libraries
582 Requires: libffi-devel = %{epoch}:%{version}-%{release}
584 %description -n libffi-static
585 Static Foreign Function Interface library.
587 %description -n libffi-static -l es
588 Biblioteca libffi estática.
590 %description -n libffi-static -l pl
591 Statyczna biblioteka libffi.
594 Summary: Ada support for gcc
595 Summary(es): Soporte de Ada para gcc
596 Summary(pl): Obs³uga Ady do gcc
597 Group: Development/Languages
598 Requires: %{name} = %{epoch}:%{version}-%{release}
599 Requires: libgnat = %{epoch}:%{version}-%{release}
601 Obsoletes: gnat-devel
604 This package adds experimental support for compiling Ada programs.
606 %description ada -l es
607 Este paquete añade soporte experimental para compilar programas en
610 %description ada -l pl
611 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w
615 Summary: Ada standard libraries
616 Summary(es): Bibliotecas estándares de Ada
617 Summary(pl): Biblioteki standardowe dla Ady
622 %description -n libgnat
623 This package contains shared libraries needed to run programs written
626 %description -n libgnat -l es
627 Este paquete contiene las bibliotecas compartidas necesarias para
628 ejecutar programas escritos en Ada.
630 %description -n libgnat -l pl
631 Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów
634 %package -n libgnat-static
635 Summary: Static Ada standard libraries
636 Summary(pl): Statyczne biblioteki standardowe dla Ady
638 Obsoletes: gnat-static
640 %description -n libgnat-static
641 This package contains static libraries for programs written in Ada.
643 %description -n libgnat-static -l pl
644 Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
653 %{!?debug:%patch3 -p1}
654 %{?with_ssp:%patch4 -p1}
661 # needed for bootstrap using gcc 3.3.x on alpha
662 # and even using the same 3.4.x(!) (but not Debian's 3.3.x) on ia64
666 # because we distribute modified version of gcc...
667 perl -pi -e 's/(version.*)";/$1 %{?with_ssp:SSP }(PLD Linux)";/' gcc/version.c
668 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
670 mv ChangeLog ChangeLog.general
673 # because pr16276 patch modifies configure.ac
677 cp -f /usr/share/automake/config.sub .
679 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
686 exec /usr/bin/gcc -m64 "$@"
692 CFLAGS="%{rpmcflags}" \
693 CXXFLAGS="%{rpmcflags}" \
697 --prefix=%{_prefix} \
698 --libdir=%{_libdir} \
699 --libexecdir=%{_libdir} \
700 --infodir=%{_infodir} \
701 --mandir=%{_mandir} \
703 --enable-threads=posix \
704 --enable-__cxa_atexit \
705 --enable-languages="c,c++,f77%{?with_objc:,objc}%{?with_ada:,ada}%{?with_java:,java}" \
709 %if %{without multilib}
717 --with-slibdir=%{_slibdir} \
721 PATH=$PATH:/sbin:%{_sbindir}
724 # - on alpha stage1 needs -O0 for 3.3->3.4 bootstrap (gnat from 3.3 is seriously broken)
725 # - on ia64 use bootstrap-lean as profiledbootstrap is broken (PR 13882, 15836, 16108)
726 %{__make} -C obj-%{_target_platform} \
732 GCJFLAGS="%{rpmcflags}" \
733 BOOT_CFLAGS="%{rpmcflags}" \
735 STAGE1_CFLAGS="%{rpmcflags} -O0" \
737 STAGE1_CFLAGS="%{rpmcflags}" \
739 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
744 # cannot build it in parallel
745 for tgt in gnatlib-shared gnattools gnatlib; do
746 %{__make} -C obj-%{_target_platform}/gcc $tgt \
747 BOOT_CFLAGS="%{rpmcflags}" \
748 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
755 rm -rf $RPM_BUILD_ROOT
756 install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
758 cd obj-%{_target_platform}
759 PATH=$PATH:/sbin:%{_sbindir}
761 %{__make} -j1 install \
763 infodir=%{_infodir} \
764 DESTDIR=$RPM_BUILD_ROOT
767 ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \
768 $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
771 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
772 echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
774 ln -sf g77 $RPM_BUILD_ROOT%{_bindir}/f77
775 echo ".so g77.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
778 # move ada shared libraries to proper place...
779 mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
780 $RPM_BUILD_ROOT%{_libdir}
781 # check if symlink to be made is valid
782 test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so.1
783 ln -sf libgnat-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so
784 ln -sf libgnarl-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-3.4.so
785 ln -sf libgnat-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
786 ln -sf libgnarl-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
789 ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
795 cp -f libjava/doc/cni.sgml libjava/READ* java-doc
796 cp -f fastjar/README java-doc/README.fastjar
797 cp -f libffi/README java-doc/README.libffi
798 cp -f libffi/LICENSE java-doc/LICENSE.libffi
802 cp -f libobjc/README gcc/objc/README.libobjc
805 # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version}
806 for f in libstdc++.la libsupc++.la %{?with_java:libgcj.la} ; do
807 perl -pi -e 's@-L[^ ]*[acs.] @@g' $RPM_BUILD_ROOT%{_libdir}/$f
809 # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
810 for f in libstdc++.la libsupc++.la libg2c.la \
811 %{?with_java:libgcj.la lib-org-w3c-dom.la lib-org-xml-sax.la libffi.la} \
812 %{?with_objc:libobjc.la}; do
813 perl -pi -e "s@^libdir='.*@libdir='/usr/%{_lib}'@" $RPM_BUILD_ROOT%{_libdir}/$f
816 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
817 mv -f $RPM_BUILD_ROOT%{_mandir}/ja/man1/{cccp,cpp}.1
819 # include/ contains install-tools/include/* and headers that were fixed up
820 # by fixincludes, we don't want former
821 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
823 # we have to save these however
824 mv -f $gccdir/include/{%{?with_objc:objc,}g2c.h,syslimits.h%{?with_java:,libffi/ffitarget.h,gcj}} $gccdir/tmp
825 rm -rf $gccdir/include
826 mv -f $gccdir/tmp $gccdir/include
827 cp $gccdir/install-tools/include/*.h $gccdir/include
828 # but we don't want anything more from install-tools
829 rm -rf $gccdir/install-tools
832 ln -sf %{_slibdir}/libgcc_s.so.1 $gccdir/libgcc_s.so
833 ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/libgcc_s_32.so
837 %find_lang libstdc\+\+
840 zcat %{SOURCE2} > $RPM_BUILD_ROOT%{_aclocaldir}/gcc_stack_protect.m4
842 install %{SOURCE3} $RPM_BUILD_ROOT%{_aclocaldir}/gcc_visibility.m4
845 rm -rf $RPM_BUILD_ROOT
848 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
851 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
854 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
857 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
860 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
863 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
865 %post -p /sbin/ldconfig -n libgcc
866 %postun -p /sbin/ldconfig -n libgcc
867 %post -p /sbin/ldconfig -n libstdc++
868 %postun -p /sbin/ldconfig -n libstdc++
869 %post -p /sbin/ldconfig -n libobjc
870 %postun -p /sbin/ldconfig -n libobjc
871 %post -p /sbin/ldconfig -n libg2c
872 %postun -p /sbin/ldconfig -n libg2c
873 %post -p /sbin/ldconfig -n libgcj
874 %postun -p /sbin/ldconfig -n libgcj
875 %post -p /sbin/ldconfig -n libgnat
876 %postun -p /sbin/ldconfig -n libgnat
877 %post -p /sbin/ldconfig -n libffi
878 %postun -p /sbin/ldconfig -n libffi
881 %defattr(644,root,root,755)
882 %doc ChangeLog.general MAINTAINERS NEWS bugs.html faq.html
883 %doc gcc/{ChangeLog,ONEWS,README.Portability}
884 %dir %{_libdir}/gcc/*/*
885 %dir %{_libdir}/gcc/*/*/include
886 %{?with_ssp:%{_aclocaldir}/gcc_stack_protect.m4}
887 %{_aclocaldir}/gcc_visibility.m4
889 %attr(755,root,root) %{_bindir}/*-gcc*
890 %attr(755,root,root) %{_bindir}/gcc
891 %attr(755,root,root) %{_bindir}/gccbug
892 %attr(755,root,root) %{_bindir}/gcov
893 %attr(755,root,root) %{_bindir}/cc
894 %attr(755,root,root) %{_bindir}/cpp
896 %{_mandir}/man1/cc.1*
897 %{_mandir}/man1/cpp.1*
898 %lang(ja) %{_mandir}/ja/man1/cpp.1*
899 %{_mandir}/man1/gcc.1*
900 %lang(fr) %{_mandir}/fr/man1/gcc.1*
901 %lang(ja) %{_mandir}/ja/man1/gcc.1*
902 %{_mandir}/man1/gcov.1*
907 %attr(755,root,root) /lib/cpp
909 %attr(755,root,root) %{_slibdir}/lib*.so
911 %{_slibdir}/libunwind.a
913 %{_libdir}/gcc/*/*/libgcov.a
914 %{_libdir}/gcc/*/*/libgcc.a
915 %{_libdir}/gcc/*/*/libgcc_eh.a
916 %{_libdir}/gcc/*/*/specs
917 %{_libdir}/gcc/*/*/crt*.o
919 %attr(755,root,root) %{_libdir}/gcc/*/*/libgcc_s*.so
920 %{_libdir}/gcc/*/*/32/libgcc.a
921 %{_libdir}/gcc/*/*/32/libgcc_eh.a
922 %{_libdir}/gcc/*/*/32/libgcov.a
923 %{_libdir}/gcc/*/*/32/crt*.o
926 %{_libdir}/gcc/*/*/ecrt*.o
927 %{_libdir}/gcc/*/*/ncrt*.o
928 %{_libdir}/gcc/*/*/nof
931 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1
932 %attr(755,root,root) %{_libdir}/gcc/*/*/collect2
934 %{_libdir}/gcc/*/*/include/*.h
935 %exclude %{_libdir}/gcc/*/*/include/g2c.h
938 %defattr(644,root,root,755)
939 %attr(755,root,root) %{_slibdir}*/lib*.so.*
941 %attr(755,root,root) %{_slibdir32}/lib*.so.*
945 %defattr(644,root,root,755)
946 %doc gcc/cp/{ChangeLog,NEWS}
947 %attr(755,root,root) %{_bindir}/g++
948 %attr(755,root,root) %{_bindir}/*-g++
949 %attr(755,root,root) %{_bindir}/c++
950 %attr(755,root,root) %{_bindir}/*-c++
951 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
952 %{_libdir}/libsupc++.la
953 %{_libdir}/libsupc++.a
955 %{_libdir}/nof/libsupc++.la
956 %{_libdir}/nof/libsupc++.a
959 %{_libdir32}/libsupc++.la
960 %{_libdir32}/libsupc++.a
962 %{_mandir}/man1/g++.1*
963 %lang(ja) %{_mandir}/ja/man1/g++.1*
965 %files -n libstdc++ -f libstdc++.lang
966 %defattr(644,root,root,755)
967 %doc libstdc++-v3/{ChangeLog,README}
968 %attr(755,root,root) %{_libdir}/libstdc++.so.*.*.*
970 %attr(755,root,root) %{_libdir}/nof/libstdc++.so.*.*.*
973 %attr(755,root,root) %{_libdir32}/libstdc++.so.*.*.*
976 %files -n libstdc++-devel
977 %defattr(644,root,root,755)
978 %doc libstdc++-v3/docs/html
979 %dir %{_includedir}/c++
980 %{_includedir}/c++/%{version}
981 %exclude %{_includedir}/c++/%{version}/*/bits/stdc++.h.gch
982 %attr(755,root,root) %{_libdir}/libstdc++.so
983 %{_libdir}/libstdc++.la
985 %attr(755,root,root) %{_libdir}/nof/libstdc++.so
986 %{_libdir}/nof/libstdc++.la
989 %attr(755,root,root) %{_libdir32}/libstdc++.so
990 %{_libdir32}/libstdc++.la
993 %files -n libstdc++-static
994 %defattr(644,root,root,755)
995 %{_libdir}/libstdc++.a
997 %{_libdir}/nof/libstdc++.a
1000 %{_libdir32}/libstdc++.a
1005 %defattr(644,root,root,755)
1006 %doc gcc/objc/README
1007 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
1008 %attr(755,root,root) %{_libdir}/libobjc.so
1009 %{_libdir}/libobjc.la
1011 %attr(755,root,root) %{_libdir}/nof/libobjc.so
1012 %{_libdir}/nof/libobjc.la
1014 %if %{with multilib}
1015 %attr(755,root,root) %{_libdir32}/libobjc.so
1016 %{_libdir32}/libobjc.la
1018 %{_libdir}/gcc/*/*/include/objc
1021 %defattr(644,root,root,755)
1022 %doc libobjc/{ChangeLog,README*}
1023 %attr(755,root,root) %{_libdir}/libobjc.so.*.*.*
1025 %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.*
1027 %if %{with multilib}
1028 %attr(755,root,root) %{_libdir32}/libobjc.so.*.*.*
1031 %files -n libobjc-static
1032 %defattr(644,root,root,755)
1033 %{_libdir}/libobjc.a
1035 %{_libdir}/nof/libobjc.a
1037 %if %{with multilib}
1038 %{_libdir32}/libobjc.a
1043 %defattr(644,root,root,755)
1044 %doc gcc/f/{BUGS,ChangeLog,NEWS}
1045 %attr(755,root,root) %{_bindir}/g77
1046 %attr(755,root,root) %{_bindir}/f77
1048 %attr(755,root,root) %{_libdir}/gcc/*/*/f771
1049 %{_libdir}/libfrtbegin.a
1050 %{_libdir}/libg2c.la
1051 %attr(755,root,root) %{_libdir}/libg2c.so
1053 %{_libdir}/nof/libfrtbegin.a
1054 %{_libdir}/nof/libg2c.la
1055 %attr(755,root,root) %{_libdir}/nof/libg2c.so
1057 %if %{with multilib}
1058 %{_libdir32}/libfrtbegin.a
1059 %{_libdir32}/libg2c.la
1060 %attr(755,root,root) %{_libdir32}/libg2c.so
1062 %{_libdir}/gcc/*/*/include/g2c.h
1063 %{_mandir}/man1/g77.1*
1064 %{_mandir}/man1/f77.1*
1065 %lang(ja) %{_mandir}/ja/man1/g77.1*
1066 %lang(ja) %{_mandir}/ja/man1/f77.1*
1069 %defattr(644,root,root,755)
1070 %doc libf2c/{ChangeLog,README,TODO}
1071 %attr(755,root,root) %{_libdir}/libg2c.so.*.*.*
1073 %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.*
1075 %if %{with multilib}
1076 %attr(755,root,root) %{_libdir32}/libg2c.so.*.*.*
1079 %files -n libg2c-static
1080 %defattr(644,root,root,755)
1083 %{_libdir}/nof/libg2c.a
1085 %if %{with multilib}
1086 %{_libdir32}/libg2c.a
1091 %defattr(644,root,root,755)
1092 %doc gcc/java/ChangeLog java-doc/*
1093 %attr(755,root,root) %{_bindir}/gcj*
1094 %attr(755,root,root) %{_bindir}/gij
1095 %attr(755,root,root) %{_bindir}/jcf-dump
1096 %attr(755,root,root) %{_bindir}/jv-*
1097 %attr(755,root,root) %{_bindir}/grepjar
1098 %attr(755,root,root) %{_bindir}/*-gcj*
1099 %attr(755,root,root) %{_libdir}/gcc/*/*/jc1
1100 %attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
1102 %{_mandir}/man1/jcf-*
1103 %{_mandir}/man1/jv-*
1104 %{_mandir}/man1/gij*
1105 %{_mandir}/man1/gcj*
1106 %{_mandir}/man1/grepjar*
1109 %defattr(644,root,root,755)
1110 %attr(755,root,root) %{_bindir}/rmi*
1111 %attr(755,root,root) %{_bindir}/jar
1112 %{_mandir}/man1/rmi*
1113 %{_mandir}/man1/jar*
1114 %{_infodir}/fastjar*
1117 %defattr(644,root,root,755)
1118 %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
1119 %attr(755,root,root) %{_bindir}/addr2name.awk
1120 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
1121 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
1123 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
1125 %{_libdir}/logging.properties
1127 %files -n libgcj-devel
1128 %defattr(644,root,root,755)
1130 %{_includedir}/javax
1133 %{_includedir}/gnu/*
1134 %{_libdir}/gcc/*/*/include/gcj
1135 %dir %{_libdir}/security
1136 %{_libdir}/security/*
1137 %dir %{_datadir}/java
1138 %{_datadir}/java/libgcj*.jar
1139 %{_libdir}/lib*cj.spec
1140 %{_libdir}/lib*cj*.la
1141 %attr(755,root,root) %{_libdir}/lib*cj*.so
1142 %attr(755,root,root) %{_libdir}/lib-org-*.so
1143 %{_libdir}/lib-org-*.la
1145 %{_libdir}/nof/lib*cj*.la
1146 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so
1148 %{_pkgconfigdir}/libgcj.pc
1150 %files -n libgcj-static
1151 %defattr(644,root,root,755)
1152 %{_libdir}/lib*cj*.a
1153 %{_libdir}/lib-org-*.a
1155 %{_libdir}/nof/lib*cj*.a
1159 %defattr(644,root,root,755)
1160 %doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
1161 %attr(755,root,root) %{_libdir}/libffi-*.so
1163 %files -n libffi-devel
1164 %defattr(644,root,root,755)
1165 %{_libdir}/gcc/*/*/include/ffitarget.h
1166 %attr(755,root,root) %{_libdir}/libffi.so
1167 %{_libdir}/libffi.la
1168 %{_includedir}/ffi.h
1170 %files -n libffi-static
1171 %defattr(644,root,root,755)
1177 %defattr(644,root,root,755)
1178 %doc gcc/ada/ChangeLog
1179 %attr(755,root,root) %{_bindir}/gnat*
1180 %attr(755,root,root) %{_bindir}/gpr*
1181 %attr(755,root,root) %{_libdir}/libgnarl*.so
1182 %attr(755,root,root) %{_libdir}/libgnat*.so
1183 %attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
1184 %{_libdir}/gcc/*/*/adainclude
1185 %dir %{_libdir}/gcc/*/*/adalib
1186 %{_libdir}/gcc/*/*/adalib/*.ali
1187 %{_libdir}/gcc/*/*/adalib/g-trasym.o
1188 %{_libdir}/gcc/*/*/adalib/libgccprefix.a
1190 %{_libdir}/gcc/*/*/adalib/libgmem.a
1196 %defattr(644,root,root,755)
1197 %attr(755,root,root) %{_libdir}/libgnarl*.so.1
1198 %attr(755,root,root) %{_libdir}/libgnat*.so.1
1200 %files -n libgnat-static
1201 %defattr(644,root,root,755)
1202 %{_libdir}/gcc/*/*/adalib/libgnarl.a
1203 %{_libdir}/gcc/*/*/adalib/libgnat.a