3 # - http://gcc.gnu.org/PR11203
4 # - http://gcc.gnu.org/PR14776
5 # - http://gcc.gnu.org/PR17567
7 # - after 3.4.3 release snaps should go to DEVEL branch
10 %bcond_without ada # build without ADA support
11 %bcond_without java # build without Java support
12 %bcond_without objc # build without objc support
13 %bcond_with ssp # build with stack-smashing protector support
15 %define _snap 20041015
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
27 Group: Development/Languages
28 #Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
29 #Source0: ftp://gcc.gnu.org/pub/gcc/prerelease-%{version}-%{_snap}/gcc-%{version}-%{_snap}.tar.bz2
30 Source0: ftp://gcc.gnu.org/pub/gcc/snapshots/3.4-%{_snap}/gcc-3.4-%{_snap}.tar.bz2
31 # Source0-md5: d971fc8d8d01dc1e3edbc214f85966e3
32 # Source0-size: 25076867
33 Source1: http://ep09.pld-linux.org/~djrzulf/gcc33/%{name}-non-english-man-pages.tar.bz2
34 # Source1-md5: 4736f3422ddfb808423b745629acc321
36 Source2: http://www.trl.ibm.com/projects/security/ssp/gcc2_95_3/gcc_stack_protect.m4.gz
37 # Source2-md5: 07d93ad5fc07ca44cdaba46c658820de
39 Source3: gcc_visibility.m4
40 Patch0: %{name}-info.patch
41 Patch1: %{name}-nolocalefiles.patch
42 Patch2: %{name}-ada-link-new-libgnat.patch
43 Patch3: %{name}-nodebug.patch
44 Patch4: %{name}-ssp.patch
45 Patch5: %{name}-ada-link.patch
46 Patch6: %{name}-pr15666.patch
47 Patch7: %{name}-pr16276.patch
48 Patch8: %{name}-ada-bootstrap.patch
50 # -fvisibility={default|internal|hidden|protected}
52 # Set the default ELF image symbol visibility to the specified option.
53 # All symbols will be marked with this unless overrided within the code.
54 # Using this feature can very substantially improve linking and load times
55 # of shared object libraries, produce more optimised code, provide near-perfect
56 # API export and prevent symbol clashes. It is strongly recommended that you
57 # use this in any shared objects you distribute.
59 # -fvisibility-inlines-hidden
61 # Causes all inlined methods to be marked with __attribute__((visibility("hidden")))
62 # so that they do not appear in the export table of a DSO and do not require a PLT
63 # indirection when used within the DSO. Enabling this option can have a dramatic
64 # effect on load and link times of a DSO as it massively reduces the size
65 # of the dynamic export table when the library makes heavy use of templates.
66 # While it can cause bloating through duplication of code within each DSO
67 # where it is used, often the wastage is less than the considerable space
68 # occupied by a long symbol name in the export table which is typical when using
69 # templates and namespaces.
71 # How to Write Shared Libraries: http://people.redhat.com/drepper/dsohowto.pdf
73 Patch9: %{name}-visibility.patch
75 URL: http://gcc.gnu.org/
76 BuildRequires: autoconf
77 BuildRequires: automake
78 BuildRequires: binutils >= 2:2.15.91.0.2
80 BuildRequires: fileutils >= 4.0.41
83 BuildRequires: gcc(ada)
84 BuildRequires: gcc-ada
86 BuildRequires: gettext-devel
87 BuildRequires: glibc-devel >= 2.2.5-20
88 BuildRequires: perl-devel
89 BuildRequires: texinfo >= 4.1
90 BuildRequires: zlib-devel
91 Requires: binutils >= 2:2.15.91.0.2
92 Requires: libgcc = %{epoch}:%{version}-%{release}
93 Provides: cpp = %{epoch}:%{version}-%{release}
94 %{?with_ada:Provides: gcc(ada)}
95 %{?with_ssp:Provides: gcc(ssp)}
96 # ksi for gcc > 3.3.x not ready yet
102 Conflicts: glibc-devel < 2.2.5-20
103 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
105 %define _slibdir /%{_lib}
107 %define _slibdir64 /lib64
108 %define _libdir /usr/lib
109 %define rpmcflags -O2 -mtune=ultrasparc
113 A compiler aimed at integrating all the optimizations and features
114 necessary for a high-performance and stable development environment.
116 This package contains the C compiler and some files shared by various
117 parts of the GNU Compiler Collection. In order to use another GCC
118 compiler you will need to install the appropriate subpackage.
121 Un compilador destinado a la integración de todas las optimalizaciones
122 y características necesarias para un entorno de desarrollo eficaz y
125 Este paquete contiene el compilador de C y unos ficheros compartidos
126 por varias parted de la colección de compiladores GNU (GCC). Para usar
127 otro compilador de GCC será necesario que instale el subpaquete
131 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
132 wyprodukowania szybkiego i stabilnego kodu wynikowego.
134 Ten pakiet zawiera kompilator C i pliki wspó³dzielone przez ró¿ne
135 czê¶ci kolekcji kompilatorów GNU (GCC). ¯eby u¿ywaæ innego kompilatora
136 z GCC, trzeba zainstalowaæ odpowiedni podpakiet.
138 %description -l pt_BR
139 Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
140 GNU Compiler Collection.
143 Summary: Shared gcc library
144 Summary(es): Biblioteca compartida de gcc
145 Summary(pl): Biblioteka gcc
146 Summary(pt_BR): Biblioteca runtime para o GCC
150 %description -n libgcc
153 %description -n libgcc -l es
154 Biblioteca compartida de gcc.
156 %description -n libgcc -l pl
157 Biblioteka dynamiczna gcc.
159 %description -n libgcc -l pt_BR
160 Biblioteca runtime para o GCC.
163 Summary: C++ support for gcc
164 Summary(es): Soporte de C++ para gcc
165 Summary(pl): Obs³uga C++ dla gcc
166 Summary(pt_BR): Suporte C++ para o gcc
167 Group: Development/Languages
168 Requires: %{name} = %{epoch}:%{version}-%{release}
173 This package adds C++ support to the GNU Compiler Collection. It
174 includes support for most of the current C++ specification, including
175 templates and exception handling. It does not include a standard C++
176 library, which is available separately.
178 %description c++ -l de
179 Dieses Paket enthält die C++-Unterstützung für den
180 GNU-Compiler-Collection. Es unterstützt die aktuelle
181 C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine
182 C++-Standard-Library ist nicht enthalten - sie ist getrennt
185 %description c++ -l es
186 Este paquete añade soporte de C++ al GCC (colección de compiladores
187 GNU). Ello incluye el soporte para la mayoría de la especificación
188 actual de C++, incluyendo plantillas y manejo de excepciones. No
189 incluye la biblioteca estándar de C++, la que es disponible separada.
191 %description c++ -l fr
192 Ce package ajoute un support C++ a la collection de compilateurs GNU.
193 Il comprend un support pour la plupart des spécifications actuelles de
194 C++, dont les modéles et la gestion des exceptions. Il ne comprend pas
195 une bibliothéque C++ standard, qui est disponible séparément.
197 %description c++ -l pl
198 Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
199 du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
200 standardowych bibliotek C++, które s± w oddzielnym pakiecie.
202 %description c++ -l pt_BR
203 Este pacote adiciona suporte C++ para o gcc.
205 %description c++ -l tr
206 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
207 aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
208 C++ kitaplýðý bu pakette yer almaz.
211 Summary: Objective C support for gcc
212 Summary(de): Objektive C-Unterstützung für gcc
213 Summary(es): Soporte de Objective C para gcc
214 Summary(fr): Gestion d'Objective C pour gcc
215 Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
216 Summary(tr): gcc için Objective C desteði
217 Group: Development/Languages
218 Requires: %{name} = %{epoch}:%{version}-%{release}
219 Requires: libobjc = %{epoch}:%{version}-%{release}
224 This package adds Objective C support to the GNU Compiler Collection.
225 Objective C is a object oriented derivative of the C language, mainly
226 used on systems running NeXTSTEP. This package does not include the
227 standard objective C object library.
229 %description objc -l de
230 Dieses Paket ergänzt den GNU-Compiler-Collection durch
231 Objective-C-Support. Objective C ist ein objektorientiertes Derivat
232 von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt.
233 Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
235 %description objc -l es
236 Este paquete añade soporte de Objective C al GCC (colección de
237 compiladores GNU). Objective C es un lenguaje orientado a objetos
238 derivado de C, principalmente usado en sistemas que funcionan bajo
239 NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de
242 %description objc -l fr
243 Ce package ajoute un support Objective C a la collection de
244 compilateurs GNU. L'Objective C est un langage orienté objetdérivé du
245 langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce
246 package n'inclue pas la bibliothéque Objective C standard.
248 %description objc -l pl
249 Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
250 C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
251 g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
252 standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
254 %description objc -l tr
255 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
256 C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
257 sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
258 kitaplýðý bu pakette yer almaz.
261 Summary: Objective C Libraries
262 Summary(es): Bibliotecas de Objective C
263 Summary(pl): Biblioteki Obiektowego C
267 %description -n libobjc
268 Objective C Libraries.
270 %description -n libobjc -l es
271 Bibliotecas de Objective C.
273 %description -n libobjc -l pl
274 Biblioteki Obiektowego C.
276 %package -n libobjc-static
277 Summary: Static Objective C Libraries
278 Summary(es): Bibliotecas estáticas de Objective C
279 Summary(pl): Statyczne Biblioteki Obiektowego C
280 Group: Development/Libraries
281 Requires: libobjc = %{epoch}:%{version}-%{release}
283 %description -n libobjc-static
284 Static Objective C Libraries.
286 %description -n libobjc-static -l es
287 Bibliotecas estáticas de Objective C.
289 %description -n libobjc-static -l pl
290 Statyczne biblioteki Obiektowego C.
293 Summary: Fortran 77 support for gcc
294 Summary(es): Soporte de Fortran 77 para gcc
295 Summary(pl): Obs³uga Fortranu 77 dla gcc
296 Summary(pt_BR): Suporte Fortran 77 para o GCC
297 Group: Development/Languages/Fortran
298 Requires: libg2c = %{epoch}:%{version}-%{release}
302 This package adds support for compiling Fortran 77 programs with the
305 %description g77 -l es
306 Este paquete añade soporte para compilar programas escritos en Fortran
307 77 con el compilador GNU.
309 %description g77 -l pl
310 Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
311 potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
313 %description g77 -l pt_BR
314 Suporte Fortran 77 para o GCC.
317 Summary: Fortran 77 Libraries
318 Summary(es): Bibliotecas de Fortran 77
319 Summary(pl): Biblioteki Fortranu 77
322 %description -n libg2c
323 Fortran 77 Libraries.
325 %description -n libg2c -l es
326 Bibliotecas de Fortran 77.
328 %description -n libg2c -l pl
329 Biblioteki Fortranu 77.
331 %package -n libg2c-static
332 Summary: Static Fortran 77 Libraries
333 Summary(es): Bibliotecas estáticas de Fortran 77
334 Summary(pl): Statyczne Biblioteki Fortranu 77
335 Group: Development/Libraries
336 Requires: libg2c = %{epoch}:%{version}-%{release}
338 %description -n libg2c-static
339 Static Fortran 77 Libraries.
341 %description -n libg2c -l es
342 Bibliotecas estáticas de Fortran 77.
344 %description -n libg2c-static -l pl
345 Statyczne biblioteki Fortranu 77.
348 Summary: Java support for gcc
349 Summary(es): Soporte de Java para gcc
350 Summary(pl): Obs³uga Javy dla gcc
351 Group: Development/Languages/Java
352 Requires: %{name} = %{epoch}:%{version}-%{release}
353 Requires: libgcj = %{epoch}:%{version}-%{release}
354 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
355 Requires: java-shared
356 Provides: gcj = %{epoch}:%{version}-%{release}
359 This package adds experimental support for compiling Java(tm) programs
360 and bytecode into native code. To use this you will also need the
363 %description java -l es
364 Este paquete añade soporte experimental para compilar programas
365 Java(tm) y su bytecode en código nativo. Para usarlo también va a
366 necesitar el paquete libgcj.
368 %description java -l pl
369 Wsparcie dla kompilowania programów Java(tm) zarówno do bajt-kodu jak i
370 do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
371 by³o przeprowadziæ kompilacjê.
374 Summary: Shared java tools
375 Summary(es): Herramientas compartidas de Java
376 Summary(pl): Wspó³dzielone narzêdzia javy
377 Group: Development/Languages/Java
378 Provides: jar = %{epoch}:%{version}-%{release}
379 Provides: java-shared
382 Obsoletes: java-shared
384 %description java-tools
385 This package contains tools that are common for every Java(tm)
386 implementation, such as rmic or jar.
388 %description java-tools -l es
389 Este paquete contiene herramientas que son comunes para cada
390 implementación de Java(tm), como rmic o jar.
392 %description java-tools -l pl
393 Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji
394 Javy(tm), takie jak rmic czy jar.
397 Summary: Java Class Libraries
398 Summary(es): Bibliotecas de clases de Java
399 Summary(pl): Biblioteki Klas Javy
404 %description -n libgcj
405 Java Class Libraries.
407 %description -n libgcj -l es
408 Bibliotecas de clases de Java.
410 %description -n libgcj -l pl
411 Biblioteki Klas Javy.
413 %package -n libgcj-devel
414 Summary: Development files for Java Class Libraries
415 Summary(es): Ficheros de desarrollo para las bibliotecas de clases de Java
416 Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
417 Group: Development/Libraries
418 Requires: %{name}-java = %{epoch}:%{version}-%{release}
419 Requires: libgcj = %{epoch}:%{version}-%{release}
420 Obsoletes: libgcj3-devel
422 %description -n libgcj-devel
423 Development files for Java Class Libraries.
425 %description -n libgcj-devel -l es
426 Ficheros de desarrollo para las bibliotecas de clases de Java.
428 %description -n libgcj-devel -l pl
429 Pliki nag³ówkowe dla Bibliotek Klas Javy.
431 %package -n libgcj-static
432 Summary: Static Java Class Libraries
433 Summary(es): Bibliotecas estáticas de clases de Java
434 Summary(pl): Statyczne Biblioteki Klas Javy
435 Group: Development/Libraries
436 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
437 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
439 %description -n libgcj-static
440 Static Java Class Libraries.
442 %description -n libgcj-static -l es
443 Bibliotecas estáticas de clases de Java.
445 %description -n libgcj-static -l pl
446 Statyczne Biblioteki Klas Javy.
448 %package -n libstdc++
449 Summary: GNU c++ library
450 Summary(es): Biblioteca C++ de GNU
451 Summary(pl): Biblioteki GNU C++
452 Summary(pt_BR): Biblioteca C++ GNU
455 Obsoletes: libstdc++3
457 %description -n libstdc++
458 This is the GNU implementation of the standard C++ libraries, along
459 with additional GNU tools. This package includes the shared libraries
460 necessary to run C++ applications.
462 %description -n libstdc++ -l de
463 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
464 weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
465 C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
467 %description -n libstdc++ -l es
468 Este es el soporte de las bibliotecas padrón del C++, junto con
469 herramientas GNU adicionales. El paquete incluye las bibliotecas
470 compartidas necesarias para ejecutar aplicaciones C++.
472 %description -n libstdc++ -l fr
473 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
474 des outils GNU supplémentaires. Ce package comprend les librairies
475 partagées nécessaires à l'exécution d'application C++.
477 %description -n libstdc++ -l pl
478 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
479 bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
480 uruchomienia aplikacji napisanych w C++.
482 %description -n libstdc++ -l pt_BR
483 Este pacote é uma implementação da biblioteca padrão C++ v3, um
484 subconjunto do padrão ISO 14882.
486 %description -n libstdc++ -l tr
487 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
488 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
490 %package -n libstdc++-devel
491 Summary: Header files and documentation for C++ development
492 Summary(de): Header-Dateien zur Entwicklung mit C++
493 Summary(es): Ficheros de cabecera y documentación para desarrollo C++
494 Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
495 Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
496 Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
497 Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
498 Group: Development/Libraries
499 Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
500 Requires: libstdc++ = %{epoch}:%{version}-%{release}
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
651 #setup -q -n %{name}-%{version}-%{_snap} -a1
653 %setup -q -n %{name}-3.4-%{_snap} -a1
655 #setup -q -n %{name}-%{version} -a1
660 %{!?debug:%patch3 -p1}
661 %{?with_ssp:%patch4 -p1}
666 # needed for bootstrap using gcc 3.3.x on alpha
667 # and even using the same 3.4.x(!) (but not Debian's 3.3.x) on ia64
672 # because we distribute modified version of gcc...
673 perl -pi -e 's/(version.*)";/$1 %{?with_ssp:SSP }(PLD Linux)";/' gcc/version.c
674 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
676 mv ChangeLog ChangeLog.general
679 # because pr16276 patch modifies configure.ac
683 cp -f /usr/share/automake/config.sub .
685 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
687 CFLAGS="%{rpmcflags}" \
688 CXXFLAGS="%{rpmcflags}" \
689 TEXCONFIG=false ../configure \
690 --prefix=%{_prefix} \
691 --libdir=%{_libdir} \
692 --libexecdir=%{_libexecdir} \
693 --infodir=%{_infodir} \
694 --mandir=%{_mandir} \
696 --enable-threads=posix \
697 --enable-__cxa_atexit \
698 --enable-languages="c,c++,f77%{?with_objc:,objc}%{?with_ada:,ada}%{?with_java:,java}" \
710 --with-slibdir=%{_slibdir} \
714 PATH=$PATH:/sbin:%{_sbindir}
717 # - on alpha stage1 needs -O0 for 3.3->3.4 bootstrap (gnat from 3.3 is seriously broken)
718 # - on ia64 use bootstrap-lean as profiledbootstrap is broken (PR 13882, 15836, 16108)
719 %{__make} -C obj-%{_target_platform} \
725 GCJFLAGS="%{rpmcflags}" \
726 BOOT_CFLAGS="%{rpmcflags}" \
728 STAGE1_CFLAGS="%{rpmcflags} -O0" \
730 STAGE1_CFLAGS="%{rpmcflags}" \
732 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
737 # cannot build it in parallel
738 for tgt in gnatlib-shared gnattools gnatlib; do
739 %{__make} -C obj-%{_target_platform}/gcc $tgt \
740 BOOT_CFLAGS="%{rpmcflags}" \
741 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
747 # snapshot doesn't contain these files...
748 [ -r "NEWS" ] || touch NEWS
749 [ -r "gcc/f/BUGS" ] || touch gcc/f/BUGS
750 [ -r "gcc/f/NEWS" ] || touch gcc/f/NEWS
753 rm -rf $RPM_BUILD_ROOT
754 install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
756 cd obj-%{_target_platform}
757 PATH=$PATH:/sbin:%{_sbindir}
759 %{__make} -j1 install \
761 infodir=%{_infodir} \
762 DESTDIR=$RPM_BUILD_ROOT
765 ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \
766 $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
769 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
770 echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
772 ln -sf g77 $RPM_BUILD_ROOT%{_bindir}/f77
773 echo ".so g77.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
776 # move ada shared libraries to proper place...
777 mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
778 $RPM_BUILD_ROOT%{_libdir}
779 # check if symlink to be made is valid
780 test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so.1
781 ln -sf libgnat-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so
782 ln -sf libgnarl-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-3.4.so
783 ln -sf libgnat-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
784 ln -sf libgnarl-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
787 ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
793 cp -f libjava/doc/cni.sgml libjava/READ* java-doc
794 cp -f fastjar/README java-doc/README.fastjar
795 cp -f libffi/README java-doc/README.libffi
796 cp -f libffi/LICENSE java-doc/LICENSE.libffi
800 cp -f libobjc/README gcc/objc/README.libobjc
803 # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version}
804 for f in libstdc++.la libsupc++.la %{?with_java:libgcj.la} ; do
805 perl -pi -e 's@-L[^ ]*[acs.] @@g' $RPM_BUILD_ROOT%{_libdir}/$f
807 # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
808 for f in libstdc++.la libsupc++.la libg2c.la \
809 %{?with_java:libgcj.la lib-org-w3c-dom.la lib-org-xml-sax.la libffi.la} \
810 %{?with_objc:libobjc.la}; do
811 perl -pi -e "s@^libdir='.*@libdir='/usr/%{_lib}'@" $RPM_BUILD_ROOT%{_libdir}/$f
814 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
815 mv -f $RPM_BUILD_ROOT%{_mandir}/ja/man1/{cccp,cpp}.1
817 # include/ contains install-tools/include/* and headers that were fixed up
818 # by fixincludes, we don't want former
819 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
821 # we have to save these however
822 mv -f $gccdir/include/{%{?with_objc:objc,}g2c.h,syslimits.h%{?with_java:,libffi/ffitarget.h,gcj}} $gccdir/tmp
823 rm -rf $gccdir/include
824 mv -f $gccdir/tmp $gccdir/include
825 cp $gccdir/install-tools/include/*.h $gccdir/include
826 # but we don't want anything more from install-tools
827 rm -rf $gccdir/install-tools
830 %find_lang libstdc\+\+
833 zcat %{SOURCE2} > $RPM_BUILD_ROOT%{_aclocaldir}/gcc_stack_protect.m4
835 install %{SOURCE3} $RPM_BUILD_ROOT%{_aclocaldir}/gcc_visibility.m4
838 rm -rf $RPM_BUILD_ROOT
841 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
844 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
847 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
850 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
853 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
856 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
858 %post -p /sbin/ldconfig -n libgcc
859 %postun -p /sbin/ldconfig -n libgcc
860 %post -p /sbin/ldconfig -n libstdc++
861 %postun -p /sbin/ldconfig -n libstdc++
862 %post -p /sbin/ldconfig -n libobjc
863 %postun -p /sbin/ldconfig -n libobjc
864 %post -p /sbin/ldconfig -n libg2c
865 %postun -p /sbin/ldconfig -n libg2c
866 %post -p /sbin/ldconfig -n libgcj
867 %postun -p /sbin/ldconfig -n libgcj
868 %post -p /sbin/ldconfig -n libgnat
869 %postun -p /sbin/ldconfig -n libgnat
870 %post -p /sbin/ldconfig -n libffi
871 %postun -p /sbin/ldconfig -n libffi
874 %defattr(644,root,root,755)
875 %doc ChangeLog.general MAINTAINERS NEWS bugs.html faq.html
876 %doc gcc/{ChangeLog,ONEWS,README.Portability}
878 %dir %{_libdir}/gcc/*
879 %dir %{_libdir}/gcc/*/*
880 %dir %{_libdir}/gcc/*/*/include
881 %{?with_ssp:%{_aclocaldir}/gcc_stack_protect.m4}
882 %{_aclocaldir}/gcc_visibility.m4
884 %attr(755,root,root) %{_bindir}/*-gcc*
885 %attr(755,root,root) %{_bindir}/gcc
886 %attr(755,root,root) %{_bindir}/gccbug
887 %attr(755,root,root) %{_bindir}/gcov
888 %attr(755,root,root) %{_bindir}/cc
889 %attr(755,root,root) %{_bindir}/cpp
891 %{_mandir}/man1/cc.1*
892 %{_mandir}/man1/cpp.1*
893 %lang(ja) %{_mandir}/ja/man1/cpp.1*
894 %{_mandir}/man1/gcc.1*
895 %lang(fr) %{_mandir}/fr/man1/gcc.1*
896 %lang(ja) %{_mandir}/ja/man1/gcc.1*
897 %{_mandir}/man1/gcov.1*
902 %attr(755,root,root) /lib/cpp
904 %attr(755,root,root) %{_slibdir}*/lib*.so
905 %{_libdir}/gcc/*/*/libgcov.a
906 %{_libdir}/gcc/*/*/libgcc.a
907 %{_libdir}/gcc/*/*/libgcc_eh.a
908 %{_libdir}/gcc/*/*/specs
909 %attr(644,root,root) %{_libdir}*/gcc/*/*/crt*.o
911 %{_libdir}/gcc/*/*/*/libgcc.a
912 %{_libdir}/gcc/*/*/*/libgcc_eh.a
913 %attr(644,root,root) %{_libdir}*/gcc/*/*/*/crt*.o
916 %attr(644,root,root) %{_libdir}/gcc/*/*/ecrt*.o
917 %attr(644,root,root) %{_libdir}/gcc/*/*/ncrt*.o
918 %{_libdir}/gcc/*/*/nof
921 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1
922 %attr(755,root,root) %{_libdir}/gcc/*/*/collect2
924 %{_libdir}/gcc/*/*/include/*.h
925 %exclude %{_libdir}/gcc/*/*/include/g2c.h
928 %defattr(644,root,root,755)
929 %attr(755,root,root) %{_slibdir}*/lib*.so.*
932 %defattr(644,root,root,755)
933 %doc gcc/cp/{ChangeLog,NEWS}
934 %attr(755,root,root) %{_bindir}/g++
935 %attr(755,root,root) %{_bindir}/*-g++
936 %attr(755,root,root) %{_bindir}/c++
937 %attr(755,root,root) %{_bindir}/*-c++
938 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
939 %{_libdir}*/libsupc++.la
941 %{_libdir}/nof/libsupc++.la
942 %{_libdir}/nof/libsupc++.a
944 %{_libdir}*/libsupc++.a
945 %{_mandir}/man1/g++.1*
946 %lang(ja) %{_mandir}/ja/man1/g++.1*
948 %files -n libstdc++ -f libstdc++.lang
949 %defattr(644,root,root,755)
950 %doc libstdc++-v3/{ChangeLog,README}
951 %attr(755,root,root) %{_libdir}*/libstdc++.so.*.*.*
953 %attr(755,root,root) %{_libdir}/nof/libstdc++.so.*.*.*
956 %files -n libstdc++-devel
957 %defattr(644,root,root,755)
958 %doc libstdc++-v3/docs/html
959 %dir %{_includedir}/c++
960 %{_includedir}/c++/%{version}
961 %exclude %{_includedir}/c++/%{version}/*/bits/stdc++.h.gch
962 %attr(755,root,root) %{_libdir}*/libstdc++.so
963 %{_libdir}*/libstdc++.la
965 %attr(755,root,root) %{_libdir}/nof/libstdc++.so
966 %{_libdir}/nof/libstdc++.la
969 %files -n libstdc++-static
970 %defattr(644,root,root,755)
971 %{_libdir}*/libstdc++.a
973 %{_libdir}/nof/libstdc++.a
978 %defattr(644,root,root,755)
980 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
981 %attr(755,root,root) %{_libdir}*/libobjc.so
982 %{_libdir}*/libobjc.la
984 %attr(755,root,root) %{_libdir}/nof/libobjc.so
985 %{_libdir}/nof/libobjc.la
987 %{_libdir}/gcc/*/*/include/objc
990 %defattr(644,root,root,755)
991 %doc libobjc/{ChangeLog,README*}
992 %attr(755,root,root) %{_libdir}*/libobjc.so.*.*.*
994 %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.*
997 %files -n libobjc-static
998 %defattr(644,root,root,755)
999 %{_libdir}*/libobjc.a
1001 %{_libdir}/nof/libobjc.a
1006 %defattr(644,root,root,755)
1007 %doc gcc/f/{BUGS,ChangeLog,NEWS}
1008 %attr(755,root,root) %{_bindir}/g77
1009 %attr(755,root,root) %{_bindir}/f77
1011 %attr(755,root,root) %{_libdir}/gcc/*/*/f771
1012 %{_libdir}*/libfrtbegin.a
1013 %{_libdir}*/libg2c.la
1014 %attr(755,root,root) %{_libdir}*/libg2c.so
1016 %{_libdir}/nof/libfrtbegin.a
1017 %{_libdir}/nof/libg2c.la
1018 %attr(755,root,root) %{_libdir}/nof/libg2c.so
1020 %{_libdir}/gcc/*/*/include/g2c.h
1021 %{_mandir}/man1/g77.1*
1022 %{_mandir}/man1/f77.1*
1023 %lang(ja) %{_mandir}/ja/man1/g77.1*
1024 %lang(ja) %{_mandir}/ja/man1/f77.1*
1027 %defattr(644,root,root,755)
1028 %doc libf2c/{ChangeLog,README,TODO}
1029 %attr(755,root,root) %{_libdir}*/libg2c.so.*.*.*
1031 %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.*
1034 %files -n libg2c-static
1035 %defattr(644,root,root,755)
1036 %{_libdir}*/libg2c.a
1038 %{_libdir}/nof/libg2c.a
1043 %defattr(644,root,root,755)
1044 %doc gcc/java/ChangeLog java-doc/*
1045 %attr(755,root,root) %{_bindir}/gcj*
1046 %attr(755,root,root) %{_bindir}/gij
1047 %attr(755,root,root) %{_bindir}/jcf-dump
1048 %attr(755,root,root) %{_bindir}/jv-*
1049 %attr(755,root,root) %{_bindir}/grepjar
1050 %attr(755,root,root) %{_bindir}/*-gcj*
1051 %attr(755,root,root) %{_libdir}/gcc/*/*/jc1
1052 %attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
1054 %{_mandir}/man1/jcf-*
1055 %{_mandir}/man1/jv-*
1056 %{_mandir}/man1/gij*
1057 %{_mandir}/man1/gcj*
1058 %{_mandir}/man1/grepjar*
1061 %defattr(644,root,root,755)
1062 %attr(755,root,root) %{_bindir}/rmi*
1063 %attr(755,root,root) %{_bindir}/jar
1064 %{_mandir}/man1/rmi*
1065 %{_mandir}/man1/jar*
1066 %{_infodir}/fastjar*
1069 %defattr(644,root,root,755)
1070 %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
1071 %attr(755,root,root) %{_bindir}/addr2name.awk
1072 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
1073 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
1075 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
1077 %{_libdir}/logging.properties
1079 %files -n libgcj-devel
1080 %defattr(644,root,root,755)
1082 %{_includedir}/javax
1085 %{_includedir}/gnu/*
1086 %{_libdir}/gcc/*/*/include/gcj
1087 %dir %{_libdir}/security
1088 %{_libdir}/security/*
1089 %dir %{_datadir}/java
1090 %{_datadir}/java/libgcj*.jar
1091 %{_libdir}/lib*cj.spec
1092 %{_libdir}/lib*cj*.la
1093 %attr(755,root,root) %{_libdir}/lib*cj*.so
1094 %attr(755,root,root) %{_libdir}/lib-org-*.so
1095 %{_libdir}/lib-org-*.la
1097 %{_libdir}/nof/lib*cj*.la
1098 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so
1100 %{_pkgconfigdir}/libgcj.pc
1102 %files -n libgcj-static
1103 %defattr(644,root,root,755)
1104 %{_libdir}/lib*cj*.a
1105 %{_libdir}/lib-org-*.a
1107 %{_libdir}/nof/lib*cj*.a
1111 %defattr(644,root,root,755)
1112 %doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
1113 %attr(755,root,root) %{_libdir}/libffi-*.so
1115 %files -n libffi-devel
1116 %defattr(644,root,root,755)
1117 %{_libdir}/gcc/*/*/include/ffitarget.h
1118 %attr(755,root,root) %{_libdir}/libffi.so
1119 %{_libdir}/libffi.la
1120 %{_includedir}/ffi.h
1122 %files -n libffi-static
1123 %defattr(644,root,root,755)
1129 %defattr(644,root,root,755)
1130 %doc gcc/ada/ChangeLog
1131 %attr(755,root,root) %{_bindir}/gnat*
1132 %attr(755,root,root) %{_bindir}/gpr*
1133 %attr(755,root,root) %{_libdir}/libgnarl*.so
1134 %attr(755,root,root) %{_libdir}/libgnat*.so
1135 %attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
1136 %{_libdir}/gcc/*/*/adainclude
1137 %dir %{_libdir}/gcc/*/*/adalib
1138 %{_libdir}/gcc/*/*/adalib/*.ali
1139 %{_libdir}/gcc/*/*/adalib/g-trasym.o
1140 %{_libdir}/gcc/*/*/adalib/libgccprefix.a
1142 %{_libdir}/gcc/*/*/adalib/libgmem.a
1148 %defattr(644,root,root,755)
1149 %attr(755,root,root) %{_libdir}/libgnarl*.so.1
1150 %attr(755,root,root) %{_libdir}/libgnat*.so.1
1152 %files -n libgnat-static
1153 %defattr(644,root,root,755)
1154 %{_libdir}/gcc/*/*/adalib/libgnarl.a
1155 %{_libdir}/gcc/*/*/adalib/libgnat.a