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
13 Summary: GNU Compiler Collection: the C compiler and shared files
14 Summary(es): Colección de compiladores GNU: el compilador C y ficheros compartidos
15 Summary(pl): Kolekcja kompilatorów GNU: kompilator C i pliki wspó³dzielone
16 Summary(pt_BR): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
22 Group: Development/Languages
23 Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
24 # Source0-md5: e744b30c834360fccac41eb7269a3011
25 Source1: http://ep09.pld-linux.org/~djrzulf/gcc33/%{name}-non-english-man-pages.tar.bz2
26 # Source1-md5: 4736f3422ddfb808423b745629acc321
27 Source2: http://www.trl.ibm.com/projects/security/ssp/gcc2_95_3/gcc_stack_protect.m4.gz
28 # Source2-md5: 07d93ad5fc07ca44cdaba46c658820de
29 Source3: gcc_visibility.m4
30 Patch0: %{name}-info.patch
31 Patch1: %{name}-nolocalefiles.patch
32 Patch2: %{name}-ada-link-new-libgnat.patch
33 Patch3: %{name}-nodebug.patch
34 Patch4: %{name}-ssp.patch
35 Patch5: %{name}-ada-link.patch
36 Patch6: %{name}-pr15666.patch
37 Patch7: %{name}-pr16276.patch
38 Patch8: %{name}-pr18185.patch
40 # -fvisibility={default|internal|hidden|protected}
42 # Set the default ELF image symbol visibility to the specified option.
43 # All symbols will be marked with this unless overrided within the code.
44 # Using this feature can very substantially improve linking and load times
45 # of shared object libraries, produce more optimised code, provide near-perfect
46 # API export and prevent symbol clashes. It is strongly recommended that you
47 # use this in any shared objects you distribute.
49 # -fvisibility-inlines-hidden
51 # Causes all inlined methods to be marked with __attribute__((visibility("hidden")))
52 # so that they do not appear in the export table of a DSO and do not require a PLT
53 # indirection when used within the DSO. Enabling this option can have a dramatic
54 # effect on load and link times of a DSO as it massively reduces the size
55 # of the dynamic export table when the library makes heavy use of templates.
56 # While it can cause bloating through duplication of code within each DSO
57 # where it is used, often the wastage is less than the considerable space
58 # occupied by a long symbol name in the export table which is typical when using
59 # templates and namespaces.
61 # How to Write Shared Libraries: http://people.redhat.com/drepper/dsohowto.pdf
63 Patch9: %{name}-visibility.patch
65 Patch20: %{name}-ada-bootstrap.patch
66 URL: http://gcc.gnu.org/
67 BuildRequires: autoconf
68 BuildRequires: automake
69 BuildRequires: binutils >= 2:2.15.91.0.2
71 BuildRequires: fileutils >= 4.0.41
74 BuildRequires: gcc(ada)
75 BuildRequires: gcc-ada
77 BuildRequires: gettext-devel
78 BuildRequires: glibc-devel >= 2.2.5-20
79 BuildRequires: perl-devel
80 BuildRequires: texinfo >= 4.1
81 BuildRequires: zlib-devel
82 Requires: binutils >= 2:2.15.91.0.2
83 Requires: gcc-dirs >= 1.0-3
84 Requires: libgcc = %{epoch}:%{version}-%{release}
85 Provides: cpp = %{epoch}:%{version}-%{release}
86 %{?with_ada:Provides: gcc(ada)}
87 %{?with_ssp:Provides: gcc(ssp)}
88 # ksi for gcc > 3.3.x not ready yet
94 Conflicts: glibc-devel < 2.2.5-20
95 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
97 %define _slibdir /%{_lib}
99 %define _slibdir32 /lib
100 %define _libdir /usr/lib
101 %define rpmcflags -O2 -mtune=ultrasparc
104 %define _slibdir32 /lib
105 %define _libdir /usr/lib
109 A compiler aimed at integrating all the optimizations and features
110 necessary for a high-performance and stable development environment.
112 This package contains the C compiler and some files shared by various
113 parts of the GNU Compiler Collection. In order to use another GCC
114 compiler you will need to install the appropriate subpackage.
117 Un compilador que intenta integrar todas las optimalizaciones y
118 características necesarias para un entorno de desarrollo eficaz y
121 Este paquete contiene el compilador de C y unos ficheros compartidos
122 por varias partes de la colección de compiladores GNU (GCC). Para usar
123 otro compilador de GCC será necesario que instale el subpaquete
127 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
128 wyprodukowania szybkiego i stabilnego kodu wynikowego.
130 Ten pakiet zawiera kompilator C i pliki wspó³dzielone przez ró¿ne
131 czê¶ci kolekcji kompilatorów GNU (GCC). ¯eby u¿ywaæ innego kompilatora
132 z GCC, trzeba zainstalowaæ odpowiedni podpakiet.
134 %description -l pt_BR
135 Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
136 GNU Compiler Collection.
139 Summary: Shared gcc library
140 Summary(es): Biblioteca compartida de gcc
141 Summary(pl): Biblioteka gcc
142 Summary(pt_BR): Biblioteca runtime para o GCC
146 %description -n libgcc
149 %description -n libgcc -l es
150 Biblioteca compartida de gcc.
152 %description -n libgcc -l pl
153 Biblioteka dynamiczna gcc.
155 %description -n libgcc -l pt_BR
156 Biblioteca runtime para o GCC.
159 Summary: C++ support for gcc
160 Summary(es): Soporte de C++ para gcc
161 Summary(pl): Obs³uga C++ dla gcc
162 Summary(pt_BR): Suporte C++ para o gcc
163 Group: Development/Languages
164 Requires: %{name} = %{epoch}:%{version}-%{release}
169 This package adds C++ support to the GNU Compiler Collection. It
170 includes support for most of the current C++ specification, including
171 templates and exception handling. It does not include a standard C++
172 library, which is available separately.
174 %description c++ -l de
175 Dieses Paket enthält die C++-Unterstützung für den
176 GNU-Compiler-Collection. Es unterstützt die aktuelle
177 C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine
178 C++-Standard-Library ist nicht enthalten - sie ist getrennt
181 %description c++ -l es
182 Este paquete añade soporte de C++ al GCC (colección de compiladores
183 GNU). Ello incluye el soporte para la mayoría de la especificación
184 actual de C++, incluyendo plantillas y manejo de excepciones. No
185 incluye la biblioteca estándar de C++, la que es disponible separada.
187 %description c++ -l fr
188 Ce package ajoute un support C++ a la collection de compilateurs GNU.
189 Il comprend un support pour la plupart des spécifications actuelles de
190 C++, dont les modéles et la gestion des exceptions. Il ne comprend pas
191 une bibliothéque C++ standard, qui est disponible séparément.
193 %description c++ -l pl
194 Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
195 du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
196 standardowych bibliotek C++, które s± w oddzielnym pakiecie.
198 %description c++ -l pt_BR
199 Este pacote adiciona suporte C++ para o gcc.
201 %description c++ -l tr
202 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
203 aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
204 C++ kitaplýðý bu pakette yer almaz.
207 Summary: Objective C support for gcc
208 Summary(de): Objektive C-Unterstützung für gcc
209 Summary(es): Soporte de Objective C para gcc
210 Summary(fr): Gestion d'Objective C pour gcc
211 Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
212 Summary(tr): gcc için Objective C desteði
213 Group: Development/Languages
214 Requires: %{name} = %{epoch}:%{version}-%{release}
215 Requires: libobjc = %{epoch}:%{version}-%{release}
220 This package adds Objective C support to the GNU Compiler Collection.
221 Objective C is a object oriented derivative of the C language, mainly
222 used on systems running NeXTSTEP. This package does not include the
223 standard objective C object library.
225 %description objc -l de
226 Dieses Paket ergänzt den GNU-Compiler-Collection durch
227 Objective-C-Support. Objective C ist ein objektorientiertes Derivat
228 von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt.
229 Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
231 %description objc -l es
232 Este paquete añade soporte de Objective C al GCC (colección de
233 compiladores GNU). Objective C es un lenguaje orientado a objetos
234 derivado de C, principalmente usado en sistemas que funcionan bajo
235 NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de
238 %description objc -l fr
239 Ce package ajoute un support Objective C a la collection de
240 compilateurs GNU. L'Objective C est un langage orienté objetdérivé du
241 langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce
242 package n'inclue pas la bibliothéque Objective C standard.
244 %description objc -l pl
245 Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
246 C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
247 g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
248 standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
250 %description objc -l tr
251 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
252 C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
253 sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
254 kitaplýðý bu pakette yer almaz.
257 Summary: Objective C Libraries
258 Summary(es): Bibliotecas de Objective C
259 Summary(pl): Biblioteki Obiektowego C
263 %description -n libobjc
264 Objective C Libraries.
266 %description -n libobjc -l es
267 Bibliotecas de Objective C.
269 %description -n libobjc -l pl
270 Biblioteki Obiektowego C.
272 %package -n libobjc-static
273 Summary: Static Objective C Libraries
274 Summary(es): Bibliotecas estáticas de Objective C
275 Summary(pl): Statyczne Biblioteki Obiektowego C
276 Group: Development/Libraries
277 Requires: libobjc = %{epoch}:%{version}-%{release}
279 %description -n libobjc-static
280 Static Objective C Libraries.
282 %description -n libobjc-static -l es
283 Bibliotecas estáticas de Objective C.
285 %description -n libobjc-static -l pl
286 Statyczne biblioteki Obiektowego C.
289 Summary: Fortran 77 support for gcc
290 Summary(es): Soporte de Fortran 77 para gcc
291 Summary(pl): Obs³uga Fortranu 77 dla gcc
292 Summary(pt_BR): Suporte Fortran 77 para o GCC
293 Group: Development/Languages/Fortran
294 Requires: libg2c = %{epoch}:%{version}-%{release}
298 This package adds support for compiling Fortran 77 programs with the
301 %description g77 -l es
302 Este paquete añade soporte para compilar programas escritos en Fortran
303 77 con el compilador GNU.
305 %description g77 -l pl
306 Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
307 potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
309 %description g77 -l pt_BR
310 Suporte Fortran 77 para o GCC.
313 Summary: Fortran 77 Libraries
314 Summary(es): Bibliotecas de Fortran 77
315 Summary(pl): Biblioteki Fortranu 77
318 %description -n libg2c
319 Fortran 77 Libraries.
321 %description -n libg2c -l es
322 Bibliotecas de Fortran 77.
324 %description -n libg2c -l pl
325 Biblioteki Fortranu 77.
327 %package -n libg2c-static
328 Summary: Static Fortran 77 Libraries
329 Summary(es): Bibliotecas estáticas de Fortran 77
330 Summary(pl): Statyczne Biblioteki Fortranu 77
331 Group: Development/Libraries
332 Requires: libg2c = %{epoch}:%{version}-%{release}
334 %description -n libg2c-static
335 Static Fortran 77 Libraries.
337 %description -n libg2c -l es
338 Bibliotecas estáticas de Fortran 77.
340 %description -n libg2c-static -l pl
341 Statyczne biblioteki Fortranu 77.
344 Summary: Java support for gcc
345 Summary(es): Soporte de Java para gcc
346 Summary(pl): Obs³uga Javy dla gcc
347 Group: Development/Languages/Java
348 Requires: %{name} = %{epoch}:%{version}-%{release}
349 Requires: libgcj = %{epoch}:%{version}-%{release}
350 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
351 Requires: java-shared
352 Provides: gcj = %{epoch}:%{version}-%{release}
355 This package adds experimental support for compiling Java(tm) programs
356 and bytecode into native code. To use this you will also need the
359 %description java -l es
360 Este paquete añade soporte experimental para compilar programas
361 Java(tm) y su bytecode en código nativo. Para usarlo también va a
362 necesitar el paquete libgcj.
364 %description java -l pl
365 Wsparcie dla kompilowania programów Java(tm) zarówno do bajt-kodu jak i
366 do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
367 by³o przeprowadziæ kompilacjê.
370 Summary: Shared java tools
371 Summary(es): Herramientas compartidas de Java
372 Summary(pl): Wspó³dzielone narzêdzia javy
373 Group: Development/Languages/Java
374 Provides: jar = %{epoch}:%{version}-%{release}
375 Provides: java-shared
378 Obsoletes: java-shared
380 %description java-tools
381 This package contains tools that are common for every Java(tm)
382 implementation, such as rmic or jar.
384 %description java-tools -l es
385 Este paquete contiene herramientas que son comunes para cada
386 implementación de Java(tm), como rmic o jar.
388 %description java-tools -l pl
389 Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji
390 Javy(tm), takie jak rmic czy jar.
393 Summary: Java Class Libraries
394 Summary(es): Bibliotecas de clases de Java
395 Summary(pl): Biblioteki Klas Javy
400 %description -n libgcj
401 Java Class Libraries.
403 %description -n libgcj -l es
404 Bibliotecas de clases de Java.
406 %description -n libgcj -l pl
407 Biblioteki Klas Javy.
409 %package -n libgcj-devel
410 Summary: Development files for Java Class Libraries
411 Summary(es): Ficheros de desarrollo para las bibliotecas de clases de Java
412 Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
413 Group: Development/Libraries
414 Requires: %{name}-java = %{epoch}:%{version}-%{release}
415 Requires: libgcj = %{epoch}:%{version}-%{release}
416 Obsoletes: libgcj3-devel
418 %description -n libgcj-devel
419 Development files for Java Class Libraries.
421 %description -n libgcj-devel -l es
422 Ficheros de desarrollo para las bibliotecas de clases de Java.
424 %description -n libgcj-devel -l pl
425 Pliki nag³ówkowe dla Bibliotek Klas Javy.
427 %package -n libgcj-static
428 Summary: Static Java Class Libraries
429 Summary(es): Bibliotecas estáticas de clases de Java
430 Summary(pl): Statyczne Biblioteki Klas Javy
431 Group: Development/Libraries
432 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
433 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
435 %description -n libgcj-static
436 Static Java Class Libraries.
438 %description -n libgcj-static -l es
439 Bibliotecas estáticas de clases de Java.
441 %description -n libgcj-static -l pl
442 Statyczne Biblioteki Klas Javy.
444 %package -n libstdc++
445 Summary: GNU c++ library
446 Summary(es): Biblioteca C++ de GNU
447 Summary(pl): Biblioteki GNU C++
448 Summary(pt_BR): Biblioteca C++ GNU
451 Obsoletes: libstdc++3
453 %description -n libstdc++
454 This is the GNU implementation of the standard C++ libraries, along
455 with additional GNU tools. This package includes the shared libraries
456 necessary to run C++ applications.
458 %description -n libstdc++ -l de
459 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
460 weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
461 C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
463 %description -n libstdc++ -l es
464 Este es el soporte de las bibliotecas padrón del C++, junto con
465 herramientas GNU adicionales. El paquete incluye las bibliotecas
466 compartidas necesarias para ejecutar aplicaciones C++.
468 %description -n libstdc++ -l fr
469 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
470 des outils GNU supplémentaires. Ce package comprend les librairies
471 partagées nécessaires à l'exécution d'application C++.
473 %description -n libstdc++ -l pl
474 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
475 bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
476 uruchomienia aplikacji napisanych w C++.
478 %description -n libstdc++ -l pt_BR
479 Este pacote é uma implementação da biblioteca padrão C++ v3, um
480 subconjunto do padrão ISO 14882.
482 %description -n libstdc++ -l tr
483 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
484 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
486 %package -n libstdc++-devel
487 Summary: Header files and documentation for C++ development
488 Summary(de): Header-Dateien zur Entwicklung mit C++
489 Summary(es): Ficheros de cabecera y documentación para desarrollo C++
490 Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
491 Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
492 Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
493 Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
494 Group: Development/Libraries
495 Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
496 Requires: libstdc++ = %{epoch}:%{version}-%{release}
497 Requires: glibc-devel
498 Obsoletes: libg++-devel
499 Obsoletes: libstdc++3-devel
501 %description -n libstdc++-devel
502 This is the GNU implementation of the standard C++ libraries. This
503 package includes the header files needed for C++ development and
504 library documentation.
506 %description -n libstdc++-devel -l es
507 Este es el soporte de las bibliotecas padrón del lenguaje C++. Este
508 paquete incluye los archivos de inclusión y bibliotecas necesarios
509 para desarrollo de programas en lenguaje C++.
511 %description -n libstdc++-devel -l pl
512 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
513 bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
514 programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
516 %description -n libstdc++-devel -l pt_BR
517 Este pacote inclui os arquivos de inclusão e bibliotecas necessárias
518 para desenvolvimento de programas C++.
520 %package -n libstdc++-static
521 Summary: Static C++ standard library
522 Summary(es): Biblioteca estándar estática de C++
523 Summary(pl): Statyczna biblioteka standardowa C++
524 Group: Development/Libraries
525 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
527 %description -n libstdc++-static
528 Static C++ standard library.
530 %description -n libstdc++-static -l es
531 Biblioteca estándar estática de C++.
533 %description -n libstdc++-static -l pl
534 Statyczna biblioteka standardowa C++.
537 Summary: Foreign Function Interface library
538 Summary(es): Biblioteca de interfaz de funciones ajenas
539 Summary(pl): Biblioteka zewnêtrznych wywo³añ funkcji
542 %description -n libffi
543 The libffi library provides a portable, high level programming
544 interface to various calling conventions. This allows a programmer to
545 call any function specified by a call interface description at run
548 %description -n libffi -l es
549 La biblioteca libffi provee una interfaz portable de programación de
550 alto nivel para varias convenciones de llamada. Ello permite que un
551 programador llame una función cualquiera especificada por una
552 descripción de interfaz de llamada en el tiempo de ejecución.
554 %description -n libffi -l pl
555 Biblioteka libffi dostarcza przeno¶nego, wysokopoziomowego
556 miêdzymordzia do ró¿nych konwencji wywo³añ funkcji. Pozwala to
557 programi¶cie wywo³ywaæ dowolne funkcje podaj±c konwencjê wywo³ania w
560 %package -n libffi-devel
561 Summary: Development files for Foreign Function Interface library
562 Summary(es): Ficheros de desarrollo para libffi
563 Summary(pl): Pliki nag³ówkowe dla libffi
564 Group: Development/Libraries
565 Requires: libffi = %{epoch}:%{version}-%{release}
567 %description -n libffi-devel
568 Development files for Foreign Function Interface library.
570 %description -n libffi-devel -l es
571 Ficheros de desarrollo para libffi.
573 %description -n libffi-devel -l pl
574 Pliki nag³ówkowe dla libffi.
576 %package -n libffi-static
577 Summary: Static Foreign Function Interface library
578 Summary(es): Biblioteca libffi estática
579 Summary(pl): Statyczna biblioteka libffi
580 Group: Development/Libraries
581 Requires: libffi-devel = %{epoch}:%{version}-%{release}
583 %description -n libffi-static
584 Static Foreign Function Interface library.
586 %description -n libffi-static -l es
587 Biblioteca libffi estática.
589 %description -n libffi-static -l pl
590 Statyczna biblioteka libffi.
593 Summary: Ada support for gcc
594 Summary(es): Soporte de Ada para gcc
595 Summary(pl): Obs³uga Ady do gcc
596 Group: Development/Languages
597 Requires: %{name} = %{epoch}:%{version}-%{release}
598 Requires: libgnat = %{epoch}:%{version}-%{release}
600 Obsoletes: gnat-devel
603 This package adds experimental support for compiling Ada programs.
605 %description ada -l es
606 Este paquete añade soporte experimental para compilar programas en
609 %description ada -l pl
610 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w
614 Summary: Ada standard libraries
615 Summary(es): Bibliotecas estándares de Ada
616 Summary(pl): Biblioteki standardowe dla Ady
621 %description -n libgnat
622 This package contains shared libraries needed to run programs written
625 %description -n libgnat -l es
626 Este paquete contiene las bibliotecas compartidas necesarias para
627 ejecutar programas escritos en Ada.
629 %description -n libgnat -l pl
630 Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów
633 %package -n libgnat-static
634 Summary: Static Ada standard libraries
635 Summary(pl): Statyczne biblioteki standardowe dla Ady
637 Obsoletes: gnat-static
639 %description -n libgnat-static
640 This package contains static libraries for programs written in Ada.
642 %description -n libgnat-static -l pl
643 Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
652 %{!?debug:%patch3 -p1}
653 %{?with_ssp:%patch4 -p1}
661 # needed for bootstrap using gcc 3.3.x on alpha
662 # and even using the same 3.4.x(!) (but not Debian's 3.3.x) on ia64
666 # because we distribute modified version of gcc...
667 perl -pi -e 's/(version.*)";/$1 %{?with_ssp:SSP }(PLD Linux)";/' gcc/version.c
668 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
670 mv ChangeLog ChangeLog.general
673 # because pr16276 patch modifies configure.ac
677 cp -f /usr/share/automake/config.sub .
679 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
685 exec /usr/bin/gcc -m64 "$@"
694 exec /usr/bin/gcc -m64 "$@"
701 CFLAGS="%{rpmcflags}" \
702 CXXFLAGS="%{rpmcflags}" \
704 TEXCONFIG=false ../configure \
705 --prefix=%{_prefix} \
706 --libdir=%{_libdir} \
707 --libexecdir=%{_libdir} \
708 --infodir=%{_infodir} \
709 --mandir=%{_mandir} \
711 --enable-threads=posix \
712 --enable-__cxa_atexit \
713 --enable-languages="c,c++,f77%{?with_objc:,objc}%{?with_ada:,ada}%{?with_java:,java}" \
725 --with-slibdir=%{_slibdir} \
729 PATH=$PATH:/sbin:%{_sbindir}
732 # - on alpha stage1 needs -O0 for 3.3->3.4 bootstrap (gnat from 3.3 is seriously broken)
733 # - on ia64 use bootstrap-lean as profiledbootstrap is broken (PR 13882, 15836, 16108)
734 %{__make} -C obj-%{_target_platform} \
740 GCJFLAGS="%{rpmcflags}" \
741 BOOT_CFLAGS="%{rpmcflags}" \
743 STAGE1_CFLAGS="%{rpmcflags} -O0" \
745 STAGE1_CFLAGS="%{rpmcflags}" \
747 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
752 # cannot build it in parallel
753 for tgt in gnatlib-shared gnattools gnatlib; do
754 %{__make} -C obj-%{_target_platform}/gcc $tgt \
755 BOOT_CFLAGS="%{rpmcflags}" \
756 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
763 rm -rf $RPM_BUILD_ROOT
764 install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
766 cd obj-%{_target_platform}
767 PATH=$PATH:/sbin:%{_sbindir}
769 %{__make} -j1 install \
771 infodir=%{_infodir} \
772 DESTDIR=$RPM_BUILD_ROOT
775 ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \
776 $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
779 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
780 echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
782 ln -sf g77 $RPM_BUILD_ROOT%{_bindir}/f77
783 echo ".so g77.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
786 # move ada shared libraries to proper place...
787 mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
788 $RPM_BUILD_ROOT%{_libdir}
789 # check if symlink to be made is valid
790 test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so.1
791 ln -sf libgnat-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so
792 ln -sf libgnarl-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-3.4.so
793 ln -sf libgnat-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
794 ln -sf libgnarl-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
797 ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
803 cp -f libjava/doc/cni.sgml libjava/READ* java-doc
804 cp -f fastjar/README java-doc/README.fastjar
805 cp -f libffi/README java-doc/README.libffi
806 cp -f libffi/LICENSE java-doc/LICENSE.libffi
810 cp -f libobjc/README gcc/objc/README.libobjc
813 # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version}
814 for f in libstdc++.la libsupc++.la %{?with_java:libgcj.la} ; do
815 perl -pi -e 's@-L[^ ]*[acs.] @@g' $RPM_BUILD_ROOT%{_libdir}/$f
817 # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
818 for f in libstdc++.la libsupc++.la libg2c.la \
819 %{?with_java:libgcj.la lib-org-w3c-dom.la lib-org-xml-sax.la libffi.la} \
820 %{?with_objc:libobjc.la}; do
821 perl -pi -e "s@^libdir='.*@libdir='/usr/%{_lib}'@" $RPM_BUILD_ROOT%{_libdir}/$f
824 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
825 mv -f $RPM_BUILD_ROOT%{_mandir}/ja/man1/{cccp,cpp}.1
827 # include/ contains install-tools/include/* and headers that were fixed up
828 # by fixincludes, we don't want former
829 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
831 # we have to save these however
832 mv -f $gccdir/include/{%{?with_objc:objc,}g2c.h,syslimits.h%{?with_java:,libffi/ffitarget.h,gcj}} $gccdir/tmp
833 rm -rf $gccdir/include
834 mv -f $gccdir/tmp $gccdir/include
835 cp $gccdir/install-tools/include/*.h $gccdir/include
836 # but we don't want anything more from install-tools
837 rm -rf $gccdir/install-tools
840 ln -sf %{_slibdir}*/libgcc_s.so.1 $gccdir/libgcc_s.so
841 ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/libgcc_s_32.so
845 ln -sf %{_slibdir}*/libgcc_s.so.1 $gccdir/libgcc_s.so
846 ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/libgcc_s_32.so
850 %find_lang libstdc\+\+
853 zcat %{SOURCE2} > $RPM_BUILD_ROOT%{_aclocaldir}/gcc_stack_protect.m4
855 install %{SOURCE3} $RPM_BUILD_ROOT%{_aclocaldir}/gcc_visibility.m4
858 rm -rf $RPM_BUILD_ROOT
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
870 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
873 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
876 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
878 %post -p /sbin/ldconfig -n libgcc
879 %postun -p /sbin/ldconfig -n libgcc
880 %post -p /sbin/ldconfig -n libstdc++
881 %postun -p /sbin/ldconfig -n libstdc++
882 %post -p /sbin/ldconfig -n libobjc
883 %postun -p /sbin/ldconfig -n libobjc
884 %post -p /sbin/ldconfig -n libg2c
885 %postun -p /sbin/ldconfig -n libg2c
886 %post -p /sbin/ldconfig -n libgcj
887 %postun -p /sbin/ldconfig -n libgcj
888 %post -p /sbin/ldconfig -n libgnat
889 %postun -p /sbin/ldconfig -n libgnat
890 %post -p /sbin/ldconfig -n libffi
891 %postun -p /sbin/ldconfig -n libffi
894 %defattr(644,root,root,755)
895 %doc ChangeLog.general MAINTAINERS NEWS bugs.html faq.html
896 %doc gcc/{ChangeLog,ONEWS,README.Portability}
897 %dir %{_libdir}/gcc/*/*
898 %dir %{_libdir}/gcc/*/*/include
899 %{?with_ssp:%{_aclocaldir}/gcc_stack_protect.m4}
900 %{_aclocaldir}/gcc_visibility.m4
902 %attr(755,root,root) %{_bindir}/*-gcc*
903 %attr(755,root,root) %{_bindir}/gcc
904 %attr(755,root,root) %{_bindir}/gccbug
905 %attr(755,root,root) %{_bindir}/gcov
906 %attr(755,root,root) %{_bindir}/cc
907 %attr(755,root,root) %{_bindir}/cpp
909 %{_mandir}/man1/cc.1*
910 %{_mandir}/man1/cpp.1*
911 %lang(ja) %{_mandir}/ja/man1/cpp.1*
912 %{_mandir}/man1/gcc.1*
913 %lang(fr) %{_mandir}/fr/man1/gcc.1*
914 %lang(ja) %{_mandir}/ja/man1/gcc.1*
915 %{_mandir}/man1/gcov.1*
920 %attr(755,root,root) /lib/cpp
922 %attr(755,root,root) %{_slibdir}*/lib*.so
924 %{_slibdir}*/libunwind.a
926 %{_libdir}/gcc/*/*/libgcov.a
927 %{_libdir}/gcc/*/*/libgcc.a
928 %{_libdir}/gcc/*/*/libgcc_eh.a
929 %{_libdir}/gcc/*/*/specs
930 %attr(644,root,root) %{_libdir}*/gcc/*/*/crt*.o
932 %{_libdir}/gcc/*/*/*/libgcc.a
933 %{_libdir}/gcc/*/*/*/libgcc_eh.a
934 %{_libdir}/gcc/*/*/*/libgcov.a
935 %{_libdir}/gcc/*/*/libgcc*so
936 %attr(644,root,root) %{_libdir}*/gcc/*/*/*/crt*.o
939 %attr(644,root,root) %{_libdir}/gcc/*/*/ecrt*.o
940 %attr(644,root,root) %{_libdir}/gcc/*/*/ncrt*.o
941 %{_libdir}/gcc/*/*/nof
944 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1
945 %attr(755,root,root) %{_libdir}/gcc/*/*/collect2
947 %{_libdir}/gcc/*/*/include/*.h
948 %exclude %{_libdir}/gcc/*/*/include/g2c.h
951 %defattr(644,root,root,755)
952 %attr(755,root,root) %{_slibdir}*/lib*.so.*
954 %attr(755,root,root) %{_slibdir32}/lib*.so.*
958 %defattr(644,root,root,755)
959 %doc gcc/cp/{ChangeLog,NEWS}
960 %attr(755,root,root) %{_bindir}/g++
961 %attr(755,root,root) %{_bindir}/*-g++
962 %attr(755,root,root) %{_bindir}/c++
963 %attr(755,root,root) %{_bindir}/*-c++
964 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
965 %{_libdir}*/libsupc++.la
967 %{_libdir}/nof/libsupc++.la
968 %{_libdir}/nof/libsupc++.a
970 %{_libdir}*/libsupc++.a
971 %{_mandir}/man1/g++.1*
972 %lang(ja) %{_mandir}/ja/man1/g++.1*
974 %files -n libstdc++ -f libstdc++.lang
975 %defattr(644,root,root,755)
976 %doc libstdc++-v3/{ChangeLog,README}
977 %attr(755,root,root) %{_libdir}*/libstdc++.so.*.*.*
979 %attr(755,root,root) %{_libdir}/nof/libstdc++.so.*.*.*
982 %files -n libstdc++-devel
983 %defattr(644,root,root,755)
984 %doc libstdc++-v3/docs/html
985 %dir %{_includedir}/c++
986 %{_includedir}/c++/%{version}
987 %exclude %{_includedir}/c++/%{version}/*/bits/stdc++.h.gch
988 %attr(755,root,root) %{_libdir}*/libstdc++.so
989 %{_libdir}*/libstdc++.la
991 %attr(755,root,root) %{_libdir}/nof/libstdc++.so
992 %{_libdir}/nof/libstdc++.la
995 %files -n libstdc++-static
996 %defattr(644,root,root,755)
997 %{_libdir}*/libstdc++.a
999 %{_libdir}/nof/libstdc++.a
1004 %defattr(644,root,root,755)
1005 %doc gcc/objc/README
1006 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
1007 %attr(755,root,root) %{_libdir}*/libobjc.so
1008 %{_libdir}*/libobjc.la
1010 %attr(755,root,root) %{_libdir}/nof/libobjc.so
1011 %{_libdir}/nof/libobjc.la
1013 %{_libdir}/gcc/*/*/include/objc
1016 %defattr(644,root,root,755)
1017 %doc libobjc/{ChangeLog,README*}
1018 %attr(755,root,root) %{_libdir}*/libobjc.so.*.*.*
1020 %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.*
1023 %files -n libobjc-static
1024 %defattr(644,root,root,755)
1025 %{_libdir}*/libobjc.a
1027 %{_libdir}/nof/libobjc.a
1032 %defattr(644,root,root,755)
1033 %doc gcc/f/{BUGS,ChangeLog,NEWS}
1034 %attr(755,root,root) %{_bindir}/g77
1035 %attr(755,root,root) %{_bindir}/f77
1037 %attr(755,root,root) %{_libdir}/gcc/*/*/f771
1038 %{_libdir}*/libfrtbegin.a
1039 %{_libdir}*/libg2c.la
1040 %attr(755,root,root) %{_libdir}*/libg2c.so
1042 %{_libdir}/nof/libfrtbegin.a
1043 %{_libdir}/nof/libg2c.la
1044 %attr(755,root,root) %{_libdir}/nof/libg2c.so
1046 %{_libdir}/gcc/*/*/include/g2c.h
1047 %{_mandir}/man1/g77.1*
1048 %{_mandir}/man1/f77.1*
1049 %lang(ja) %{_mandir}/ja/man1/g77.1*
1050 %lang(ja) %{_mandir}/ja/man1/f77.1*
1053 %defattr(644,root,root,755)
1054 %doc libf2c/{ChangeLog,README,TODO}
1055 %attr(755,root,root) %{_libdir}*/libg2c.so.*.*.*
1057 %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.*
1060 %files -n libg2c-static
1061 %defattr(644,root,root,755)
1062 %{_libdir}*/libg2c.a
1064 %{_libdir}/nof/libg2c.a
1069 %defattr(644,root,root,755)
1070 %doc gcc/java/ChangeLog java-doc/*
1071 %attr(755,root,root) %{_bindir}/gcj*
1072 %attr(755,root,root) %{_bindir}/gij
1073 %attr(755,root,root) %{_bindir}/jcf-dump
1074 %attr(755,root,root) %{_bindir}/jv-*
1075 %attr(755,root,root) %{_bindir}/grepjar
1076 %attr(755,root,root) %{_bindir}/*-gcj*
1077 %attr(755,root,root) %{_libdir}/gcc/*/*/jc1
1078 %attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
1080 %{_mandir}/man1/jcf-*
1081 %{_mandir}/man1/jv-*
1082 %{_mandir}/man1/gij*
1083 %{_mandir}/man1/gcj*
1084 %{_mandir}/man1/grepjar*
1087 %defattr(644,root,root,755)
1088 %attr(755,root,root) %{_bindir}/rmi*
1089 %attr(755,root,root) %{_bindir}/jar
1090 %{_mandir}/man1/rmi*
1091 %{_mandir}/man1/jar*
1092 %{_infodir}/fastjar*
1095 %defattr(644,root,root,755)
1096 %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
1097 %attr(755,root,root) %{_bindir}/addr2name.awk
1098 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
1099 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
1101 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
1103 %{_libdir}/logging.properties
1105 %files -n libgcj-devel
1106 %defattr(644,root,root,755)
1108 %{_includedir}/javax
1111 %{_includedir}/gnu/*
1112 %{_libdir}/gcc/*/*/include/gcj
1113 %dir %{_libdir}/security
1114 %{_libdir}/security/*
1115 %dir %{_datadir}/java
1116 %{_datadir}/java/libgcj*.jar
1117 %{_libdir}/lib*cj.spec
1118 %{_libdir}/lib*cj*.la
1119 %attr(755,root,root) %{_libdir}/lib*cj*.so
1120 %attr(755,root,root) %{_libdir}/lib-org-*.so
1121 %{_libdir}/lib-org-*.la
1123 %{_libdir}/nof/lib*cj*.la
1124 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so
1126 %{_pkgconfigdir}/libgcj.pc
1128 %files -n libgcj-static
1129 %defattr(644,root,root,755)
1130 %{_libdir}/lib*cj*.a
1131 %{_libdir}/lib-org-*.a
1133 %{_libdir}/nof/lib*cj*.a
1137 %defattr(644,root,root,755)
1138 %doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
1139 %attr(755,root,root) %{_libdir}/libffi-*.so
1141 %files -n libffi-devel
1142 %defattr(644,root,root,755)
1143 %{_libdir}/gcc/*/*/include/ffitarget.h
1144 %attr(755,root,root) %{_libdir}/libffi.so
1145 %{_libdir}/libffi.la
1146 %{_includedir}/ffi.h
1148 %files -n libffi-static
1149 %defattr(644,root,root,755)
1155 %defattr(644,root,root,755)
1156 %doc gcc/ada/ChangeLog
1157 %attr(755,root,root) %{_bindir}/gnat*
1158 %attr(755,root,root) %{_bindir}/gpr*
1159 %attr(755,root,root) %{_libdir}/libgnarl*.so
1160 %attr(755,root,root) %{_libdir}/libgnat*.so
1161 %attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
1162 %{_libdir}/gcc/*/*/adainclude
1163 %dir %{_libdir}/gcc/*/*/adalib
1164 %{_libdir}/gcc/*/*/adalib/*.ali
1165 %{_libdir}/gcc/*/*/adalib/g-trasym.o
1166 %{_libdir}/gcc/*/*/adalib/libgccprefix.a
1168 %{_libdir}/gcc/*/*/adalib/libgmem.a
1174 %defattr(644,root,root,755)
1175 %attr(755,root,root) %{_libdir}/libgnarl*.so.1
1176 %attr(755,root,root) %{_libdir}/libgnat*.so.1
1178 %files -n libgnat-static
1179 %defattr(644,root,root,755)
1180 %{_libdir}/gcc/*/*/adalib/libgnarl.a
1181 %{_libdir}/gcc/*/*/adalib/libgnat.a