3 # _without_ada - build without ADA support
4 # _without_java - build without Java support
5 # _without_objc - build without objc support
6 # _with_bootstrap - don't BR gcc(ada) (temporary for Ac upgrade bootstrap)
7 # _with_pp - build with ProPolice
9 %define DASHED_SNAP %{nil}
10 %define SNAP %(echo %{DASHED_SNAP} | sed -e "s#-##g")
11 %define GCC_VERSION 3.3.2
12 %define KSI_VERSION 1.1.0.1567
14 Summary: GNU C Compiler
15 Summary(pl): Kompilator C GNU
16 Summary(pt_BR): C Compilador GNU (GCC)
18 Version: %{GCC_VERSION}
22 Group: Development/Languages
23 Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{GCC_VERSION}/%{name}-%{GCC_VERSION}.tar.bz2
24 # Source0-md5: 65999f654102f5438ac8562d13a6eced
25 Source1: ftp://ftp.pld-linux.org/people/malekith/ksi/ksi-%{KSI_VERSION}.tar.gz
26 # Source1-md5: 66f07491b44f06928fd95b0e65bb8cd3
27 Source2: http://ep09.kernel.pl/~djrzulf/gcc33/%{name}-non-english-man-pages.tar.bz2
28 # Source2-md5: 4736f3422ddfb808423b745629acc321
29 Patch0: %{name}-info.patch
30 Patch1: %{name}-paths.patch
31 Patch2: %{name}-nolocalefiles.patch
32 Patch3: %{name}-ada-link-new-libgnat.patch
33 # -- stolen patches from RH --
34 Patch10: gcc32-ada-link.patch
35 Patch11: gcc32-boehm-gc-libs.patch
36 Patch12: gcc32-bogus-inline.patch
37 Patch13: gcc32-c++-nrv-test.patch
38 Patch14: gcc32-c++-tsubst-asm.patch
39 Patch15: gcc32-debug-pr7241.patch
40 Patch16: gcc32-duplicate-decl.patch
41 Patch17: gcc32-dwarf2-pr6381.patch
42 Patch18: gcc32-dwarf2-pr6436-test.patch
43 Patch19: gcc32-fde-merge-compat.patch
44 Patch20: gcc32-i386-memtest-test.patch
45 Patch21: gcc32-inline-label.patch
46 Patch22: gcc32-java-no-rpath.patch
47 Patch23: gcc32-test-rh65771.patch
48 Patch24: gcc32-test-rotate.patch
49 Patch25: %{name}-3.3.1-propolice.patch
50 BuildRequires: autoconf
51 BuildRequires: binutils >= 2.14
53 BuildRequires: fileutils >= 4.0.41
55 %{!?_without_ada:%{!?_with_bootstrap:BuildRequires: gcc(ada)}}
56 %{!?_without_ada:BuildRequires: gcc-ada}
57 BuildRequires: glibc-devel >= 2.2.5-20
58 BuildRequires: perl-devel
59 BuildRequires: texinfo >= 4.1
60 BuildRequires: zlib-devel
61 BuildRequires: gettext-devel
62 Requires: binutils >= 2.14
63 Requires: cpp = %{epoch}:%{GCC_VERSION}
64 Requires: libgcc = %{epoch}:%{GCC_VERSION}
65 %{!?_without_ada:Provides: gcc(ada)}
66 Conflicts: glibc-devel < 2.2.5-20
67 URL: http://gcc.gnu.org/
68 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
72 %define _slibdir64 /lib64
73 %define _libdir /usr/lib
74 %define rpmcflags -O2 -mtune=ultrasparc
78 A compiler aimed at integrating all the optimizations and features
79 necessary for a high-performance and stable development environment.
82 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
83 wyprodukowania szybkiego i stablinego kodu wynikowego.
86 Este pacote adiciona infraestrutura básica e suporte a linguagem C
87 ao Gnu Compiler Collection.
90 Summary: Shared gcc library
91 Summary(pl): Biblioteka gcc
92 Summary(pt_BR): Biblioteca runtime para o GCC
94 Version: %{GCC_VERSION}
97 %description -n libgcc
100 %description -n libgcc -l pl
101 Biblioteka dynamiczna gcc.
103 %description -n libgcc -l pt_BR
104 Biblioteca runtime para o GCC.
107 Summary: C++ support for gcc
108 Summary(pl): Obs³uga C++ dla gcc
109 Summary(pt_BR): Suporte C++ para o gcc
110 Group: Development/Languages
113 Requires: gcc = %{epoch}:%{GCC_VERSION}
116 This package adds C++ support to the GNU C compiler. It includes
117 support for most of the current C++ specification, including templates
118 and exception handling. It does not include a standard C++ library,
119 which is available separately.
121 %description c++ -l de
122 Dieses Paket enthält die C++-Unterstützung für den GNU-C-Compiler. Es
123 unterstützt die aktuelle C++-Spezifikation, inkl. Templates und
124 Ausnahmeverarbeitung. Eine C++-Standard-Library ist nicht enthalten -
125 sie ist getrennt erhältlich.
127 %description c++ -l fr
128 Ce package ajoute un support C++ au compilateur c GNU. Il comprend un
129 support pour la plupart des spécifications actuelles de C++, dont les
130 modéles et la gestion des exceptions. Il ne comprend pas une
131 bibliothéque C++ standard, qui est disponible séparément.
133 %description c++ -l pl
134 Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
135 du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
136 standardowych bibliotek C++, które s± w oddzielnym pakiecie.
138 %description c++ -l pt_BR
139 Este pacote adiciona suporte C++ para o gcc.
141 %description c++ -l tr
142 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
143 aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
144 C++ kitaplýðý bu pakette yer almaz.
147 Summary: Objective C support for gcc
148 Summary(de): Objektive C-Unterstützung für gcc
149 Summary(fr): Gestion d'Objective C pour gcc
150 Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
151 Summary(tr): gcc için Objective C desteði
152 Group: Development/Languages
155 Requires: libobjc = %{epoch}:%{GCC_VERSION}
156 Requires: gcc = %{epoch}:%{GCC_VERSION}
159 This package adds Objective C support to the GNU C compiler. Objective
160 C is a object oriented derivative of the C language, mainly used on
161 systems running NeXTSTEP. This package does not include the standard
162 objective C object library.
164 %description objc -l de
165 Dieses Paket ergänzt den GNU-C-Compiler durch Objective-C-Support.
166 Objective C ist ein objektorientiertes Derivat von C, das zur
167 Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt. Die
168 Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
170 %description objc -l fr
171 Ce package ajoute un support Objective C au compilateur C GNU.
172 L'Objective C est un langage orienté objetdérivé du langage C,
173 principalement utilisé sur les systèmes NeXTSTEP. Ce package n'inclue
174 pas la bibliothéque Objective C standard.
176 %description objc -l pl
177 Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
178 C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
179 g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
180 standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
182 %description objc -l tr
183 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
184 C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
185 sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
186 kitaplýðý bu pakette yer almaz.
189 Summary: Objective C Libraries
190 Summary(pl): Biblioteki Obiektowego C
192 Version: %{GCC_VERSION}
195 %description -n libobjc
196 Objective C Libraries.
198 %description -n libobjc -l pl
199 Biblioteki Obiektowego C.
201 %package -n libobjc-static
202 Summary: Static Objective C Libraries
203 Summary(pl): Statyczne Biblioteki Obiektowego C
204 Group: Development/Libraries
205 Version: %{GCC_VERSION}
206 Requires: libobjc = %{epoch}:%{GCC_VERSION}
208 %description -n libobjc-static
209 Static Objective C Libraries.
211 %description -n libobjc-static -l pl
212 Statyczne biblioteki Obiektowego C.
215 Summary: Fortran 77 support for gcc
216 Summary(pl): Obs³uga Fortranu 77 dla gcc
217 Summary(pt_BR): Suporte Fortran 77 para o GCC
218 Group: Development/Languages/Fortran
219 Version: %{GCC_VERSION}
221 Requires: libg2c = %{epoch}:%{GCC_VERSION}
224 This apckage adds support for compiling Fortran 77 programs with the
227 %description g77 -l pl
228 Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
229 potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
231 %description g77 -l pt_BR
232 Suporte Fortran 77 para o GCC.
235 Summary: Fortran 77 Libraries
236 Summary(pl): Biblioteki Fortranu 77
238 Version: %{GCC_VERSION}
240 %description -n libg2c
241 Fortran 77 Libraries.
243 %description -n libg2c -l pl
244 Biblioteki Fortranu 77.
246 %package -n libg2c-static
247 Summary: Static Fortran 77 Libraries
248 Summary(pl): Statyczne Biblioteki Fortranu 77
249 Group: Development/Libraries
250 Version: %{GCC_VERSION}
251 Requires: libg2c = %{epoch}:%{GCC_VERSION}
253 %description -n libg2c-static
254 Static Fortran 77 Libraries.
256 %description -n libg2c-static -l pl
257 Statyczne biblioteki Fortranu 77.
260 Summary: Java support for gcc
261 Summary(pl): Obs³uga Javy dla gcc
262 Group: Development/Languages/Java
263 Version: %{GCC_VERSION}
264 Requires: %{name} = %{epoch}:%{version}
265 Requires: libgcj >= 3.0.0
266 Requires: libgcj-devel >= 3.0.0
267 Requires: java-shared
268 Provides: gcj = %{epoch}:%{GCC_VERSION}-%{release}
271 This package adds experimental support for compiling Java(tm) programs
272 and bytecode into native code. To use this you will also need the
275 %description java -l pl
276 Wsparcie dla kompilowania programów Java(tm) zrówno do bajt-kodu jak i
277 do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
278 by³o przeprowadziæ kompilacjê.
281 Summary: Shared java tools
282 Summary(pl): Wspó³dzielone narzêdzia javy
283 Group: Development/Languages/Java
284 Version: %{GCC_VERSION}
285 Provides: jar = %{epoch}:%{GCC_VERSION}-%{release}
286 Provides: java-shared
288 Obsoletes: java-shared
291 %description java-tools
292 This package contains tools that are common for every Java(tm) implementation,
295 %description java-tools -l pl
296 Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji Javy(tm), takie
300 Summary: Java Class Libraries
301 Summary(pl): Biblioteki Klas Javy
303 Version: %{GCC_VERSION}
307 %description -n libgcj
308 Java Class Libraries.
310 %description -n libgcj -l pl
311 Biblioteki Klas Javy.
313 %package -n libgcj-devel
314 Summary: Development files for Java Class Libraries
315 Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
316 Group: Development/Libraries
317 Version: %{GCC_VERSION}
318 Requires: libgcj = %{epoch}:%{GCC_VERSION}
319 Requires: %{name}-java
320 Obsoletes: libgcj3-devel
322 %description -n libgcj-devel
323 Development files for Java Class Libraries.
325 %description -n libgcj-devel -l pl
326 Pliki nag³ówkowe dla Bibliotek Klas Javy.
328 %package -n libgcj-static
329 Summary: Static Java Class Libraries
330 Summary(pl): Statyczne Biblioteki Klas Javy
331 Group: Development/Libraries
332 Version: %{GCC_VERSION}
333 Requires: libstdc++-devel = %{epoch}:%{GCC_VERSION}
334 Requires: libgcj-devel = %{epoch}:%{GCC_VERSION}
336 %description -n libgcj-static
337 Static Java Class Libraries.
339 %description -n libgcj-static -l pl
340 Statyczne Biblioteki Klas Javy.
342 %package -n libstdc++
343 Summary: GNU c++ library
344 Summary(pl): Biblioteki GNU C++
345 Summary(pt_BR): Biblioteca C++ GNU
347 Version: %{GCC_VERSION}
349 Obsoletes: libstdc++3
351 %description -n libstdc++
352 This is the GNU implementation of the standard C++ libraries, along
353 with additional GNU tools. This package includes the shared libraries
354 necessary to run C++ applications.
356 %description -n libstdc++ -l de
357 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
358 weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
359 C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
361 %description -n libstdc++ -l es
362 Este es el soporte de las bibliotecas padrón del C++, junto con
363 herramientas GNU adicionales. El paquete incluye las bibliotecas
364 compartidas necesarias para ejecutar aplicaciones C++.
366 %description -n libstdc++ -l fr
367 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
368 des outils GNU supplémentaires. Ce package comprend les librairies
369 partagées nécessaires à l'exécution d'application C++.
371 %description -n libstdc++ -l pl
372 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
373 bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
374 uruchomienia aplikacji napisanych w C++.
376 %description -n libstdc++ -l pt_BR
377 Este pacote é uma implementação da biblioteca padrão C++ v3, um
378 subconjunto do padrão ISO 14882.
380 %description -n libstdc++ -l tr
381 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
382 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
384 %package -n libstdc++-devel
385 Summary: Header files and documentatino for C++ development
386 Summary(de): Header-Dateien zur Entwicklung mit C++
387 Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
388 Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
389 Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
390 Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
391 Group: Development/Libraries
392 Version: %{GCC_VERSION}
393 Requires: libstdc++ = %{epoch}:%{GCC_VERSION}
394 Requires: %{name}-c++ = %{epoch}:%{GCC_VERSION}
395 Obsoletes: libg++-devel
396 Obsoletes: libstdc++3-devel
398 %description -n libstdc++-devel
399 This is the GNU implementation of the standard C++ libraries. This
400 package includes the header files needed for C++ development and
401 library documentation.
403 %description -n libstdc++-devel -l es
404 Este es el soporte de las bibliotecas padrón del lenguaje C++. Este paquete
405 incluye los archivos de inclusión y bibliotecas necesarios para desarrollo de
406 programas en lenguaje C++.
408 %description -n libstdc++-devel -l pl
409 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
410 bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
411 programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
413 %description -n libstdc++-devel -l pt_BR
414 Este pacote inclui os arquivos de inclusão e bibliotecas necessárias para
415 desenvolvimento de programas C++.
417 %package -n libstdc++-static
418 Summary: Static C++ standard library
419 Summary(pl): Statyczna biblioteka standardowa C++
420 Group: Development/Libraries
421 Version: %{GCC_VERSION}
422 Requires: libstdc++-devel = %{epoch}:%{GCC_VERSION}
424 %description -n libstdc++-static
425 Static C++ standard library.
427 %description -n libstdc++-static -l pl
428 Statycza biblioteka standardowa C++.
431 Summary: Foreign Function Interface library
432 Summary(pl): Biblioteka zewnêtrznych wywo³añ funkcji
434 Version: %{GCC_VERSION}
436 %description -n libffi
437 The libffi library provides a portable, high level programming
438 interface to various calling conventions. This allows a programmer to
439 call any function specified by a call interface description at run
442 %description -n libffi -l pl
443 Biblioteka libffi dostarcza przno¶nego, wysokopoziomowego miêdzymordzia
444 do ró¿nych konwencji wywo³añ funkcji. Pozwala to programi¶cie wywo³ywaæ
445 dowolne funkcje podaj±c konwencjê wywo³ania w czasie wykonania.
447 %package -n libffi-devel
448 Summary: Development files for Foreign Function Interface library
449 Summary(pl): Pliki nag³ówkowe dla libffi
450 Group: Development/Libraries
451 Version: %{GCC_VERSION}
452 Requires: libffi = %{epoch}:%{GCC_VERSION}
454 %description -n libffi-devel
455 Development files for Foreign Function Interface library.
457 %description -n libffi-devel -l pl
458 Pliki nag³ówkowe dla libffi.
460 %package -n libffi-static
461 Summary: Static Foreign Function Interface library
462 Summary(pl): Statyczna biblioteka libffi
463 Group: Development/Libraries
464 Version: %{GCC_VERSION}
465 Requires: libffi-devel = %{epoch}:%{GCC_VERSION}
467 %description -n libffi-static
468 Static Foreign Function Interface library.
470 %description -n libffi-static -l pl
471 Statyczna biblioteka libffi.
474 Summary: Ada support for gcc
475 Summary(pl): Obs³uga Ady do gcc
476 Group: Development/Languages
477 Version: %{GCC_VERSION}
478 Requires: libgnat = %{epoch}:%{GCC_VERSION}
479 Requires: gcc = %{epoch}:%{GCC_VERSION}
481 Obsoletes: gnat-devel
484 This package adds experimental support for compiling Ada programs.
486 %description ada -l pl
487 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów
491 Summary: Ada standard libraries
492 Summary(pl): Biblioteki standardowe dla Ady
494 Version: %{GCC_VERSION}
498 %description -n libgnat
499 This package contains shared libraries needed to run programs written
502 %description -n libgnat -l pl
503 Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów napisanych
506 %package -n libgnat-static
507 Summary: Static Ada standard libraries
508 Summary(pl): Statyczne biblioteki standardowe dla Ady
510 Version: %{GCC_VERSION}
511 Obsoletes: gnat-static
513 %description -n libgnat-static
514 This package contains static libraries for programs written in Ada.
516 %description -n libgnat-static -l pl
517 Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
521 Summary: Ksi support for gcc
522 Summary(pl): Obs³uga Ksi dla gcc
523 Version: %{GCC_VERSION}.%{KSI_VERSION}
524 Group: Development/Languages
525 Requires: gcc = %{epoch}:%{GCC_VERSION}
528 This package adds experimental support for compiling Ksi programs
529 into native code. You proabably don't need it, unless your are going
530 to develop a compiler using Ksi as intermediate representation or
531 you are using such compiler (like Gont).
533 %description ksi -l pl
534 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów
535 w Ksi do kodu maszynowego. Prawdopodobnie nie potrzebujesz go, chyba
536 ¿e zamierzasz pisaæ kompilator u¿ywaj±cy Ksi jako reprezentacji
537 po¶rednicz±cej, lub u¿ywasz takiego kompilatora (jak Gont).
540 Summary: The C Pre Processor
541 Summary(pl): Preprocesor C
542 Summary(pt_BR): Preprocessador para a linguagem C
543 Group: Development/Languages
544 Version: %{GCC_VERSION}
549 The C preprocessor is a "macro processor" that is used automatically
550 by the C compiler to transform your program before actual compilation.
551 It is called a macro processor because it allows you to define
552 "macros", which are brief abbreviations for longer constructs.
554 The C preprocessor provides four separate facilities that you can use
557 - Inclusion of header files. These are files of declarations that can
558 be substituted into your program.
559 - Macro expansion. You can define "macros", which are abbreviations
560 for arbitrary fragments of C code, and then the C preprocessor will
561 replace the macros with their definitions throughout the program.
562 - Conditional compilation. Using special preprocessing directives, you
563 can include or exclude parts of the program according to various
565 - Line control. If you use a program to combine or rearrange source
566 files into an intermediate file which is then compiled, you can use
567 line control to inform the compiler of where each source line
568 originally came from.
570 %description -n cpp -l es
571 Um preprocessador para a linguagem C.
573 %description -n cpp -l pl
574 Przeprocesor C jest "makro procesorem" który jest automatycznie
575 u¿ywany przez kompilator C do obróbki kompilowanego programu przed
576 w³a¶ciw± kompilacj±. Jest on nazywany makroprocesorem, poniewa¿
577 umo¿liwia definiowanie i rozwijanie makr umo¿liwiaj±cych skracanie
578 d³ugich konstrukcji w jêzyku C.
580 Preprocesor C umo¿liwia wykonywanie czterech ró¿nych typów operacji:
582 - Do³±czanie plików (np. nag³ówkowych). Wstawia pliki w miejscu
583 deklaracji polecenia do³±czenia innego pliku.
584 - Rozwijanie makr. Mo¿na definiowaæ "makra" nadaj±c im identyfikatory,
585 których pó¼niejsze u¿ycie powoduje podczas rozwijania podmienienie
586 indentyfikatora deklarowan± wcze¶niej warto¶ci±.
587 - Kompilacja warunkowa. W zale¿no¶ci od obecno¶ci symboli i dyrektyw w
588 ¶rodowisku preprocesora s± w³±czane warunkowo, b±d¼ nie, pewne
589 fragmenty obrabianego strumienia tekstów.
590 - Kontrola linii ¼ród³a. Niezale¿nie od tego jakim przeobra¿eniom
591 podlega wynikowy strumieñ danych w wyniku rozwijania makr i do³±czania
592 s± zapamiêtywane informacje o tym, której linii pliku ¼ród³owego
593 odpowiada fragment pliku wynikowego.
595 %description -n cpp -l pt_BR
596 O preprocessador C é um "processador de macros", que é utilizado pelo
597 compilador C para fazer algumas modificações no seu programa, antes da
598 compilação em si. Ele é chamado de "processador de macros" porque
599 permite a você definir "macros", que são abreviações para construções
602 O preprocessador C fornece quatro funcionalidades básicas: inclusão de
603 arquivos de cabeçalho; expansão de macros; compilação condicional;
604 e controle da numeração das linhas do programa.
607 %setup -q -a1 -n %{name}-%{GCC_VERSION}
608 mv ksi-%{KSI_VERSION} gcc/ksi
631 %{?_with_pp:%patch25 -p1}
633 # because we distribute modified version of gcc...
634 perl -pi -e 's/(version.*)";/$1 (PLD Linux)";/' gcc/version.c
635 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
638 # cd gcc && autoconf; cd ..
639 # autoconf is not needed!
640 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
642 CFLAGS="%{rpmcflags}" \
643 CXXFLAGS="%{rpmcflags}" \
644 TEXCONFIG=false ../configure \
645 --prefix=%{_prefix} \
646 --infodir=%{_infodir} \
647 --mandir=%{_mandir} \
649 --enable-threads=posix \
650 --enable-__cxa_atexit \
651 --enable-languages="c,c++,f77%{!?_without_objc:,objc}%{!?_without_ada:,ada}%{!?_without_java:,java},ksi" \
659 --with-slibdir=%{_slibdir} \
663 PATH=$PATH:/sbin:%{_sbindir}
666 %{__make} -C obj-%{_target_platform} bootstrap-lean \
667 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
671 %if 0%{!?_without_ada:1}
672 %{__make} -C obj-%{_target_platform}/gcc gnatlib gnattools gnatlib-shared \
673 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
679 rm -rf $RPM_BUILD_ROOT
680 install -d $RPM_BUILD_ROOT{/lib,%{_datadir},%{_infodir}}
682 cd obj-%{_target_platform}
683 PATH=$PATH:/sbin:%{_sbindir}
686 DESTDIR=$RPM_BUILD_ROOT
689 ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-pld-linux-gcc \
690 $RPM_BUILD_ROOT%{_bindir}/sparc-pld-linux-gcc
693 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
694 echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
696 ln -sf g77 $RPM_BUILD_ROOT%{_bindir}/f77
697 echo ".so g77.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
699 %if 0%{!?_without_ada:1}
700 # move ada shared libraries to proper place...
701 mv $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/*.so.1 \
702 $RPM_BUILD_ROOT%{_libdir}/
703 # check if symlink to be made is valid
704 test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-3.15.so.1
705 ln -sf libgnat-3.15.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-3.15.so
706 ln -sf libgnarl-3.15.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-3.15.so
707 ln -sf libgnat-3.15.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
708 ln -sf libgnarl-3.15.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
711 ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
715 %if %{!?_without_java:1}%{?_without_java:0}
717 cp -f libjava/doc/cni.sgml libjava/READ* java-doc
718 cp -f fastjar/README java-doc/README.fastjar
719 cp -f libffi/README java-doc/README.libffi
720 cp -f libffi/LICENSE java-doc/LICENSE.libffi
723 %if %{!?_without_objc:1}0
724 cp -f libobjc/README gcc/objc/README.libobjc
727 # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc-lib/*/%{version}
728 for f in libstdc++.la libsupc++.la %{!?_without_java:libgcj.la} ; do
729 perl -pi -e 's@-L[^ ]*[acs.] @@g' $RPM_BUILD_ROOT%{_libdir}/$f
731 # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
732 for f in libstdc++.la libsupc++.la libg2c.la \
733 %{!?_without_java:libgcj.la lib-org-w3c-dom.la lib-org-xml-sax.la libffi.la} \
734 %{!?_without_objc:libobjc.la}; do
735 perl -pi -e "s@^libdir='.*@libdir='/usr/lib'@" $RPM_BUILD_ROOT%{_libdir}/$f
738 bzip2 -dc %{SOURCE2} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
739 mv -f $RPM_BUILD_ROOT%{_mandir}/ja/man1/{cccp,cpp}.1
741 # include/ contains install-tools/include/* and headers that were fixed up
742 # by fixincludes, we don't want former
743 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/)
745 # we have to save these however
746 mv -f $gccdir/include/{%{!?_without_objc:objc,}g2c.h,syslimits.h%{!?_without_java:,gcj}} $gccdir/tmp
747 rm -rf $gccdir/include
748 mv -f $gccdir/tmp $gccdir/include
749 cp $gccdir/install-tools/include/*.h $gccdir/include
750 # but we don't want anything more from install-tools
751 rm -rf $gccdir/install-tools/
754 %find_lang libstdc\+\+
757 rm -rf $RPM_BUILD_ROOT
760 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
763 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
766 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
769 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
772 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
775 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
778 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
781 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
784 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
787 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
789 %post -p /sbin/ldconfig -n libgcc
790 %postun -p /sbin/ldconfig -n libgcc
791 %post -p /sbin/ldconfig -n libstdc++
792 %postun -p /sbin/ldconfig -n libstdc++
793 %post -p /sbin/ldconfig -n libobjc
794 %postun -p /sbin/ldconfig -n libobjc
795 %post -p /sbin/ldconfig -n libg2c
796 %postun -p /sbin/ldconfig -n libg2c
797 %post -p /sbin/ldconfig -n libgcj
798 %postun -p /sbin/ldconfig -n libgcj
799 %post -p /sbin/ldconfig -n libgnat
800 %postun -p /sbin/ldconfig -n libgnat
801 %post -p /sbin/ldconfig -n libffi
802 %postun -p /sbin/ldconfig -n libffi
804 %files -f %{name}.lang
805 %defattr(644,root,root,755)
807 %dir %{_libdir}/gcc-lib
808 %dir %{_libdir}/gcc-lib/%{_target_cpu}*
809 %dir %{_libdir}/gcc-lib/%{_target_cpu}*/*
810 %dir %{_libdir}/gcc-lib/%{_target_cpu}*/*/include
811 %attr(755,root,root) %{_bindir}/%{_target_cpu}*-gcc*
812 %attr(755,root,root) %{_bindir}/gcc
813 %attr(755,root,root) %{_bindir}/gccbug
814 %attr(755,root,root) %{_bindir}/gcov
815 %attr(755,root,root) %{_bindir}/cc
817 %{_mandir}/man1/gcc.1*
818 %{_mandir}/man1/cc.1*
819 %{_mandir}/man1/gcov.1*
820 %lang(fr) %{_mandir}/fr/man1/gcc.1*
821 %lang(ja) %{_mandir}/ja/man1/gcc.1*
824 %attr(755,root,root) %{_slibdir}*/lib*.so
825 %{_libdir}/gcc-lib/%{_target_cpu}*/*/libgcc.a
826 %{_libdir}/gcc-lib/%{_target_cpu}*/*/libgcc_eh.a
827 %{_libdir}/gcc-lib/%{_target_cpu}*/*/specs
828 %attr(644,root,root) %{_libdir}*/gcc-lib/%{_target_cpu}*/*/crt*.o
830 %{_libdir}/gcc-lib/%{_target_cpu}*/*/*/libgcc.a
831 %{_libdir}/gcc-lib/%{_target_cpu}*/*/*/libgcc_eh.a
832 %attr(644,root,root) %{_libdir}*/gcc-lib/%{_target_cpu}*/*/*/crt*.o
835 %attr(644,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/ecrt*.o
836 %attr(644,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/ncrt*.o
837 %{_libdir}/gcc-lib/%{_target_cpu}*/*/nof
840 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1
841 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/collect2
843 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/*.h
844 %exclude %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/g2c.h
847 %defattr(644,root,root,755)
848 %attr(755,root,root) %{_slibdir}*/lib*.so.*
851 %defattr(644,root,root,755)
852 %attr(755,root,root) %{_bindir}/g++
853 %attr(755,root,root) %{_bindir}/%{_target_cpu}*-g++
854 %attr(755,root,root) %{_bindir}/c++
855 %attr(755,root,root) %{_bindir}/%{_target_cpu}*-c++
856 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1plus
857 %{_libdir}*/libsupc++.la
859 %{_libdir}/nof/libsupc++.la
860 %{_libdir}/nof/libsupc++.a
862 %{_libdir}*/libsupc++.a
863 %{_mandir}/man1/g++.1*
864 %lang(ja) %{_mandir}/ja/man1/g++.1*
866 %files -n libstdc++ -f libstdc++.lang
867 %defattr(644,root,root,755)
868 %attr(755,root,root) %{_libdir}*/libstdc++.so.*.*.*
870 %attr(755,root,root) %{_libdir}/nof/libstdc++.so.*.*.*
873 %files -n libstdc++-devel
874 %defattr(644,root,root,755)
875 %doc libstdc++-v3/docs/html
876 %dir %{_includedir}/c++
877 %{_includedir}/c++/%{GCC_VERSION}
878 %attr(755,root,root) %{_libdir}*/libstdc++.so
879 %{_libdir}*/libstdc++.la
881 %attr(755,root,root) %{_libdir}/nof/libstdc++.so
882 %{_libdir}/nof/libstdc++.la
885 %files -n libstdc++-static
886 %defattr(644,root,root,755)
887 %{_libdir}*/libstdc++.a
889 %{_libdir}/nof/libstdc++.a
892 %if %{!?_without_objc:1}0
894 %defattr(644,root,root,755)
896 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1obj
897 %attr(755,root,root) %{_libdir}*/libobjc.so
898 %{_libdir}*/libobjc.la
900 %attr(755,root,root) %{_libdir}/nof/libobjc.so
901 %{_libdir}/nof/libobjc.la
903 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/objc
906 %defattr(644,root,root,755)
907 %attr(755,root,root) %{_libdir}*/libobjc.so.*.*.*
909 %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.*
912 %files -n libobjc-static
913 %defattr(644,root,root,755)
914 %{_libdir}*/libobjc.a
916 %{_libdir}/nof/libobjc.a
921 %defattr(644,root,root,755)
922 %attr(755,root,root) %{_bindir}/g77
923 %attr(755,root,root) %{_bindir}/f77
925 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/f771
926 %{_libdir}*/libfrtbegin.a
927 %{_libdir}*/libg2c.la
928 %attr(755,root,root) %{_libdir}*/libg2c.so
930 %{_libdir}/nof/libfrtbegin.a
931 %{_libdir}/nof/libg2c.la
932 %attr(755,root,root) %{_libdir}/nof/libg2c.so
934 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/g2c.h
935 %{_mandir}/man1/g77.1*
936 %{_mandir}/man1/f77.1*
937 %lang(ja) %{_mandir}/ja/man1/g77.1*
938 %lang(ja) %{_mandir}/ja/man1/f77.1*
941 %defattr(644,root,root,755)
942 %attr(755,root,root) %{_libdir}*/libg2c.so.*.*.*
944 %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.*
947 %files -n libg2c-static
948 %defattr(644,root,root,755)
951 %{_libdir}/nof/libg2c.a
954 %if %{!?_without_java:1}%{?_without_java:0}
956 %defattr(644,root,root,755)
958 %attr(755,root,root) %{_bindir}/gcj*
959 %attr(755,root,root) %{_bindir}/gij
960 %attr(755,root,root) %{_bindir}/jcf-dump
961 %attr(755,root,root) %{_bindir}/jv-*
962 %attr(755,root,root) %{_bindir}/grepjar
963 %attr(755,root,root) %{_bindir}/%{_target_cpu}*-gcj
964 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/jc1
965 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/jvgenmain
967 %{_mandir}/man1/jcf-*
971 %{_mandir}/man1/grepjar*
974 %defattr(644,root,root,755)
975 %attr(755,root,root) %{_bindir}/rmi*
976 %attr(755,root,root) %{_bindir}/jar
982 %defattr(644,root,root,755)
983 %attr(755,root,root) %{_bindir}/addr2name.awk
984 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
985 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
987 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
990 %files -n libgcj-devel
991 %defattr(644,root,root,755)
998 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/gcj
999 %dir %{_libdir}/security
1000 %{_libdir}/security/*
1001 %dir %{_datadir}/java
1002 %{_datadir}/java/libgcj*.jar
1003 %{_libdir}/lib*cj.spec
1004 %{_libdir}/lib*cj*.la
1005 %attr(755,root,root) %{_libdir}/lib*cj*.so
1006 %attr(755,root,root) %{_libdir}/lib-org-*.so
1007 %{_libdir}/lib-org-*.la
1009 %{_libdir}/nof/lib*cj*.la
1010 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so
1013 %files -n libgcj-static
1014 %defattr(644,root,root,755)
1015 %{_libdir}/lib*cj*.a
1016 %{_libdir}/lib-org-*.a
1018 %{_libdir}/nof/lib*cj*.a
1022 %defattr(644,root,root,755)
1023 %attr(755,root,root) %{_libdir}/libffi-*.so
1025 %files -n libffi-devel
1026 %defattr(644,root,root,755)
1027 %attr(755,root,root) %{_libdir}/libffi.so
1028 %{_libdir}/libffi.la
1031 %files -n libffi-static
1032 %defattr(644,root,root,755)
1036 %if 0%{!?_without_ada:1}
1038 %defattr(644,root,root,755)
1039 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/gnat1
1040 %{_libdir}/gcc-lib/%{_target_cpu}*/*/adainclude
1041 %dir %{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib
1042 %{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/*.ali
1044 %{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/libgmem.a
1046 %{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/Makefile.adalib
1047 %attr(755,root,root) %{_bindir}/gnat*
1049 %attr(755,root,root) %{_libdir}/libgnat*.so
1050 %attr(755,root,root) %{_libdir}/libgnarl*.so
1053 %defattr(644,root,root,755)
1054 %attr(755,root,root) %{_libdir}/libgna*.so.1
1056 %files -n libgnat-static
1057 %defattr(644,root,root,755)
1058 %{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/libgna*.a
1062 %defattr(644,root,root,755)
1063 %doc gcc/ksi/README gcc/ksi/NEWS gcc/ksi/t/*.{ksi,c,foo}
1065 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/ksi1
1068 %defattr(644,root,root,755)
1069 %attr(755,root,root) %{_slibdir}/cpp
1070 %attr(755,root,root) %{_bindir}/cpp
1071 %{_mandir}/man1/cpp.1*
1072 %lang(ja) %{_mandir}/ja/man1/cpp.1*