3 # _without_ada - build without ADA support
4 # _without_java - build without Java support
5 # _without_objc - build without objc support
7 %define DASHED_SNAP %{nil}
8 %define SNAP %(echo %{DASHED_SNAP} | sed -e "s#-##g")
9 %define GCC_VERSION 3.3
10 %define KSI_VERSION 1.1.0.1567
12 Summary: GNU C Compiler
13 Summary(pl): Kompilator C GNU
14 Summary(pt_BR): C Compilador GNU (GCC)
16 Version: %{GCC_VERSION}
20 Group: Development/Languages
21 Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{GCC_VERSION}/%{name}-%{GCC_VERSION}.tar.bz2
22 # Source0-md5: 39147717455d8dba4d43d1b058ea46e2
23 Source1: ftp://ftp.pld.org.pl/people/malekith/ksi/ksi-%{KSI_VERSION}.tar.gz
24 # Source1-md5: 66f07491b44f06928fd95b0e65bb8cd3
25 Source2: http://ep09.kernel.pl/~djrzulf/gcc33/%{name}-non-english-man-pages.tar.bz2
26 # Source2-md5: 4736f3422ddfb808423b745629acc321
27 Patch0: %{name}-info.patch
28 Patch1: %{name}-paths.patch
29 Patch2: %{name}-nolocalefiles.patch
30 Patch3: %{name}-ada-link-new-libgnat.patch
31 Patch4: %{name}-PR10849.patch
32 # -- stolen patches from RH --
33 Patch10: gcc32-ada-link.patch
34 Patch11: gcc32-boehm-gc-libs.patch
35 Patch12: gcc32-bogus-inline.patch
36 Patch13: gcc32-c++-nrv-test.patch
37 Patch14: gcc32-c++-tsubst-asm.patch
38 Patch15: gcc32-debug-pr7241.patch
39 Patch16: gcc32-duplicate-decl.patch
40 Patch17: gcc32-dwarf2-pr6381.patch
41 Patch18: gcc32-dwarf2-pr6436-test.patch
42 Patch19: gcc32-fde-merge-compat.patch
43 Patch20: gcc32-i386-memtest-test.patch
44 Patch21: gcc32-inline-label.patch
45 Patch22: gcc32-java-no-rpath.patch
46 Patch23: gcc32-test-rh65771.patch
47 Patch24: gcc32-test-rotate.patch
48 BuildRequires: autoconf
50 BuildRequires: fileutils >= 4.0.41
52 %{!?_without_ada:BuildRequires: gcc-ada}
53 BuildRequires: glibc-devel >= 2.2.5-20
54 BuildRequires: perl-devel
55 BuildRequires: texinfo >= 4.1
56 BuildRequires: zlib-devel
57 BuildRequires: gettext-devel
58 Requires: binutils >= 2.12.90.0.4
59 Requires: cpp = %{GCC_VERSION}
60 Requires: libgcc = %{GCC_VERSION}
61 Conflicts: glibc-devel < 2.2.5-20
62 URL: http://gcc.gnu.org/
63 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
68 A compiler aimed at integrating all the optimizations and features
69 necessary for a high-performance and stable development environment.
72 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
73 wyprodukowania szybkiego i stablinego kodu wynikowego.
76 Este pacote adiciona infraestrutura básica e suporte a linguagem C
77 ao Gnu Compiler Collection.
80 Summary: Shared gcc library
81 Summary(pl): Biblioteka gcc
82 Summary(pt_BR): Biblioteca runtime para o GCC
84 Version: %{GCC_VERSION}
87 %description -n libgcc
90 %description -n libgcc -l pl
91 Biblioteka dynamiczna gcc.
93 %description -n libgcc -l pt_BR
94 Biblioteca runtime para o GCC.
97 Summary: C++ support for gcc
98 Summary(pl): Obs³uga C++ dla gcc
99 Summary(pt_BR): Suporte C++ para o gcc
100 Group: Development/Languages
103 Requires: gcc = %{GCC_VERSION}
106 This package adds C++ support to the GNU C compiler. It includes
107 support for most of the current C++ specification, including templates
108 and exception handling. It does not include a standard C++ library,
109 which is available separately.
111 %description c++ -l de
112 Dieses Paket enthält die C++-Unterstützung für den GNU-C-Compiler. Es
113 unterstützt die aktuelle C++-Spezifikation, inkl. Templates und
114 Ausnahmeverarbeitung. Eine C++-Standard-Library ist nicht enthalten -
115 sie ist getrennt erhältlich.
117 %description c++ -l fr
118 Ce package ajoute un support C++ au compilateur c GNU. Il comprend un
119 support pour la plupart des spécifications actuelles de C++, dont les
120 modéles et la gestion des exceptions. Il ne comprend pas une
121 bibliothéque C++ standard, qui est disponible séparément.
123 %description c++ -l pl
124 Ten pakiet dodaje obs³ugê C++ do kompilatora gcc. Ma wsparcie dla
125 du¿ej ilo¶ci obecnych specyfikacji C++, nie zawiera natomiast
126 standardowych bibliotek C++, które s± w oddzielnym pakiecie.
128 %description c++ -l pt_BR
129 Este pacote adiciona suporte C++ para o gcc.
131 %description c++ -l tr
132 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve
133 aykýrý durum iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart
134 C++ kitaplýðý bu pakette yer almaz.
137 Summary: Objective C support for gcc
138 Summary(de): Objektive C-Unterstützung für gcc
139 Summary(fr): Gestion d'Objective C pour gcc
140 Summary(pl): Obs³uga obiektowego C dla kompilatora gcc
141 Summary(tr): gcc için Objective C desteði
142 Group: Development/Languages
145 Requires: libobjc = %{GCC_VERSION}
146 Requires: gcc = %{GCC_VERSION}
149 This package adds Objective C support to the GNU C compiler. Objective
150 C is a object oriented derivative of the C language, mainly used on
151 systems running NeXTSTEP. This package does not include the standard
152 objective C object library.
154 %description objc -l de
155 Dieses Paket ergänzt den GNU-C-Compiler durch Objective-C-Support.
156 Objective C ist ein objektorientiertes Derivat von C, das zur
157 Hauptsache auf Systemen mit NeXTSTEP zum Einsatz kommt. Die
158 Standard-Objective-C-Objekt-Library ist nicht Teil des Pakets.
160 %description objc -l fr
161 Ce package ajoute un support Objective C au compilateur C GNU.
162 L'Objective C est un langage orienté objetdérivé du langage C,
163 principalement utilisé sur les systèmes NeXTSTEP. Ce package n'inclue
164 pas la bibliothéque Objective C standard.
166 %description objc -l pl
167 Ten pakiet dodaje obs³ugê obiektowego C do kompilatora gcc. Obiektowe
168 C (objc) jest zorientowan± obiektowo pochodn± jêzyka C, u¿ywan±
169 g³ównie w systemach u¿ywaj±cych NeXTSTEP. W pakiecie nie ma
170 standardowej biblioteki objc (która znajduje siê w osobnym pakiecie).
172 %description objc -l tr
173 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C,
174 C dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan
175 sistemlerde yaygýn olarak kullanýlýr. Standart Objective C nesne
176 kitaplýðý bu pakette yer almaz.
179 Summary: Objective C Libraries
180 Summary(pl): Biblioteki Obiektowego C
182 Version: %{GCC_VERSION}
185 %description -n libobjc
186 Objective C Libraries.
188 %description -n libobjc -l pl
189 Biblioteki Obiektowego C.
191 %package -n libobjc-static
192 Summary: Static Objective C Libraries
193 Summary(pl): Statyczne Biblioteki Obiektowego C
194 Group: Development/Libraries
195 Version: %{GCC_VERSION}
196 Requires: libobjc = %{GCC_VERSION}
198 %description -n libobjc-static
199 Static Objective C Libraries.
201 %description -n libobjc-static -l pl
202 Statyczne biblioteki Obiektowego C.
205 Summary: Fortran 77 support for gcc
206 Summary(pl): Obs³uga Fortranu 77 dla gcc
207 Summary(pt_BR): Suporte Fortran 77 para o GCC
208 Group: Development/Languages/Fortran
209 Version: %{GCC_VERSION}
211 Requires: libg2c = %{GCC_VERSION}
214 This apckage adds support for compiling Fortran 77 programs with the
217 %description g77 -l pl
218 Ten pakiet dodaje obs³ugê Fortranu 77 do kompilatora gcc. Jest
219 potrzebny do kompilowania programów pisanych w jêzyku Fortran 77.
221 %description g77 -l pt_BR
222 Suporte Fortran 77 para o GCC.
225 Summary: Fortran 77 Libraries
226 Summary(pl): Biblioteki Fortranu 77
228 Version: %{GCC_VERSION}
230 %description -n libg2c
231 Fortran 77 Libraries.
233 %description -n libg2c -l pl
234 Biblioteki Fortranu 77.
236 %package -n libg2c-static
237 Summary: Static Fortran 77 Libraries
238 Summary(pl): Statyczne Biblioteki Fortranu 77
239 Group: Development/Libraries
240 Version: %{GCC_VERSION}
241 Requires: libg2c = %{GCC_VERSION}
243 %description -n libg2c-static
244 Static Fortran 77 Libraries.
246 %description -n libg2c-static -l pl
247 Statyczne biblioteki Fortranu 77.
250 Summary: Java support for gcc
251 Summary(pl): Obs³uga Javy dla gcc
252 Group: Development/Languages/Java
253 Version: %{GCC_VERSION}
254 Requires: %{name} = %{version}
255 Requires: libgcj >= 3.0.0
256 Requires: libgcj-devel >= 3.0.0
257 Requires: java-shared
258 Provides: gcj = %{epoch}:%{GCC_VERSION}-%{release}
261 This package adds experimental support for compiling Java(tm) programs
262 and bytecode into native code. To use this you will also need the
265 %description -l pl java
266 Wsparcie dla kompilowania programów Java(tm) zrówno do bajt-kodu jak i
267 do natywnego kodu. Dodatkowo wymagany jest pakiet libgcj, aby mo¿na
268 by³o przeprowadziæ kompilacjê.
271 Summary: Shared java tools
272 Summary(pl): Wspó³dzielone narzêdzia javy
273 Group: Development/Languages/Java
274 Version: %{GCC_VERSION}
275 Provides: jar = %{epoch}:%{GCC_VERSION}-%{release}
276 Provides: java-shared
278 Obsoletes: java-shared
281 %description java-tools
282 This package contains tools that are common for every Java(tm) implementation,
285 %description java-tools -l pl
286 Pakiet ten zawiera narzêdzia wspólne dla ka¿dej implementacji Javy(tm), takie
290 Summary: Java Class Libraries
291 Summary(pl): Biblioteki Klas Javy
293 Version: %{GCC_VERSION}
297 %description -n libgcj
298 Java Class Libraries.
300 %description -n libgcj -l pl
301 Biblioteki Klas Javy.
303 %package -n libgcj-devel
304 Summary: Development files for Java Class Libraries
305 Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
306 Group: Development/Libraries
307 Version: %{GCC_VERSION}
308 Requires: libgcj = %{GCC_VERSION}
309 Requires: %{name}-java
310 Obsoletes: libgcj3-devel
312 %description -n libgcj-devel
313 Development files for Java Class Libraries.
315 %description -n libgcj-devel -l pl
316 Pliki nag³ówkowe dla Bibliotek Klas Javy.
318 %package -n libgcj-static
319 Summary: Static Java Class Libraries
320 Summary(pl): Statyczne Biblioteki Klas Javy
321 Group: Development/Libraries
322 Version: %{GCC_VERSION}
323 Requires: libstdc++-devel = %{GCC_VERSION}
324 Requires: libgcj-devel = %{GCC_VERSION}
326 %description -n libgcj-static
327 Static Java Class Libraries.
329 %description -n libgcj-static -l pl
330 Statyczne Biblioteki Klas Javy.
332 %package -n libstdc++
333 Summary: GNU c++ library
334 Summary(pl): Biblioteki GNU C++
335 Summary(pt_BR): Biblioteca C++ GNU
337 Version: %{GCC_VERSION}
339 Obsoletes: libstdc++3
341 %description -n libstdc++
342 This is the GNU implementation of the standard C++ libraries, along
343 with additional GNU tools. This package includes the shared libraries
344 necessary to run C++ applications.
346 %description -n libstdc++ -l de
347 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit
348 weiteren GNU-Tools. Dieses Paket enthält die zum Ausführen von
349 C++-Anwendungen erforderlichen gemeinsam genutzten Libraries.
351 %description -n libstdc++ -l es
352 Este es el soporte de las bibliotecas padrón del C++, junto con
353 herramientas GNU adicionales. El paquete incluye las bibliotecas
354 compartidas necesarias para ejecutar aplicaciones C++.
356 %description -n libstdc++ -l fr
357 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que
358 des outils GNU supplémentaires. Ce package comprend les librairies
359 partagées nécessaires à l'exécution d'application C++.
361 %description -n libstdc++ -l pl
362 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
363 bibliotek C++. Znajduj± siê w nim biblioteki dynamiczne niezbêdne do
364 uruchomienia aplikacji napisanych w C++.
366 %description -n libstdc++ -l pt_BR
367 Este pacote é uma implementação da biblioteca padrão C++ v3, um
368 subconjunto do padrão ISO 14882.
370 %description -n libstdc++ -l tr
371 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
372 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
374 %package -n libstdc++-devel
375 Summary: Header files and documentatino for C++ development
376 Summary(de): Header-Dateien zur Entwicklung mit C++
377 Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
378 Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
379 Summary(pt_BR): Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
380 Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
381 Group: Development/Libraries
382 Version: %{GCC_VERSION}
383 Requires: libstdc++ = %{GCC_VERSION}
384 Requires: %{name}-c++ = %{GCC_VERSION}
385 Obsoletes: libg++-devel
386 Obsoletes: libstdc++3-devel
388 %description -n libstdc++-devel
389 This is the GNU implementation of the standard C++ libraries. This
390 package includes the header files needed for C++ development and
391 library documentation.
393 %description -n libstdc++-devel -l es
394 Este es el soporte de las bibliotecas padrón del lenguaje C++. Este paquete
395 incluye los archivos de inclusión y bibliotecas necesarios para desarrollo de
396 programas en lenguaje C++.
398 %description -n libstdc++-devel -l pl
399 Pakiet ten zawiera biblioteki bêd±ce implementacj± standardowych
400 bibliotek C++. Znajduj± siê w nim pliki nag³ówkowe wykorzystywane przy
401 programowaniu w jêzyku C++ oraz dokumentacja biblioteki standardowej.
403 %description -n libstdc++-devel -l pt_BR
404 Este pacote inclui os arquivos de inclusão e bibliotecas necessárias para
405 desenvolvimento de programas C++.
407 %package -n libstdc++-static
408 Summary: Static C++ standard library
409 Summary(pl): Statyczna biblioteka standardowa C++
410 Group: Development/Libraries
411 Version: %{GCC_VERSION}
412 Requires: libstdc++-devel = %{GCC_VERSION}
414 %description -n libstdc++-static
415 Static C++ standard library.
417 %description -n libstdc++-static -l pl
418 Statycza biblioteka standardowa C++.
421 Summary: Foreign Function Interface library
422 Summary(pl): Biblioteka zewnêtrznych wywo³añ funkcji
424 Version: %{GCC_VERSION}
426 %description -n libffi
427 The libffi library provides a portable, high level programming
428 interface to various calling conventions. This allows a programmer to
429 call any function specified by a call interface description at run
432 %description -n libffi -l pl
433 Biblioteka libffi dostarcza przno¶nego, wysokopoziomowego miêdzymordzia
434 do ró¿nych konwencji wywo³añ funkcji. Pozwala to programi¶cie wywo³ywaæ
435 dowolne funkcje podaj±c konwencjê wywo³ania w czasie wykonania.
437 %package -n libffi-devel
438 Summary: Development files for Foreign Function Interface library
439 Summary(pl): Pliki nag³ówkowe dla libffi
440 Group: Development/Libraries
441 Version: %{GCC_VERSION}
442 Requires: libffi = %{GCC_VERSION}
444 %description -n libffi-devel
445 Development files for Foreign Function Interface library.
447 %description -n libffi-devel -l pl
448 Pliki nag³ówkowe dla libffi.
450 %package -n libffi-static
451 Summary: Static Foreign Function Interface library
452 Summary(pl): Statyczna biblioteka libffi
453 Group: Development/Libraries
454 Version: %{GCC_VERSION}
455 Requires: libffi-devel = %{GCC_VERSION}
457 %description -n libffi-static
458 Static Foreign Function Interface library.
460 %description -n libffi-static -l pl
461 Statyczna biblioteka libffi.
464 Summary: Ada support for gcc
465 Summary(pl): Obs³uga Ady do gcc
466 Group: Development/Languages
467 Version: %{GCC_VERSION}
468 Requires: libgnat = %{GCC_VERSION}
469 Requires: gcc = %{GCC_VERSION}
471 Obsoletes: gnat-devel
474 This package adds experimental support for compiling Ada programs.
476 %description -l pl ada
477 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów
481 Summary: Ada standard libraries
482 Summary(pl): Biblioteki standardowe dla Ady
484 Version: %{GCC_VERSION}
488 %description -n libgnat
489 This package contains shared libraries needed to run programs written
492 %description -n libgnat -l pl
493 Ten pakiet zawiera biblioteki potrzebne do uruchamiania programów napisanych
496 %package -n libgnat-static
497 Summary: Static Ada standard libraries
498 Summary(pl): Statyczne biblioteki standardowe dla Ady
500 Version: %{GCC_VERSION}
501 Obsoletes: gnat-static
503 %description -n libgnat-static
504 This package contains static libraries for programs written in Ada.
506 %description -n libgnat-static -l pl
507 Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
511 Summary: Ksi support for gcc
512 Summary(pl): Obs³uga Ksi dla gcc
513 Version: %{GCC_VERSION}.%{KSI_VERSION}
514 Group: Development/Languages
515 Requires: gcc = %{GCC_VERSION}
518 This package adds experimental support for compiling Ksi programs
519 into native code. You proabably don't need it, unless your are going
520 to develop a compiler using Ksi as intermediate representation or
521 you are using such compiler (like Gont).
523 %description ksi -l pl
524 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów
525 w Ksi do kodu maszynowego. Prawdopodobnie nie potrzebujesz go, chyba
526 ¿e zamierzasz pisaæ kompilator u¿ywaj±cy Ksi jako reprezentacji
527 po¶rednicz±cej, lub u¿ywasz takiego kompilatora (jak Gont).
530 Summary: The C Pre Processor
531 Summary(pl): Preprocesor C
532 Summary(pt_BR): Preprocessador para a linguagem C
533 Group: Development/Languages
534 Version: %{GCC_VERSION}
539 The C preprocessor is a "macro processor" that is used automatically
540 by the C compiler to transform your program before actual compilation.
541 It is called a macro processor because it allows you to define
542 "macros", which are brief abbreviations for longer constructs.
544 The C preprocessor provides four separate facilities that you can use
547 - Inclusion of header files. These are files of declarations that can
548 be substituted into your program.
549 - Macro expansion. You can define "macros", which are abbreviations
550 for arbitrary fragments of C code, and then the C preprocessor will
551 replace the macros with their definitions throughout the program.
552 - Conditional compilation. Using special preprocessing directives, you
553 can include or exclude parts of the program according to various
555 - Line control. If you use a program to combine or rearrange source
556 files into an intermediate file which is then compiled, you can use
557 line control to inform the compiler of where each source line
558 originally came from.
560 %description -n cpp -l es
561 Um preprocessador para a linguagem C.
563 %description -n cpp -l pl
564 Przeprocesor C jest "makro procesorem" który jest automatycznie
565 u¿ywany przez kompilator C do obróbki kompilowanego programu przed
566 w³a¶ciw± kompilacj±. Jest on nazywany makroprocesorem, poniewa¿
567 umo¿liwia definiowanie i rozwijanie makr umo¿liwiaj±cych skracanie
568 d³ugich konstrukcji w jêzyku C.
570 Preprocesor C umo¿liwia wykonywanie czterech ró¿nych typów operacji:
572 - Do³±czanie plików (np. nag³ówkowych). Wstawia pliki w miejscu
573 deklaracji polecenia do³±czenia innego pliku.
574 - Rozwijanie makr. Mo¿na definiowaæ "makra" nadaj±c im identyfikatory,
575 których pó¼niejsze u¿ycie powoduje podczas rozwijania podmienienie
576 indentyfikatora deklarowan± wcze¶niej warto¶ci±.
577 - Kompilacja warunkowa. W zale¿no¶ci od obecno¶ci symboli i dyrektyw w
578 ¶rodowisku preprocesora s± w³±czane warunkowo, b±d¼ nie, pewne
579 fragmenty obrabianego strumienia tekstów.
580 - Kontrola linii ¼ród³a. Niezale¿nie od tego jakim przeobra¿eniom
581 podlega wynikowy strumieñ danych w wyniku rozwijania makr i do³±czania
582 s± zapamiêtywane informacje o tym, której linii pliku ¼ród³owego
583 odpowiada fragment pliku wynikowego.
585 %description -n cpp -l pt_BR
586 O preprocessador C é um "processador de macros", que é utilizado pelo
587 compilador C para fazer algumas modificações no seu programa, antes da
588 compilação em si. Ele é chamado de "processador de macros" porque
589 permite a você definir "macros", que são abreviações para construções
592 O preprocessador C fornece quatro funcionalidades básicas: inclusão de
593 arquivos de cabeçalho; expansão de macros; compilação condicional;
594 e controle da numeração das linhas do programa.
597 %setup -q -a1 -n %{name}-%{GCC_VERSION}
598 mv ksi-%{KSI_VERSION} gcc/ksi
623 # because we distribute modified version of gcc...
624 perl -pi -e 's/(version.*)";/$1 (PLD Linux)";/' gcc/version.c
625 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld.org.pl/>";@' gcc/version.c
628 # cd gcc && autoconf; cd ..
629 # autoconf is not needed!
630 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
632 CFLAGS="%{rpmcflags}" \
633 CXXFLAGS="%{rpmcflags}" \
634 TEXCONFIG=false ../configure \
635 --prefix=%{_prefix} \
636 --infodir=%{_infodir} \
637 --mandir=%{_mandir} \
639 --enable-threads=posix \
640 --enable-__cxa_atexit \
641 --enable-languages="c,c++,f77%{!?_without_objc:,objc}%{!?_without_ada:,ada}%{!?_without_java:,java},ksi" \
649 --with-slibdir=%{_slibdir} \
653 PATH=$PATH:/sbin:%{_sbindir}
656 %{__make} -C obj-%{_target_platform} bootstrap-lean \
657 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
661 %if 0%{!?_without_ada:1}
662 %{__make} -C obj-%{_target_platform}/gcc gnatlib gnattools gnatlib-shared \
663 LDFLAGS_FOR_TARGET="%{rpmldflags}" \
669 rm -rf $RPM_BUILD_ROOT
670 install -d $RPM_BUILD_ROOT{/lib,%{_datadir},%{_infodir}}
672 cd obj-%{_target_platform}
673 PATH=$PATH:/sbin:%{_sbindir}
676 DESTDIR=$RPM_BUILD_ROOT
678 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
679 echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
681 ln -sf g77 $RPM_BUILD_ROOT%{_bindir}/f77
682 echo ".so g77.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
684 %if 0%{!?_without_ada:1}
685 # move ada shared libraries to proper place...
686 mv $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/*.so.1 \
687 $RPM_BUILD_ROOT%{_libdir}/
688 # check if symlink to be made is valid
689 test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-3.15.so.1
690 ln -sf libgnat-3.15.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-3.15.so
691 ln -sf libgnarl-3.15.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-3.15.so
692 ln -sf libgnat-3.15.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
693 ln -sf libgnarl-3.15.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
696 ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
700 %if %{!?_without_java:1}%{?_without_java:0}
702 cp -f libjava/doc/cni.sgml libjava/READ* java-doc
703 cp -f fastjar/README java-doc/README.fastjar
704 cp -f libffi/README java-doc/README.libffi
705 cp -f libffi/LICENSE java-doc/LICENSE.libffi
708 %if %{!?_without_objc:1}0
709 cp -f libobjc/README gcc/objc/README.libobjc
712 # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc-lib/*/%{version}
713 for f in libstdc++.la libsupc++.la %{!?_without_java:libgcj.la} ; do
714 perl -pi -e 's@-L[^ ]*[acs.] @@g' $RPM_BUILD_ROOT%{_libdir}/$f
716 # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
717 for f in libstdc++.la libsupc++.la libg2c.la \
718 %{!?_without_java:libgcj.la lib-org-w3c-dom.la lib-org-xml-sax.la libffi.la} \
719 %{!?_without_objc:libobjc.la}; do
720 perl -pi -e "s@^libdir='.*@libdir='/usr/lib'@" $RPM_BUILD_ROOT%{_libdir}/$f
723 bzip2 -dc %{SOURCE2} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
724 mv -f $RPM_BUILD_ROOT%{_mandir}/ja/man1/{cccp,cpp}.1
726 # include/ contains install-tools/include/* and headers that were fixed up
727 # by fixincludes, we don't want former
728 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/)
730 # we have to save these however
731 mv -f $gccdir/include/{%{!?_without_objc:objc,}g2c.h,syslimits.h%{!?_without_java:,gcj}} $gccdir/tmp
732 rm -rf $gccdir/include
733 mv -f $gccdir/tmp $gccdir/include
734 cp $gccdir/install-tools/include/*.h $gccdir/include
735 # but we don't want anything more from install-tools
736 rm -rf $gccdir/install-tools/
739 %find_lang libstdc\+\+
742 rm -rf $RPM_BUILD_ROOT
745 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
748 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
751 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
754 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
757 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
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
774 %post -p /sbin/ldconfig -n libgcc
775 %postun -p /sbin/ldconfig -n libgcc
776 %post -p /sbin/ldconfig -n libstdc++
777 %postun -p /sbin/ldconfig -n libstdc++
778 %post -p /sbin/ldconfig -n libobjc
779 %postun -p /sbin/ldconfig -n libobjc
780 %post -p /sbin/ldconfig -n libg2c
781 %postun -p /sbin/ldconfig -n libg2c
782 %post -p /sbin/ldconfig -n libgcj
783 %postun -p /sbin/ldconfig -n libgcj
784 %post -p /sbin/ldconfig -n libgnat
785 %postun -p /sbin/ldconfig -n libgnat
786 %post -p /sbin/ldconfig -n libffi
787 %postun -p /sbin/ldconfig -n libffi
789 %files -f %{name}.lang
790 %defattr(644,root,root,755)
792 %dir %{_libdir}/gcc-lib
793 %dir %{_libdir}/gcc-lib/%{_target_cpu}*
794 %dir %{_libdir}/gcc-lib/%{_target_cpu}*/*
795 %dir %{_libdir}/gcc-lib/%{_target_cpu}*/*/include
796 %attr(755,root,root) %{_bindir}/%{_target_cpu}*-gcc
797 %attr(755,root,root) %{_bindir}/gcc
798 %attr(755,root,root) %{_bindir}/gccbug
799 %attr(755,root,root) %{_bindir}/gcov
800 %attr(755,root,root) %{_bindir}/cc
802 %{_mandir}/man1/gcc.1*
803 %{_mandir}/man1/cc.1*
804 %{_mandir}/man1/gcov.1*
805 %lang(fr) %{_mandir}/fr/man1/gcc.1*
806 %lang(ja) %{_mandir}/ja/man1/gcc.1*
809 %attr(755,root,root) %{_slibdir}/lib*.so
810 %{_libdir}/gcc-lib/%{_target_cpu}*/*/libgcc.a
811 %{_libdir}/gcc-lib/%{_target_cpu}*/*/libgcc_eh.a
812 %{_libdir}/gcc-lib/%{_target_cpu}*/*/specs
813 %attr(644,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/crt*.o
815 %attr(644,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/ecrt*.o
816 %attr(644,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/ncrt*.o
817 %{_libdir}/gcc-lib/%{_target_cpu}*/*/nof
820 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1
821 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/collect2
823 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/*.h
824 %exclude %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/g2c.h
827 %defattr(644,root,root,755)
828 %attr(755,root,root) %{_slibdir}/lib*.so.*
831 %defattr(644,root,root,755)
832 %attr(755,root,root) %{_bindir}/g++
833 %attr(755,root,root) %{_bindir}/%{_target_cpu}*-g++
834 %attr(755,root,root) %{_bindir}/c++
835 %attr(755,root,root) %{_bindir}/%{_target_cpu}*-c++
836 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1plus
837 %{_libdir}/libsupc++.la
839 %{_libdir}/nof/libsupc++.la
840 %{_libdir}/nof/libsupc++.a
842 %{_libdir}/libsupc++.a
843 %{_mandir}/man1/g++.1*
844 %lang(ja) %{_mandir}/ja/man1/g++.1*
846 %files -n libstdc++ -f libstdc++.lang
847 %defattr(644,root,root,755)
848 %attr(755,root,root) %{_libdir}/libstdc++.so.*.*.*
850 %attr(755,root,root) %{_libdir}/nof/libstdc++.so.*.*.*
853 %files -n libstdc++-devel
854 %defattr(644,root,root,755)
855 %doc libstdc++-v3/docs/html
856 %dir %{_includedir}/c++
857 %{_includedir}/c++/%{GCC_VERSION}
858 %attr(755,root,root) %{_libdir}/libstdc++.so
859 %{_libdir}/libstdc++.la
861 %attr(755,root,root) %{_libdir}/nof/libstdc++.so
862 %{_libdir}/nof/libstdc++.la
865 %files -n libstdc++-static
866 %defattr(644,root,root,755)
867 %{_libdir}/libstdc++.a
869 %{_libdir}/nof/libstdc++.a
872 %if %{!?_without_objc:1}0
874 %defattr(644,root,root,755)
876 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1obj
877 %attr(755,root,root) %{_libdir}/libobjc.so
878 %{_libdir}/libobjc.la
880 %attr(755,root,root) %{_libdir}/nof/libobjc.so
881 %{_libdir}/nof/libobjc.la
883 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/objc
886 %defattr(644,root,root,755)
887 %attr(755,root,root) %{_libdir}/libobjc.so.*.*.*
889 %attr(755,root,root) %{_libdir}/nof/libobjc.so.*.*.*
892 %files -n libobjc-static
893 %defattr(644,root,root,755)
896 %{_libdir}/nof/libobjc.a
901 %defattr(644,root,root,755)
902 %attr(755,root,root) %{_bindir}/g77
903 %attr(755,root,root) %{_bindir}/f77
905 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/f771
906 %{_libdir}/libfrtbegin.a
908 %attr(755,root,root) %{_libdir}/libg2c.so
910 %{_libdir}/nof/libfrtbegin.a
911 %{_libdir}/nof/libg2c.la
912 %attr(755,root,root) %{_libdir}/nof/libg2c.so
914 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/g2c.h
915 %{_mandir}/man1/g77.1*
916 %{_mandir}/man1/f77.1*
917 %lang(ja) %{_mandir}/ja/man1/g77.1*
918 %lang(ja) %{_mandir}/ja/man1/f77.1*
921 %defattr(644,root,root,755)
922 %attr(755,root,root) %{_libdir}/libg2c.so.*.*.*
924 %attr(755,root,root) %{_libdir}/nof/libg2c.so.*.*.*
927 %files -n libg2c-static
928 %defattr(644,root,root,755)
931 %{_libdir}/nof/libg2c.a
934 %if %{!?_without_java:1}%{?_without_java:0}
936 %defattr(644,root,root,755)
938 %attr(755,root,root) %{_bindir}/gcj*
939 %attr(755,root,root) %{_bindir}/gij
940 %attr(755,root,root) %{_bindir}/jcf-dump
941 %attr(755,root,root) %{_bindir}/jv-*
942 %attr(755,root,root) %{_bindir}/grepjar
943 %attr(755,root,root) %{_bindir}/%{_target_cpu}*-gcj
944 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/jc1
945 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/jvgenmain
947 %{_mandir}/man1/jcf-*
951 %{_mandir}/man1/grepjar*
954 %defattr(644,root,root,755)
955 %attr(755,root,root) %{_bindir}/rmi*
956 %attr(755,root,root) %{_bindir}/jar
962 %defattr(644,root,root,755)
963 %attr(755,root,root) %{_bindir}/addr2name.awk
964 %attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.*
965 %attr(755,root,root) %{_libdir}/lib-org*.so.*.*.*
967 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
970 %files -n libgcj-devel
971 %defattr(644,root,root,755)
978 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/gcj
979 %dir %{_libdir}/security
980 %{_libdir}/security/*
981 %dir %{_datadir}/java
982 %{_datadir}/java/libgcj*.jar
983 %{_libdir}/lib*cj.spec
984 %{_libdir}/lib*cj*.la
985 %attr(755,root,root) %{_libdir}/lib*cj*.so
986 %attr(755,root,root) %{_libdir}/lib-org-*.so
987 %{_libdir}/lib-org-*.la
989 %{_libdir}/nof/lib*cj*.la
990 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so
993 %files -n libgcj-static
994 %defattr(644,root,root,755)
996 %{_libdir}/lib-org-*.a
998 %{_libdir}/nof/lib*cj*.a
1002 %defattr(644,root,root,755)
1003 %attr(755,root,root) %{_libdir}/libffi-*.so
1005 %files -n libffi-devel
1006 %defattr(644,root,root,755)
1007 %attr(755,root,root) %{_libdir}/libffi.so
1008 %{_libdir}/libffi.la
1011 %files -n libffi-static
1012 %defattr(644,root,root,755)
1016 %if 0%{!?_without_ada:1}
1018 %defattr(644,root,root,755)
1019 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/gnat1
1020 %{_libdir}/gcc-lib/%{_target_cpu}*/*/adainclude
1021 %dir %{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib
1022 %{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/*.ali
1024 %{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/libgmem.a
1026 %{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/Makefile.adalib
1027 %attr(755,root,root) %{_bindir}/gnat*
1029 %attr(755,root,root) %{_libdir}/libgnat*.so
1030 %attr(755,root,root) %{_libdir}/libgnarl*.so
1033 %defattr(644,root,root,755)
1034 %attr(755,root,root) %{_libdir}/libgna*.so.1
1036 %files -n libgnat-static
1037 %defattr(644,root,root,755)
1038 %{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/libgna*.a
1042 %defattr(644,root,root,755)
1043 %doc gcc/ksi/README gcc/ksi/NEWS gcc/ksi/t/*.{ksi,c,foo}
1045 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/ksi1
1048 %defattr(644,root,root,755)
1049 %attr(755,root,root) %{_slibdir}/cpp
1050 %attr(755,root,root) %{_bindir}/cpp
1051 %{_mandir}/man1/cpp.1*
1052 %lang(ja) %{_mandir}/ja/man1/cpp.1*