]> git.pld-linux.org Git - packages/gcc4.git/blobdiff - gcc4.spec
- updated libgmem.a archs
[packages/gcc4.git] / gcc4.spec
index 06f4e37609229dbfef5cc15db2cf39c1b7671a96..0d8c43192bb0720e429eda5fe5526394d7a32a54 100644 (file)
--- a/gcc4.spec
+++ b/gcc4.spec
@@ -3,8 +3,8 @@
 %bcond_without ada             # build without ADA support
 %bcond_without java            # build without Java support
 %bcond_without objc            # build without objc support
+%bcond_with    ssp             # build with stack-smashing protector support
 #
-%define                snap            20040416
 %define                GCC_VERSION     3.4.0
 #
 Summary:       GNU Compiler Collection: the C compiler and shared files
@@ -13,36 +13,49 @@ Summary(pl):        Kolekcja kompilator
 Summary(pt_BR):        Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
 Name:          gcc
 Version:       %{GCC_VERSION}
-Release:       0.%{snap}.1
+Release:       3
 Epoch:         5
 License:       GPL
 Group:         Development/Languages
-#Source0:      ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
-Source0:       ftp://gcc.gnu.org/pub/gcc/prerelease-%{version}-%{snap}/%{name}-%{version}-%{snap}.tar.bz2
-# Source0-md5: d6e215ce39a302c643f3ea8994ef6b68
-#Source0:      ftp://gcc.gnu.org/pub/gcc/snapshots/%{version}-%{snap}/%{name}-%{version}-%{snap}.tar.bz2
+Source0:       ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
+# Source0-md5: 85c6fc83d51be0fbb4f8205accbaff59
 Source1:       http://ep09.pld-linux.org/~djrzulf/gcc33/%{name}-non-english-man-pages.tar.bz2
 # Source1-md5: 4736f3422ddfb808423b745629acc321
+Source2:       http://www.trl.ibm.com/projects/security/ssp/gcc2_95_3/gcc_stack_protect.m4.gz
+# Source2-md5: 07d93ad5fc07ca44cdaba46c658820de
 Patch0:                %{name}-info.patch
 Patch1:                %{name}-nolocalefiles.patch
 Patch2:                %{name}-ada-link-new-libgnat.patch
+Patch3:                %{name}-nodebug.patch
+Patch4:                %{name}-ssp.patch
+Patch5:                %{name}-pr14668.patch
+Patch6:                %{name}-ada-link.patch
+URL:           http://gcc.gnu.org/
 BuildRequires: autoconf
 BuildRequires: automake
-BuildRequires: binutils >= 2.14
+BuildRequires: binutils >= 2.15.90.0.3
 BuildRequires: bison
 BuildRequires: fileutils >= 4.0.41
 BuildRequires: flex
-%{?with_ada:BuildRequires:     gcc-ada}
+%if %{with ada}
+BuildRequires: gcc(ada)
+BuildRequires: gcc-ada
+%endif
 BuildRequires: gettext-devel
 BuildRequires: glibc-devel >= 2.2.5-20
+BuildRequires: gzip
 BuildRequires: perl-devel
 BuildRequires: texinfo >= 4.1
 BuildRequires: zlib-devel
-Requires:      binutils >= 2.14
+Requires:      binutils >= 2.15.90.0.3
 Requires:      cpp = %{epoch}:%{version}-%{release}
 Requires:      libgcc = %{epoch}:%{version}-%{release}
+%{?with_ada:Provides:  gcc(ada)}
+%{?with_ssp:Provides:  gcc(ssp)}
+# ksi for gcc > 3.3.x not ready yet
+Obsoletes:     gcc-ksi
+Obsoletes:     gont
 Conflicts:     glibc-devel < 2.2.5-20
-URL:           http://gcc.gnu.org/
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _slibdir        /%{_lib}
@@ -108,9 +121,9 @@ Summary(es):        Soporte de C++ para gcc
 Summary(pl):   Obs³uga C++ dla gcc
 Summary(pt_BR):        Suporte C++ para o gcc
 Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
 Obsoletes:     egcc-c++
 Obsoletes:     egcs-c++
-Requires:      gcc = %{epoch}:%{version}-%{release}
 
 %description c++
 This package adds C++ support to the GNU Compiler Collection. It
@@ -158,10 +171,10 @@ Summary(fr):      Gestion d'Objective C pour gcc
 Summary(pl):   Obs³uga obiektowego C dla kompilatora gcc
 Summary(tr):   gcc için Objective C desteði
 Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libobjc = %{epoch}:%{version}-%{release}
 Obsoletes:     egcc-objc
 Obsoletes:     egcs-objc
