Summary(pt_BR): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
Name: gcc
Version: 4.1.0
-%define _snap 20050922T2047UTC
-Release: 0.%{_snap}.3
+#define _snap 20060218r111233
+%define _snap 20060223
+Release: 0.%{_snap}.1
Epoch: 5
License: GPL v2+
Group: Development/Languages
+Source0: ftp://gcc.gnu.org/pub/gcc/prerelease-%{version}-%{_snap}/gcc-%{version}-%{_snap}.tar.bz2
+# Source0-md5: b6f748cec2eb6765a21b1863d8bc5f5b
#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: 2fe9d8eb7b02f12831cc11b82d67995f
+#Source0: gcc-4.1-%{_snap}.tar.bz2
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
-Patch6: %{name}-keep-volatile-sematics.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}-pr23128.patch
-Patch13: %{name}-pr22533.patch
-Patch14: %{name}-x87-mmx-switch.patch
-Patch15: %{name}-x87-mmx-eh.patch
-Patch16: %{name}-pr21419.patch
-Patch17: %{name}-pr23948.patch
-Patch18: %{name}-pr24055.patch
+Patch12: %{name}-pr19606.patch
+Patch13: %{name}-pr24879.patch
+#Patch14: %{name}-x87-mmx-switch.patch NEEDS UPDATE
+#Patch15: %{name}-x87-mmx-eh.patch NEEDS UPDATE
+
+Patch17: %{name}-pr19505.patch
+Patch18: %{name}-pr24419.patch
+Patch19: %{name}-pr24669.patch
+Patch20: %{name}-pr17390.patch
+Patch21: %{name}-pr13676.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
BuildRequires: bison
-%{?with_java:BuildRequires: cairo-devel >= 0.5.0}
%{?with_tests:BuildRequires: dejagnu}
BuildRequires: fileutils >= 4.0.41
BuildRequires: flex
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
+%if %{with multilib}
+BuildRequires: glibc-devel >= 6:2.3.4-1.5
+%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
+%else
+BuildRequires: glibc-devel >= 2.2.5-20
%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: libmpfr-devel
+%endif
+%if %{with java}
+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
+#BR: X-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
%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
+%patch12 -p0
+%patch13 -p0
+
+%ifarch %{ix86} %{x8664}
+#patch14 -p1
#patch15 -p1
-%patch16 -p1
+%endif
+
%patch17 -p1
%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+
+%patch30 -p0
+%patch31 -p0
# because we distribute modified version of gcc...
perl -pi -e 's/(version.*)";/$1 (PLD Linux)";/' gcc/version.c
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 \
+ --disable-libstdcxx-pch \
--%{?with_multilib:en}%{!?with_multilib:dis}able-multilib \
--enable-nls \
--disable-werror \
--with-demangler-in-ld \
--with-system-zlib \
--with-slibdir=%{_slibdir} \
- --without-x \
+ %{!?with_java:--without-x} \
%{?with_fortran:--enable-cmath} \
+ --with-long-double-128 \
+%ifarch ppc ppc64
+ --enable-secureplt \
+%endif
%if %{with java}
--enable-libgcj \
--enable-libgcj-multifile \
--enable-libgcj-database \
--enable-gtk-cairo \
+ --enable-java-awt=gtk,xlib \
+ --enable-jni \
+ --enable-xmlj \
+ --enable-alsa \
+ --enable-dssi \
%endif
%{_target_platform}
GCJFLAGS="%{rpmcflags}" \
BOOT_CFLAGS="%{rpmcflags}" \
STAGE1_CFLAGS="%{rpmcflags} -O0" \
+ GNATLIBCFLAGS="%{rpmcflags}" \
LDFLAGS_FOR_TARGET="%{rpmldflags}" \
mandir=%{_mandir} \
infodir=%{_infodir}
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
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 ..
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
# 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,jni_md.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
-%{?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.
%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
%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
%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}
%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 (see below)
+%attr(755,root,root) %{_libdir}/libgcjawt.so.*.*.*
+%attr(755,root,root) %{_libdir}/libgij.so.*.*.*
+# R: libX11
+%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.*.*.*
+%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*
%{_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
%{_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
%files -n libffi
%defattr(644,root,root,755)