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
14 Summary: GNU Compiler Collection: the C compiler and shared files
15 Summary(es): Colección de compiladores GNU: el compilador C y ficheros compartidos
16 Summary(pl): Kolekcja kompilatorów GNU: kompilator C i pliki wspó³dzielone
17 Summary(pt_BR): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
23 Group: Development/Languages
24 Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
25 # Source0-md5: e744b30c834360fccac41eb7269a3011
26 Source1: http://ep09.pld-linux.org/~djrzulf/gcc33/%{name}-non-english-man-pages.tar.bz2
27 # Source1-md5: 4736f3422ddfb808423b745629acc321
28 Source2: http://www.trl.ibm.com/projects/security/ssp/gcc2_95_3/gcc_stack_protect.m4.gz
29 # Source2-md5: 07d93ad5fc07ca44cdaba46c658820de
30 Source3: gcc_visibility.m4
31 Patch0: %{name}-info.patch
32 Patch1: %{name}-nolocalefiles.patch
33 Patch2: %{name}-ada-link-new-libgnat.patch
34 Patch3: %{name}-nodebug.patch
35 Patch4: %{name}-ssp.patch
36 Patch5: %{name}-ada-link.patch
37 Patch6: %{name}-pr15666.patch
38 Patch7: %{name}-pr16276.patch
39 Patch8: %{name}-pr18185.patch
41 # -fvisibility={default|internal|hidden|protected}
43 # Set the default ELF image symbol visibility to the specified option.
44 # All symbols will be marked with this unless overrided within the code.
45 # Using this feature can very substantially improve linking and load times
46 # of shared object libraries, produce more optimised code, provide near-perfect
47 # API export and prevent symbol clashes. It is strongly recommended that you
48 # use this in any shared objects you distribute.
50 # -fvisibility-inlines-hidden
52 # Causes all inlined methods to be marked with __attribute__((visibility("hidden")))
53 # so that they do not appear in the export table of a DSO and do not require a PLT
54 # indirection when used within the DSO. Enabling this option can have a dramatic
55 # effect on load and link times of a DSO as it massively reduces the size
56 # of the dynamic export table when the library makes heavy use of templates.
57 # While it can cause bloating through duplication of code within each DSO
58 # where it is used, often the wastage is less than the considerable space
59 # occupied by a long symbol name in the export table which is typical when using
60 # templates and namespaces.
62 # How to Write Shared Libraries: http://people.redhat.com/drepper/dsohowto.pdf
64 Patch9: %{name}-visibility.patch
65 Patch10: %{name}-pr13470.patch
67 Patch20: %{name}-ada-bootstrap.patch
68 URL: http://gcc.gnu.org/
69 BuildRequires: autoconf
70 BuildRequires: automake
71 BuildRequires: binutils >= 2:2.15.91.0.2
73 BuildRequires: fileutils >= 4.0.41
76 BuildRequires: gcc(ada)
77 BuildRequires: gcc-ada
79 BuildRequires: gettext-devel
80 BuildRequires: glibc-devel >= 2.2.5-20
81 BuildRequires: perl-devel
82 BuildRequires: texinfo >= 4.1
83 BuildRequires: zlib-devel
84 Requires: binutils >= 2:2.15.91.0.2
85 Requires: gcc-dirs >= 1.0-3
86 Requires: libgcc = %{epoch}:%{version}-%{release}
87 Provides: cpp = %{epoch}:%{version}-%{release}
88 %{?with_ada:Provides: gcc(ada)}
89 %{?with_ssp:Provides: gcc(ssp)}
90 # ksi for gcc > 3.3.x not ready yet
96 Conflicts: glibc-devel < 2.2.5-20
97 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
99 %define _slibdir /%{_lib}
101 %define _slibdir32 /lib
102 %define _libdir /usr/lib
103 %define rpmcflags -O2 -mtune=ultrasparc
106 %define _slibdir32 /lib
107 %define _libdir /usr/lib
111 A compiler aimed at integrating all the optimizations and features
112 necessary for a high-performance and stable development environment.
114 This package contains the C compiler and some files shared by various
115 parts of the GNU Compiler Collection. In order to use another GCC
116 compiler you will need to install the appropriate subpackage.
119 Un compilador que intenta integrar todas las optimalizaciones y
120 características necesarias para un entorno de desarrollo eficaz y
123 Este paquete contiene el compilador de C y unos ficheros compartidos
124 por varias partes de la colección de compiladores GNU (GCC). Para usar
125 otro compilador de GCC será necesario que instale el subpaquete
129 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
130 wyprodukowania szybkiego i stabilnego kodu wynikowego.
132 Ten pakiet zawiera kompilator C i pliki wspó³dzielone przez ró¿ne
133 czê¶ci kolekcji kompilatorów GNU (GCC). ¯eby u¿ywaæ innego kompilatora
134 z GCC, trzeba zainstalowaæ odpowiedni podpakiet.
136 %description -l pt_BR
137 Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
138 GNU Compiler Collection.
141 Summary: Shared gcc library
142 Summary(es): Biblioteca compartida de gcc
143 Summary(pl): Biblioteka gcc
144 Summary(pt_BR): Biblioteca runtime para o GCC
148 %description -n libgcc
151 %description -n libgcc -l es
152 Biblioteca compartida de gcc.
154 %description -n libgcc -l pl
155 Biblioteka dynamiczna gcc.
157 %description -n libgcc -l pt_BR
158 Biblioteca runtime para o GCC.
161 Summary: C++ support for gcc
162 Summary(es): Soporte de C++ para gcc
163 Summary(pl): Obs³uga C++ dla gcc
164 Summary(pt_BR): Suporte C++ para o gcc
165 Group: Development/Languages
166 Requires: %{name} = %{epoch}:%{version}-%{release}
171 This package adds C++ support to the GNU Compiler Collection. It
172 includes support for most of the current C++ specification, including
173 templates and exception handling. It does not include a standard C++
174 library, which is available separately.
176 %description c++ -l de
177 Dieses Paket enthält die C++-Unterstützung für den
178 GNU-Compiler-Collection. Es unterstützt die aktuelle
179 C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine
180 C++-Standard-Library ist nicht enthalten - sie ist getrennt
183 %description c++ -l es
184 Este paquete añade soporte de C++ al GCC (colección de compiladores
185 GNU). Ello incluye el soporte para la mayoría de la especificación
186 actual de C++, incluyendo plantillas y manejo de excepciones. No
187 incluye la biblioteca estándar de C++, la que es disponible separada.
189 %description c++ -l fr
190 Ce package ajoute un support C++ a la collection de compilateurs GNU.
191 Il comprend un support pour la plupart des spécifications actuelles de
192 C++, dont les modéles et la gestion des exceptions. Il ne comprend pas
193 une bibliothéque C++ standard, qui est disponible séparément.
195 %description c++ -l pl
196 Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
197 du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
198 standardowych bibliotek C++, które s± w oddzielnym pakiecie.
200 %description c++ -l pt_BR
201 Este pacote adiciona suporte C++ para o gcc.
203 %description c++ -l tr
204 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
205 aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
206 C++ kitaplýðý bu pakette yer almaz.
209 Summary: Objective C support for gcc
210 Summary(de): Objektive C-Unterstützung für gcc
211 Summary(es): Soporte de Objective C para gcc
212 Summary(fr): Gestion d'Objective C pour gcc
213 Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
214 Summary(tr): gcc için Objective C desteði
215 Group: Development/Languages
216 Requires: %{name} = %{epoch}:%{version}-%{release}
217 Requires: libobjc = %{epoch}:%{version}-%{release}
222 This package adds Objective C support to the GNU Compiler Collection.
223 Objective C is a object oriented derivative of the C language, mainly
224 used on systems running NeXTSTEP. This package does not include the
225 standard objective C object library.
227 %description objc -l de
228 Dieses Paket ergänzt den GNU-Compiler-Collection durch
229 Objective-C-Support. Objective C ist ein objektorientiertes Derivat
230 von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt.
231 Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
233 %description objc -l es
234 Este paquete añade soporte de Objective C al GCC (colección de
235 compiladores GNU). Objective C es un lenguaje orientado a objetos
236 derivado de C, principalmente usado en sistemas que funcionan bajo
237 NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de
240 %description objc -l fr
241 Ce package ajoute un support Objective C a la collection de
242 compilateurs GNU. L'Objective C est un langage orienté objetdérivé du
243 langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce
244 package n'inclue pas la bibliothéque Objective C standard.
246 %description objc -l pl
247 Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
248 C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
249 g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
250 standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
252 %description objc -l tr
253 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
254 C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
255 sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
256 kitaplýðý bu pakette yer almaz.
259 Summary: Objective C Libraries
260 Summary(es): Bibliotecas de Objective C
261 Summary(pl): Biblioteki Obiektowego C
265 %description -n libobjc
266 Objective C Libraries.
268 %description -n libobjc -l es
269 Bibliotecas de Objective C.
271 %description -n libobjc -l pl
272 Biblioteki Obiektowego C.
274 %package -n libobjc-static
275 Summary: Static Objective C Libraries
276 Summary(es): Bibliotecas estáticas de Objective C
277 Summary(pl): Statyczne Biblioteki Obiektowego C
278 Group: Development/Libraries
279 Requires: libobjc = %{epoch}:%{version}-%{release}
281 %description -n libobjc-static
282 Static Objective C Libraries.
284 %description -n libobjc-static -l es
285 Bibliotecas estáticas de Objective C.
287 %description -n libobjc-static -l pl
288 Statyczne biblioteki Obiektowego C.
291 Summary: Fortran 77 support for gcc
292 Summary(es): Soporte de Fortran 77 para gcc
293 Summary(pl): Obs³uga Fortranu 77 dla gcc
294 Summary(pt_BR): Suporte Fortran 77 para o GCC
295 Group: Development/Languages/Fortran
296 Requires: libg2c = %{epoch}:%{version}-%{release}
300 This package adds support for compiling Fortran 77 programs with the
303 %description g77 -l es
304 Este paquete añade soporte para compilar programas escritos en Fortran
305 77 con el compilador GNU.
307 %description g77 -l pl
308 Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
309 potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
311 %description g77 -l pt_BR
312 Suporte Fortran 77 para o GCC.
315 Summary: Fortran 77 Libraries
316 Summary(es): Bibliotecas de Fortran 77
317 Summary(pl): Biblioteki Fortranu 77
320 %description -n libg2c
321 Fortran 77 Libraries.
323 %description -n libg2c -l es
324 Bibliotecas de Fortran 77.
326 %description -n libg2c -l pl
327 Biblioteki Fortranu 77.
329 %package -n libg2c-static
330 Summary: Static Fortran 77 Libraries
331 Summary(es): Bibliotecas estáticas de Fortran 77
332 Summary(pl): Statyczne Biblioteki Fortranu 77
333 Group: Development/Libraries
334 Requires: libg2c = %{epoch}:%{version}-%{release}
336 %description -n libg2c-static
337 Static Fortran 77 Libraries.
339 %description -n libg2c -l es
340 Bibliotecas estáticas de Fortran 77.
342 %description -n libg2c-static -l pl
343 Statyczne biblioteki Fortranu 77.
346 Summary: Java support for gcc
347 Summary(es): Soporte de Java para gcc
348 Summary(pl): Obs³uga Javy dla gcc
349 Group: Development/Languages/Java
350 Requires: %{name} = %{epoch}:%{version}-%{release}
351 Requires: libgcj = %{epoch}:%{version}-%{release}
352 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
353 Requires: java-shared
354 Provides: gcj = %{epoch}:%{version}-%{release}
357 This package adds experimental support for compiling Java(tm) programs
358 and bytecode into native code. To use this you will also need the
361 %description java -l es
362 Este paquete añade soporte experimental para compilar programas
363 Java(tm) y su bytecode en código nativo. Para usarlo también va a
364 necesitar el paquete libgcj.
366 %description java -l pl
367 Wsparcie dla kompilowania programów Java(tm) zarówno do bajt-kodu jak i
368 do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
369 by³o przeprowadziæ kompilacjê.
372 Summary: Shared java tools
373 Summary(es): Herramientas compartidas de Java
374 Summary(pl): Wspó³dzielone narzêdzia javy
375 Group: Development/Languages/Java
376 Provides: jar = %{epoch}:%{version}-%{release}
377 Provides: java-shared
380 Obsoletes: java-shared
382 %description java-tools
383 This package contains tools that are common for every Java(tm)
384 implementation, such as rmic or jar.
386 %description java-tools -l es
387 Este paquete contiene herramientas que son comunes para cada
388 implementación de Java(tm), como rmic o jar.
390 %description java-tools -l pl
391 Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji
392 Javy(tm), takie jak rmic czy jar.
395 Summary: Java Class Libraries
396 Summary(es): Bibliotecas de clases de Java
397 Summary(pl): Biblioteki Klas Javy
402 %description -n libgcj
403 Java Class Libraries.
405 %description -n libgcj -l es
406 Bibliotecas de clases de Java.
408 %description -n libgcj -l pl
409 Biblioteki Klas Javy.
411 %package -n libgcj-devel
412 Summary: Development files for Java Class Libraries
413 Summary(es): Ficheros de desarrollo para las bibliotecas de clases de Java
414 Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
415 Group: Development/Libraries
416 Requires: %{name}-java = %{epoch}:%{version}-%{release}
417 Requires: libgcj = %{epoch}:%{version}-%{release}
418 Obsoletes: libgcj3-devel
420 %description -n libgcj-devel
421 Development files for Java Class Libraries.
423 %description -n libgcj-devel -l es
424 Ficheros de desarrollo para las bibliotecas de clases de Java.
426 %description -n libgcj-devel -l pl
427 Pliki nag³ówkowe dla Bibliotek Klas Javy.
429 %package -n libgcj-static
430 Summary: Static Java Class Libraries
431 Summary(es): Bibliotecas estáticas de clases de Java
432 Summary(pl): Statyczne Biblioteki Klas Javy
433 Group: Development/Libraries
434 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
435 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
437 %description -n libgcj-static
438 Static Java Class Libraries.
440 %description -n libgcj-static -l es
441 Bibliotecas estáticas de clases de Java.
443 %description -n libgcj-static -l pl
444 Statyczne Biblioteki Klas Javy.
446 %package -n libstdc++
447 Summary: GNU c++ library
448 Summary(es): Biblioteca C++ de GNU
449 Summary(pl): Biblioteki GNU C++
450 Summary(pt_BR): Biblioteca C++ GNU
453 Obsoletes: libstdc++3
455 %description -n libstdc++
456 This is the GNU implementation of the standard C++ libraries, along
457 with additional GNU tools. This package includes the shared libraries
458 necessary to run C++ applications.
460 %description -n libstdc++ -l de
461 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
462 weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
463 C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
465 %description -n libstdc++ -l es
466 Este es el soporte de las bibliotecas padrón del C++, junto con
467 herramientas GNU adicionales. El paquete incluye las bibliotecas
468 compartidas necesarias para ejecutar aplicaciones C++.
470 %description -n libstdc++ -l fr
471 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
472 des outils GNU supplémentaires. Ce package comprend les librairies
473 partagées nécessaires à l'exécution d'application C++.
475 %description -n libstdc++ -l pl
476 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
477 bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
478 uruchomienia aplikacji napisanych w C++.
480 %description -n libstdc++ -l pt_BR
481 Este pacote é uma implementação da biblioteca padrão C++ v3, um
482 subconjunto do padrão ISO 14882.
484 %description -n libstdc++ -l tr
485 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
486 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
488 %package -n libstdc++-devel
489 Summary: Header files and documentation for C++ development
490 Summary(de): Header-Dateien zur Entwicklung mit C++
491 Summary(es): Ficheros de cabecera y documentación para desarrollo C++
492 Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
493 Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
494 Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
495 Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
496 Group: Development/Libraries
497 Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
498 Requires: libstdc++ = %{epoch}:%{version}-%{release}
499 Requires: glibc-devel
500 Obsoletes: libg++-devel
501 Obsoletes: libstdc++3-devel
503 %description -n libstdc++-devel
504 This is the GNU implementation of the standard C++ libraries. This
505 package includes the header files needed for C++ development and
506 library documentation.
508 %description -n libstdc++-devel -l es
509 Este es el soporte de las bibliotecas padrón del lenguaje C++. Este
510 paquete incluye los archivos de inclusión y bibliotecas necesarios
511 para desarrollo de programas en lenguaje C++.
513 %description -n libstdc++-devel -l pl
514 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
515 bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
516 programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
518 %description -n libstdc++-devel -l pt_BR
519 Este pacote inclui os arquivos de inclusão e bibliotecas necessárias
520 para desenvolvimento de programas C++.
522 %package -n libstdc++-static
523 Summary: Static C++ standard library
524 Summary(es): Biblioteca estándar estática de C++
525 Summary(pl): Statyczna biblioteka standardowa C++
526 Group: Development/Libraries
527 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
529 %description -n libstdc++-static
530 Static C++ standard library.
532 %description -n libstdc++-static -l es
533 Biblioteca estándar estática de C++.
535 %description -n libstdc++-static -l pl
536 Statyczna biblioteka standardowa C++.
539 Summary: Foreign Function Interface library
540 Summary(es): Biblioteca de interfaz de funciones ajenas
541 Summary(pl): Biblioteka zewnêtrznych wywo³añ funkcji
544 %description -n libffi
545 The libffi library provides a portable, high level programming
546 interface to various calling conventions. This allows a programmer to
547 call any function specified by a call interface description at run
550 %description -n libffi -l es
551 La biblioteca libffi provee una interfaz portable de programación de
552 alto nivel para varias convenciones de llamada. Ello permite que un
553 programador llame una función cualquiera especificada por una
554 descripción de interfaz de llamada en el tiempo de ejecución.
556 %description -n libffi -l pl
557 Biblioteka libffi dostarcza przeno¶nego, wysokopoziomowego
558 miêdzymordzia do ró¿nych konwencji wywo³añ funkcji. Pozwala to
559 programi¶cie wywo³ywaæ dowolne funkcje podaj±c konwencjê wywo³ania w
562 %package -n libffi-devel
563 Summary: Development files for Foreign Function Interface library
564 Summary(es): Ficheros de desarrollo para libffi
565 Summary(pl): Pliki nag³ówkowe dla libffi
566 Group: Development/Libraries
567 Requires: libffi = %{epoch}:%{version}-%{release}
569 %description -n libffi-devel
570 Development files for Foreign Function Interface library.
572 %description -n libffi-devel -l es
573 Ficheros de desarrollo para libffi.
575 %description -n libffi-devel -l pl
576 Pliki nag³ówkowe dla libffi.
578 %package -n libffi-static
579 Summary: Static Foreign Function Interface library
580 Summary(es): Biblioteca libffi estática
581 Summary(pl): Statyczna biblioteka libffi
582 Group: Development/Libraries
583 Requires: libffi-devel = %{epoch}:%{version}-%{release}
585 %description -n libffi-static
586 Static Foreign Function Interface library.
588 %description -n libffi-static -l es
589 Biblioteca libffi estática.
591 %description -n libffi-static -l pl
592 Statyczna biblioteka libffi.
595 Summary: Ada support for gcc
596 Summary(es): Soporte de Ada para gcc
597 Summary(pl): Obs³uga Ady do gcc
598 Group: Development/Languages
599 Requires: %{name} = %{epoch}:%{version}-%{release}
600 Requires: libgnat = %{epoch}:%{version}-%{release}
602 Obsoletes: gnat-devel
605 This package adds experimental support for compiling Ada programs.
607 %description ada -l es
608 Este paquete añade soporte experimental para compilar programas en
611 %description ada -l pl
612 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w
616 Summary: Ada standard libraries
617 Summary(es): Bibliotecas estándares de Ada
618 Summary(pl): Biblioteki standardowe dla Ady
623 %description -n libgnat
624 This package contains shared libraries needed to run programs written
627 %description -n libgnat -l es
628 Este paquete contiene las bibliotecas compartidas necesarias para
629 ejecutar programas escritos en Ada.
631 %description -n libgnat -l pl
632 Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów
635 %package -n libgnat-static
636 Summary: Static Ada standard libraries
637 Summary(pl): Statyczne biblioteki standardowe dla Ady
639 Obsoletes: gnat-static
641 %description -n libgnat-static
642 This package contains static libraries for programs written in Ada.
644 %description -n libgnat-static -l pl
645 Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
654 %{!?debug:%patch3 -p1}
655 %{?with_ssp:%patch4 -p1}
664 # needed for bootstrap using gcc 3.3.x on alpha
665 # and even using the same 3.4.x(!) (but not Debian's 3.3.x) on ia64
669 # because we distribute modified version of gcc...
670 perl -pi -e 's/(version.*)";/$1 %{?with_ssp:SSP }(PLD Linux)";/' gcc/version.c
671 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
673 mv ChangeLog ChangeLog.general
676 # because pr16276 patch modifies configure.ac
680 cp -f /usr/share/automake/config.sub .
682 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
691 exec /usr/bin/gcc -m64 "$@"
700 exec /usr/bin/gcc -m64 "$@"
708 CFLAGS="%{rpmcflags}" \
709 CXXFLAGS="%{rpmcflags}" \
711 TEXCONFIG=false ../configure \
712 --prefix=%{_prefix} \
713 --libdir=%{_libdir} \
714 --libexecdir=%{_libdir} \
715 --infodir=%{_infodir} \
716 --mandir=%{_mandir} \
718 --enable-threads=posix \
719 --enable-__cxa_atexit \
720 --enable-languages="c,c++,f77%{?with_objc:,objc}%{?with_ada:,ada}%{?with_java:,java}" \
732 --with-slibdir=%{_slibdir} \
736 PATH=$PATH:/sbin:%{_sbindir}
739 # - on alpha stage1 needs -O0 for 3.3->3.4 bootstrap (gnat from 3.3 is seriously broken)
740 # - on ia64 use bootstrap-lean as profiledbootstrap is broken (PR 13882, 15836, 16108)
741 %{__make} -C obj-%{_target_platform} \
747 GCJFLAGS="%{rpmcflags}" \
748 BOOT_CFLAGS="%{rpmcflags}" \
750 STAGE1_CFLAGS="%{rpmcflags} -O0" \
752 STAGE1_CFLAGS="%{rpmcflags}" \
754 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
759 # cannot build it in parallel
760 for tgt in gnatlib-shared gnattools gnatlib; do
761 %{__make} -C obj-%{_target_platform}/gcc $tgt \
762 BOOT_CFLAGS="%{rpmcflags}" \
763 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
770 rm -rf $RPM_BUILD_ROOT
771 install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
773 cd obj-%{_target_platform}
774 PATH=$PATH:/sbin:%{_sbindir}
776 %{__make} -j1 install \
778 infodir=%{_infodir} \
779 DESTDIR=$RPM_BUILD_ROOT
782 ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \
783 $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
786 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
787 echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
789 ln -sf g77 $RPM_BUILD_ROOT%{_bindir}/f77
790 echo ".so g77.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
793 # move ada shared libraries to proper place...
794 mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
795 $RPM_BUILD_ROOT%{_libdir}
796 # check if symlink to be made is valid
797 test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so.1
798 ln -sf libgnat-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so
799 ln -sf libgnarl-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-3.4.so
800 ln -sf libgnat-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
801 ln -sf libgnarl-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
804 ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
810 cp -f libjava/doc/cni.sgml libjava/READ* java-doc
811 cp -f fastjar/README java-doc/README.fastjar
812 cp -f libffi/README java-doc/README.libffi
813 cp -f libffi/LICENSE java-doc/LICENSE.libffi
817 cp -f libobjc/README gcc/objc/README.libobjc
820 # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version}
821 for f in libstdc++.la libsupc++.la %{?with_java:libgcj.la} ; do
822 perl -pi -e 's@-L[^ ]*[acs.] @@g' $RPM_BUILD_ROOT%{_libdir}/$f
824 # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
825 for f in libstdc++.la libsupc++.la libg2c.la \
826 %{?with_java:libgcj.la lib-org-w3c-dom.la lib-org-xml-sax.la libffi.la} \
827 %{?with_objc:libobjc.la}; do
828 perl -pi -e "s@^libdir='.*@libdir='/usr/%{_lib}'@" $RPM_BUILD_ROOT%{_libdir}/$f
831 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
832 mv -f $RPM_BUILD_ROOT%{_mandir}/ja/man1/{cccp,cpp}.1
834 # include/ contains install-tools/include/* and headers that were fixed up
835 # by fixincludes, we don't want former
836 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
838 # we have to save these however
839 mv -f $gccdir/include/{%{?with_objc:objc,}g2c.h,syslimits.h%{?with_java:,libffi/ffitarget.h,gcj}} $gccdir/tmp
840 rm -rf $gccdir/include
841 mv -f $gccdir/tmp $gccdir/include
842 cp $gccdir/install-tools/include/*.h $gccdir/include
843 # but we don't want anything more from install-tools
844 rm -rf $gccdir/install-tools
849 ln -sf %{_slibdir}*/libgcc_s.so.1 $gccdir/libgcc_s.so
850 ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/libgcc_s_32.so
854 ln -sf %{_slibdir}*/libgcc_s.so.1 $gccdir/libgcc_s.so
855 ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/libgcc_s_32.so
861 %find_lang libstdc\+\+
864 zcat %{SOURCE2} > $RPM_BUILD_ROOT%{_aclocaldir}/gcc_stack_protect.m4
866 install %{SOURCE3} $RPM_BUILD_ROOT%{_aclocaldir}/gcc_visibility.m4
869 rm -rf $RPM_BUILD_ROOT
872 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
875 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
878 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
881 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
884 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
887 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
889 %post -p /sbin/ldconfig -n libgcc
890 %postun -p /sbin/ldconfig -n libgcc
891 %post -p /sbin/ldconfig -n libstdc++
892 %postun -p /sbin/ldconfig -n libstdc++
893 %post -p /sbin/ldconfig -n libobjc
894 %postun -p /sbin/ldconfig -n libobjc
895 %post -p /sbin/ldconfig -n libg2c
896 %postun -p /sbin/ldconfig -n libg2c
897 %post -p /sbin/ldconfig -n libgcj
898 %postun -p /sbin/ldconfig -n libgcj
899 %post -p /sbin/ldconfig -n libgnat
900 %postun -p /sbin/ldconfig -n libgnat
901 %post -p /sbin/ldconfig -n libffi
902 %postun -p /sbin/ldconfig -n libffi
905 %defattr(644,root,root,755)
906 %doc ChangeLog.general MAINTAINERS NEWS bugs.html faq.html
907 %doc gcc/{ChangeLog,ONEWS,README.Portability}
908 %dir %{_libdir}/gcc/*/*
909 %dir %{_libdir}/gcc/*/*/include
910 %{?with_ssp:%{_aclocaldir}/gcc_stack_protect.m4}
911 %{_aclocaldir}/gcc_visibility.m4
913 %attr(755,root,root) %{_bindir}/*-gcc*
914 %attr(755,root,root) %{_bindir}/gcc
915 %attr(755,root,root) %{_bindir}/gccbug
916 %attr(755,root,root) %{_bindir}/gcov
917 %attr(755,root,root) %{_bindir}/cc
918 %attr(755,root,root) %{_bindir}/cpp
920 %{_mandir}/man1/cc.1*
921 %{_mandir}/man1/cpp.1*
922 %lang(ja) %{_mandir}/ja/man1/cpp.1*
923 %{_mandir}/man1/gcc.1*
924 %lang(fr) %{_mandir}/fr/man1/gcc.1*
925 %lang(ja) %{_mandir}/ja/man1/gcc.1*
926 %{_mandir}/man1/gcov.1*
931 %attr(755,root,root) /lib/cpp
933 %attr(755,root,root) %{_slibdir}*/lib*.so
935 %{_slibdir}*/libunwind.a
937 %{_libdir}/gcc/*/*/libgcov.a
938 %{_libdir}/gcc/*/*/libgcc.a
939 %{_libdir}/gcc/*/*/libgcc_eh.a
940 %{_libdir}/gcc/*/*/specs
941 %attr(644,root,root) %{_libdir}*/gcc/*/*/crt*.o
943 %{_libdir}/gcc/*/*/*/libgcc.a
944 %{_libdir}/gcc/*/*/*/libgcc_eh.a
945 %{_libdir}/gcc/*/*/*/libgcov.a
946 %{_libdir}/gcc/*/*/libgcc*so
947 %attr(644,root,root) %{_libdir}*/gcc/*/*/*/crt*.o
950 %attr(644,root,root) %{_libdir}/gcc/*/*/ecrt*.o
951 %attr(644,root,root) %{_libdir}/gcc/*/*/ncrt*.o
952 %{_libdir}/gcc/*/*/nof
955 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1
956 %attr(755,root,root) %{_libdir}/gcc/*/*/collect2
958 %{_libdir}/gcc/*/*/include/*.h
959 %exclude %{_libdir}/gcc/*/*/include/g2c.h
962 %defattr(644,root,root,755)
963 %attr(755,root,root) %{_slibdir}*/lib*.so.*
965 %attr(755,root,root) %{_slibdir32}/lib*.so.*
969 %defattr(644,root,root,755)
970 %doc gcc/cp/{ChangeLog,NEWS}
971 %attr(755,root,root) %{_bindir}/g++
972 %attr(755,root,root) %{_bindir}/*-g++
973 %attr(755,root,root) %{_bindir}/c++
974 %attr(755,root,root) %{_bindir}/*-c++
975 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
976 %{_libdir}*/libsupc++.la
978 %{_libdir}/nof/libsupc++.la
979 %{_libdir}/nof/libsupc++.a
981 %{_libdir}*/libsupc++.a
982 %{_mandir}/man1/g++.1*
983 %lang(ja) %{_mandir}/ja/man1/g++.1*
985 %files -n libstdc++ -f libstdc++.lang
986 %defattr(644,root,root,755)
987 %doc libstdc++-v3/{ChangeLog,README}
988 %attr(755,root,root) %{_libdir}*/libstdc++.so.*.*.*
990 %attr(755,root,root) %{_libdir}/nof/libstdc++.so.*.*.*
993 %files -n libstdc++-devel
994 %defattr(644,root,root,755)
995 %doc libstdc++-v3/docs/html
996 %dir %{_includedir}/c++
997 %{_includedir}/c++/%{version}
998 %exclude %{_includedir}/c++/%{version}/*/bits/stdc++.h.gch
999 %attr(755,root,root) %{_libdir}*/libstdc++.so
1000 %{_libdir}*/libstdc++.la
1002 %attr(755,root,root) %{_libdir}/nof/libstdc++.so
1003 %{_libdir}/nof/libstdc++.la
1006 %files -n libstdc++-static
1007 %defattr(644,root,root,755)
1008 %{_libdir}*/libstdc++.a
1010 %{_libdir}/nof/libstdc++.a
1015 %defattr(644,root,root,755)
1016 %doc gcc/objc/README
1017 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
1018 %attr(755,root,root) %{_libdir}*/libobjc.so
1019 %{_libdir}*/libobjc.la
1021 %attr(755,root,root) %{_libdir}/nof/libobjc.so
1022 %{_libdir}/nof/libobjc.la
1024 %{_libdir}/gcc/*/*/include/objc
1027 %defattr(644,root,root,755)
1028 %doc libobjc/{ChangeLog,README*}
1029 %attr(755,root,root) %{_libdir}*/libobjc.so.*.*.*
1031 %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.*
1034 %files -n libobjc-static
1035 %defattr(644,root,root,755)
1036 %{_libdir}*/libobjc.a
1038 %{_libdir}/nof/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 %{_libdir}/gcc/*/*/include/g2c.h
1058 %{_mandir}/man1/g77.1*
1059 %{_mandir}/man1/f77.1*
1060 %lang(ja) %{_mandir}/ja/man1/g77.1*
1061 %lang(ja) %{_mandir}/ja/man1/f77.1*
1064 %defattr(644,root,root,755)
1065 %doc libf2c/{ChangeLog,README,TODO}
1066 %attr(755,root,root) %{_libdir}*/libg2c.so.*.*.*
1068 %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.*
1071 %files -n libg2c-static
1072 %defattr(644,root,root,755)
1073 %{_libdir}*/libg2c.a
1075 %{_libdir}/nof/libg2c.a
1080 %defattr(644,root,root,755)
1081 %doc gcc/java/ChangeLog java-doc/*
1082 %attr(755,root,root) %{_bindir}/gcj*
1083 %attr(755,root,root) %{_bindir}/gij
1084 %attr(755,root,root) %{_bindir}/jcf-dump
1085 %attr(755,root,root) %{_bindir}/jv-*
1086 %attr(755,root,root) %{_bindir}/grepjar
1087 %attr(755,root,root) %{_bindir}/*-gcj*
1088 %attr(755,root,root) %{_libdir}/gcc/*/*/jc1
1089 %attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
1091 %{_mandir}/man1/jcf-*
1092 %{_mandir}/man1/jv-*
1093 %{_mandir}/man1/gij*
1094 %{_mandir}/man1/gcj*
1095 %{_mandir}/man1/grepjar*
1098 %defattr(644,root,root,755)
1099 %attr(755,root,root) %{_bindir}/rmi*
1100 %attr(755,root,root) %{_bindir}/jar
1101 %{_mandir}/man1/rmi*
1102 %{_mandir}/man1/jar*
1103 %{_infodir}/fastjar*
1106 %defattr(644,root,root,755)
1107 %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
1108 %attr(755,root,root) %{_bindir}/addr2name.awk
1109 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
1110 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
1112 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
1114 %{_libdir}/logging.properties
1116 %files -n libgcj-devel
1117 %defattr(644,root,root,755)
1119 %{_includedir}/javax
1122 %{_includedir}/gnu/*
1123 %{_libdir}/gcc/*/*/include/gcj
1124 %dir %{_libdir}/security
1125 %{_libdir}/security/*
1126 %dir %{_datadir}/java
1127 %{_datadir}/java/libgcj*.jar
1128 %{_libdir}/lib*cj.spec
1129 %{_libdir}/lib*cj*.la
1130 %attr(755,root,root) %{_libdir}/lib*cj*.so
1131 %attr(755,root,root) %{_libdir}/lib-org-*.so
1132 %{_libdir}/lib-org-*.la
1134 %{_libdir}/nof/lib*cj*.la
1135 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so
1137 %{_pkgconfigdir}/libgcj.pc
1139 %files -n libgcj-static
1140 %defattr(644,root,root,755)
1141 %{_libdir}/lib*cj*.a
1142 %{_libdir}/lib-org-*.a
1144 %{_libdir}/nof/lib*cj*.a
1148 %defattr(644,root,root,755)
1149 %doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
1150 %attr(755,root,root) %{_libdir}/libffi-*.so
1152 %files -n libffi-devel
1153 %defattr(644,root,root,755)
1154 %{_libdir}/gcc/*/*/include/ffitarget.h
1155 %attr(755,root,root) %{_libdir}/libffi.so
1156 %{_libdir}/libffi.la
1157 %{_includedir}/ffi.h
1159 %files -n libffi-static
1160 %defattr(644,root,root,755)
1166 %defattr(644,root,root,755)
1167 %doc gcc/ada/ChangeLog
1168 %attr(755,root,root) %{_bindir}/gnat*
1169 %attr(755,root,root) %{_bindir}/gpr*
1170 %attr(755,root,root) %{_libdir}/libgnarl*.so
1171 %attr(755,root,root) %{_libdir}/libgnat*.so
1172 %attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
1173 %{_libdir}/gcc/*/*/adainclude
1174 %dir %{_libdir}/gcc/*/*/adalib
1175 %{_libdir}/gcc/*/*/adalib/*.ali
1176 %{_libdir}/gcc/*/*/adalib/g-trasym.o
1177 %{_libdir}/gcc/*/*/adalib/libgccprefix.a
1179 %{_libdir}/gcc/*/*/adalib/libgmem.a
1185 %defattr(644,root,root,755)
1186 %attr(755,root,root) %{_libdir}/libgnarl*.so.1
1187 %attr(755,root,root) %{_libdir}/libgnat*.so.1
1189 %files -n libgnat-static
1190 %defattr(644,root,root,755)
1191 %{_libdir}/gcc/*/*/adalib/libgnarl.a
1192 %{_libdir}/gcc/*/*/adalib/libgnat.a