-Requires:      libobjc = %{epoch}:%{version}-%{release}
-Requires:      gcc = %{epoch}:%{version}-%{release}
 
 %description objc
 This package adds Objective C support to the GNU Compiler Collection.
@@ -238,8 +251,8 @@ Summary(es):        Soporte de Fortran 77 para gcc
 Summary(pl):   Obs³uga Fortranu 77 dla gcc
 Summary(pt_BR):        Suporte Fortran 77 para o GCC
 Group:         Development/Languages/Fortran
-Obsoletes:     egcs-g77
 Requires:      libg2c = %{epoch}:%{version}-%{release}
+Obsoletes:     egcs-g77
 
 %description g77
 This package adds support for compiling Fortran 77 programs with the
@@ -293,8 +306,8 @@ Summary(es):        Soporte de Java para gcc
 Summary(pl):   Obs³uga Javy dla gcc
 Group:         Development/Languages/Java
 Requires:      %{name} = %{epoch}:%{version}-%{release}
-Requires:      libgcj >= 3.0.0
-Requires:      libgcj-devel >= 3.0.0
+Requires:      libgcj = %{epoch}:%{version}-%{release}
+Requires:      libgcj-devel = %{epoch}:%{version}-%{release}
 Requires:      java-shared
 Provides:      gcj = %{epoch}:%{version}-%{release}
 
@@ -358,9 +371,8 @@ Summary:    Development files for Java Class Libraries
 Summary(es):   Ficheros de desarrollo para las bibliotecas de clases de Java
 Summary(pl):   Pliki nag³ówkowe dla Bibliotek Klas Javy
 Group:         Development/Libraries
+Requires:      %{name}-java = %{epoch}:%{version}-%{release}
 Requires:      libgcj = %{epoch}:%{version}-%{release}
-Requires:      %{name}-java
-Requires:      pkgconfig
 Obsoletes:     libgcj3-devel
 
 %description -n libgcj-devel
@@ -377,8 +389,8 @@ Summary:    Static Java Class Libraries
 Summary(es):   Bibliotecas estáticas de clases de Java
 Summary(pl):   Statyczne Biblioteki Klas Javy
 Group:         Development/Libraries
-Requires:      libstdc++-devel = %{epoch}:%{version}-%{release}
 Requires:      libgcj-devel = %{epoch}:%{version}-%{release}
+Requires:      libstdc++-devel = %{epoch}:%{version}-%{release}
 
 %description -n libgcj-static
 Static Java Class Libraries.
@@ -440,8 +452,8 @@ Summary(pl):        Pliki nag
 Summary(pt_BR):        Arquivos de inclusão e bibliotecas para o desenvolvimento em C++
 Summary(tr):   C++ ile program geliþtirmek için gerekli dosyalar
 Group:         Development/Libraries
-Requires:      libstdc++ = %{epoch}:%{version}-%{release}
 Requires:      %{name}-c++ = %{epoch}:%{version}-%{release}
+Requires:      libstdc++ = %{epoch}:%{version}-%{release}
 Obsoletes:     libg++-devel
 Obsoletes:     libstdc++3-devel
 
@@ -541,8 +553,8 @@ Summary:    Ada support for gcc
 Summary(es):   Soporte de Ada para gcc
 Summary(pl):   Obs³uga Ady do gcc
 Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
 Requires:      libgnat = %{epoch}:%{version}-%{release}
-Requires:      gcc = %{epoch}:%{version}-%{release}
 Obsoletes:     gcc-gnat
 Obsoletes:     gnat-devel
 
@@ -596,7 +608,6 @@ Summary(es):        El preprocesador de C
 Summary(pl):   Preprocesor C
 Summary(pt_BR):        Preprocessador para a linguagem C
 Group:         Development/Languages
-Version:       %{GCC_VERSION}
 Obsoletes:     egcs-cpp
 Obsoletes:     gcc-cpp
 
@@ -679,14 +690,17 @@ arquivos de cabe
 controle da numeração das linhas do programa.
 
 %prep
-%setup -q -a1 -n %{name}-%{version}-%{snap}
-
+%setup -q -a1
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+%{!?debug:%patch3 -p1}
+%{?with_ssp:%patch4 -p1}
+%patch5 -p1
+%patch6 -p1
 
 # because we distribute modified version of gcc...
-perl -pi -e 's/(version.*)";/$1 (PLD Linux)";/' gcc/version.c
+perl -pi -e 's/(version.*)";/$1 %{?with_ssp:SSP }(PLD Linux)";/' gcc/version.c
 perl -pi -e 's@(bug_report_url.*<URL:).*";@$1http://bugs.pld-linux.org/>";@' gcc/version.c
 
 mv ChangeLog ChangeLog.general
