X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=gcc.spec;h=f66bd1833415f4ef37da89c4ca2cd3878e7f9e06;hb=74f9f6b56779db3ab804c56b6f97b1f02144e78b;hp=3282314d050b68dbfae232fed54e43190ba60b22;hpb=f27572e6e19157d524c84c91cd6a482c137b911d;p=packages%2Fgcc.git diff --git a/gcc.spec b/gcc.spec index 3282314..f66bd18 100644 --- a/gcc.spec +++ b/gcc.spec @@ -6,16 +6,11 @@ %bcond_without java # build without Java support %bcond_without objc # build without Objective-C support %bcond_without objcxx # build without Objective-C++ support -%bcond_with multilib # build with multilib support (it needs glibc[32&64]-devel) +%bcond_without multilib # build without multilib support (it needs glibc[32&64]-devel) %bcond_with profiling # build with profiling %bcond_without bootstrap # omit 3-stage bootstrap %bcond_with tests # torture gcc -%if %{with multilib} -# the latest chrpath(64) can't handle 32-bit binaries :/ -%define _noautochrpath .*/lib/.*\\.so.* -%endif - %if %{without cxx} %undefine with_java %undefine with_objcxx @@ -38,42 +33,62 @@ Summary(es): Colecci Summary(pl): Kolekcja kompilatorów GNU: kompilator C i pliki wspó³dzielone Summary(pt_BR): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados Name: gcc -Version: 4.1.0 -%define _snap 20051031T1945UTC -Release: 0.%{_snap}.1 +Version: 4.1.1 +%define _snap 20060501r113407 +Release: 0.%{_snap}.4 +#Release: 2 Epoch: 5 License: GPL v2+ Group: Development/Languages +#Source0: ftp://gcc.gnu.org/pub/gcc/prerelease-%{version}-%{_snap}/gcc-%{version}-%{_snap}.tar.bz2 #Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2 #Source0: ftp://gcc.gnu.org/pub/gcc/snapshots/4.1-%{_snap}/gcc-4.1-%{_snap}.tar.bz2 Source0: gcc-4.1-%{_snap}.tar.bz2 -# Source0-md5: af17be77bd26b96a4fdadf7b78f799d0 +# Source0-md5: d123391fc5f1ab1c37ee8bd1a714b322 Source1: %{name}-optimize-la.pl Patch0: %{name}-info.patch Patch1: %{name}-nolocalefiles.patch Patch2: %{name}-nodebug.patch -Patch3: %{name}-ada-link-new-libgnat.patch -Patch4: %{name}-ada-link.patch +Patch3: %{name}-ada-link.patch +Patch4: %{name}-sparc64-ada_fix.patch Patch5: %{name}-alpha-ada_fix.patch # -fvisibility fixes... Patch6: %{name}-pr19664_gnu_internal.patch +Patch7: %{name}-pr19664_libstdc++.patch +Patch8: %{name}-pr20218.patch + # PRs Patch10: %{name}-pr7776.patch -Patch11: %{name}-pr20297.patch -Patch12: %{name}-pr22429.patch -Patch13: %{name}-pr22533.patch -Patch14: %{name}-x87-mmx-switch.patch -Patch15: %{name}-x87-mmx-eh.patch -Patch16: %{name}-pr23948.patch +Patch11: %{name}-pr26565.patch +Patch12: %{name}-pr19606.patch +Patch13: %{name}-pr24879.patch +Patch14: %{name}-pr26912.patch +Patch15: %{name}-pr27364.patch + Patch17: %{name}-pr19505.patch Patch18: %{name}-pr24419.patch +Patch19: %{name}-pr24669.patch +Patch20: %{name}-pr17390.patch +Patch21: %{name}-pr13676.patch +Patch22: %{name}-pr25626.patch +Patch23: %{name}-libstdcxx-bitset.patch + +Patch25: %{name}-libjava-multilib.patch +Patch26: %{name}-ppc64-m32-m64-multilib-only.patch +Patch27: %{name}-enable-java-awt-qt.patch + +# 128-bit long double support for glibc 2.4 +Patch30: %{name}-ldbl-default-libstdc++.patch +Patch31: %{name}-ldbl-default.patch + URL: http://gcc.gnu.org/ BuildRequires: autoconf %{?with_tests:BuildRequires: autogen} BuildRequires: automake -BuildRequires: binutils >= 2:2.15.94.0.1 +# binutils 2.16.91 or newer are required for compiling medium model now +BuildRequires: binutils >= 2:2.16.91.0.1 BuildRequires: bison -%{?with_java:BuildRequires: cairo-devel >= 0.5.0} +BuildRequires: chrpath >= 0.13-2 %{?with_tests:BuildRequires: dejagnu} BuildRequires: fileutils >= 4.0.41 BuildRequires: flex @@ -82,17 +97,43 @@ BuildRequires: gcc(ada) BuildRequires: gcc-ada %endif BuildRequires: gettext-devel -BuildRequires: glibc-devel >= %{!?with_multilib:2.2.5-20}%{?with_multilib:6:2.3.4-1.5} -%if %{with fortran} -BuildRequires: gmp-devel -BuildRequires: libmpfr-devel +BuildRequires: glibc-devel >= 6:2.4-1 +%if %{with multilib} +%ifarch %{x8664} +BuildRequires: glibc-devel(i686) +%endif +%ifarch ppc64 +BuildRequires: glibc-devel(ppc) +%endif +%ifarch s390x +BuildRequires: glibc-devel(s390) +%endif +%ifarch sparc64 +BuildRequires: glibc-devel(sparc) +%endif %endif -%{?with_java:BuildRequires: pango-devel} BuildRequires: perl-devel -%{?with_java:BuildRequires: pkgconfig} BuildRequires: rpmbuild(macros) >= 1.211 BuildRequires: texinfo >= 4.1 BuildRequires: zlib-devel +%if %{with fortran} +BuildRequires: gmp-devel +BuildRequires: mpfr-devel +%endif +%if %{with java} +BuildRequires: QtGui-devel >= 4.0.1 +BuildRequires: alsa-lib-devel +BuildRequires: cairo-devel >= 0.5.0 +BuildRequires: dssi +BuildRequires: jack-audio-connection-kit-devel +BuildRequires: gtk+2-devel >= 2:2.4.0 +BuildRequires: libart_lgpl-devel >= 2.1 +BuildRequires: libxslt-devel +BuildRequires: pango-devel +BuildRequires: pkgconfig +BuildRequires: qt4-build +BuildRequires: xorg-lib-libXtst-devel +%endif # AS_NEEDED directive for dynamic linker # http://sources.redhat.com/ml/glibc-cvs/2005-q1/msg00614.html # http://sources.redhat.com/ml/binutils/2005-01/msg00288.html @@ -717,31 +758,46 @@ Statyczne biblioteki Obiektowego C. %prep #setup -q -n gcc-%{version} -%setup -q -n gcc-4.1-%{_snap} +#setup -q -n gcc-%{version}-%{_snap} +%setup -q -n gcc-4_1-branch %patch0 -p1 %patch1 -p1 -%{!?debug:%patch2 -p1} +%patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 # -fvisbility fixes... %patch6 -p1 +%patch7 -p1 +%patch8 -p1 # PRs %patch10 -p1 %patch11 -p1 -%patch12 -p1 -%patch13 -p1 -#patch14 -p1 NEEDS UPDATE -#patch15 -p1 -%patch16 -p1 +%patch12 -p0 +%patch13 -p0 +%patch14 -p1 +%patch15 -p1 + %patch17 -p1 %patch18 -p1 +%patch19 -p1 +%patch20 -p1 +%patch21 -p1 +%patch22 -p1 +%patch23 -p1 + +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 + +%patch30 -p0 +%patch31 -p0 # because we distribute modified version of gcc... -perl -pi -e 's/(version.*)";/$1 (PLD Linux)";/' gcc/version.c +sed -i 's:#define VERSUFFIX.*:#define VERSUFFIX " (PLD-Linux)":' gcc/version.c perl -pi -e 's@(bug_report_url.*";@' gcc/version.c mv ChangeLog ChangeLog.general @@ -750,25 +806,29 @@ mv ChangeLog ChangeLog.general cd gcc %{__autoconf} cd .. +cd libjava +%{__autoconf} +cd classpath +%{__autoconf} +cd ../.. cp -f /usr/share/automake/config.sub . -rm -rf obj-%{_target_platform} -install -d obj-%{_target_platform} -cd obj-%{_target_platform} +rm -rf builddir && install -d builddir && cd builddir CFLAGS="%{rpmcflags}" \ CXXFLAGS="%{rpmcxxflags}" \ TEXCONFIG=false \ ../configure \ --prefix=%{_prefix} \ + --with-local-prefix=%{_prefix}/local \ --libdir=%{_libdir} \ --libexecdir=%{_libdir} \ --infodir=%{_infodir} \ --mandir=%{_mandir} \ + --x-libraries=%{_libdir} \ --enable-shared \ --enable-threads=posix \ - --enable-__cxa_atexit \ - --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,f95}%{?with_objc:,objc}%{?with_objcxx:,obj-c++}%{?with_ada:,ada}%{?with_java:,java}" \ + --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,fortran}%{?with_objc:,objc}%{?with_objcxx:,obj-c++}%{?with_ada:,ada}%{?with_java:,java}" \ --enable-c99 \ --enable-long-long \ --%{?with_multilib:en}%{!?with_multilib:dis}able-multilib \ @@ -779,34 +839,57 @@ TEXCONFIG=false \ --with-demangler-in-ld \ --with-system-zlib \ --with-slibdir=%{_slibdir} \ - --without-x \ +%ifnarch ia64 + --without-system-libunwind \ +%else + --with-system-libunwind \ +%endif + %{!?with_java:--without-x} \ %{?with_fortran:--enable-cmath} \ + --with-long-double-128 \ +%ifarch ppc ppc64 + --enable-secureplt \ +%endif +%if %{with cxx} + --with-gxx-include-dir=%{_includedir}/c++/%{version} \ + --disable-libstdcxx-pch \ + --enable-__cxa_atexit \ + --enable-libstdcxx-allocator=new \ +%endif %if %{with java} + --with-qt4dir=%{_libdir}/qt4 \ + --disable-libjava-multilib \ --enable-libgcj \ --enable-libgcj-multifile \ --enable-libgcj-database \ --enable-gtk-cairo \ + --enable-java-awt=qt,gtk,xlib \ + --enable-jni \ + --enable-xmlj \ + --enable-alsa \ + --enable-dssi \ %endif %{_target_platform} cd .. -%{__make} -C obj-%{_target_platform} \ +%{__make} -C builddir \ %{?with_bootstrap:%{?with_profiling:profiled}bootstrap} \ GCJFLAGS="%{rpmcflags}" \ BOOT_CFLAGS="%{rpmcflags}" \ STAGE1_CFLAGS="%{rpmcflags} -O0" \ + GNATLIBCFLAGS="%{rpmcflags}" \ LDFLAGS_FOR_TARGET="%{rpmldflags}" \ mandir=%{_mandir} \ infodir=%{_infodir} -%{?with_tests:%{__make} -k -C obj-%{_target_platform} check 2>&1 ||:} +%{?with_tests:%{__make} -k -C builddir check 2>&1 ||:} %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}} -cd obj-%{_target_platform} +cd builddir %{__make} -j1 install \ mandir=%{_mandir} \ @@ -828,7 +911,7 @@ libssp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libssp.so.*.*.*) mv $RPM_BUILD_ROOT{%{_libdir}/$libssp,%{_slibdir}} ln -sf %{_slibdir}/$libssp $RPM_BUILD_ROOT%{_libdir}/libssp.so %if %{with multilib} -libssp=$($RPM_BUILD_ROOT%{_libdir32}; echo libssp.so.*.*.*`) +libssp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libssp.so.*.*.*) mv $RPM_BUILD_ROOT{%{_libdir32}/$libssp,%{_slibdir32}} ln -sf %{_slibdir32}/$libssp $RPM_BUILD_ROOT%{_libdir32}/libssp.so %endif @@ -843,11 +926,11 @@ echo ".so gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1 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-4.0.so.1 -ln -sf libgnat-4.0.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-4.0.so -ln -sf libgnarl-4.0.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-4.0.so -ln -sf libgnat-4.0.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so -ln -sf libgnarl-4.0.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so +test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-4.1.so.1 +ln -sf libgnat-4.1.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnat-4.1.so +ln -sf libgnarl-4.1.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-4.1.so +ln -sf libgnat-4.1.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so +ln -sf libgnarl-4.1.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so %endif cd .. @@ -859,6 +942,7 @@ cp -f fastjar/README java-doc/README.fastjar cp -f libffi/README java-doc/README.libffi cp -f libffi/LICENSE java-doc/LICENSE.libffi ln -sf %{_javadir}/libgcj-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/libgcj.jar +rm -f $RPM_BUILD_ROOT%{_libdir}/classpath/libgjs*.la %endif %if %{with objc} cp -f libobjc/README gcc/objc/README.libobjc @@ -874,11 +958,17 @@ for f in libmudflap.la libmudflapth.la libssp.la \ do %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/$f %{_libdir} > $RPM_BUILD_ROOT%{_libdir}/$f.fixed mv $RPM_BUILD_ROOT%{_libdir}/$f{.fixed,} +done %if %{with multilib} +for f in libmudflap.la libmudflapth.la libssp.la \ + %{?with_cxx:libstdc++.la libsupc++.la} \ + %{?with_fortran:libgfortran.la libgfortranbegin.la} \ + %{?with_objc:libobjc.la}; +do %{SOURCE1} $RPM_BUILD_ROOT%{_libdir32}/$f %{_libdir32} > $RPM_BUILD_ROOT%{_libdir32}/$f.fixed mv $RPM_BUILD_ROOT%{_libdir32}/$f{.fixed,} -%endif done +%endif # include/ contains install-tools/include/* and headers that were fixed up # by fixincludes, we don't want former @@ -889,19 +979,21 @@ mkdir $gccdir/tmp %{?with_java:mv $gccdir/include/{gcj,libffi/ffitarget.h,jawt.h,jawt_md.h,jni.h,jni_md.h,jvmpi.h} $gccdir/tmp} %{?with_objc:mv $gccdir/include/objc $gccdir/tmp} mv $gccdir/include/syslimits.h $gccdir/tmp +mv $gccdir/include/ssp $gccdir/tmp rm -rf $gccdir/include mv $gccdir/tmp $gccdir/include cp $gccdir/install-tools/include/*.h $gccdir/include # but we don't want anything more from install-tools rm -rf $gccdir/install-tools -%if %{with multilib} -ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/32/libgcc_s.so -%endif -ln -sf %{_slibdir}/libgcc_s.so.1 $gccdir/libgcc_s.so - %find_lang gcc -%{?with_cxx:%find_lang libstdc\+\+} +%find_lang cpplib +cat cpplib.lang >> gcc.lang + +%if %{with cxx} +%find_lang libstdc\+\+ +install libstdc++-v3/include/stdc++.h $RPM_BUILD_ROOT%{_includedir} +%endif # cvs snap doesn't contain (release does) below files, # so let's create dummy entries to satisfy %%files. @@ -962,6 +1054,7 @@ rm -rf $RPM_BUILD_ROOT %dir %{_libdir}/gcc/* %dir %{_libdir}/gcc/*/* %dir %{_libdir}/gcc/*/*/include +%dir %{_libdir}/gcc/*/*/include/ssp %attr(755,root,root) %{_bindir}/*-gcc* %attr(755,root,root) %{_bindir}/gcc @@ -970,8 +1063,6 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/cc %attr(755,root,root) %{_bindir}/cpp -%{_includedir}/ssp - %{_mandir}/man1/cc.1* %{_mandir}/man1/cpp.1* %{_mandir}/man1/gcc.1* @@ -983,19 +1074,19 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) /lib/cpp %attr(755,root,root) %{_slibdir}/lib*.so +%{_libdir}/libssp.a %{_libdir}/libssp.la -%attr(755,root,root) %{_libdir}/libssp.a %attr(755,root,root) %{_libdir}/libssp.so %{_libdir}/libssp_nonshared.a %{_libdir}/libssp_nonshared.la %if %{with multilib} +%attr(755,root,root) %{_slibdir32}/lib*.so %dir %{_libdir}/gcc/*/*/32 %{_libdir}/gcc/*/*/32/libgcov.a %{_libdir}/gcc/*/*/32/libgcc.a %{_libdir}/gcc/*/*/32/libgcc_eh.a -%{_libdir}/gcc/*/*/32/libgcc_s.so +%{_libdir32}/libssp.a %{_libdir32}/libssp.la -%attr(755,root,root) %{_libdir32}/libssp.a %attr(755,root,root) %{_libdir32}/libssp.so %{_libdir32}/libssp_nonshared.a %{_libdir32}/libssp_nonshared.la @@ -1003,7 +1094,6 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/gcc/*/*/libgcov.a %{_libdir}/gcc/*/*/libgcc.a %{_libdir}/gcc/*/*/libgcc_eh.a -%{_libdir}/gcc/*/*/libgcc_s.so %{_libdir}/gcc/*/*/specs %if %{with multilib} %{_libdir}/gcc/*/*/32/crt*.o @@ -1013,6 +1103,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/gcc/*/*/collect2 %{_libdir}/gcc/*/*/include/*.h +%{_libdir}/gcc/*/*/include/ssp/*.h %files -n libgcc %defattr(644,root,root,755) @@ -1104,6 +1195,7 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %doc libstdc++-v3/docs/html %dir %{_includedir}/c++ +%{_includedir}/stdc++.h %{_includedir}/c++/%{version} %if %{with java} %exclude %{_includedir}/c++/%{version}/java @@ -1111,9 +1203,6 @@ rm -rf $RPM_BUILD_ROOT %exclude %{_includedir}/c++/%{version}/gcj %exclude %{_includedir}/c++/%{version}/gnu %endif -%ifnarch sparc -%exclude %{_includedir}/c++/%{version}/*/bits/stdc++.h.gch -%endif %if %{with multilib} %{_libdir32}/libstdc++.la %attr(755,root,root) %{_libdir32}/libstdc++.so @@ -1135,6 +1224,7 @@ rm -rf $RPM_BUILD_ROOT %doc gcc/fortran/ChangeLog %attr(755,root,root) %{_bindir}/g95 %attr(755,root,root) %{_bindir}/gfortran +%attr(755,root,root) %{_bindir}/*-gfortran %{_infodir}/gfortran* %attr(755,root,root) %{_libdir}/gcc/*/*/f951 %if %{with multilib} @@ -1195,10 +1285,23 @@ rm -rf $RPM_BUILD_ROOT %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS} %attr(755,root,root) %{_bindir}/addr2name.awk %attr(755,root,root) %{_bindir}/gij +%attr(755,root,root) %{_libdir}/libgcj.so.*.*.* +# R: lib-gnu-java-awt-peer-gtk/qt (see below) +%attr(755,root,root) %{_libdir}/libgcjawt.so.*.*.* +%attr(755,root,root) %{_libdir}/libgij.so.*.*.* +# R: xorg libs +%attr(755,root,root) %{_libdir}/lib-gnu-awt-xlib.so.*.*.* +# R: gtk+2 +%attr(755,root,root) %{_libdir}/lib-gnu-java-awt-peer-gtk.so.*.*.* +# R: QtGui +%attr(755,root,root) %{_libdir}/lib-gnu-java-awt-peer-qt.so.7.0.0 +%dir %{_libdir}/classpath +# R: alsa-libs +%attr(755,root,root) %{_libdir}/classpath/libgjsmalsa.so* +# R: jack +%attr(755,root,root) %{_libdir}/classpath/libgjsmdssi.so* %dir %{_libdir}/gcj-%{version} %{_libdir}/gcj-%{version}/classmap.db -%attr(755,root,root) %{_libdir}/lib*cj*.so.*.*.* -%attr(755,root,root) %{_libdir}/libgij.so.*.*.* %{_libdir}/logging.properties %{_javadir}/libgcj*.jar %{_mandir}/man1/gij* @@ -1216,17 +1319,29 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/gcc/*/*/include/jvmpi.h %dir %{_libdir}/security %{_libdir}/security/* -%{_libdir}/lib*cj.spec -%{_libdir}/lib*cj*.la -%attr(755,root,root) %{_libdir}/lib*cj*.so -%{_libdir}/libgij.la +%{_libdir}/libgcj.spec +%attr(755,root,root) %{_libdir}/libgcj.so +%{_libdir}/libgcj.la +%attr(755,root,root) %{_libdir}/libgcjawt.so +%{_libdir}/libgcjawt.la %attr(755,root,root) %{_libdir}/libgij.so +%{_libdir}/libgij.la +%attr(755,root,root) %{_libdir}/lib-gnu-awt-xlib.so +%{_libdir}/lib-gnu-awt-xlib.la +%attr(755,root,root) %{_libdir}/lib-gnu-java-awt-peer-gtk.so +%{_libdir}/lib-gnu-java-awt-peer-gtk.la +%attr(755,root,root) %{_libdir}/lib-gnu-java-awt-peer-qt.so +%{_libdir}/lib-gnu-java-awt-peer-qt.la %{_pkgconfigdir}/libgcj.pc %files -n libgcj-static %defattr(644,root,root,755) -%{_libdir}/lib*cj*.a +%{_libdir}/libgcj.a +%{_libdir}/libgcjawt.a %{_libdir}/libgij.a +%{_libdir}/lib-gnu-awt-xlib.a +%{_libdir}/lib-gnu-java-awt-peer-gtk.a +%{_libdir}/lib-gnu-java-awt-peer-qt.a %files -n libffi %defattr(644,root,root,755)