#
# Conditional build:
-# _without_ada - build without ADA support
-# _without_java - build without Java support
+# _without_ada - build without ADA support
+# _without_java - build without Java support
+# _without_objc - build without objc support
#
%define DASHED_SNAP %{nil}
%define SNAP %(echo %{DASHED_SNAP} | sed -e "s#-##g")
-%define GCC_VERSION 3.2.1
+%define GCC_VERSION 3.2.2
%define KSI_VERSION pre55
+%define EPOCH 5
Summary: GNU Compiler Collection
Summary(pl): Kolekcja kompilatorów GNU
Name: gcc
Version: %{GCC_VERSION}
-Release: 0.1
+Release: 0.2
+Epoch: %{EPOCH}
License: GPL
Group: Development/Languages
-Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{GCC_VERSION}/%{name}-3.2.tar.bz2
+Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{GCC_VERSION}/%{name}-%{GCC_VERSION}.tar.bz2
Source1: ftp://ftp.pld.org.pl/people/malekith/ksi/ksi-%{KSI_VERSION}.tar.gz
+Source2: %{name}-non-english-man-pages.tar.bz2
Patch0: %{name}-slibdir.patch
Patch1: %{name}-paths.patch
Patch2: %{name}-ada-no-addr2line.patch
Patch3: %{name}-ada-no-prefix.o.patch
Patch4: %{name}-nolocalefiles.patch
-Patch5: %{name}-march-i686-fix.patch
-Patch6: %{name}-loop-ice.patch
-Patch7: %{name}-mmx-ice.patch
-Patch8: %{name}-mmx-sse-defines.patch
-Patch9: %{name}-athlon-move-costs.patch
+Patch5: %{name}-gcc-page.c.patch
+Patch6: %{name}-info.patch
# -- stolen patches from RH --
Patch10: gcc32-ada-link.patch
Patch11: gcc32-attr-visibility.patch
Patch17: gcc32-bogus-inline.patch
Patch18: gcc32-c++-nrv-test.patch
Patch19: gcc32-c++-pretty_function.patch
-# evil? introduced ICE at cp/cp-lang.c:130
-Patch20: gcc32-c++-tail-pad.patch
-Patch21: gcc32-c++-tail-pad2.patch
-Patch22: gcc32-c++-tsubst-asm.patch
-Patch23: gcc32-cfg-eh.patch
-Patch24: gcc32-debug-pr7241.patch
-Patch25: gcc32-doc-gcov.patch
-Patch26: gcc32-duplicate-decl.patch
-Patch27: gcc32-dwarf2-pr6381.patch
-Patch28: gcc32-dwarf2-pr6436-test.patch
-Patch29: gcc32-fde-merge-compat.patch
-Patch30: gcc32-fold-const-associate.patch
-Patch31: gcc32-fold-const2.patch
-Patch32: gcc32-hard-reg-sharing.patch
-Patch33: gcc32-hard-reg-sharing2.patch
-Patch34: gcc32-i386-default-momit-leaf-frame-pointer.patch
-Patch35: gcc32-i386-memtest-test.patch
-Patch36: gcc32-i386-no-default-momit-leaf-frame-pointer.patch
-Patch37: gcc32-i386-pic-label-thunk.patch
-# included in gcc-mmx-sse-defines.patch
-#Patch38: gcc32-i386-pr7242.patch
-Patch39: gcc32-i386-profile-olfp.patch
-Patch40: gcc32-inline-label.patch
-Patch41: gcc32-java-no-rpath.patch
-Patch42: gcc32-loop-prefetch.patch
-Patch43: gcc32-pr6842.patch
-Patch44: gcc32-rh69989.patch
-Patch45: gcc32-sparc-sll1.patch
-Patch46: gcc32-test-rh65771.patch
-Patch47: gcc32-test-rotate.patch
-Patch48: gcc32-tls-dwarf2.patch
-Patch49: gcc32-tls.patch
-Patch50: gcc32-tls2.patch
-Patch51: gcc32-tls3.patch
-Patch52: gcc32-tls4.patch
-Patch53: gcc32-tls5.patch
-#Patch54: gcc32-tree-code.patch
-#Patch55: gcc32-trunc_int_for_mode.patch
-Patch56: gcc32-typeof-asm.patch
-Patch57: gcc32-typeof-skip-eval.patch
-
-Patch58: gcc32-locale_in_monetary_members.patch
-Patch59: gcc32-locale_in_ctype_members.patch
-Patch60: gcc32-locale_in_ctype_members_header.patch
-Patch61: gcc32-libstdc++-glibc.patch
-
-Patch100: gcc-pre-3.2.1.patch.gz
-
-
+Patch20: gcc32-c++-tsubst-asm.patch
+Patch21: gcc32-cfg-eh.patch
+Patch22: gcc32-debug-pr7241.patch
+
+Patch24: gcc32-duplicate-decl.patch
+Patch25: gcc32-dwarf2-pr6381.patch
+Patch26: gcc32-dwarf2-pr6436-test.patch
+Patch27: gcc32-fde-merge-compat.patch
+
+Patch29: gcc32-hard-reg-sharing.patch
+Patch30: gcc32-hard-reg-sharing2.patch
+Patch31: gcc32-i386-default-momit-leaf-frame-pointer.patch
+Patch32: gcc32-i386-memtest-test.patch
+Patch33: gcc32-i386-no-default-momit-leaf-frame-pointer.patch
+Patch34: gcc32-i386-pic-label-thunk.patch
+Patch35: gcc32-i386-profile-olfp.patch
+Patch36: gcc32-inline-label.patch
+Patch37: gcc32-java-no-rpath.patch
+Patch38: gcc32-pr6842.patch
+Patch39: gcc32-sparc-sll1.patch
+Patch40: gcc32-test-rh65771.patch
+Patch41: gcc32-test-rotate.patch
+Patch42: gcc32-tls-dwarf2.patch
+Patch43: gcc32-tls.patch
+Patch44: gcc32-tls2.patch
+Patch45: gcc32-tls3.patch
+Patch46: gcc32-tls4.patch
+Patch47: gcc32-tls5.patch
+BuildRequires: autoconf
BuildRequires: bison
-BuildRequires: texinfo >= 4.1
-BuildRequires: zlib-devel
BuildRequires: fileutils >= 4.0.41
-BuildRequires: autoconf
BuildRequires: gcc
%{!?_without_ada:BuildRequires: gcc-ada}
+BuildRequires: glibc-devel >= 2.2.5-20
BuildRequires: perl-devel
+BuildRequires: texinfo >= 4.1
+BuildRequires: zlib-devel
+BuildRequires: gettext-devel
Requires: binutils >= 2.12.90.0.4
Requires: cpp = %{GCC_VERSION}
Requires: libgcc = %{GCC_VERSION}
Summary(pl): Biblioteki Obiektowego C
Group: Libraries
Version: %{GCC_VERSION}
-Epoch: 3
%description -n libobjc
Objective C Libraries.
Summary(pl): Statyczne Biblioteki Obiektowego C
Group: Development/Libraries
Version: %{GCC_VERSION}
-Epoch: 4
Requires: libobjc = %{GCC_VERSION}
%description -n libobjc-static
Summary(pl): Statyczne Biblioteki Fortranu 77
Group: Development/Libraries
Version: %{GCC_VERSION}
-Epoch: 2
Requires: libg2c = %{GCC_VERSION}
%description -n libg2c-static
Version: %{GCC_VERSION}
Requires: %{name} = %{version}
Requires: libgcj >= 3.0.0
+Requires: libgcj-devel >= 3.0.0
Provides: gcj = %{epoch}:%{GCC_VERSION}-%{release}
Provides: jar = %{epoch}:%{GCC_VERSION}-%{release}
+Obsoletes: fastjar
%description java
This package adds experimental support for compiling Java(tm) programs
Summary(pl): Biblioteki Klas Javy
Group: Libraries
Version: %{GCC_VERSION}
-Epoch: 2
Requires: zlib
%description -n libgcj
Summary(pl): Pliki nag³ówkowe dla Bibliotek Klas Javy
Group: Development/Libraries
Version: %{GCC_VERSION}
-Epoch: 2
Requires: libgcj = %{GCC_VERSION}
Requires: %{name}-java
Summary(pl): Statyczne Biblioteki Klas Javy
Group: Development/Libraries
Version: %{GCC_VERSION}
-Epoch: 2
Requires: libstdc++-devel = %{GCC_VERSION}
Requires: libgcj-devel = %{GCC_VERSION}
%package -n libstdc++
Summary: GNU c++ library
-Summary(pl): Biblioteki GNU C++
+Summary(pl): Biblioteki GNU C++
Group: Libraries
Version: %{GCC_VERSION}
-Epoch: 1
Obsoletes: libg++
%description -n libstdc++
%package -n libstdc++-devel
Summary: Header files and documentatino for C++ development
Summary(de): Header-Dateien zur Entwicklung mit C++
-Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++.
+Summary(fr): Fichiers d'en-tête et biblitothèques pour développer en C++
Summary(pl): Pliki nag³ówkowe i dokumentacja do biblioteki standardowej C++
Summary(tr): C++ ile program geliþtirmek için gerekli dosyalar
Group: Development/Libraries
Version: %{GCC_VERSION}
-Epoch: 1
Requires: libstdc++ = %{GCC_VERSION}
Requires: %{name}-c++
Obsoletes: libg++-devel
Summary(pl): Statyczna biblioteka standardowa C++
Group: Development/Libraries
Version: %{GCC_VERSION}
-Epoch: 1
Requires: libstdc++-devel = %{GCC_VERSION}
%description -n libstdc++-static
Version: %{GCC_VERSION}
Requires: libgnat = %{GCC_VERSION}
Requires: gcc = %{GCC_VERSION}
+Obsoletes: gcc-gnat
Obsoletes: gnat-devel
%description ada
odpowiada fragment pliku wynikowego.
%prep
-%setup -q -a1 -n %{name}-3.2
+%setup -q -a1 -n %{name}-%{GCC_VERSION}
mv ksi-%{KSI_VERSION} gcc/ksi
-%patch100 -p1
%patch0 -p1
%patch1 -p1
%patch2 -p1
-%patch3 -p1
+#%patch3 -p1
%patch4 -p1
-%ifarch %{ix86}
-%patch5 -p0
-%endif
-#%patch6 -p1
-%patch7 -p1
-#%patch8 -p1
-#%patch9 -p1
-%patch10
-%patch11
-%patch12
-%patch13
-%patch14
-%patch15
-%patch16
-%patch17
-%patch18
-%patch19
-#%patch20 # introduced ICE at cp/cp-lang.c:130
-%patch21
-%patch22
-%patch23
-%patch24
-%patch25
-%patch26
-%patch27
-%patch28
-%patch29
-%patch30
-%patch31
-%patch32
-%patch33
-%patch34
-%patch35
-%patch36
-%patch37
-#%patch38 # included in gcc-mmx-sse-defines.patch
-%patch39
-%patch40
-%patch41
-%patch42
-%patch43
-%patch44
-%patch45
-%patch46
-%patch47
-%patch48
-%patch49
-%patch50
-%patch51
-%patch52
-%patch53
-#%patch54
-#%patch55
-%patch56
-%patch57
-%patch58
-%patch59
-%patch60
-%patch61
+%patch5 -p1
+
+#%patch10
+%patch11
+%patch12
+%patch13
+%patch14
+%patch15
+#%patch16
+%patch17
+%patch18
+%patch19
+%patch20
+%patch21
+%patch22
+
+%patch24
+%patch25
+%patch26
+%patch27
+%patch29
+%patch30
+%patch31
+%patch32
+%patch33
+%patch34
+%patch35
+%patch36
+%patch37
+%patch38
+%patch39
+%patch40
+%patch41
+%patch42
+%patch43
+%patch44
+%patch45
+%patch46
+%patch47
+
+%patch6 -p1
+
+perl -p -i -e 's/";/ (PLD Linux)";/' gcc/version.c
%build
# cd gcc && autoconf; cd ..
--enable-shared \
--enable-threads=posix \
--enable-__cxa_atexit \
- --enable-languages="c,c++,f77,gcov,objc,ksi%{!?_without_ada:,ada}%{!?_without_java:,java}" \
+ --enable-languages="c,c++,f77,gcov%{?!_without_objc:,objc},ksi%{!?_without_ada:,ada}%{!?_without_java:,java}" \
--enable-c99 \
--enable-long-long \
--enable-multilib \
ln -sf g77 $RPM_BUILD_ROOT%{_bindir}/f77
echo .so g77.1 > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
-(cd $RPM_BUILD_ROOT%{_libdir} ; LIBSTDC=$(ls libstdc++.so.*.*.*) ; \
- cd $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/ ; \
- ln -sf ../../../${LIBSTDC} libstdc++.so ; \
- ln -sf ../../../libstdc++.la libstdc++.la)
-
-mv $RPM_BUILD_ROOT%{_libdir}/libstdc++.a \
- $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/
-
-LIBSTDC=$(ls -d $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/* | sed -e "s#$RPM_BUILD_ROOT##g")
-mv $RPM_BUILD_ROOT%{_libdir}/libstdc++.la $RPM_BUILD_ROOT%{_libdir}/libstdc++.la.old
-sed -e "s#^libdir='/usr/lib'#libdir='$LIBSTDC'#g" $RPM_BUILD_ROOT%{_libdir}/libstdc++.la.old \
- > $RPM_BUILD_ROOT%{_libdir}/libstdc++.la
-
%if %{!?_without_ada:1}%{?_without_ada:0}
# move ada shared libraries to proper place...
-mv $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/*-*so.1 \
+mv $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/*-*so \
$RPM_BUILD_ROOT%{_libdir}
-rm -f $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/*.so.1
+rm -f $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/*.so
(cd $RPM_BUILD_ROOT%{_libdir} && \
- ln -s libgnat-*so.1 libgnat.so.1 && \
- ln -s libgnarl-*so.1 libgnarl.so.1)
+ ln -s libgnat-*so libgnat.so.1 && ln -s libgnat-*so libgnat.so && \
+ ln -s libgnarl-*so libgnarl.so.1 && ln -s libgnarl-*so libgnarl.so)
%endif
ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
cd ..
%if %{!?_without_ada:1}%{?_without_ada:0}
-install obj-%{_target_platform}/gcc/ada/gnat_rm.info* $RPM_BUILD_ROOT%{_infodir}
+install obj-%{_target_platform}/gcc/ada/gnat_rm.info* $RPM_BUILD_ROOT%{_infodir}
+install obj-%{_target_platform}/gcc/ada/gnat_ug_unx.info* $RPM_BUILD_ROOT%{_infodir}
%endif
%if %{!?_without_java:1}%{?_without_java:0}
cp -f fastjar/README java-doc/README.fastjar
cp -f libffi/README java-doc/README.libffi
cp -f libffi/LICENSE java-doc/LICENSE.libffi
+%endif
+%if %{?!_without_objc:1}0
cp -f libobjc/README gcc/objc/README.libobjc
%endif
+# avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc-lib/*/%{version}
+for f in libstdc++.la %{!?_without_java:libgcj.la} ; do
+ perl -pi -e 's@-L[^ ]*[acs.] @@g' $RPM_BUILD_ROOT%{_libdir}/$f
+done
+
+bzip2 -dc %{SOURCE2} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
+mv -f $RPM_BUILD_ROOT%{_mandir}/ja/man1/{cccp,cpp}.1
+
%find_lang %{name}
%find_lang libstdc\+\+
%{_mandir}/man1/gcc.1*
%{_mandir}/man1/cc.1*
%{_mandir}/man1/gcov.1*
+%lang(fr) %{_mandir}/fr/man1/gcc.1*
+%lang(ja) %{_mandir}/ja/man1/gcc.1*
%{_infodir}/gcc*
%{_libdir}/gcc-lib/%{_target_cpu}*/*/libgcc.a
%attr(755,root,root) %{_bindir}/%{_target_cpu}*-c++
%attr(755,root,root) %{_bindir}/c++filt
%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1plus
-%attr(755,root,root) %{_libdir}/libsupc++.la
+%{_libdir}/libsupc++.la
%ifarch ppc
-%attr(755,root,root) %{_libdir}/nof/libsupc++.la
+%{_libdir}/nof/libsupc++.la
%{_libdir}/nof/libsupc++.a
%endif
%{_libdir}/libsupc++.a
%{_mandir}/man1/g++.1*
+%lang(es) %{_mandir}/es/man1/c++filt.1*
+%lang(ja) %{_mandir}/ja/man1/g++.1*
%files -n libstdc++ -f libstdc++.lang
%defattr(644,root,root,755)
%doc libstdc++-v3/docs/html
%dir %{_includedir}/c++
%{_includedir}/c++/%{GCC_VERSION}
-%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/libstdc++.so
-%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/libstdc++.la
-%attr(755,root,root) %{_libdir}/libstdc++.la
+%attr(755,root,root) %{_libdir}/libstdc++.so
+%{_libdir}/libstdc++.la
%ifarch ppc
%attr(755,root,root) %{_libdir}/nof/libstdc++.so
-%attr(755,root,root) %{_libdir}/nof/libstdc++.la
+%{_libdir}/nof/libstdc++.la
%endif
%files -n libstdc++-static
%defattr(644,root,root,755)
-%{_libdir}/gcc-lib/%{_target_cpu}*/*/libstdc++.a
+%{_libdir}/libstdc++.a
%ifarch ppc
%{_libdir}/nof/libstdc++.a
%endif
+%if %{?!_without_objc:1}0
%files objc
%defattr(644,root,root,755)
%doc gcc/objc/READ*
%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1obj
%attr(755,root,root) %{_libdir}/libobjc.so
-%attr(755,root,root) %{_libdir}/libobjc.la
+%{_libdir}/libobjc.la
%ifarch ppc
%attr(755,root,root) %{_libdir}/nof/libobjc.so
-%attr(755,root,root) %{_libdir}/nof/libobjc.la
+%{_libdir}/nof/libobjc.la
%endif
%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/objc
%ifarch ppc
%{_libdir}/nof/libobjc.a
%endif
+%endif
%files g77
%defattr(644,root,root,755)
%{_infodir}/g77*
%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/f771
%{_libdir}/libfrtbegin.a
-%attr(755,root,root) %{_libdir}/libg2c.la
+%{_libdir}/libg2c.la
%attr(755,root,root) %{_libdir}/libg2c.so
%ifarch ppc
%{_libdir}/nof/libfrtbegin.a
-%attr(755,root,root) %{_libdir}/nof/libg2c.la
+%{_libdir}/nof/libg2c.la
%attr(755,root,root) %{_libdir}/nof/libg2c.so
%endif
+%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/g2c.h
%{_mandir}/man1/g77.1*
%{_mandir}/man1/f77.1*
-%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/g2c.h
+%lang(ja) %{_mandir}/ja/man1/g77.1*
+%lang(ja) %{_mandir}/ja/man1/f77.1*
%files -n libg2c
%defattr(644,root,root,755)
%endif
%files -n libg2c-static
+%defattr(644,root,root,755)
%{_libdir}/libg2c.a
%ifarch ppc
%{_libdir}/nof/libg2c.a
%{_includedir}/j*.h
%{_includedir}/gnu/*
%{_libdir}/gcc-lib/%{_target_cpu}*/*/include/gcj
+%dir %{_libdir}/security
%{_libdir}/security/*
%dir %{_datadir}/java
%{_datadir}/java/libgcj*.jar
%{_libdir}/lib*cj.spec
-%attr(755,root,root) %{_libdir}/lib*cj*.la
+%{_libdir}/lib*cj*.la
%attr(755,root,root) %{_libdir}/lib*cj*.so
%ifarch ppc
-%{_libdir}/nof/lib*cj.spec
-%attr(755,root,root) %{_libdir}/nof/lib*cj*.la
+%{_libdir}/nof/lib*cj*.la
%attr(755,root,root) %{_libdir}/nof/lib*cj*.so
%endif
%{_libdir}/gcc-lib/%{_target_cpu}*/*/adalib/Makefile.adalib
%attr(755,root,root) %{_bindir}/gnat*
%{_infodir}/gnat*
-%attr(755,root,root) %{_libdir}/libgnat.so.1
-%attr(755,root,root) %{_libdir}/libgnarl.so.1
+%attr(755,root,root) %{_libdir}/libgnat.so*
+%attr(755,root,root) %{_libdir}/libgnarl.so*
%files -n libgnat
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libgna*-*so.1
+%attr(755,root,root) %{_libdir}/libgna*-*so
%files -n libgnat-static
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cpp0
%attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/tradcpp0
%{_mandir}/man1/cpp.1*
+%lang(ja) %{_mandir}/ja/man1/cpp.1*
%{_infodir}/cpp*