@@ -694,7 +708,7 @@ mv ChangeLog ChangeLog.general
 %build
 # cd gcc && autoconf; cd ..
 # autoconf is not needed!
-cp /usr/share/automake/config.sub .
+cp -f /usr/share/automake/config.sub .
 
 rm -rf obj-%{_target_platform} && install -d obj-%{_target_platform} && cd obj-%{_target_platform}
 
@@ -729,6 +743,7 @@ PATH=$PATH:/sbin:%{_sbindir}
 
 cd ..
 %{__make} -C obj-%{_target_platform} profiledbootstrap \
+       GCJFLAGS="%{rpmcflags}" \
        BOOT_CFLAGS="%{rpmcflags}" \
        STAGE1_CFLAGS="%{rpmcflags}" \
        LDFLAGS_FOR_TARGET="%{rpmldflags}" \
@@ -736,15 +751,19 @@ cd ..
        infodir=%{_infodir}
 
 %if %{with ada}
-%{__make} -C obj-%{_target_platform}/gcc gnatlib gnattools gnatlib-shared \
+# cannot build it in parallel
+for tgt in gnatlib-shared gnattools gnatlib; do
+%{__make} -C obj-%{_target_platform}/gcc $tgt \
+       BOOT_CFLAGS="%{rpmcflags}" \
        LDFLAGS_FOR_TARGET="%{rpmldflags}" \
        mandir=%{_mandir} \
        infodir=%{_infodir}
+done
 %endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/lib,%{_datadir},%{_infodir}}
+install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}}
 
 cd obj-%{_target_platform}
 PATH=$PATH:/sbin:%{_sbindir}
@@ -767,8 +786,14 @@ echo ".so g77.1" > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
 
 %if %{with ada}
 # move ada shared libraries to proper place...
-mv $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so \
-       $RPM_BUILD_ROOT%{_libdir}/
+mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
+       $RPM_BUILD_ROOT%{_libdir}
+# check if symlink to be made is valid
+test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so.1
+ln -sf libgnat-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-3.4.so
+ln -sf libgnarl-3.4.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-3.4.so
+ln -sf libgnat-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
+ln -sf libgnarl-3.4.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
 %endif
 
 ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
@@ -816,6 +841,10 @@ rm -rf $gccdir/install-tools
 %find_lang %{name}
 %find_lang libstdc\+\+
 
+%if %{with ssp}
+zcat %{SOURCE2} > $RPM_BUILD_ROOT%{_aclocaldir}/gcc_stack_protect.m4
+%endif
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -866,6 +895,7 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{_libdir}/gcc/*
 %dir %{_libdir}/gcc/*/*
 %dir %{_libdir}/gcc/*/*/include
+%{?with_ssp:%{_aclocaldir}/gcc_stack_protect.m4}
 %attr(755,root,root) %{_bindir}/*-gcc*
 %attr(755,root,root) %{_bindir}/gcc
 %attr(755,root,root) %{_bindir}/gccbug
@@ -1046,6 +1076,7 @@ rm -rf $RPM_BUILD_ROOT
 %ifarch ppc
 %attr(755,root,root) %{_libdir}/nof/lib*cj*.so.*
 %endif
+%{_libdir}/logging.properties
 
 %files -n libgcj-devel
 %defattr(644,root,root,755)
@@ -1098,19 +1129,24 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/gnat*
 %attr(755,root,root) %{_bindir}/gpr*
+%attr(755,root,root) %{_libdir}/libgnarl*.so
+%attr(755,root,root) %{_libdir}/libgnat*.so
 %attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
 %{_libdir}/gcc/*/*/adainclude
 %dir %{_libdir}/gcc/*/*/adalib
 %{_libdir}/gcc/*/*/adalib/*.ali
-%ifnarch ppc
+%{_libdir}/gcc/*/*/adalib/g-trasym.o
+%{_libdir}/gcc/*/*/adalib/libgccprefix.a
+%ifarch %{ix86}
 %{_libdir}/gcc/*/*/adalib/libgmem.a
 %endif
+%{_datadir}/gnat
 %{_infodir}/gnat*
 
 %files -n libgnat
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libgnarl*.so
-%attr(755,root,root) %{_libdir}/libgnat*.so
+%attr(755,root,root) %{_libdir}/libgnarl*.so.1
+%attr(755,root,root) %{_libdir}/libgnat*.so.1
 
 %files -n libgnat-static
 %defattr(644,root,root,755)
This page took 1.341206 seconds and 4 git commands to generate.