X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=gcc4.spec;h=9a453975b824ea7510f7e3b206ca28709a03c6a6;hb=6d4c4143539e366c2834044fab5d550f622dd467;hp=bbad56012bfb812b6f2dcba00734f596531262a0;hpb=bd1b4ec6fee9b354cec11ee5df68f94300bf618f;p=packages%2Fgcc4.git diff --git a/gcc4.spec b/gcc4.spec index bbad560..9a45397 100644 --- a/gcc4.spec +++ b/gcc4.spec @@ -1,26 +1,34 @@ # -# TODO: -# - http://gcc.gnu.org/PR11203 (inline-asm) -# - http://gcc.gnu.org/PR17640 (empty loop not removed after optimization) -# - http://gcc.gnu.org/PR19317 (removing a temporary return value when we cannot) -# - http://gcc.gnu.org/PR20128 (ice with mudflap + profile generate) -# - http://gcc.gnu.org/PR21029 (vrp miscompiles ada front-end, drops loop exit test -# in well-defined wrap-around circumstances) -# # Conditional build: %bcond_without ada # build without ADA support +%bcond_without cxx # build without C++ support %bcond_without fortran # build without Fortran support %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 profiling # build without profiling +%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 +%endif -%if !%{with objc} +%if %{without objc} %undefine with_objcxx %endif +%if %{without bootstrap} +%undefine with_profiling +%endif + %ifnarch %{x8664} ppc64 s390x sparc64 %undefine with_multilib %endif @@ -31,14 +39,15 @@ Summary(pl): Kolekcja kompilator Summary(pt_BR): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados Name: gcc Version: 4.1.0 -%define _snap 20050528 -Release: 0.%{_snap}.0.1 +%define _snap 20051005T0949UTC +Release: 0.%{_snap}.1 Epoch: 5 License: GPL v2+ Group: Development/Languages #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-md5: 38e650684282d96cf7ad1b5928399142 +#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: 19b30d36af9aaa6216af104b77714cad Source1: %{name}-optimize-la.pl Patch0: %{name}-info.patch Patch1: %{name}-nolocalefiles.patch @@ -46,18 +55,25 @@ Patch2: %{name}-nodebug.patch Patch3: %{name}-ada-link-new-libgnat.patch Patch4: %{name}-ada-link.patch Patch5: %{name}-alpha-ada_fix.patch +Patch6: %{name}-keep-volatile-sematics.patch # PRs -Patch11: %{name}-pr20218.patch -# temporary disabled -> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20297#c7 -#Patch12: %{name}-pr20297.patch -Patch14: %{name}-push-pop-visibility.patch -Patch15: %{name}-pr21704.patch +Patch10: %{name}-pr7776.patch +Patch11: %{name}-pr20297.patch + +Patch13: %{name}-pr22533.patch +Patch14: %{name}-x87-mmx-switch.patch +Patch15: %{name}-x87-mmx-eh.patch +Patch16: %{name}-pr23948.patch +Patch17: %{name}-pr19505.patch +Patch18: %{name}-pr20606_pr24069.patch URL: http://gcc.gnu.org/ BuildRequires: autoconf +%{?with_tests:BuildRequires: autogen} BuildRequires: automake BuildRequires: binutils >= 2:2.15.94.0.1 BuildRequires: bison -%{?with_java:BuildRequires: cairo-devel} +%{?with_java:BuildRequires: cairo-devel >= 0.5.0} +%{?with_tests:BuildRequires: dejagnu} BuildRequires: fileutils >= 4.0.41 BuildRequires: flex %if %{with ada} @@ -66,8 +82,10 @@ 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 +%endif %{?with_java:BuildRequires: pango-devel} BuildRequires: perl-devel %{?with_java:BuildRequires: pkgconfig} @@ -649,12 +667,18 @@ kitapl %package objc++ Summary: Objective C++ support for gcc +Summary(pl): Obs³uga jêzyka Objective C++ dla gcc Group: Development/Languages Requires: %{name}-c++ = %{epoch}:%{version}-%{release} Requires: %{name}-objc = %{epoch}:%{version}-%{release} %description objc++ -This package adds Objective C++ support to the GNU Compiler Collection. +This package adds Objective C++ support to the GNU Compiler +Collection. + +%description objc++ -l pl +Ten pakiet dodaje obs³ugê jêzyka Objective C++ do zestawu +kompilatorów GNU Compiler Collection. %package -n libobjc Summary: Objective C Libraries @@ -700,12 +724,18 @@ Statyczne biblioteki Obiektowego C. %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 # PRs -%patch11 -p0 -#patch12 -p1 -%patch14 -p0 -%patch15 -p1 +%patch10 -p1 +%patch11 -p1 + +%patch13 -p1 +#patch14 -p1 NEEDS UPDATE +#patch15 -p1 +%patch16 -p1 +%patch17 -p1 +%patch18 -p1 # because we distribute modified version of gcc... perl -pi -e 's/(version.*)";/$1 (PLD Linux)";/' gcc/version.c @@ -735,7 +765,7 @@ TEXCONFIG=false \ --enable-shared \ --enable-threads=posix \ --enable-__cxa_atexit \ - --enable-languages="c,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:,f95}%{?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 \ @@ -747,7 +777,7 @@ TEXCONFIG=false \ --with-system-zlib \ --with-slibdir=%{_slibdir} \ --without-x \ - --enable-cmath \ + %{?with_fortran:--enable-cmath} \ %if %{with java} --enable-libgcj \ --enable-libgcj-multifile \ @@ -767,6 +797,8 @@ cd .. mandir=%{_mandir} \ infodir=%{_infodir} +%{?with_tests:%{__make} -k -C obj-%{_target_platform} check 2>&1 ||:} + %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT{/lib,%{_aclocaldir},%{_datadir},%{_infodir}} @@ -789,6 +821,15 @@ ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1 +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.*.*.*`) +mv $RPM_BUILD_ROOT{%{_libdir32}/$libssp,%{_slibdir32}} +ln -sf %{_slibdir32}/$libssp $RPM_BUILD_ROOT%{_libdir32}/libssp.so +%endif + %if %{with fortran} ln -sf gfortran $RPM_BUILD_ROOT%{_bindir}/g95 echo ".so gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1 @@ -822,7 +863,8 @@ cp -f libobjc/README gcc/objc/README.libobjc # avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version} # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool -for f in libmudflap.la libmudflapth.la libstdc++.la libsupc++.la \ +for f in libmudflap.la libmudflapth.la libssp.la \ + %{?with_cxx:libstdc++.la libsupc++.la} \ %{?with_fortran:libgfortran.la libgfortranbegin.la} \ %{?with_java:libgcj.la libffi.la} \ %{?with_objc:libobjc.la}; @@ -839,23 +881,24 @@ done # by fixincludes, we don't want former gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/) mkdir $gccdir/tmp + # we have to save these however -%{?with_java:mv -f $gccdir/include/{gcj,libffi/ffitarget.h,jawt.h,jawt_md.h,jni.h,jvmpi.h} $gccdir/tmp} -%{?with_objc:mv -f $gccdir/include/objc $gccdir/tmp} -mv -f $gccdir/include/syslimits.h $gccdir/tmp -rm -rf $gccdir/include -mv -f $gccdir/tmp $gccdir/include -cp -f $gccdir/install-tools/include/*.h $gccdir/include +%{?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 +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 +rm -rf $gccdir/install-tools %if %{with multilib} -ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/32/libgcc_s.so +ln -sf %{_slibdir32}/libgcc_s.so.1 $gccdir/32/libgcc_s.so %endif -ln -sf %{_slibdir}/libgcc_s.so.1 $gccdir/libgcc_s.so +ln -sf %{_slibdir}/libgcc_s.so.1 $gccdir/libgcc_s.so %find_lang gcc -%find_lang libstdc\+\+ +%{?with_cxx:%find_lang libstdc\+\+} # cvs snap doesn't contain (release does) below files, # so let's create dummy entries to satisfy %%files. @@ -909,7 +952,8 @@ rm -rf $RPM_BUILD_ROOT %files -f gcc.lang %defattr(644,root,root,755) -%doc ChangeLog.general MAINTAINERS NEWS bugs.html faq.html +%doc ChangeLog.general MAINTAINERS NEWS +# bugs.html faq.html %doc gcc/{ChangeLog,ONEWS,README.Portability} %dir %{_libdir}/gcc %dir %{_libdir}/gcc/* @@ -923,6 +967,8 @@ 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* @@ -934,12 +980,22 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) /lib/cpp %attr(755,root,root) %{_slibdir}/lib*.so +%{_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} %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.la +%attr(755,root,root) %{_libdir32}/libssp.a +%attr(755,root,root) %{_libdir32}/libssp.so +%{_libdir32}/libssp_nonshared.a +%{_libdir32}/libssp_nonshared.la %endif %{_libdir}/gcc/*/*/libgcov.a %{_libdir}/gcc/*/*/libgcc.a @@ -1016,6 +1072,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/gcc/*/*/adalib/libgnat.a %endif +%if %{with cxx} %files c++ %defattr(644,root,root,755) %doc gcc/cp/{ChangeLog,NEWS} @@ -1067,6 +1124,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir32}/libstdc++.a %endif %{_libdir}/libstdc++.a +%endif %if %{with fortran} %files fortran