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: e744b30c834360fccac41eb7269a3011
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
42 Patch8: %{name}-pr18185.patch
44 # -fvisibility={default|internal|hidden|protected}
46 # Set the default ELF image symbol visibility to the specified option.
47 # All symbols will be marked with this unless overrided within the code.
48 # Using this feature can very substantially improve linking and load times
49 # of shared object libraries, produce more optimised code, provide near-perfect
50 # API export and prevent symbol clashes. It is strongly recommended that you
51 # use this in any shared objects you distribute.
53 # -fvisibility-inlines-hidden
55 # Causes all inlined methods to be marked with __attribute__((visibility("hidden")))
56 # so that they do not appear in the export table of a DSO and do not require a PLT
57 # indirection when used within the DSO. Enabling this option can have a dramatic
58 # effect on load and link times of a DSO as it massively reduces the size
59 # of the dynamic export table when the library makes heavy use of templates.
60 # While it can cause bloating through duplication of code within each DSO
61 # where it is used, often the wastage is less than the considerable space
62 # occupied by a long symbol name in the export table which is typical when using
63 # templates and namespaces.
65 # How to Write Shared Libraries: http://people.redhat.com/drepper/dsohowto.pdf
67 Patch9: %{name}-visibility.patch
68 Patch10: %{name}-pr13470.patch
70 Patch20: %{name}-ada-bootstrap.patch
71 URL: http://gcc.gnu.org/
72 BuildRequires: autoconf
73 BuildRequires: automake
74 BuildRequires: binutils >= 2:2.15.91.0.2
76 BuildRequires: fileutils >= 4.0.41
79 BuildRequires: gcc(ada)
80 BuildRequires: gcc-ada
82 BuildRequires: gettext-devel
83 BuildRequires: glibc-devel >= 2.2.5-20
84 BuildRequires: perl-devel
85 BuildRequires: texinfo >= 4.1
86 BuildRequires: zlib-devel
87 Requires: binutils >= 2:2.15.91.0.2
88 Requires: gcc-dirs >= 1.0-3
89 Requires: libgcc = %{epoch}:%{version}-%{release}
90 Provides: cpp = %{epoch}:%{version}-%{release}
91 %{?with_ada:Provides: gcc(ada)}
92 %{?with_ssp:Provides: gcc(ssp)}
93 # ksi for gcc > 3.3.x not ready yet
99 Conflicts: glibc-devel < 2.2.5-20
100 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
102 %define _slibdir /%{_lib}
103 %ifarch amd64 ppc64 s390x sparc64
104 %define _slibdir32 /lib
105 %define _libdir32 /usr/lib
108 %define rpmcflags -O2 -mtune=ultrasparc
112 A compiler aimed at integrating all the optimizations and features
113 necessary for a high-performance and stable development environment.
115 This package contains the C compiler and some files shared by various
116 parts of the GNU Compiler Collection. In order to use another GCC
117 compiler you will need to install the appropriate subpackage.
120 Un compilador que intenta integrar todas las optimalizaciones y
121 características necesarias para un entorno de desarrollo eficaz y
124 Este paquete contiene el compilador de C y unos ficheros compartidos
125 por varias partes de la colección de compiladores GNU (GCC). Para usar
126 otro compilador de GCC será necesario que instale el subpaquete
130 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
131 wyprodukowania szybkiego i stabilnego kodu wynikowego.
133 Ten pakiet zawiera kompilator C i pliki wspó³dzielone przez ró¿ne
134 czê¶ci kolekcji kompilatorów GNU (GCC). ¯eby u¿ywaæ innego kompilatora
135 z GCC, trzeba zainstalowaæ odpowiedni podpakiet.
137 %description -l pt_BR
138 Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
139 GNU Compiler Collection.
142 Summary: Shared gcc library
143 Summary(es): Biblioteca compartida de gcc
144 Summary(pl): Biblioteka gcc
145 Summary(pt_BR): Biblioteca runtime para o GCC
149 %description -n libgcc
152 %description -n libgcc -l es
153 Biblioteca compartida de gcc.
155 %description -n libgcc -l pl
156 Biblioteka dynamiczna gcc.
158 %description -n libgcc -l pt_BR
159 Biblioteca runtime para o GCC.
162 Summary: C++ support for gcc
163 Summary(es): Soporte de C++ para gcc
164 Summary(pl): Obs³uga C++ dla gcc
165 Summary(pt_BR): Suporte C++ para o gcc
166 Group: Development/Languages
167 Requires: %{name} = %{epoch}:%{version}-%{release}
172 This package adds C++ support to the GNU Compiler Collection. It
173 includes support for most of the current C++ specification, including
174 templates and exception handling. It does not include a standard C++
175 library, which is available separately.
177 %description c++ -l de
178 Dieses Paket enthält die C++-Unterstützung für den
179 GNU-Compiler-Collection. Es unterstützt die aktuelle
180 C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine
181 C++-Standard-Library ist nicht enthalten - sie ist getrennt
184 %description c++ -l es
185 Este paquete añade soporte de C++ al GCC (colección de compiladores
186 GNU). Ello incluye el soporte para la mayoría de la especificación
187 actual de C++, incluyendo plantillas y manejo de excepciones. No
188 incluye la biblioteca estándar de C++, la que es disponible separada.
190 %description c++ -l fr
191 Ce package ajoute un support C++ a la collection de compilateurs GNU.
192 Il comprend un support pour la plupart des spécifications actuelles de
193 C++, dont les modéles et la gestion des exceptions. Il ne comprend pas
194 une bibliothéque C++ standard, qui est disponible séparément.
196 %description c++ -l pl
197 Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
198 du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
199 standardowych bibliotek C++, które s± w oddzielnym pakiecie.
201 %description c++ -l pt_BR
202 Este pacote adiciona suporte C++ para o gcc.
204 %description c++ -l tr
205 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
206 aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
207 C++ kitaplýðý bu pakette yer almaz.
210 Summary: Objective C support for gcc
211 Summary(de): Objektive C-Unterstützung für gcc
212 Summary(es): Soporte de Objective C para gcc
213 Summary(fr): Gestion d'Objective C pour gcc
214 Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
215 Summary(tr): gcc için Objective C desteði
216 Group: Development/Languages
217 Requires: %{name} = %{epoch}:%{version}-%{release}
218 Requires: libobjc = %{epoch}:%{version}-%{release}
223 This package adds Objective C support to the GNU Compiler Collection.
224 Objective C is a object oriented derivative of the C language, mainly
225 used on systems running NeXTSTEP. This package does not include the
226 standard objective C object library.
228 %description objc -l de
229 Dieses Paket ergänzt den GNU-Compiler-Collection durch
230 Objective-C-Support. Objective C ist ein objektorientiertes Derivat
231 von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt.
232 Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
234 %description objc -l es
235 Este paquete añade soporte de Objective C al GCC (colección de
236 compiladores GNU). Objective C es un lenguaje orientado a objetos
237 derivado de C, principalmente usado en sistemas que funcionan bajo
238 NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de
241 %description objc -l fr
242 Ce package ajoute un support Objective C a la collection de
243 compilateurs GNU. L'Objective C est un langage orienté objetdérivé du
244 langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce
245 package n'inclue pas la bibliothéque Objective C standard.
247 %description objc -l pl
248 Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
249 C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
250 g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
251 standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
253 %description objc -l tr
254 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
255 C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
256 sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
257 kitaplýðý bu pakette yer almaz.
260 Summary: Objective C Libraries
261 Summary(es): Bibliotecas de Objective C
262 Summary(pl): Biblioteki Obiektowego C
266 %description -n libobjc
267 Objective C Libraries.
269 %description -n libobjc -l es
270 Bibliotecas de Objective C.
272 %description -n libobjc -l pl
273 Biblioteki Obiektowego C.
275 %package -n libobjc-static
276 Summary: Static Objective C Libraries
277 Summary(es): Bibliotecas estáticas de Objective C
278 Summary(pl): Statyczne Biblioteki Obiektowego C
279 Group: Development/Libraries
280 Requires: libobjc = %{epoch}:%{version}-%{release}
282 %description -n libobjc-static
283 Static Objective C Libraries.
285 %description -n libobjc-static -l es
286 Bibliotecas estáticas de Objective C.
288 %description -n libobjc-static -l pl
289 Statyczne biblioteki Obiektowego C.
292 Summary: Fortran 77 support for gcc
293 Summary(es): Soporte de Fortran 77 para gcc
294 Summary(pl): Obs³uga Fortranu 77 dla gcc
295 Summary(pt_BR): Suporte Fortran 77 para o GCC
296 Group: Development/Languages/Fortran
297 Requires: libg2c = %{epoch}:%{version}-%{release}
301 This package adds support for compiling Fortran 77 programs with the
304 %description g77 -l es
305 Este paquete añade soporte para compilar programas escritos en Fortran
306 77 con el compilador GNU.
308 %description g77 -l pl
309 Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
310 potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
312 %description g77 -l pt_BR
313 Suporte Fortran 77 para o GCC.
316 Summary: Fortran 77 Libraries
317 Summary(es): Bibliotecas de Fortran 77
318 Summary(pl): Biblioteki Fortranu 77
321 %description -n libg2c
322 Fortran 77 Libraries.
324 %description -n libg2c -l es
325 Bibliotecas de Fortran 77.
327 %description -n libg2c -l pl
328 Biblioteki Fortranu 77.
330 %package -n libg2c-static
331 Summary: Static Fortran 77 Libraries
332 Summary(es): Bibliotecas estáticas de Fortran 77
333 Summary(pl): Statyczne Biblioteki Fortranu 77
334 Group: Development/Libraries
335 Requires: libg2c = %{epoch}:%{version}-%{release}
337 %description -n libg2c-static
338 Static Fortran 77 Libraries.
340 %description -n libg2c -l es
341 Bibliotecas estáticas de Fortran 77.
343 %description -n libg2c-static -l pl
344 Statyczne biblioteki Fortranu 77.
347 Summary: Java support for gcc
348 Summary(es): Soporte de Java para gcc
349 Summary(pl): Obs³uga Javy dla gcc
350 Group: Development/Languages/Java
351 Requires: %{name} = %{epoch}:%{version}-%{release}
352 Requires: libgcj = %{epoch}:%{version}-%{release}
353 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
354 Requires: java-shared
355 Provides: gcj = %{epoch}:%{version}-%{release}
358 This package adds experimental support for compiling Java(tm) programs
359 and bytecode into native code. To use this you will also need the
362 %description java -l es
363 Este paquete añade soporte experimental para compilar programas
364 Java(tm) y su bytecode en código nativo. Para usarlo también va a
365 necesitar el paquete libgcj.
367 %description java -l pl
368 Wsparcie dla kompilowania programów Java(tm) zarówno do bajt-kodu jak i
369 do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
370 by³o przeprowadziæ kompilacjê.
373 Summary: Shared java tools
374 Summary(es): Herramientas compartidas de Java
375 Summary(pl): Wspó³dzielone narzêdzia javy
376 Group: Development/Languages/Java
377 Provides: jar = %{epoch}:%{version}-%{release}
378 Provides: java-shared
381 Obsoletes: java-shared
383 %description java-tools
384 This package contains tools that are common for every Java(tm)
385 implementation, such as rmic or jar.
387 %description java-tools -l es
388 Este paquete contiene herramientas que son comunes para cada
389 implementación de Java(tm), como rmic o jar.
391 %description java-tools -l pl
392 Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji
393 Javy(tm), takie jak rmic czy jar.
396 Summary: Java Class Libraries
397 Summary(es): Bibliotecas de clases de Java
398 Summary(pl): Biblioteki Klas Javy
403 %description -n libgcj
404 Java Class Libraries.
406 %description -n libgcj -l es
407 Bibliotecas de clases de Java.
409 %description -n libgcj -l pl
410 Biblioteki Klas Javy.
412 %package -n libgcj-devel
413 Summary: Development files for Java Class Libraries
414 Summary(es): Ficheros de desarrollo para las bibliotecas de clases de Java
415 Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
416 Group: Development/Libraries
417 Requires: %{name}-java = %{epoch}:%{version}-%{release}
418 Requires: libgcj = %{epoch}:%{version}-%{release}
419 Obsoletes: libgcj3-devel
421 %description -n libgcj-devel
422 Development files for Java Class Libraries.
424 %description -n libgcj-devel -l es
425 Ficheros de desarrollo para las bibliotecas de clases de Java.
427 %description -n libgcj-devel -l pl
428 Pliki nag³ówkowe dla Bibliotek Klas Javy.
430 %package -n libgcj-static
431 Summary: Static Java Class Libraries
432 Summary(es): Bibliotecas estáticas de clases de Java
433 Summary(pl): Statyczne Biblioteki Klas Javy
434 Group: Development/Libraries
435 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
436 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
438 %description -n libgcj-static
439 Static Java Class Libraries.
441 %description -n libgcj-static -l es
442 Bibliotecas estáticas de clases de Java.
444 %description -n libgcj-static -l pl
445 Statyczne Biblioteki Klas Javy.
447 %package -n libstdc++
448 Summary: GNU c++ library
449 Summary(es): Biblioteca C++ de GNU
450 Summary(pl): Biblioteki GNU C++
451 Summary(pt_BR): Biblioteca C++ GNU
454 Obsoletes: libstdc++3
456 %description -n libstdc++
457 This is the GNU implementation of the standard C++ libraries, along
458 with additional GNU tools. This package includes the shared libraries
459 necessary to run C++ applications.
461 %description -n libstdc++ -l de
462 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
463 weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
464 C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
466 %description -n libstdc++ -l es
467 Este es el soporte de las bibliotecas padrón del C++, junto con
468 herramientas GNU adicionales. El paquete incluye las bibliotecas
469 compartidas necesarias para ejecutar aplicaciones C++.
471 %description -n libstdc++ -l fr
472 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
473 des outils GNU supplémentaires. Ce package comprend les librairies
474 partagées nécessaires à l'exécution d'application C++.
476 %description -n libstdc++ -l pl
477 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
478 bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
479 uruchomienia aplikacji napisanych w C++.
481 %description -n libstdc++ -l pt_BR
482 Este pacote é uma implementação da biblioteca padrão C++ v3, um
483 subconjunto do padrão ISO 14882.
485 %description -n libstdc++ -l tr
486 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
487 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
489 %package -n libstdc++-devel
490 Summary: Header files and documentation for C++ development
491 Summary(de): Header-Dateien zur Entwicklung mit C++
492 Summary(es): Ficheros de cabecera y documentación para desarrollo C++
493 Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
494 Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
495 Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
496 Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
497 Group: Development/Libraries
498 Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
499 Requires: libstdc++ = %{epoch}:%{version}-%{release}
500 Requires: glibc-devel
501 Obsoletes: libg++-devel
502 Obsoletes: libstdc++3-devel
504 %description -n libstdc++-devel
505 This is the GNU implementation of the standard C++ libraries. This
506 package includes the header files needed for C++ development and
507 library documentation.
509 %description -n libstdc++-devel -l es
510 Este es el soporte de las bibliotecas padrón del lenguaje C++. Este
511 paquete incluye los archivos de inclusión y bibliotecas necesarios
512 para desarrollo de programas en lenguaje C++.
514 %description -n libstdc++-devel -l pl
515 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
516 bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
517 programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
519 %description -n libstdc++-devel -l pt_BR
520 Este pacote inclui os arquivos de inclusão e bibliotecas necessárias
521 para desenvolvimento de programas C++.
523 %package -n libstdc++-static
524 Summary: Static C++ standard library
525 Summary(es): Biblioteca estándar estática de C++
526 Summary(pl): Statyczna biblioteka standardowa C++
527 Group: Development/Libraries
528 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
530 %description -n libstdc++-static
531 Static C++ standard library.
533 %description -n libstdc++-static -l es
534 Biblioteca estándar estática de C++.
536 %description -n libstdc++-static -l pl
537 Statyczna biblioteka standardowa C++.
540 Summary: Foreign Function Interface library
541 Summary(es): Biblioteca de interfaz de funciones ajenas
542 Summary(pl): Biblioteka zewnêtrznych wywo³añ funkcji
545 %description -n libffi
546 The libffi library provides a portable, high level programming
547 interface to various calling conventions. This allows a programmer to
548 call any function specified by a call interface description at run
551 %description -n libffi -l es
552 La biblioteca libffi provee una interfaz portable de programación de
553 alto nivel para varias convenciones de llamada. Ello permite que un
554 programador llame una función cualquiera especificada por una
555 descripción de interfaz de llamada en el tiempo de ejecución.
557 %description -n libffi -l pl
558 Biblioteka libffi dostarcza przeno¶nego, wysokopoziomowego
559 miêdzymordzia do ró¿nych konwencji wywo³añ funkcji. Pozwala to
560 programi¶cie wywo³ywaæ dowolne funkcje podaj±c konwencjê wywo³ania w
563 %package -n libffi-devel
564 Summary: Development files for Foreign Function Interface library
565 Summary(es): Ficheros de desarrollo para libffi
566 Summary(pl): Pliki nag³ówkowe dla libffi
567 Group: Development/Libraries
568 Requires: libffi = %{epoch}:%{version}-%{release}
570 %description -n libffi-devel
571 Development files for Foreign Function Interface library.
573 %description -n libffi-devel -l es
574 Ficheros de desarrollo para libffi.
576 %description -n libffi-devel -l pl
577 Pliki nag³ówkowe dla libffi.
579 %package -n libffi-static
580 Summary: Static Foreign Function Interface library
581 Summary(es): Biblioteca libffi estática
582 Summary(pl): Statyczna biblioteka libffi
583 Group: Development/Libraries
584 Requires: libffi-devel = %{epoch}:%{version}-%{release}
586 %description -n libffi-static
587 Static Foreign Function Interface library.
589 %description -n libffi-static -l es
590 Biblioteca libffi estática.
592 %description -n libffi-static -l pl
593 Statyczna biblioteka libffi.
596 Summary: Ada support for gcc
597 Summary(es): Soporte de Ada para gcc
598 Summary(pl): Obs³uga Ady do gcc
599 Group: Development/Languages
600 Requires: %{name} = %{epoch}:%{version}-%{release}
601 Requires: libgnat = %{epoch}:%{version}-%{release}
603 Obsoletes: gnat-devel
606 This package adds experimental support for compiling Ada programs.
608 %description ada -l es
609 Este paquete añade soporte experimental para compilar programas en
612 %description ada -l pl
613 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w
617 Summary: Ada standard libraries
618 Summary(es): Bibliotecas estándares de Ada
619 Summary(pl): Biblioteki standardowe dla Ady
624 %description -n libgnat
625 This package contains shared libraries needed to run programs written
628 %description -n libgnat -l es
629 Este paquete contiene las bibliotecas compartidas necesarias para
630 ejecutar programas escritos en Ada.
632 %description -n libgnat -l pl
633 Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów
636 %package -n libgnat-static
637 Summary: Static Ada standard libraries
638 Summary(pl): Statyczne biblioteki standardowe dla Ady
640 Obsoletes: gnat-static
642 %description -n libgnat-static
643 This package contains static libraries for programs written in Ada.
645 %description -n libgnat-static -l pl
646 Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
655 %{!?debug:%patch3 -p1}
656 %{?with_ssp:%patch4 -p1}
665 # needed for bootstrap using gcc 3.3.x on alpha
666 # and even using the same 3.4.x(!) (but not Debian's 3.3.x) on ia64
670 # because we distribute modified version of gcc...
671 perl -pi -e 's/(version.*)";/$1 %{?with_ssp:SSP }(PLD Linux)";/' gcc/version.c
672 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
674 mv ChangeLog ChangeLog.general
677 # because pr16276 patch modifies configure.ac
681 cp -f /usr/share/automake/config.sub .
683 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
690 exec /usr/bin/gcc -m64 "$@"
696 CFLAGS="%{rpmcflags}" \
697 CXXFLAGS="%{rpmcflags}" \
701 --prefix=%{_prefix} \
702 --libdir=%{_libdir} \
703 --libexecdir=%{_libdir} \
704 --infodir=%{_infodir} \
705 --mandir=%{_mandir} \
707 --enable-threads=posix \
708 --enable-__cxa_atexit \
709 --enable-languages="c,c++,f77%{?with_objc:,objc}%{?with_ada:,ada}%{?with_java:,java}" \
721 --with-slibdir=%{_slibdir} \
725 PATH=$PATH:/sbin:%{_sbindir}
728 # - on alpha stage1 needs -O0 for 3.3->3.4 bootstrap (gnat from 3.3 is seriously broken)
729 # - on ia64 use bootstrap-lean as profiledbootstrap is broken (PR 13882, 15836, 16108)
730 %{__make} -C obj-%{_target_platform} \
736 GCJFLAGS="%{rpmcflags}" \
737 BOOT_CFLAGS="%{rpmcflags}" \
739 STAGE1_CFLAGS="%{rpmcflags} -O0" \
741 STAGE1_CFLAGS="%{rpmcflags}" \
743 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
748 # cannot build it in parallel
749 for tgt in gnatlib-shared gnattools gnatlib; do
750 %{__make} -C obj-%{_target_platform}/gcc $tgt \
751 BOOT_CFLAGS="%{rpmcflags}" \
752 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
759 rm -rf $RPM_BUILD_ROOT
760 install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
762 cd obj-%{_target_platform}
763 PATH=$PATH:/sbin:%{_sbindir}
765 %{__make} -j1 install \
767 infodir=%{_infodir} \
768 DESTDIR=$RPM_BUILD_ROOT
771 ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \
772 $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
775 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
776 echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
778 ln -sf g77 $RPM_BUILD_ROOT%{_bindir}/f77
779 echo ".so g77.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
782 # move ada shared libraries to proper place...
783 mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
784 $RPM_BUILD_ROOT%{_libdir}
785 # check if symlink to be made is valid
786 test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so.1
787 ln -sf libgnat-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so
788 ln -sf libgnarl-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-3.4.so
789 ln -sf libgnat-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
790 ln -sf libgnarl-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
793 ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
799 cp -f libjava/doc/cni.sgml libjava/READ* java-doc
800 cp -f fastjar/README java-doc/README.fastjar
801 cp -f libffi/README java-doc/README.libffi
802 cp -f libffi/LICENSE java-doc/LICENSE.libffi
806 cp -f libobjc/README gcc/objc/README.libobjc
809 # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version}
810 for f in libstdc++.la libsupc++.la %{?with_java:libgcj.la} ; do
811 perl -pi -e 's@-L[^ ]*[acs.] @@g' $RPM_BUILD_ROOT%{_libdir}/$f
813 # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
814 for f in libstdc++.la libsupc++.la libg2c.la \
815 %{?with_java:libgcj.la lib-org-w3c-dom.la lib-org-xml-sax.la libffi.la} \
816 %{?with_objc:libobjc.la}; do
817 perl -pi -e "s@^libdir='.*@libdir='/usr/%{_lib}'@" $RPM_BUILD_ROOT%{_libdir}/$f
820 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
821 mv -f $RPM_BUILD_ROOT%{_mandir}/ja/man1/{cccp,cpp}.1
823 # include/ contains install-tools/include/* and headers that were fixed up
824 # by fixincludes, we don't want former
825 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
827 # we have to save these however
828 mv -f $gccdir/include/{%{?with_objc:objc,}g2c.h,syslimits.h%{?with_java:,libffi/ffitarget.h,gcj}} $gccdir/tmp
829 rm -rf $gccdir/include
830 mv -f $gccdir/tmp $gccdir/include
831 cp $gccdir/install-tools/include/*.h $gccdir/include
832 # but we don't want anything more from install-tools
833 rm -rf $gccdir/install-tools
836 ln -sf %{_slibdir}/libgcc_s.so.1 $gccdir/libgcc_s.so
837 ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/libgcc_s_32.so
841 %find_lang libstdc\+\+
844 zcat %{SOURCE2} > $RPM_BUILD_ROOT%{_aclocaldir}/gcc_stack_protect.m4
846 install %{SOURCE3} $RPM_BUILD_ROOT%{_aclocaldir}/gcc_visibility.m4
849 rm -rf $RPM_BUILD_ROOT
852 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
855 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
858 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
861 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
864 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
867 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
869 %post -p /sbin/ldconfig -n libgcc
870 %postun -p /sbin/ldconfig -n libgcc
871 %post -p /sbin/ldconfig -n libstdc++
872 %postun -p /sbin/ldconfig -n libstdc++
873 %post -p /sbin/ldconfig -n libobjc
874 %postun -p /sbin/ldconfig -n libobjc
875 %post -p /sbin/ldconfig -n libg2c
876 %postun -p /sbin/ldconfig -n libg2c
877 %post -p /sbin/ldconfig -n libgcj
878 %postun -p /sbin/ldconfig -n libgcj
879 %post -p /sbin/ldconfig -n libgnat
880 %postun -p /sbin/ldconfig -n libgnat
881 %post -p /sbin/ldconfig -n libffi
882 %postun -p /sbin/ldconfig -n libffi
885 %defattr(644,root,root,755)
886 %doc ChangeLog.general MAINTAINERS NEWS bugs.html faq.html
887 %doc gcc/{ChangeLog,ONEWS,README.Portability}
888 %dir %{_libdir}/gcc/*/*
889 %dir %{_libdir}/gcc/*/*/include
890 %{?with_ssp:%{_aclocaldir}/gcc_stack_protect.m4}
891 %{_aclocaldir}/gcc_visibility.m4
893 %attr(755,root,root) %{_bindir}/*-gcc*
894 %attr(755,root,root) %{_bindir}/gcc
895 %attr(755,root,root) %{_bindir}/gccbug
896 %attr(755,root,root) %{_bindir}/gcov
897 %attr(755,root,root) %{_bindir}/cc
898 %attr(755,root,root) %{_bindir}/cpp
900 %{_mandir}/man1/cc.1*
901 %{_mandir}/man1/cpp.1*
902 %lang(ja) %{_mandir}/ja/man1/cpp.1*
903 %{_mandir}/man1/gcc.1*
904 %lang(fr) %{_mandir}/fr/man1/gcc.1*
905 %lang(ja) %{_mandir}/ja/man1/gcc.1*
906 %{_mandir}/man1/gcov.1*
911 %attr(755,root,root) /lib/cpp
913 %attr(755,root,root) %{_slibdir}/lib*.so
915 %{_slibdir}/libunwind.a
917 %{_libdir}/gcc/*/*/libgcov.a
918 %{_libdir}/gcc/*/*/libgcc.a
919 %{_libdir}/gcc/*/*/libgcc_eh.a
920 %{_libdir}/gcc/*/*/specs
921 %{_libdir}/gcc/*/*/crt*.o
923 %attr(755,root,root) %{_libdir}/gcc/*/*/libgcc_s*.so
924 %{_libdir}/gcc/*/*/32/libgcc.a
925 %{_libdir}/gcc/*/*/32/libgcc_eh.a
926 %{_libdir}/gcc/*/*/32/libgcov.a
927 %{_libdir}/gcc/*/*/32/crt*.o
930 %{_libdir}/gcc/*/*/ecrt*.o
931 %{_libdir}/gcc/*/*/ncrt*.o
932 %{_libdir}/gcc/*/*/nof
935 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1
936 %attr(755,root,root) %{_libdir}/gcc/*/*/collect2
938 %{_libdir}/gcc/*/*/include/*.h
939 %exclude %{_libdir}/gcc/*/*/include/g2c.h
942 %defattr(644,root,root,755)
943 %attr(755,root,root) %{_slibdir}*/lib*.so.*
945 %attr(755,root,root) %{_slibdir32}/lib*.so.*
949 %defattr(644,root,root,755)
950 %doc gcc/cp/{ChangeLog,NEWS}
951 %attr(755,root,root) %{_bindir}/g++
952 %attr(755,root,root) %{_bindir}/*-g++
953 %attr(755,root,root) %{_bindir}/c++
954 %attr(755,root,root) %{_bindir}/*-c++
955 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
956 %{_libdir}/libsupc++.la
957 %{_libdir}/libsupc++.a
959 %{_libdir}/nof/libsupc++.la
960 %{_libdir}/nof/libsupc++.a
963 %{_libdir32}/libsupc++.la
964 %{_libdir32}/libsupc++.a
966 %{_mandir}/man1/g++.1*
967 %lang(ja) %{_mandir}/ja/man1/g++.1*
969 %files -n libstdc++ -f libstdc++.lang
970 %defattr(644,root,root,755)
971 %doc libstdc++-v3/{ChangeLog,README}
972 %attr(755,root,root) %{_libdir}/libstdc++.so.*.*.*
974 %attr(755,root,root) %{_libdir}/nof/libstdc++.so.*.*.*
977 %attr(755,root,root) %{_libdir32}/libstdc++.so.*.*.*
980 %files -n libstdc++-devel
981 %defattr(644,root,root,755)
982 %doc libstdc++-v3/docs/html
983 %dir %{_includedir}/c++
984 %{_includedir}/c++/%{version}
985 %exclude %{_includedir}/c++/%{version}/*/bits/stdc++.h.gch
986 %attr(755,root,root) %{_libdir}/libstdc++.so
987 %{_libdir}/libstdc++.la
989 %attr(755,root,root) %{_libdir}/nof/libstdc++.so
990 %{_libdir}/nof/libstdc++.la
993 %attr(755,root,root) %{_libdir32}/libstdc++.so
994 %{_libdir32}/libstdc++.la
997 %files -n libstdc++-static
998 %defattr(644,root,root,755)
999 %{_libdir}/libstdc++.a
1001 %{_libdir}/nof/libstdc++.a
1003 %if %{with multilib}
1004 %{_libdir32}/libstdc++.a
1009 %defattr(644,root,root,755)
1010 %doc gcc/objc/README
1011 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
1012 %attr(755,root,root) %{_libdir}/libobjc.so
1013 %{_libdir}/libobjc.la
1015 %attr(755,root,root) %{_libdir}/nof/libobjc.so
1016 %{_libdir}/nof/libobjc.la
1018 %if %{with multilib}
1019 %attr(755,root,root) %{_libdir32}/libobjc.so
1020 %{_libdir32}/libobjc.la
1022 %{_libdir}/gcc/*/*/include/objc
1025 %defattr(644,root,root,755)
1026 %doc libobjc/{ChangeLog,README*}
1027 %attr(755,root,root) %{_libdir}/libobjc.so.*.*.*
1029 %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.*
1031 %if %{with multilib}
1032 %attr(755,root,root) %{_libdir32}/libobjc.so.*.*.*
1035 %files -n libobjc-static
1036 %defattr(644,root,root,755)
1037 %{_libdir}/libobjc.a
1039 %{_libdir}/nof/libobjc.a
1041 %if %{with multilib}
1042 %{_libdir32}/libobjc.a
1047 %defattr(644,root,root,755)
1048 %doc gcc/f/{BUGS,ChangeLog,NEWS}
1049 %attr(755,root,root) %{_bindir}/g77
1050 %attr(755,root,root) %{_bindir}/f77
1052 %attr(755,root,root) %{_libdir}/gcc/*/*/f771
1053 %{_libdir}/libfrtbegin.a
1054 %{_libdir}/libg2c.la
1055 %attr(755,root,root) %{_libdir}/libg2c.so
1057 %{_libdir}/nof/libfrtbegin.a
1058 %{_libdir}/nof/libg2c.la
1059 %attr(755,root,root) %{_libdir}/nof/libg2c.so
1061 %if %{with multilib}
1062 %{_libdir32}/libfrtbegin.a
1063 %{_libdir32}/libg2c.la
1064 %attr(755,root,root) %{_libdir32}/libg2c.so
1066 %{_libdir}/gcc/*/*/include/g2c.h
1067 %{_mandir}/man1/g77.1*
1068 %{_mandir}/man1/f77.1*
1069 %lang(ja) %{_mandir}/ja/man1/g77.1*
1070 %lang(ja) %{_mandir}/ja/man1/f77.1*
1073 %defattr(644,root,root,755)
1074 %doc libf2c/{ChangeLog,README,TODO}
1075 %attr(755,root,root) %{_libdir}/libg2c.so.*.*.*
1077 %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.*
1079 %if %{with multilib}
1080 %attr(755,root,root) %{_libdir32}/libg2c.so.*.*.*
1083 %files -n libg2c-static
1084 %defattr(644,root,root,755)
1087 %{_libdir}/nof/libg2c.a
1089 %if %{with multilib}
1090 %{_libdir32}/libg2c.a
1095 %defattr(644,root,root,755)
1096 %doc gcc/java/ChangeLog java-doc/*
1097 %attr(755,root,root) %{_bindir}/gcj*
1098 %attr(755,root,root) %{_bindir}/gij
1099 %attr(755,root,root) %{_bindir}/jcf-dump
1100 %attr(755,root,root) %{_bindir}/jv-*
1101 %attr(755,root,root) %{_bindir}/grepjar
1102 %attr(755,root,root) %{_bindir}/*-gcj*
1103 %attr(755,root,root) %{_libdir}/gcc/*/*/jc1
1104 %attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
1106 %{_mandir}/man1/jcf-*
1107 %{_mandir}/man1/jv-*
1108 %{_mandir}/man1/gij*
1109 %{_mandir}/man1/gcj*
1110 %{_mandir}/man1/grepjar*
1113 %defattr(644,root,root,755)
1114 %attr(755,root,root) %{_bindir}/rmi*
1115 %attr(755,root,root) %{_bindir}/jar
1116 %{_mandir}/man1/rmi*
1117 %{_mandir}/man1/jar*
1118 %{_infodir}/fastjar*
1121 %defattr(644,root,root,755)
1122 %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
1123 %attr(755,root,root) %{_bindir}/addr2name.awk
1124 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
1125 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
1127 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
1129 %{_libdir}/logging.properties
1131 %files -n libgcj-devel
1132 %defattr(644,root,root,755)
1134 %{_includedir}/javax
1137 %{_includedir}/gnu/*
1138 %{_libdir}/gcc/*/*/include/gcj
1139 %dir %{_libdir}/security
1140 %{_libdir}/security/*
1141 %dir %{_datadir}/java
1142 %{_datadir}/java/libgcj*.jar
1143 %{_libdir}/lib*cj.spec
1144 %{_libdir}/lib*cj*.la
1145 %attr(755,root,root) %{_libdir}/lib*cj*.so
1146 %attr(755,root,root) %{_libdir}/lib-org-*.so
1147 %{_libdir}/lib-org-*.la
1149 %{_libdir}/nof/lib*cj*.la
1150 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so
1152 %{_pkgconfigdir}/libgcj.pc
1154 %files -n libgcj-static
1155 %defattr(644,root,root,755)
1156 %{_libdir}/lib*cj*.a
1157 %{_libdir}/lib-org-*.a
1159 %{_libdir}/nof/lib*cj*.a
1163 %defattr(644,root,root,755)
1164 %doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
1165 %attr(755,root,root) %{_libdir}/libffi-*.so
1167 %files -n libffi-devel
1168 %defattr(644,root,root,755)
1169 %{_libdir}/gcc/*/*/include/ffitarget.h
1170 %attr(755,root,root) %{_libdir}/libffi.so
1171 %{_libdir}/libffi.la
1172 %{_includedir}/ffi.h
1174 %files -n libffi-static
1175 %defattr(644,root,root,755)
1181 %defattr(644,root,root,755)
1182 %doc gcc/ada/ChangeLog
1183 %attr(755,root,root) %{_bindir}/gnat*
1184 %attr(755,root,root) %{_bindir}/gpr*
1185 %attr(755,root,root) %{_libdir}/libgnarl*.so
1186 %attr(755,root,root) %{_libdir}/libgnat*.so
1187 %attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
1188 %{_libdir}/gcc/*/*/adainclude
1189 %dir %{_libdir}/gcc/*/*/adalib
1190 %{_libdir}/gcc/*/*/adalib/*.ali
1191 %{_libdir}/gcc/*/*/adalib/g-trasym.o
1192 %{_libdir}/gcc/*/*/adalib/libgccprefix.a
1194 %{_libdir}/gcc/*/*/adalib/libgmem.a
1200 %defattr(644,root,root,755)
1201 %attr(755,root,root) %{_libdir}/libgnarl*.so.1
1202 %attr(755,root,root) %{_libdir}/libgnat*.so.1
1204 %files -n libgnat-static
1205 %defattr(644,root,root,755)
1206 %{_libdir}/gcc/*/*/adalib/libgnarl.a
1207 %{_libdir}/gcc/*/*/adalib/libgnat.a