3 # - http://gcc.gnu.org/PR11203
4 # - http://gcc.gnu.org/PR17384
5 # - http://gcc.gnu.org/PR17567
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
13 %define _snap 20041008
15 Summary: GNU Compiler Collection: the C compiler and shared files
16 Summary(es): Colección de compiladores GNU: el compilador C y ficheros compartidos
17 Summary(pl): Kolekcja kompilatorów GNU: kompilator C i pliki wspó³dzielone
18 Summary(pt_BR): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
25 Group: Development/Languages
26 #Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
27 #Source0: ftp://gcc.gnu.org/pub/gcc/prerelease-%{version}-%{_snap}/gcc-%{version}-%{_snap}.tar.bz2
28 Source0: ftp://gcc.gnu.org/pub/gcc/snapshots/3.4-%{_snap}/gcc-3.4-%{_snap}.tar.bz2
29 # Source0-md5: 9e5a58db111be1b31227b5a1139a740b
30 Source1: http://ep09.pld-linux.org/~djrzulf/gcc33/%{name}-non-english-man-pages.tar.bz2
31 # Source1-md5: 4736f3422ddfb808423b745629acc321
32 Source2: http://www.trl.ibm.com/projects/security/ssp/gcc2_95_3/gcc_stack_protect.m4.gz
33 # Source2-md5: 07d93ad5fc07ca44cdaba46c658820de
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}-ada-bootstrap.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
69 URL: http://gcc.gnu.org/
70 BuildRequires: autoconf
71 BuildRequires: automake
72 BuildRequires: binutils >= 2:2.15.91.0.2
74 BuildRequires: fileutils >= 4.0.41
77 BuildRequires: gcc(ada)
78 BuildRequires: gcc-ada
80 BuildRequires: gettext-devel
81 BuildRequires: glibc-devel >= 2.2.5-20
82 BuildRequires: perl-devel
83 BuildRequires: texinfo >= 4.1
84 BuildRequires: zlib-devel
85 Requires: binutils >= 2:2.15.91.0.2
86 Requires: 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 _slibdir64 /lib64
102 %define _libdir /usr/lib
103 %define rpmcflags -O2 -mtune=ultrasparc
107 A compiler aimed at integrating all the optimizations and features
108 necessary for a high-performance and stable development environment.
110 This package contains the C compiler and some files shared by various
111 parts of the GNU Compiler Collection. In order to use another GCC
112 compiler you will need to install the appropriate subpackage.
115 Un compilador destinado a la integración de todas las optimalizaciones
116 y características necesarias para un entorno de desarrollo eficaz y
119 Este paquete contiene el compilador de C y unos ficheros compartidos
120 por varias parted de la colección de compiladores GNU (GCC). Para usar
121 otro compilador de GCC será necesario que instale el subpaquete
125 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
126 wyprodukowania szybkiego i stabilnego kodu wynikowego.
128 Ten pakiet zawiera kompilator C i pliki wspó³dzielone przez ró¿ne
129 czê¶ci kolekcji kompilatorów GNU (GCC). ¯eby u¿ywaæ innego kompilatora
130 z GCC, trzeba zainstalowaæ odpowiedni podpakiet.
132 %description -l pt_BR
133 Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
134 GNU Compiler Collection.
137 Summary: Shared gcc library
138 Summary(es): Biblioteca compartida de gcc
139 Summary(pl): Biblioteka gcc
140 Summary(pt_BR): Biblioteca runtime para o GCC
144 %description -n libgcc
147 %description -n libgcc -l es
148 Biblioteca compartida de gcc.
150 %description -n libgcc -l pl
151 Biblioteka dynamiczna gcc.
153 %description -n libgcc -l pt_BR
154 Biblioteca runtime para o GCC.
157 Summary: C++ support for gcc
158 Summary(es): Soporte de C++ para gcc
159 Summary(pl): Obs³uga C++ dla gcc
160 Summary(pt_BR): Suporte C++ para o gcc
161 Group: Development/Languages
162 Requires: %{name} = %{epoch}:%{version}-%{release}
167 This package adds C++ support to the GNU Compiler Collection. It
168 includes support for most of the current C++ specification, including
169 templates and exception handling. It does not include a standard C++
170 library, which is available separately.
172 %description c++ -l de
173 Dieses Paket enthält die C++-Unterstützung für den
174 GNU-Compiler-Collection. Es unterstützt die aktuelle
175 C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine
176 C++-Standard-Library ist nicht enthalten - sie ist getrennt
179 %description c++ -l es
180 Este paquete añade soporte de C++ al GCC (colección de compiladores
181 GNU). Ello incluye el soporte para la mayoría de la especificación
182 actual de C++, incluyendo plantillas y manejo de excepciones. No
183 incluye la biblioteca estándar de C++, la que es disponible separada.
185 %description c++ -l fr
186 Ce package ajoute un support C++ a la collection de compilateurs GNU.
187 Il comprend un support pour la plupart des spécifications actuelles de
188 C++, dont les modéles et la gestion des exceptions. Il ne comprend pas
189 une bibliothéque C++ standard, qui est disponible séparément.
191 %description c++ -l pl
192 Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
193 du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
194 standardowych bibliotek C++, które s± w oddzielnym pakiecie.
196 %description c++ -l pt_BR
197 Este pacote adiciona suporte C++ para o gcc.
199 %description c++ -l tr
200 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
201 aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
202 C++ kitaplýðý bu pakette yer almaz.
205 Summary: Objective C support for gcc
206 Summary(de): Objektive C-Unterstützung für gcc
207 Summary(es): Soporte de Objective C para gcc
208 Summary(fr): Gestion d'Objective C pour gcc
209 Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
210 Summary(tr): gcc için Objective C desteði
211 Group: Development/Languages
212 Requires: %{name} = %{epoch}:%{version}-%{release}
213 Requires: libobjc = %{epoch}:%{version}-%{release}
218 This package adds Objective C support to the GNU Compiler Collection.
219 Objective C is a object oriented derivative of the C language, mainly
220 used on systems running NeXTSTEP. This package does not include the
221 standard objective C object library.
223 %description objc -l de
224 Dieses Paket ergänzt den GNU-Compiler-Collection durch
225 Objective-C-Support. Objective C ist ein objektorientiertes Derivat
226 von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt.
227 Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
229 %description objc -l es
230 Este paquete añade soporte de Objective C al GCC (colección de
231 compiladores GNU). Objective C es un lenguaje orientado a objetos
232 derivado de C, principalmente usado en sistemas que funcionan bajo
233 NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de
236 %description objc -l fr
237 Ce package ajoute un support Objective C a la collection de
238 compilateurs GNU. L'Objective C est un langage orienté objetdérivé du
239 langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce
240 package n'inclue pas la bibliothéque Objective C standard.
242 %description objc -l pl
243 Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
244 C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
245 g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
246 standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
248 %description objc -l tr
249 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
250 C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
251 sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
252 kitaplýðý bu pakette yer almaz.
255 Summary: Objective C Libraries
256 Summary(es): Bibliotecas de Objective C
257 Summary(pl): Biblioteki Obiektowego C
261 %description -n libobjc
262 Objective C Libraries.
264 %description -n libobjc -l es
265 Bibliotecas de Objective C.
267 %description -n libobjc -l pl
268 Biblioteki Obiektowego C.
270 %package -n libobjc-static
271 Summary: Static Objective C Libraries
272 Summary(es): Bibliotecas estáticas de Objective C
273 Summary(pl): Statyczne Biblioteki Obiektowego C
274 Group: Development/Libraries
275 Requires: libobjc = %{epoch}:%{version}-%{release}
277 %description -n libobjc-static
278 Static Objective C Libraries.
280 %description -n libobjc-static -l es
281 Bibliotecas estáticas de Objective C.
283 %description -n libobjc-static -l pl
284 Statyczne biblioteki Obiektowego C.
287 Summary: Fortran 77 support for gcc
288 Summary(es): Soporte de Fortran 77 para gcc
289 Summary(pl): Obs³uga Fortranu 77 dla gcc
290 Summary(pt_BR): Suporte Fortran 77 para o GCC
291 Group: Development/Languages/Fortran
292 Requires: libg2c = %{epoch}:%{version}-%{release}
296 This package adds support for compiling Fortran 77 programs with the
299 %description g77 -l es
300 Este paquete añade soporte para compilar programas escritos en Fortran
301 77 con el compilador GNU.
303 %description g77 -l pl
304 Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
305 potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
307 %description g77 -l pt_BR
308 Suporte Fortran 77 para o GCC.
311 Summary: Fortran 77 Libraries
312 Summary(es): Bibliotecas de Fortran 77
313 Summary(pl): Biblioteki Fortranu 77
316 %description -n libg2c
317 Fortran 77 Libraries.
319 %description -n libg2c -l es
320 Bibliotecas de Fortran 77.
322 %description -n libg2c -l pl
323 Biblioteki Fortranu 77.
325 %package -n libg2c-static
326 Summary: Static Fortran 77 Libraries
327 Summary(es): Bibliotecas estáticas de Fortran 77
328 Summary(pl): Statyczne Biblioteki Fortranu 77
329 Group: Development/Libraries
330 Requires: libg2c = %{epoch}:%{version}-%{release}
332 %description -n libg2c-static
333 Static Fortran 77 Libraries.
335 %description -n libg2c -l es
336 Bibliotecas estáticas de Fortran 77.
338 %description -n libg2c-static -l pl
339 Statyczne biblioteki Fortranu 77.
342 Summary: Java support for gcc
343 Summary(es): Soporte de Java para gcc
344 Summary(pl): Obs³uga Javy dla gcc
345 Group: Development/Languages/Java
346 Requires: %{name} = %{epoch}:%{version}-%{release}
347 Requires: libgcj = %{epoch}:%{version}-%{release}
348 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
349 Requires: java-shared
350 Provides: gcj = %{epoch}:%{version}-%{release}
353 This package adds experimental support for compiling Java(tm) programs
354 and bytecode into native code. To use this you will also need the
357 %description java -l es
358 Este paquete añade soporte experimental para compilar programas
359 Java(tm) y su bytecode en código nativo. Para usarlo también va a
360 necesitar el paquete libgcj.
362 %description java -l pl
363 Wsparcie dla kompilowania programów Java(tm) zarówno do bajt-kodu jak i
364 do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
365 by³o przeprowadziæ kompilacjê.
368 Summary: Shared java tools
369 Summary(es): Herramientas compartidas de Java
370 Summary(pl): Wspó³dzielone narzêdzia javy
371 Group: Development/Languages/Java
372 Provides: jar = %{epoch}:%{version}-%{release}
373 Provides: java-shared
376 Obsoletes: java-shared
378 %description java-tools
379 This package contains tools that are common for every Java(tm)
380 implementation, such as rmic or jar.
382 %description java-tools -l es
383 Este paquete contiene herramientas que son comunes para cada
384 implementación de Java(tm), como rmic o jar.
386 %description java-tools -l pl
387 Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji
388 Javy(tm), takie jak rmic czy jar.
391 Summary: Java Class Libraries
392 Summary(es): Bibliotecas de clases de Java
393 Summary(pl): Biblioteki Klas Javy
398 %description -n libgcj
399 Java Class Libraries.
401 %description -n libgcj -l es
402 Bibliotecas de clases de Java.
404 %description -n libgcj -l pl
405 Biblioteki Klas Javy.
407 %package -n libgcj-devel
408 Summary: Development files for Java Class Libraries
409 Summary(es): Ficheros de desarrollo para las bibliotecas de clases de Java
410 Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
411 Group: Development/Libraries
412 Requires: %{name}-java = %{epoch}:%{version}-%{release}
413 Requires: libgcj = %{epoch}:%{version}-%{release}
414 Obsoletes: libgcj3-devel
416 %description -n libgcj-devel
417 Development files for Java Class Libraries.
419 %description -n libgcj-devel -l es
420 Ficheros de desarrollo para las bibliotecas de clases de Java.
422 %description -n libgcj-devel -l pl
423 Pliki nag³ówkowe dla Bibliotek Klas Javy.
425 %package -n libgcj-static
426 Summary: Static Java Class Libraries
427 Summary(es): Bibliotecas estáticas de clases de Java
428 Summary(pl): Statyczne Biblioteki Klas Javy
429 Group: Development/Libraries
430 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
431 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
433 %description -n libgcj-static
434 Static Java Class Libraries.
436 %description -n libgcj-static -l es
437 Bibliotecas estáticas de clases de Java.
439 %description -n libgcj-static -l pl
440 Statyczne Biblioteki Klas Javy.
442 %package -n libstdc++
443 Summary: GNU c++ library
444 Summary(es): Biblioteca C++ de GNU
445 Summary(pl): Biblioteki GNU C++
446 Summary(pt_BR): Biblioteca C++ GNU
449 Obsoletes: libstdc++3
451 %description -n libstdc++
452 This is the GNU implementation of the standard C++ libraries, along
453 with additional GNU tools. This package includes the shared libraries
454 necessary to run C++ applications.
456 %description -n libstdc++ -l de
457 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
458 weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
459 C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
461 %description -n libstdc++ -l es
462 Este es el soporte de las bibliotecas padrón del C++, junto con
463 herramientas GNU adicionales. El paquete incluye las bibliotecas
464 compartidas necesarias para ejecutar aplicaciones C++.
466 %description -n libstdc++ -l fr
467 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
468 des outils GNU supplémentaires. Ce package comprend les librairies
469 partagées nécessaires à l'exécution d'application C++.
471 %description -n libstdc++ -l pl
472 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
473 bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
474 uruchomienia aplikacji napisanych w C++.
476 %description -n libstdc++ -l pt_BR
477 Este pacote é uma implementação da biblioteca padrão C++ v3, um
478 subconjunto do padrão ISO 14882.
480 %description -n libstdc++ -l tr
481 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
482 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
484 %package -n libstdc++-devel
485 Summary: Header files and documentation for C++ development
486 Summary(de): Header-Dateien zur Entwicklung mit C++
487 Summary(es): Ficheros de cabecera y documentación para desarrollo C++
488 Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
489 Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
490 Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
491 Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
492 Group: Development/Libraries
493 Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
494 Requires: libstdc++ = %{epoch}:%{version}-%{release}
495 Obsoletes: libg++-devel
496 Obsoletes: libstdc++3-devel
498 %description -n libstdc++-devel
499 This is the GNU implementation of the standard C++ libraries. This
500 package includes the header files needed for C++ development and
501 library documentation.
503 %description -n libstdc++-devel -l es
504 Este es el soporte de las bibliotecas padrón del lenguaje C++. Este
505 paquete incluye los archivos de inclusión y bibliotecas necesarios
506 para desarrollo de programas en lenguaje C++.
508 %description -n libstdc++-devel -l pl
509 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
510 bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
511 programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
513 %description -n libstdc++-devel -l pt_BR
514 Este pacote inclui os arquivos de inclusão e bibliotecas necessárias
515 para desenvolvimento de programas C++.
517 %package -n libstdc++-static
518 Summary: Static C++ standard library
519 Summary(es): Biblioteca estándar estática de C++
520 Summary(pl): Statyczna biblioteka standardowa C++
521 Group: Development/Libraries
522 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
524 %description -n libstdc++-static
525 Static C++ standard library.
527 %description -n libstdc++-static -l es
528 Biblioteca estándar estática de C++.
530 %description -n libstdc++-static -l pl
531 Statyczna biblioteka standardowa C++.
534 Summary: Foreign Function Interface library
535 Summary(es): Biblioteca de interfaz de funciones ajenas
536 Summary(pl): Biblioteka zewnêtrznych wywo³añ funkcji
539 %description -n libffi
540 The libffi library provides a portable, high level programming
541 interface to various calling conventions. This allows a programmer to
542 call any function specified by a call interface description at run
545 %description -n libffi -l es
546 La biblioteca libffi provee una interfaz portable de programación de
547 alto nivel para varias convenciones de llamada. Ello permite que un
548 programador llame una función cualquiera especificada por una
549 descripción de interfaz de llamada en el tiempo de ejecución.
551 %description -n libffi -l pl
552 Biblioteka libffi dostarcza przeno¶nego, wysokopoziomowego
553 miêdzymordzia do ró¿nych konwencji wywo³añ funkcji. Pozwala to
554 programi¶cie wywo³ywaæ dowolne funkcje podaj±c konwencjê wywo³ania w
557 %package -n libffi-devel
558 Summary: Development files for Foreign Function Interface library
559 Summary(es): Ficheros de desarrollo para libffi
560 Summary(pl): Pliki nag³ówkowe dla libffi
561 Group: Development/Libraries
562 Requires: libffi = %{epoch}:%{version}-%{release}
564 %description -n libffi-devel
565 Development files for Foreign Function Interface library.
567 %description -n libffi-devel -l es
568 Ficheros de desarrollo para libffi.
570 %description -n libffi-devel -l pl
571 Pliki nag³ówkowe dla libffi.
573 %package -n libffi-static
574 Summary: Static Foreign Function Interface library
575 Summary(es): Biblioteca libffi estática
576 Summary(pl): Statyczna biblioteka libffi
577 Group: Development/Libraries
578 Requires: libffi-devel = %{epoch}:%{version}-%{release}
580 %description -n libffi-static
581 Static Foreign Function Interface library.
583 %description -n libffi-static -l es
584 Biblioteca libffi estática.
586 %description -n libffi-static -l pl
587 Statyczna biblioteka libffi.
590 Summary: Ada support for gcc
591 Summary(es): Soporte de Ada para gcc
592 Summary(pl): Obs³uga Ady do gcc
593 Group: Development/Languages
594 Requires: %{name} = %{epoch}:%{version}-%{release}
595 Requires: libgnat = %{epoch}:%{version}-%{release}
597 Obsoletes: gnat-devel
600 This package adds experimental support for compiling Ada programs.
602 %description ada -l es
603 Este paquete añade soporte experimental para compilar programas en
606 %description ada -l pl
607 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w
611 Summary: Ada standard libraries
612 Summary(es): Bibliotecas estándares de Ada
613 Summary(pl): Biblioteki standardowe dla Ady
618 %description -n libgnat
619 This package contains shared libraries needed to run programs written
622 %description -n libgnat -l es
623 Este paquete contiene las bibliotecas compartidas necesarias para
624 ejecutar programas escritos en Ada.
626 %description -n libgnat -l pl
627 Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów
630 %package -n libgnat-static
631 Summary: Static Ada standard libraries
632 Summary(pl): Statyczne biblioteki standardowe dla Ady
634 Obsoletes: gnat-static
636 %description -n libgnat-static
637 This package contains static libraries for programs written in Ada.
639 %description -n libgnat-static -l pl
640 Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
645 #setup -q -n %{name}-%{version}-%{_snap} -a1
647 %setup -q -n %{name}-3.4-%{_snap} -a1
649 #setup -q -n %{name}-%{version} -a1
654 %{!?debug:%patch3 -p1}
655 %{?with_ssp:%patch4 -p1}
660 # needed for bootstrap using gcc 3.3.x on alpha
661 # and even using the same 3.4.x(!) (but not Debian's 3.3.x) on ia64
666 # because we distribute modified version of gcc...
667 perl -pi -e 's/(version.*)";/$1 %{?with_ssp:SSP }(PLD Linux)";/' gcc/version.c
668 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
670 mv ChangeLog ChangeLog.general
673 # because pr16276 patch modifies configure.ac
677 cp -f /usr/share/automake/config.sub .
679 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
681 CFLAGS="%{rpmcflags}" \
682 CXXFLAGS="%{rpmcflags}" \
683 TEXCONFIG=false ../configure \
684 --prefix=%{_prefix} \
685 --libdir=%{_libdir} \
686 --libexecdir=%{_libexecdir} \
687 --infodir=%{_infodir} \
688 --mandir=%{_mandir} \
690 --enable-threads=posix \
691 --enable-__cxa_atexit \
692 --enable-languages="c,c++,f77%{?with_objc:,objc}%{?with_ada:,ada}%{?with_java:,java}" \
704 --with-slibdir=%{_slibdir} \
708 PATH=$PATH:/sbin:%{_sbindir}
711 # - on alpha stage1 needs -O0 for 3.3->3.4 bootstrap (gnat from 3.3 is seriously broken)
712 # - on ia64 use bootstrap-lean as profiledbootstrap is broken (PR 13882, 15836, 16108)
713 %{__make} -C obj-%{_target_platform} \
719 GCJFLAGS="%{rpmcflags}" \
720 BOOT_CFLAGS="%{rpmcflags}" \
722 STAGE1_CFLAGS="%{rpmcflags} -O0" \
724 STAGE1_CFLAGS="%{rpmcflags}" \
726 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
731 # cannot build it in parallel
732 for tgt in gnatlib-shared gnattools gnatlib; do
733 %{__make} -C obj-%{_target_platform}/gcc $tgt \
734 BOOT_CFLAGS="%{rpmcflags}" \
735 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
741 # snapshot doesn't contain these files...
742 [ -r "NEWS" ] || touch NEWS
743 [ -r "gcc/f/BUGS" ] || touch gcc/f/BUGS
744 [ -r "gcc/f/NEWS" ] || touch gcc/f/NEWS
747 rm -rf $RPM_BUILD_ROOT
748 install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
750 cd obj-%{_target_platform}
751 PATH=$PATH:/sbin:%{_sbindir}
753 %{__make} -j1 install \
755 infodir=%{_infodir} \
756 DESTDIR=$RPM_BUILD_ROOT
759 ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \
760 $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
763 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
764 echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
766 ln -sf g77 $RPM_BUILD_ROOT%{_bindir}/f77
767 echo ".so g77.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
770 # move ada shared libraries to proper place...
771 mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
772 $RPM_BUILD_ROOT%{_libdir}
773 # check if symlink to be made is valid
774 test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so.1
775 ln -sf libgnat-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so
776 ln -sf libgnarl-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-3.4.so
777 ln -sf libgnat-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
778 ln -sf libgnarl-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
781 ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
787 cp -f libjava/doc/cni.sgml libjava/READ* java-doc
788 cp -f fastjar/README java-doc/README.fastjar
789 cp -f libffi/README java-doc/README.libffi
790 cp -f libffi/LICENSE java-doc/LICENSE.libffi
794 cp -f libobjc/README gcc/objc/README.libobjc
797 # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version}
798 for f in libstdc++.la libsupc++.la %{?with_java:libgcj.la} ; do
799 perl -pi -e 's@-L[^ ]*[acs.] @@g' $RPM_BUILD_ROOT%{_libdir}/$f
801 # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
802 for f in libstdc++.la libsupc++.la libg2c.la \
803 %{?with_java:libgcj.la lib-org-w3c-dom.la lib-org-xml-sax.la libffi.la} \
804 %{?with_objc:libobjc.la}; do
805 perl -pi -e "s@^libdir='.*@libdir='/usr/%{_lib}'@" $RPM_BUILD_ROOT%{_libdir}/$f
808 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
809 mv -f $RPM_BUILD_ROOT%{_mandir}/ja/man1/{cccp,cpp}.1
811 # include/ contains install-tools/include/* and headers that were fixed up
812 # by fixincludes, we don't want former
813 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
815 # we have to save these however
816 mv -f $gccdir/include/{%{?with_objc:objc,}g2c.h,syslimits.h%{?with_java:,libffi/ffitarget.h,gcj}} $gccdir/tmp
817 rm -rf $gccdir/include
818 mv -f $gccdir/tmp $gccdir/include
819 cp $gccdir/install-tools/include/*.h $gccdir/include
820 # but we don't want anything more from install-tools
821 rm -rf $gccdir/install-tools
824 %find_lang libstdc\+\+
827 zcat %{SOURCE2} > $RPM_BUILD_ROOT%{_aclocaldir}/gcc_stack_protect.m4
831 rm -rf $RPM_BUILD_ROOT
834 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
837 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
840 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
843 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
846 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
849 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
851 %post -p /sbin/ldconfig -n libgcc
852 %postun -p /sbin/ldconfig -n libgcc
853 %post -p /sbin/ldconfig -n libstdc++
854 %postun -p /sbin/ldconfig -n libstdc++
855 %post -p /sbin/ldconfig -n libobjc
856 %postun -p /sbin/ldconfig -n libobjc
857 %post -p /sbin/ldconfig -n libg2c
858 %postun -p /sbin/ldconfig -n libg2c
859 %post -p /sbin/ldconfig -n libgcj
860 %postun -p /sbin/ldconfig -n libgcj
861 %post -p /sbin/ldconfig -n libgnat
862 %postun -p /sbin/ldconfig -n libgnat
863 %post -p /sbin/ldconfig -n libffi
864 %postun -p /sbin/ldconfig -n libffi
867 %defattr(644,root,root,755)
868 %doc ChangeLog.general MAINTAINERS NEWS bugs.html faq.html
869 %doc gcc/{ChangeLog,ONEWS,README.Portability}
871 %dir %{_libdir}/gcc/*
872 %dir %{_libdir}/gcc/*/*
873 %dir %{_libdir}/gcc/*/*/include
874 %{?with_ssp:%{_aclocaldir}/gcc_stack_protect.m4}
876 %attr(755,root,root) %{_bindir}/*-gcc*
877 %attr(755,root,root) %{_bindir}/gcc
878 %attr(755,root,root) %{_bindir}/gccbug
879 %attr(755,root,root) %{_bindir}/gcov
880 %attr(755,root,root) %{_bindir}/cc
881 %attr(755,root,root) %{_bindir}/cpp
883 %{_mandir}/man1/cc.1*
884 %{_mandir}/man1/cpp.1*
885 %lang(ja) %{_mandir}/ja/man1/cpp.1*
886 %{_mandir}/man1/gcc.1*
887 %lang(fr) %{_mandir}/fr/man1/gcc.1*
888 %lang(ja) %{_mandir}/ja/man1/gcc.1*
889 %{_mandir}/man1/gcov.1*
894 %attr(755,root,root) /lib/cpp
896 %attr(755,root,root) %{_slibdir}*/lib*.so
897 %{_libdir}/gcc/*/*/libgcov.a
898 %{_libdir}/gcc/*/*/libgcc.a
899 %{_libdir}/gcc/*/*/libgcc_eh.a
900 %{_libdir}/gcc/*/*/specs
901 %attr(644,root,root) %{_libdir}*/gcc/*/*/crt*.o
903 %{_libdir}/gcc/*/*/*/libgcc.a
904 %{_libdir}/gcc/*/*/*/libgcc_eh.a
905 %attr(644,root,root) %{_libdir}*/gcc/*/*/*/crt*.o
908 %attr(644,root,root) %{_libdir}/gcc/*/*/ecrt*.o
909 %attr(644,root,root) %{_libdir}/gcc/*/*/ncrt*.o
910 %{_libdir}/gcc/*/*/nof
913 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1
914 %attr(755,root,root) %{_libdir}/gcc/*/*/collect2
916 %{_libdir}/gcc/*/*/include/*.h
917 %exclude %{_libdir}/gcc/*/*/include/g2c.h
920 %defattr(644,root,root,755)
921 %attr(755,root,root) %{_slibdir}*/lib*.so.*
924 %defattr(644,root,root,755)
925 %doc gcc/cp/{ChangeLog,NEWS}
926 %attr(755,root,root) %{_bindir}/g++
927 %attr(755,root,root) %{_bindir}/*-g++
928 %attr(755,root,root) %{_bindir}/c++
929 %attr(755,root,root) %{_bindir}/*-c++
930 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
931 %{_libdir}*/libsupc++.la
933 %{_libdir}/nof/libsupc++.la
934 %{_libdir}/nof/libsupc++.a
936 %{_libdir}*/libsupc++.a
937 %{_mandir}/man1/g++.1*
938 %lang(ja) %{_mandir}/ja/man1/g++.1*
940 %files -n libstdc++ -f libstdc++.lang
941 %defattr(644,root,root,755)
942 %doc libstdc++-v3/{ChangeLog,README}
943 %attr(755,root,root) %{_libdir}*/libstdc++.so.*.*.*
945 %attr(755,root,root) %{_libdir}/nof/libstdc++.so.*.*.*
948 %files -n libstdc++-devel
949 %defattr(644,root,root,755)
950 %doc libstdc++-v3/docs/html
951 %dir %{_includedir}/c++
952 %{_includedir}/c++/%{version}
953 %exclude %{_includedir}/c++/%{version}/*/bits/stdc++.h.gch
954 %attr(755,root,root) %{_libdir}*/libstdc++.so
955 %{_libdir}*/libstdc++.la
957 %attr(755,root,root) %{_libdir}/nof/libstdc++.so
958 %{_libdir}/nof/libstdc++.la
961 %files -n libstdc++-static
962 %defattr(644,root,root,755)
963 %{_libdir}*/libstdc++.a
965 %{_libdir}/nof/libstdc++.a
970 %defattr(644,root,root,755)
972 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
973 %attr(755,root,root) %{_libdir}*/libobjc.so
974 %{_libdir}*/libobjc.la
976 %attr(755,root,root) %{_libdir}/nof/libobjc.so
977 %{_libdir}/nof/libobjc.la
979 %{_libdir}/gcc/*/*/include/objc
982 %defattr(644,root,root,755)
983 %doc libobjc/{ChangeLog,README*}
984 %attr(755,root,root) %{_libdir}*/libobjc.so.*.*.*
986 %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.*
989 %files -n libobjc-static
990 %defattr(644,root,root,755)
991 %{_libdir}*/libobjc.a
993 %{_libdir}/nof/libobjc.a
998 %defattr(644,root,root,755)
999 %doc gcc/f/{BUGS,ChangeLog,NEWS}
1000 %attr(755,root,root) %{_bindir}/g77
1001 %attr(755,root,root) %{_bindir}/f77
1003 %attr(755,root,root) %{_libdir}/gcc/*/*/f771
1004 %{_libdir}*/libfrtbegin.a
1005 %{_libdir}*/libg2c.la
1006 %attr(755,root,root) %{_libdir}*/libg2c.so
1008 %{_libdir}/nof/libfrtbegin.a
1009 %{_libdir}/nof/libg2c.la
1010 %attr(755,root,root) %{_libdir}/nof/libg2c.so
1012 %{_libdir}/gcc/*/*/include/g2c.h
1013 %{_mandir}/man1/g77.1*
1014 %{_mandir}/man1/f77.1*
1015 %lang(ja) %{_mandir}/ja/man1/g77.1*
1016 %lang(ja) %{_mandir}/ja/man1/f77.1*
1019 %defattr(644,root,root,755)
1020 %doc libf2c/{ChangeLog,README,TODO}
1021 %attr(755,root,root) %{_libdir}*/libg2c.so.*.*.*
1023 %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.*
1026 %files -n libg2c-static
1027 %defattr(644,root,root,755)
1028 %{_libdir}*/libg2c.a
1030 %{_libdir}/nof/libg2c.a
1035 %defattr(644,root,root,755)
1036 %doc gcc/java/ChangeLog java-doc/*
1037 %attr(755,root,root) %{_bindir}/gcj*
1038 %attr(755,root,root) %{_bindir}/gij
1039 %attr(755,root,root) %{_bindir}/jcf-dump
1040 %attr(755,root,root) %{_bindir}/jv-*
1041 %attr(755,root,root) %{_bindir}/grepjar
1042 %attr(755,root,root) %{_bindir}/*-gcj*
1043 %attr(755,root,root) %{_libdir}/gcc/*/*/jc1
1044 %attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
1046 %{_mandir}/man1/jcf-*
1047 %{_mandir}/man1/jv-*
1048 %{_mandir}/man1/gij*
1049 %{_mandir}/man1/gcj*
1050 %{_mandir}/man1/grepjar*
1053 %defattr(644,root,root,755)
1054 %attr(755,root,root) %{_bindir}/rmi*
1055 %attr(755,root,root) %{_bindir}/jar
1056 %{_mandir}/man1/rmi*
1057 %{_mandir}/man1/jar*
1058 %{_infodir}/fastjar*
1061 %defattr(644,root,root,755)
1062 %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
1063 %attr(755,root,root) %{_bindir}/addr2name.awk
1064 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
1065 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
1067 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
1069 %{_libdir}/logging.properties
1071 %files -n libgcj-devel
1072 %defattr(644,root,root,755)
1074 %{_includedir}/javax
1077 %{_includedir}/gnu/*
1078 %{_libdir}/gcc/*/*/include/gcj
1079 %dir %{_libdir}/security
1080 %{_libdir}/security/*
1081 %dir %{_datadir}/java
1082 %{_datadir}/java/libgcj*.jar
1083 %{_libdir}/lib*cj.spec
1084 %{_libdir}/lib*cj*.la
1085 %attr(755,root,root) %{_libdir}/lib*cj*.so
1086 %attr(755,root,root) %{_libdir}/lib-org-*.so
1087 %{_libdir}/lib-org-*.la
1089 %{_libdir}/nof/lib*cj*.la
1090 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so
1092 %{_pkgconfigdir}/libgcj.pc
1094 %files -n libgcj-static
1095 %defattr(644,root,root,755)
1096 %{_libdir}/lib*cj*.a
1097 %{_libdir}/lib-org-*.a
1099 %{_libdir}/nof/lib*cj*.a
1103 %defattr(644,root,root,755)
1104 %doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
1105 %attr(755,root,root) %{_libdir}/libffi-*.so
1107 %files -n libffi-devel
1108 %defattr(644,root,root,755)
1109 %{_libdir}/gcc/*/*/include/ffitarget.h
1110 %attr(755,root,root) %{_libdir}/libffi.so
1111 %{_libdir}/libffi.la
1112 %{_includedir}/ffi.h
1114 %files -n libffi-static
1115 %defattr(644,root,root,755)
1121 %defattr(644,root,root,755)
1122 %doc gcc/ada/ChangeLog
1123 %attr(755,root,root) %{_bindir}/gnat*
1124 %attr(755,root,root) %{_bindir}/gpr*
1125 %attr(755,root,root) %{_libdir}/libgnarl*.so
1126 %attr(755,root,root) %{_libdir}/libgnat*.so
1127 %attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
1128 %{_libdir}/gcc/*/*/adainclude
1129 %dir %{_libdir}/gcc/*/*/adalib
1130 %{_libdir}/gcc/*/*/adalib/*.ali
1131 %{_libdir}/gcc/*/*/adalib/g-trasym.o
1132 %{_libdir}/gcc/*/*/adalib/libgccprefix.a
1134 %{_libdir}/gcc/*/*/adalib/libgmem.a
1140 %defattr(644,root,root,755)
1141 %attr(755,root,root) %{_libdir}/libgnarl*.so.1
1142 %attr(755,root,root) %{_libdir}/libgnat*.so.1
1144 %files -n libgnat-static
1145 %defattr(644,root,root,755)
1146 %{_libdir}/gcc/*/*/adalib/libgnarl.a
1147 %{_libdir}/gcc/*/*/adalib/libgnat.a