3 # - http://gcc.gnu.org/PR17384
4 # - http://gcc.gnu.org/PR17567
7 %bcond_without ada # build without ADA support
8 %bcond_without java # build without Java support
9 %bcond_without objc # build without objc support
10 %bcond_with ssp # build with stack-smashing protector support
12 %define _snap 20040917
14 Summary: GNU Compiler Collection: the C compiler and shared files
15 Summary(es): Colección de compiladores GNU: el compilador C y ficheros compartidos
16 Summary(pl): Kolekcja kompilatorów GNU: kompilator C i pliki wspó³dzielone
17 Summary(pt_BR): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
24 Group: Development/Languages
25 #Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
26 #Source0: ftp://gcc.gnu.org/pub/gcc/prerelease-%{version}-%{_snap}/gcc-%{version}-%{_snap}.tar.bz2
27 Source0: ftp://gcc.gnu.org/pub/gcc/snapshots/3.4-%{_snap}/gcc-3.4-%{_snap}.tar.bz2
28 # Source0-md5: 78d7e516ca4bc9ecb5435cad3c5a6f75
29 Source1: http://ep09.pld-linux.org/~djrzulf/gcc33/%{name}-non-english-man-pages.tar.bz2
30 # Source1-md5: 4736f3422ddfb808423b745629acc321
31 Source2: http://www.trl.ibm.com/projects/security/ssp/gcc2_95_3/gcc_stack_protect.m4.gz
32 # Source2-md5: 07d93ad5fc07ca44cdaba46c658820de
33 Patch0: %{name}-info.patch
34 Patch1: %{name}-nolocalefiles.patch
35 Patch2: %{name}-ada-link-new-libgnat.patch
36 Patch3: %{name}-nodebug.patch
37 Patch4: %{name}-ssp.patch
38 Patch5: %{name}-ada-link.patch
39 Patch6: %{name}-pr15666.patch
40 Patch7: %{name}-pr16276.patch
41 Patch8: %{name}-ada-bootstrap.patch
42 Patch9: %{name}-visibility.patch
43 URL: http://gcc.gnu.org/
44 BuildRequires: autoconf
45 BuildRequires: automake
46 BuildRequires: binutils >= 2.15.91.0.2
48 BuildRequires: fileutils >= 4.0.41
51 BuildRequires: gcc(ada)
52 BuildRequires: gcc-ada
54 BuildRequires: gettext-devel
55 BuildRequires: glibc-devel >= 2.2.5-20
57 BuildRequires: perl-devel
58 BuildRequires: texinfo >= 4.1
59 BuildRequires: zlib-devel
60 Requires: binutils >= 2.15.91.0.2
61 Requires: libgcc = %{epoch}:%{version}-%{release}
62 Provides: cpp = %{epoch}:%{version}-%{release}
63 %{?with_ada:Provides: gcc(ada)}
64 %{?with_ssp:Provides: gcc(ssp)}
65 # ksi for gcc > 3.3.x not ready yet
71 Conflicts: glibc-devel < 2.2.5-20
72 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
74 %define _slibdir /%{_lib}
76 %define _slibdir64 /lib64
77 %define _libdir /usr/lib
78 %define rpmcflags -O2 -mtune=ultrasparc
82 A compiler aimed at integrating all the optimizations and features
83 necessary for a high-performance and stable development environment.
85 This package contains the C compiler and some files shared by various
86 parts of the GNU Compiler Collection. In order to use another GCC
87 compiler you will need to install the appropriate subpackage.
90 Un compilador destinado a la integración de todas las optimalizaciones
91 y características necesarias para un entorno de desarrollo eficaz y
94 Este paquete contiene el compilador de C y unos ficheros compartidos
95 por varias parted de la colección de compiladores GNU (GCC). Para usar
96 otro compilador de GCC será necesario que instale el subpaquete
100 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
101 wyprodukowania szybkiego i stablinego kodu wynikowego.
103 Ten pakiet zawiera kompilator C i pliki wspó³dzielone przez ró¿ne
104 czê¶ci kolekcji kompilatorów GNU (GCC). ¯eby u¿ywaæ innego kompilatora
105 z GCC, trzeba zainstalowaæ odpowiedni podpakiet.
107 %description -l pt_BR
108 Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
109 GNU Compiler Collection.
112 Summary: Shared gcc library
113 Summary(es): Biblioteca compartida de gcc
114 Summary(pl): Biblioteka gcc
115 Summary(pt_BR): Biblioteca runtime para o GCC
119 %description -n libgcc
122 %description -n libgcc -l es
123 Biblioteca compartida de gcc.
125 %description -n libgcc -l pl
126 Biblioteka dynamiczna gcc.
128 %description -n libgcc -l pt_BR
129 Biblioteca runtime para o GCC.
132 Summary: C++ support for gcc
133 Summary(es): Soporte de C++ para gcc
134 Summary(pl): Obs³uga C++ dla gcc
135 Summary(pt_BR): Suporte C++ para o gcc
136 Group: Development/Languages
137 Requires: %{name} = %{epoch}:%{version}-%{release}
142 This package adds C++ support to the GNU Compiler Collection. It
143 includes support for most of the current C++ specification, including
144 templates and exception handling. It does not include a standard C++
145 library, which is available separately.
147 %description c++ -l de
148 Dieses Paket enthält die C++-Unterstützung für den
149 GNU-Compiler-Collection. Es unterstützt die aktuelle
150 C++-Spezifikation, inkl. Templates und Ausnahmeverarbeitung. Eine
151 C++-Standard-Library ist nicht enthalten - sie ist getrennt
154 %description c++ -l es
155 Este paquete añade soporte de C++ al GCC (colección de compiladores
156 GNU). Ello incluye el soporte para la mayoría de la especificación
157 actual de C++, incluyendo plantillas y manejo de excepciones. No
158 incluye la biblioteca estándar de C++, la que es disponible separada.
160 %description c++ -l fr
161 Ce package ajoute un support C++ a la collection de compilateurs GNU.
162 Il comprend un support pour la plupart des spécifications actuelles de
163 C++, dont les modéles et la gestion des exceptions. Il ne comprend pas
164 une bibliothéque C++ standard, qui est disponible séparément.
166 %description c++ -l pl
167 Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
168 du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
169 standardowych bibliotek C++, które s± w oddzielnym pakiecie.
171 %description c++ -l pt_BR
172 Este pacote adiciona suporte C++ para o gcc.
174 %description c++ -l tr
175 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
176 aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
177 C++ kitaplýðý bu pakette yer almaz.
180 Summary: Objective C support for gcc
181 Summary(de): Objektive C-Unterstützung für gcc
182 Summary(es): Soporte de Objective C para gcc
183 Summary(fr): Gestion d'Objective C pour gcc
184 Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
185 Summary(tr): gcc için Objective C desteði
186 Group: Development/Languages
187 Requires: %{name} = %{epoch}:%{version}-%{release}
188 Requires: libobjc = %{epoch}:%{version}-%{release}
193 This package adds Objective C support to the GNU Compiler Collection.
194 Objective C is a object oriented derivative of the C language, mainly
195 used on systems running NeXTSTEP. This package does not include the
196 standard objective C object library.
198 %description objc -l de
199 Dieses Paket ergänzt den GNU-Compiler-Collection durch
200 Objective-C-Support. Objective C ist ein objektorientiertes Derivat
201 von C, das zur Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt.
202 Die Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
204 %description objc -l es
205 Este paquete añade soporte de Objective C al GCC (colección de
206 compiladores GNU). Objective C es un lenguaje orientado a objetos
207 derivado de C, principalmente usado en sistemas que funcionan bajo
208 NeXTSTEP. El paquete no incluye la biblioteca de objetos estándar de
211 %description objc -l fr
212 Ce package ajoute un support Objective C a la collection de
213 compilateurs GNU. L'Objective C est un langage orienté objetdérivé du
214 langage C, principalement utilisé sur les systèmes NeXTSTEP. Ce
215 package n'inclue pas la bibliothéque Objective C standard.
217 %description objc -l pl
218 Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
219 C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
220 g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
221 standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
223 %description objc -l tr
224 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
225 C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
226 sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
227 kitaplýðý bu pakette yer almaz.
230 Summary: Objective C Libraries
231 Summary(es): Bibliotecas de Objective C
232 Summary(pl): Biblioteki Obiektowego C
236 %description -n libobjc
237 Objective C Libraries.
239 %description -n libobjc -l es
240 Bibliotecas de Objective C.
242 %description -n libobjc -l pl
243 Biblioteki Obiektowego C.
245 %package -n libobjc-static
246 Summary: Static Objective C Libraries
247 Summary(es): Bibliotecas estáticas de Objective C
248 Summary(pl): Statyczne Biblioteki Obiektowego C
249 Group: Development/Libraries
250 Requires: libobjc = %{epoch}:%{version}-%{release}
252 %description -n libobjc-static
253 Static Objective C Libraries.
255 %description -n libobjc-static -l es
256 Bibliotecas estáticas de Objective C.
258 %description -n libobjc-static -l pl
259 Statyczne biblioteki Obiektowego C.
262 Summary: Fortran 77 support for gcc
263 Summary(es): Soporte de Fortran 77 para gcc
264 Summary(pl): Obs³uga Fortranu 77 dla gcc
265 Summary(pt_BR): Suporte Fortran 77 para o GCC
266 Group: Development/Languages/Fortran
267 Requires: libg2c = %{epoch}:%{version}-%{release}
271 This package adds support for compiling Fortran 77 programs with the
274 %description g77 -l es
275 Este paquete añade soporte para compilar programas escritos en Fortran
276 77 con el compilador GNU.
278 %description g77 -l pl
279 Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
280 potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
282 %description g77 -l pt_BR
283 Suporte Fortran 77 para o GCC.
286 Summary: Fortran 77 Libraries
287 Summary(es): Bibliotecas de Fortran 77
288 Summary(pl): Biblioteki Fortranu 77
291 %description -n libg2c
292 Fortran 77 Libraries.
294 %description -n libg2c -l es
295 Bibliotecas de Fortran 77.
297 %description -n libg2c -l pl
298 Biblioteki Fortranu 77.
300 %package -n libg2c-static
301 Summary: Static Fortran 77 Libraries
302 Summary(es): Bibliotecas estáticas de Fortran 77
303 Summary(pl): Statyczne Biblioteki Fortranu 77
304 Group: Development/Libraries
305 Requires: libg2c = %{epoch}:%{version}-%{release}
307 %description -n libg2c-static
308 Static Fortran 77 Libraries.
310 %description -n libg2c -l es
311 Bibliotecas estáticas de Fortran 77.
313 %description -n libg2c-static -l pl
314 Statyczne biblioteki Fortranu 77.
317 Summary: Java support for gcc
318 Summary(es): Soporte de Java para gcc
319 Summary(pl): Obs³uga Javy dla gcc
320 Group: Development/Languages/Java
321 Requires: %{name} = %{epoch}:%{version}-%{release}
322 Requires: libgcj = %{epoch}:%{version}-%{release}
323 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
324 Requires: java-shared
325 Provides: gcj = %{epoch}:%{version}-%{release}
328 This package adds experimental support for compiling Java(tm) programs
329 and bytecode into native code. To use this you will also need the
332 %description java -l es
333 Este paquete añade soporte experimental para compilar programas
334 Java(tm) y su bytecode en código nativo. Para usarlo también va a
335 necesitar el paquete libgcj.
337 %description java -l pl
338 Wsparcie dla kompilowania programów Java(tm) zrówno do bajt-kodu jak i
339 do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
340 by³o przeprowadziæ kompilacjê.
343 Summary: Shared java tools
344 Summary(es): Herramientas compartidas de Java
345 Summary(pl): Wspó³dzielone narzêdzia javy
346 Group: Development/Languages/Java
347 Provides: jar = %{epoch}:%{version}-%{release}
348 Provides: java-shared
350 Obsoletes: java-shared
353 %description java-tools
354 This package contains tools that are common for every Java(tm)
355 implementation, such as rmic or jar.
357 %description java-tools -l es
358 Este paquete contiene herramientas que son comunes para cada
359 implementación de Java(tm), como rmic o jar.
361 %description java-tools -l pl
362 Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji
363 Javy(tm), takie jak rmic czy jar.
366 Summary: Java Class Libraries
367 Summary(es): Bibliotecas de clases de Java
368 Summary(pl): Biblioteki Klas Javy
373 %description -n libgcj
374 Java Class Libraries.
376 %description -n libgcj -l es
377 Bibliotecas de clases de Java.
379 %description -n libgcj -l pl
380 Biblioteki Klas Javy.
382 %package -n libgcj-devel
383 Summary: Development files for Java Class Libraries
384 Summary(es): Ficheros de desarrollo para las bibliotecas de clases de Java
385 Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
386 Group: Development/Libraries
387 Requires: %{name}-java = %{epoch}:%{version}-%{release}
388 Requires: libgcj = %{epoch}:%{version}-%{release}
389 Obsoletes: libgcj3-devel
391 %description -n libgcj-devel
392 Development files for Java Class Libraries.
394 %description -n libgcj-devel -l es
395 Ficheros de desarrollo para las bibliotecas de clases de Java.
397 %description -n libgcj-devel -l pl
398 Pliki nag³ówkowe dla Bibliotek Klas Javy.
400 %package -n libgcj-static
401 Summary: Static Java Class Libraries
402 Summary(es): Bibliotecas estáticas de clases de Java
403 Summary(pl): Statyczne Biblioteki Klas Javy
404 Group: Development/Libraries
405 Requires: libgcj-devel = %{epoch}:%{version}-%{release}
406 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
408 %description -n libgcj-static
409 Static Java Class Libraries.
411 %description -n libgcj-static -l es
412 Bibliotecas estáticas de clases de Java.
414 %description -n libgcj-static -l pl
415 Statyczne Biblioteki Klas Javy.
417 %package -n libstdc++
418 Summary: GNU c++ library
419 Summary(es): Biblioteca C++ de GNU
420 Summary(pl): Biblioteki GNU C++
421 Summary(pt_BR): Biblioteca C++ GNU
424 Obsoletes: libstdc++3
426 %description -n libstdc++
427 This is the GNU implementation of the standard C++ libraries, along
428 with additional GNU tools. This package includes the shared libraries
429 necessary to run C++ applications.
431 %description -n libstdc++ -l de
432 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
433 weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
434 C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
436 %description -n libstdc++ -l es
437 Este es el soporte de las bibliotecas padrón del C++, junto con
438 herramientas GNU adicionales. El paquete incluye las bibliotecas
439 compartidas necesarias para ejecutar aplicaciones C++.
441 %description -n libstdc++ -l fr
442 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
443 des outils GNU supplémentaires. Ce package comprend les librairies
444 partagées nécessaires à l'exécution d'application C++.
446 %description -n libstdc++ -l pl
447 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
448 bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
449 uruchomienia aplikacji napisanych w C++.
451 %description -n libstdc++ -l pt_BR
452 Este pacote é uma implementação da biblioteca padrão C++ v3, um
453 subconjunto do padrão ISO 14882.
455 %description -n libstdc++ -l tr
456 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
457 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
459 %package -n libstdc++-devel
460 Summary: Header files and documentation for C++ development
461 Summary(de): Header-Dateien zur Entwicklung mit C++
462 Summary(es): Ficheros de cabecera y documentación para desarrollo C++
463 Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
464 Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
465 Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
466 Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
467 Group: Development/Libraries
468 Requires: %{name}-c++ = %{epoch}:%{version}-%{release}
469 Requires: libstdc++ = %{epoch}:%{version}-%{release}
470 Obsoletes: libg++-devel
471 Obsoletes: libstdc++3-devel
473 %description -n libstdc++-devel
474 This is the GNU implementation of the standard C++ libraries. This
475 package includes the header files needed for C++ development and
476 library documentation.
478 %description -n libstdc++-devel -l es
479 Este es el soporte de las bibliotecas padrón del lenguaje C++. Este
480 paquete incluye los archivos de inclusión y bibliotecas necesarios
481 para desarrollo de programas en lenguaje C++.
483 %description -n libstdc++-devel -l pl
484 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
485 bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
486 programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
488 %description -n libstdc++-devel -l pt_BR
489 Este pacote inclui os arquivos de inclusão e bibliotecas necessárias
490 para desenvolvimento de programas C++.
492 %package -n libstdc++-static
493 Summary: Static C++ standard library
494 Summary(es): Biblioteca estándar estática de C++
495 Summary(pl): Statyczna biblioteka standardowa C++
496 Group: Development/Libraries
497 Requires: libstdc++-devel = %{epoch}:%{version}-%{release}
499 %description -n libstdc++-static
500 Static C++ standard library.
502 %description -n libstdc++-static -l es
503 Biblioteca estándar estática de C++.
505 %description -n libstdc++-static -l pl
506 Statycza biblioteka standardowa C++.
509 Summary: Foreign Function Interface library
510 Summary(es): Biblioteca de interfaz de funciones ajenas
511 Summary(pl): Biblioteka zewnêtrznych wywo³añ funkcji
514 %description -n libffi
515 The libffi library provides a portable, high level programming
516 interface to various calling conventions. This allows a programmer to
517 call any function specified by a call interface description at run
520 %description -n libffi -l es
521 La biblioteca libffi provee una interfaz portable de programación de
522 alto nivel para varias convenciones de llamada. Ello permite que un
523 programador llame una función cualquiera especificada por una
524 descripción de interfaz de llamada en el tiempo de ejecución.
526 %description -n libffi -l pl
527 Biblioteka libffi dostarcza przno¶nego, wysokopoziomowego
528 miêdzymordzia do ró¿nych konwencji wywo³añ funkcji. Pozwala to
529 programi¶cie wywo³ywaæ dowolne funkcje podaj±c konwencjê wywo³ania w
532 %package -n libffi-devel
533 Summary: Development files for Foreign Function Interface library
534 Summary(es): Ficheros de desarrollo para libffi
535 Summary(pl): Pliki nag³ówkowe dla libffi
536 Group: Development/Libraries
537 Requires: libffi = %{epoch}:%{version}-%{release}
539 %description -n libffi-devel
540 Development files for Foreign Function Interface library.
542 %description -n libffi-devel -l es
543 Ficheros de desarrollo para libffi.
545 %description -n libffi-devel -l pl
546 Pliki nag³ówkowe dla libffi.
548 %package -n libffi-static
549 Summary: Static Foreign Function Interface library
550 Summary(es): Biblioteca libffi estática
551 Summary(pl): Statyczna biblioteka libffi
552 Group: Development/Libraries
553 Requires: libffi-devel = %{epoch}:%{version}-%{release}
555 %description -n libffi-static
556 Static Foreign Function Interface library.
558 %description -n libffi-static -l es
559 Biblioteca libffi estática.
561 %description -n libffi-static -l pl
562 Statyczna biblioteka libffi.
565 Summary: Ada support for gcc
566 Summary(es): Soporte de Ada para gcc
567 Summary(pl): Obs³uga Ady do gcc
568 Group: Development/Languages
569 Requires: %{name} = %{epoch}:%{version}-%{release}
570 Requires: libgnat = %{epoch}:%{version}-%{release}
572 Obsoletes: gnat-devel
575 This package adds experimental support for compiling Ada programs.
577 %description ada -l es
578 Este paquete añade soporte experimental para compilar programas en
581 %description ada -l pl
582 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w
586 Summary: Ada standard libraries
587 Summary(es): Bibliotecas estándares de Ada
588 Summary(pl): Biblioteki standardowe dla Ady
593 %description -n libgnat
594 This package contains shared libraries needed to run programs written
597 %description -n libgnat -l es
598 Este paquete contiene las bibliotecas compartidas necesarias para
599 ejecutar programas escritos en Ada.
601 %description -n libgnat -l pl
602 Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów
605 %package -n libgnat-static
606 Summary: Static Ada standard libraries
607 Summary(pl): Statyczne biblioteki standardowe dla Ady
609 Obsoletes: gnat-static
611 %description -n libgnat-static
612 This package contains static libraries for programs written in Ada.
614 %description -n libgnat-static -l pl
615 Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
620 #setup -q -n %{name}-%{version}-%{_snap} -a1
622 %setup -q -n %{name}-3.4-%{_snap} -a1
624 #setup -q -n %{name}-%{version} -a1
629 %{!?debug:%patch3 -p1}
630 %{?with_ssp:%patch4 -p1}
635 # needed for bootstrap using gcc 3.3.x on alpha
636 # and even using the same 3.4.x(!) (but not Debian's 3.3.x) on ia64
641 # because we distribute modified version of gcc...
642 perl -pi -e 's/(version.*)";/$1 %{?with_ssp:SSP }(PLD Linux)";/' gcc/version.c
643 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
645 mv ChangeLog ChangeLog.general
648 # because pr16276 patch modifies configure.ac
652 cp -f /usr/share/automake/config.sub .
654 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
656 CFLAGS="%{rpmcflags}" \
657 CXXFLAGS="%{rpmcflags}" \
658 TEXCONFIG=false ../configure \
659 --prefix=%{_prefix} \
660 --libdir=%{_libdir} \
661 --libexecdir=%{_libexecdir} \
662 --infodir=%{_infodir} \
663 --mandir=%{_mandir} \
665 --enable-threads=posix \
666 --enable-__cxa_atexit \
667 --enable-languages="c,c++,f77%{?with_objc:,objc}%{?with_ada:,ada}%{?with_java:,java}" \
679 --with-slibdir=%{_slibdir} \
683 PATH=$PATH:/sbin:%{_sbindir}
686 # - on alpha stage1 needs -O0 for 3.3->3.4 bootstrap (gnat from 3.3 is seriously broken)
687 # - on ia64 use bootstrap-lean as profiledbootstrap is broken (PR 13882, 15836, 16108)
688 %{__make} -C obj-%{_target_platform} \
694 GCJFLAGS="%{rpmcflags}" \
695 BOOT_CFLAGS="%{rpmcflags}" \
697 STAGE1_CFLAGS="%{rpmcflags} -O0" \
699 STAGE1_CFLAGS="%{rpmcflags}" \
701 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
706 # cannot build it in parallel
707 for tgt in gnatlib-shared gnattools gnatlib; do
708 %{__make} -C obj-%{_target_platform}/gcc $tgt \
709 BOOT_CFLAGS="%{rpmcflags}" \
710 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
716 # snapshot doesn't contain these files...
717 [ -r "NEWS" ] || touch NEWS
718 [ -r "gcc/f/BUGS" ] || touch gcc/f/BUGS
719 [ -r "gcc/f/NEWS" ] || touch gcc/f/NEWS
722 rm -rf $RPM_BUILD_ROOT
723 install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
725 cd obj-%{_target_platform}
726 PATH=$PATH:/sbin:%{_sbindir}
728 %{__make} -j1 install \
730 infodir=%{_infodir} \
731 DESTDIR=$RPM_BUILD_ROOT
734 ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \
735 $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
738 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
739 echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
741 ln -sf g77 $RPM_BUILD_ROOT%{_bindir}/f77
742 echo ".so g77.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
745 # move ada shared libraries to proper place...
746 mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
747 $RPM_BUILD_ROOT%{_libdir}
748 # check if symlink to be made is valid
749 test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so.1
750 ln -sf libgnat-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so
751 ln -sf libgnarl-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-3.4.so
752 ln -sf libgnat-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
753 ln -sf libgnarl-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
756 ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
762 cp -f libjava/doc/cni.sgml libjava/READ* java-doc
763 cp -f fastjar/README java-doc/README.fastjar
764 cp -f libffi/README java-doc/README.libffi
765 cp -f libffi/LICENSE java-doc/LICENSE.libffi
769 cp -f libobjc/README gcc/objc/README.libobjc
772 # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version}
773 for f in libstdc++.la libsupc++.la %{?with_java:libgcj.la} ; do
774 perl -pi -e 's@-L[^ ]*[acs.] @@g' $RPM_BUILD_ROOT%{_libdir}/$f
776 # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
777 for f in libstdc++.la libsupc++.la libg2c.la \
778 %{?with_java:libgcj.la lib-org-w3c-dom.la lib-org-xml-sax.la libffi.la} \
779 %{?with_objc:libobjc.la}; do
780 perl -pi -e "s@^libdir='.*@libdir='/usr/%{_lib}'@" $RPM_BUILD_ROOT%{_libdir}/$f
783 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
784 mv -f $RPM_BUILD_ROOT%{_mandir}/ja/man1/{cccp,cpp}.1
786 # include/ contains install-tools/include/* and headers that were fixed up
787 # by fixincludes, we don't want former
788 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
790 # we have to save these however
791 mv -f $gccdir/include/{%{?with_java:libffi/ffitarget.h,}%{?with_objc:objc,}g2c.h,syslimits.h%{?with_java:,gcj}} $gccdir/tmp
792 rm -rf $gccdir/include
793 mv -f $gccdir/tmp $gccdir/include
794 cp $gccdir/install-tools/include/*.h $gccdir/include
795 # but we don't want anything more from install-tools
796 rm -rf $gccdir/install-tools
799 %find_lang libstdc\+\+
802 zcat %{SOURCE2} > $RPM_BUILD_ROOT%{_aclocaldir}/gcc_stack_protect.m4
806 rm -rf $RPM_BUILD_ROOT
809 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
812 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
815 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
818 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
821 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
824 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
826 %post -p /sbin/ldconfig -n libgcc
827 %postun -p /sbin/ldconfig -n libgcc
828 %post -p /sbin/ldconfig -n libstdc++
829 %postun -p /sbin/ldconfig -n libstdc++
830 %post -p /sbin/ldconfig -n libobjc
831 %postun -p /sbin/ldconfig -n libobjc
832 %post -p /sbin/ldconfig -n libg2c
833 %postun -p /sbin/ldconfig -n libg2c
834 %post -p /sbin/ldconfig -n libgcj
835 %postun -p /sbin/ldconfig -n libgcj
836 %post -p /sbin/ldconfig -n libgnat
837 %postun -p /sbin/ldconfig -n libgnat
838 %post -p /sbin/ldconfig -n libffi
839 %postun -p /sbin/ldconfig -n libffi
842 %defattr(644,root,root,755)
843 %doc ChangeLog.general MAINTAINERS NEWS bugs.html faq.html
844 %doc gcc/{ChangeLog,ONEWS,README.Portability}
846 %dir %{_libdir}/gcc/*
847 %dir %{_libdir}/gcc/*/*
848 %dir %{_libdir}/gcc/*/*/include
849 %{?with_ssp:%{_aclocaldir}/gcc_stack_protect.m4}
851 %attr(755,root,root) %{_bindir}/*-gcc*
852 %attr(755,root,root) %{_bindir}/gcc
853 %attr(755,root,root) %{_bindir}/gccbug
854 %attr(755,root,root) %{_bindir}/gcov
855 %attr(755,root,root) %{_bindir}/cc
856 %attr(755,root,root) %{_bindir}/cpp
858 %{_mandir}/man1/cc.1*
859 %{_mandir}/man1/cpp.1*
860 %lang(ja) %{_mandir}/ja/man1/cpp.1*
861 %{_mandir}/man1/gcc.1*
862 %lang(fr) %{_mandir}/fr/man1/gcc.1*
863 %lang(ja) %{_mandir}/ja/man1/gcc.1*
864 %{_mandir}/man1/gcov.1*
869 %attr(755,root,root) /lib/cpp
871 %attr(755,root,root) %{_slibdir}*/lib*.so
872 %{_libdir}/gcc/*/*/libgcov.a
873 %{_libdir}/gcc/*/*/libgcc.a
874 %{_libdir}/gcc/*/*/libgcc_eh.a
875 %{_libdir}/gcc/*/*/specs
876 %attr(644,root,root) %{_libdir}*/gcc/*/*/crt*.o
878 %{_libdir}/gcc/*/*/*/libgcc.a
879 %{_libdir}/gcc/*/*/*/libgcc_eh.a
880 %attr(644,root,root) %{_libdir}*/gcc/*/*/*/crt*.o
883 %attr(644,root,root) %{_libdir}/gcc/*/*/ecrt*.o
884 %attr(644,root,root) %{_libdir}/gcc/*/*/ncrt*.o
885 %{_libdir}/gcc/*/*/nof
888 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1
889 %attr(755,root,root) %{_libdir}/gcc/*/*/collect2
891 %{_libdir}/gcc/*/*/include/*.h
892 %exclude %{_libdir}/gcc/*/*/include/g2c.h
895 %defattr(644,root,root,755)
896 %attr(755,root,root) %{_slibdir}*/lib*.so.*
899 %defattr(644,root,root,755)
900 %doc gcc/cp/{ChangeLog,NEWS}
901 %attr(755,root,root) %{_bindir}/g++
902 %attr(755,root,root) %{_bindir}/*-g++
903 %attr(755,root,root) %{_bindir}/c++
904 %attr(755,root,root) %{_bindir}/*-c++
905 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
906 %{_libdir}*/libsupc++.la
908 %{_libdir}/nof/libsupc++.la
909 %{_libdir}/nof/libsupc++.a
911 %{_libdir}*/libsupc++.a
912 %{_mandir}/man1/g++.1*
913 %lang(ja) %{_mandir}/ja/man1/g++.1*
915 %files -n libstdc++ -f libstdc++.lang
916 %defattr(644,root,root,755)
917 %doc libstdc++-v3/{ChangeLog,README}
918 %attr(755,root,root) %{_libdir}*/libstdc++.so.*.*.*
920 %attr(755,root,root) %{_libdir}/nof/libstdc++.so.*.*.*
923 %files -n libstdc++-devel
924 %defattr(644,root,root,755)
925 %doc libstdc++-v3/docs/html
926 %dir %{_includedir}/c++
927 %{_includedir}/c++/%{version}
928 %exclude %{_includedir}/c++/%{version}/*/bits/stdc++.h.gch
929 %attr(755,root,root) %{_libdir}*/libstdc++.so
930 %{_libdir}*/libstdc++.la
932 %attr(755,root,root) %{_libdir}/nof/libstdc++.so
933 %{_libdir}/nof/libstdc++.la
936 %files -n libstdc++-static
937 %defattr(644,root,root,755)
938 %{_libdir}*/libstdc++.a
940 %{_libdir}/nof/libstdc++.a
945 %defattr(644,root,root,755)
947 %attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
948 %attr(755,root,root) %{_libdir}*/libobjc.so
949 %{_libdir}*/libobjc.la
951 %attr(755,root,root) %{_libdir}/nof/libobjc.so
952 %{_libdir}/nof/libobjc.la
954 %{_libdir}/gcc/*/*/include/objc
957 %defattr(644,root,root,755)
958 %doc libobjc/{ChangeLog,README*}
959 %attr(755,root,root) %{_libdir}*/libobjc.so.*.*.*
961 %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.*
964 %files -n libobjc-static
965 %defattr(644,root,root,755)
966 %{_libdir}*/libobjc.a
968 %{_libdir}/nof/libobjc.a
973 %defattr(644,root,root,755)
974 %doc gcc/f/{BUGS,ChangeLog,NEWS}
975 %attr(755,root,root) %{_bindir}/g77
976 %attr(755,root,root) %{_bindir}/f77
978 %attr(755,root,root) %{_libdir}/gcc/*/*/f771
979 %{_libdir}*/libfrtbegin.a
980 %{_libdir}*/libg2c.la
981 %attr(755,root,root) %{_libdir}*/libg2c.so
983 %{_libdir}/nof/libfrtbegin.a
984 %{_libdir}/nof/libg2c.la
985 %attr(755,root,root) %{_libdir}/nof/libg2c.so
987 %{_libdir}/gcc/*/*/include/g2c.h
988 %{_mandir}/man1/g77.1*
989 %{_mandir}/man1/f77.1*
990 %lang(ja) %{_mandir}/ja/man1/g77.1*
991 %lang(ja) %{_mandir}/ja/man1/f77.1*
994 %defattr(644,root,root,755)
995 %doc libf2c/{ChangeLog,README,TODO}
996 %attr(755,root,root) %{_libdir}*/libg2c.so.*.*.*
998 %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.*
1001 %files -n libg2c-static
1002 %defattr(644,root,root,755)
1003 %{_libdir}*/libg2c.a
1005 %{_libdir}/nof/libg2c.a
1010 %defattr(644,root,root,755)
1011 %doc gcc/java/ChangeLog java-doc/*
1012 %attr(755,root,root) %{_bindir}/gcj*
1013 %attr(755,root,root) %{_bindir}/gij
1014 %attr(755,root,root) %{_bindir}/jcf-dump
1015 %attr(755,root,root) %{_bindir}/jv-*
1016 %attr(755,root,root) %{_bindir}/grepjar
1017 %attr(755,root,root) %{_bindir}/*-gcj*
1018 %attr(755,root,root) %{_libdir}/gcc/*/*/jc1
1019 %attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
1021 %{_mandir}/man1/jcf-*
1022 %{_mandir}/man1/jv-*
1023 %{_mandir}/man1/gij*
1024 %{_mandir}/man1/gcj*
1025 %{_mandir}/man1/grepjar*
1028 %defattr(644,root,root,755)
1029 %attr(755,root,root) %{_bindir}/rmi*
1030 %attr(755,root,root) %{_bindir}/jar
1031 %{_mandir}/man1/rmi*
1032 %{_mandir}/man1/jar*
1033 %{_infodir}/fastjar*
1036 %defattr(644,root,root,755)
1037 %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
1038 %attr(755,root,root) %{_bindir}/addr2name.awk
1039 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
1040 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
1042 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
1044 %{_libdir}/logging.properties
1046 %files -n libgcj-devel
1047 %defattr(644,root,root,755)
1049 %{_includedir}/javax
1052 %{_includedir}/gnu/*
1053 %{_libdir}/gcc/*/*/include/gcj
1054 %dir %{_libdir}/security
1055 %{_libdir}/security/*
1056 %dir %{_datadir}/java
1057 %{_datadir}/java/libgcj*.jar
1058 %{_libdir}/lib*cj.spec
1059 %{_libdir}/lib*cj*.la
1060 %attr(755,root,root) %{_libdir}/lib*cj*.so
1061 %attr(755,root,root) %{_libdir}/lib-org-*.so
1062 %{_libdir}/lib-org-*.la
1064 %{_libdir}/nof/lib*cj*.la
1065 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so
1067 %{_pkgconfigdir}/libgcj.pc
1069 %files -n libgcj-static
1070 %defattr(644,root,root,755)
1071 %{_libdir}/lib*cj*.a
1072 %{_libdir}/lib-org-*.a
1074 %{_libdir}/nof/lib*cj*.a
1078 %defattr(644,root,root,755)
1079 %doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
1080 %attr(755,root,root) %{_libdir}/libffi-*.so
1082 %files -n libffi-devel
1083 %defattr(644,root,root,755)
1084 %{_libdir}/gcc/*/*/include/ffitarget.h
1085 %attr(755,root,root) %{_libdir}/libffi.so
1086 %{_libdir}/libffi.la
1087 %{_includedir}/ffi.h
1089 %files -n libffi-static
1090 %defattr(644,root,root,755)
1096 %defattr(644,root,root,755)
1097 %doc gcc/ada/ChangeLog
1098 %attr(755,root,root) %{_bindir}/gnat*
1099 %attr(755,root,root) %{_bindir}/gpr*
1100 %attr(755,root,root) %{_libdir}/libgnarl*.so
1101 %attr(755,root,root) %{_libdir}/libgnat*.so
1102 %attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
1103 %{_libdir}/gcc/*/*/adainclude
1104 %dir %{_libdir}/gcc/*/*/adalib
1105 %{_libdir}/gcc/*/*/adalib/*.ali
1106 %{_libdir}/gcc/*/*/adalib/g-trasym.o
1107 %{_libdir}/gcc/*/*/adalib/libgccprefix.a
1109 %{_libdir}/gcc/*/*/adalib/libgmem.a
1115 %defattr(644,root,root,755)
1116 %attr(755,root,root) %{_libdir}/libgnarl*.so.1
1117 %attr(755,root,root) %{_libdir}/libgnat*.so.1
1119 %files -n libgnat-static
1120 %defattr(644,root,root,755)
1121 %{_libdir}/gcc/*/*/adalib/libgnarl.a
1122 %{_libdir}/gcc/*/*/adalib/libgnat.a