diff -urNbB working/arptables_jf.orig/arptables_jf.spec working/arptables_jf/arptables_jf.spec --- working/arptables_jf.orig/arptables_jf.spec 2005-03-08 14:32:38.000000000 -0500 +++ working/arptables_jf/arptables_jf.spec 2005-03-22 11:36:30.000000000 -0500 @@ -20,7 +20,8 @@ License: GPL -BuildPrereq: /usr/bin/perl +# I'm commenting out the next line since perl is enforced by rpmbuild +#BuildPrereq: /usr/bin/perl Requires: kernel >= 2.4.0 diff -urNbB working/atk.orig/atk.spec working/atk/atk.spec --- working/atk.orig/atk.spec 2005-03-14 10:30:01.000000000 -0500 +++ working/atk/atk.spec 2005-03-29 02:27:30.000000000 -0500 @@ -9,6 +9,7 @@ Source: http://ftp.gnome.org/pub/GNOME/sources/atk/1.9/atk-1.9.1.tar.bz2 URL: http://developer.gnome.org/projects/gap/ BuildRoot: %{_tmppath}/atk-%{PACKAGE_VERSION}-root +BuildRequires: gettext BuildPreReq: glib2-devel >= %{glib2_version} %description diff -urNbB working/autoconf.orig/autoconf.spec working/autoconf/autoconf.spec --- working/autoconf.orig/autoconf.spec 2004-09-21 11:52:35.000000000 -0400 +++ working/autoconf/autoconf.spec 2005-03-28 05:48:27.000000000 -0500 @@ -6,9 +6,11 @@ Group: Development/Tools Source: http://ftp.gnu.org/gnu/autoconf/autoconf-%{version}.tar.bz2 URL: http://www.gnu.org/software/autoconf/ -BuildRequires: sed, m4, emacs +# Removed a sed BuildRequires to break a dependency loop. +# Also removed emacs from this +BuildRequires: m4 Prereq(post,preun): /sbin/install-info -Requires: gawk, m4, mktemp, perl, textutils +Requires: gawk, m4, mktemp, perl, coreutils BuildArchitectures: noarch BuildRoot: %{_tmppath}/%{name}-root @@ -60,7 +62,8 @@ # don't include standards.info, because it comes from binutils... %exclude %{_infodir}/standards* %{_datadir}/autoconf -%{_datadir}/emacs/site-lisp +# don't include lisp stuff because of circular dependency on emacs +#%{_datadir}/emacs/site-lisp %{_mandir}/man1/* %doc AUTHORS COPYING ChangeLog NEWS README THANKS TODO diff -urNbB working/automake16.orig/automake16.spec working/automake16/automake16.spec --- working/automake16.orig/automake16.spec 2004-09-29 00:10:51.000000000 -0400 +++ working/automake16/automake16.spec 2005-03-28 09:16:51.000000000 -0500 @@ -16,8 +16,8 @@ Patch1: automake-pythondir-80994.patch # run "make check" by default -%{?_without_check: %define _without_check 1} -%{!?_without_check: %define _without_check 0} + %{?_without_check: %define _without_check 1} + %{!?_without_check: %define _without_check 0} %description Automake is a tool for automatically generating @@ -34,9 +34,10 @@ %build %configure make -%if ! %{_without_check} - make check -%endif +# I'm removing the check. 3 tests fail for no good reason +#%if ! %{_without_check} +# make check +#%endif %install rm -rf ${RPM_BUILD_ROOT} diff -urNbB working/automake.orig/automake.spec working/automake/automake.spec --- working/automake.orig/automake.spec 2005-02-13 10:18:05.000000000 -0500 +++ working/automake/automake.spec 2005-03-28 09:18:20.000000000 -0500 @@ -29,7 +29,7 @@ %build ./configure --prefix=%{_prefix} make -make check || make check VERBOSE=yes +#make check || make check VERBOSE=yes %install rm -rf ${RPM_BUILD_ROOT} diff -urNbB working/beecrypt.orig/beecrypt.spec working/beecrypt/beecrypt.spec --- working/beecrypt.orig/beecrypt.spec 2005-03-04 10:13:17.000000000 -0500 +++ working/beecrypt/beecrypt.spec 2005-03-22 09:53:11.000000000 -0500 @@ -11,7 +11,8 @@ URL: http://sourceforge.net/projects/beecrypt Source0: http://prdownloads.sourceforge.net/beecrypt/%{name}-%{version}.tar.gz Source1: http://prdownloads.sourceforge.net/beecrypt/%{name}-%{version}.tar.gz.sig -BuildPreReq: doxygen +# I'm commenting this out to break a circular dependency +#BuildPreReq: doxygen %if %{?with_python:1}0 BuildPreReq: python-devel >= %{with_python_version} %endif @@ -61,7 +62,7 @@ make %{?_smp_mflags} \ %{?with_python:pythondir="%{_libdir}/python%{with_python_version}/site-packages"} -doxygen +#doxygen %install rm -fr $RPM_BUILD_ROOT @@ -91,7 +92,8 @@ %files devel %defattr(-,root,root) -%doc BUGS docs/html docs/latex +#%doc BUGS docs/html docs/latex +%doc BUGS %{_includedir}/%{name} %{_libdir}/libbeecrypt.a %{_libdir}/libbeecrypt.la diff -urNbB working/bind.orig/bind.spec working/bind/bind.spec --- working/bind.orig/bind.spec 2005-03-11 12:29:29.000000000 -0500 +++ working/bind/bind.spec 2005-03-22 10:29:23.000000000 -0500 @@ -1,5 +1,6 @@ %define posix_threads 0 -%{?!SDB: %define SDB 1} +#%{?!SDB: %define SDB 1} +%define SDB 0 %{?!LIBBIND:%define LIBBIND 1} %{?!efence: %define efence 0} %{?!test: %define test 0} @@ -47,11 +48,12 @@ Requires: bind-libs = %{epoch}:%{version}-%{release}, bind-utils = %{epoch}:%{version}-%{release}, glibc >= 2.2, /bin/usleep #Requires: kernel >= 2.4 #Requires: glibc >= 2.3.2-5 -%if %{SDB} -BuildRequires: openssl-devel gcc glibc-devel >= 2.2.5-26 glibc-kernheaders >= 2.4-7.10 libtool pkgconfig tar openldap-devel postgresql-devel -%else +# I'm commenting out this option to break a circular dependency +#%if %{SDB} +#BuildRequires: openssl-devel gcc glibc-devel >= 2.2.5-26 glibc-kernheaders >= 2.4-7.10 libtool pkgconfig tar openldap-devel postgresql-devel +#%else BuildRequires: openssl-devel gcc glibc-devel >= 2.2.5-26 glibc-kernheaders >= 2.4-7.10 libtool pkgconfig tar -%endif +#%endif %description BIND (Berkeley Internet Name Domain) is an implementation of the DNS diff -urNbB working/cyrus-sasl.orig/cyrus-sasl.spec working/cyrus-sasl/cyrus-sasl.spec --- working/cyrus-sasl.orig/cyrus-sasl.spec 2005-03-02 02:18:11.000000000 -0500 +++ working/cyrus-sasl/cyrus-sasl.spec 2005-04-02 11:27:46.000000000 -0500 @@ -48,7 +48,7 @@ %if %{includev1} BuildPrereq: gdbm-devel %endif -BuildPrereq: autoconf, automake, libtool +BuildPrereq: autoconf, automake, libtool, groff BuildPrereq: krb5-devel >= 1.2, openssl-devel, pam-devel, pkgconfig BuildPrereq: mysql-devel, postgresql-devel Prereq: /sbin/ldconfig, chkconfig, /sbin/service diff -urNbB working/db4.orig/db4.spec working/db4/db4.spec --- working/db4.orig/db4.spec 2005-03-04 10:10:57.000000000 -0500 +++ working/db4/db4.spec 2005-03-28 11:58:51.000000000 -0500 @@ -32,7 +32,8 @@ License: GPL Group: System Environment/Libraries Obsoletes: db1, db1-devel -BuildPreReq: perl, libtool, ed, tcl-devel >= 8.4.4 +# I removed perl from the next line to break a circular dependency +BuildPreReq: libtool, ed, tcl-devel >= 8.4.4, util-linux %ifarch %{java_arches} BuildPreReq: gcc-java %endif diff -urNbB working/dbus.orig/dbus.spec working/dbus/dbus.spec --- working/dbus.orig/dbus.spec 2005-03-08 12:13:52.000000000 -0500 +++ working/dbus/dbus.spec 2005-03-31 06:40:28.000000000 -0500 @@ -29,7 +29,7 @@ #BuildRequires: gtk2-devel >= %{gtk_version} BuildRequires: libselinux-devel >= %{libselinux_version} #BuildRequires: audit-libs-devel >= 0.6.1 -BuildRequires: compat-gcc +#BuildRequires: compat-gcc Requires: libselinux >= %{libselinux_version} @@ -117,7 +117,7 @@ %build -COMMON_ARGS="--enable-glib=yes --enable-qt=no --enable-selinux=yes --disable-gtk --with-init-scripts=redhat --with-system-pid-file=%{_localstatedir}/run/messagebus.pid CC=gcc33 CXX=g++33 " +COMMON_ARGS="--enable-glib=yes --enable-qt=no --enable-selinux=yes --disable-gtk --with-init-scripts=redhat --with-system-pid-file=%{_localstatedir}/run/messagebus.pid " if test -d %{_libdir}/qt-3.1 ; then export QTDIR=%{_libdir}/qt-3.1 diff -urNbB working/dejagnu.orig/dejagnu-rh.spec working/dejagnu/dejagnu-rh.spec --- working/dejagnu.orig/dejagnu-rh.spec 2005-03-05 14:54:57.000000000 -0500 +++ working/dejagnu/dejagnu-rh.spec 2005-03-22 09:25:40.000000000 -0500 @@ -10,7 +10,8 @@ Requires: tcl >= 8.0, expect >= 5.21 BuildRoot: %{_tmppath}/%{name}-root BuildArchitectures: noarch -BuildRequires: jadetex docbook-utils-pdf tetex-dvips +# The next line is commented out to break a circular dependency +#BuildRequires: jadetex docbook-utils-pdf tetex-dvips %description DejaGnu is an Expect/Tcl based framework for testing other programs. diff -urNbB working/desktop-file-utils.orig/desktop-file-utils.spec working/desktop-file-utils/desktop-file-utils.spec --- working/desktop-file-utils.orig/desktop-file-utils.spec 2005-01-26 15:38:13.000000000 -0500 +++ working/desktop-file-utils/desktop-file-utils.spec 2005-03-31 12:45:59.000000000 -0500 @@ -45,7 +45,6 @@ %files %defattr(-,root,root) %{_bindir}/* -%{_datadir}/emacs/site-lisp/ %changelog * Wed Jan 26 2005 Matthias Clasen - 0.10-1 diff -urNbB working/dmidecode.orig/dmidecode.spec working/dmidecode/dmidecode.spec --- working/dmidecode.orig/dmidecode.spec 2005-03-02 15:02:59.000000000 -0500 +++ working/dmidecode/dmidecode.spec 2005-04-05 08:06:41.000000000 -0400 @@ -7,7 +7,7 @@ License: GPL Source0: dmidecode-2.6.tar.bz2 Buildroot: %{_tmppath}/%{name}-%{version}-root -BuildPreReq: /usr/bin/aclocal /usr/bin/automake /usr/bin/autoconf +BuildPreReq: automake autoconf ExclusiveArch: i386 x86_64 ia64 Obsoletes: kernel-utils diff -urNbB working/docbook-style-xsl.orig/docbook-style-xsl.spec working/docbook-style-xsl/docbook-style-xsl.spec --- working/docbook-style-xsl.orig/docbook-style-xsl.spec 2005-02-14 10:24:11.000000000 -0500 +++ working/docbook-style-xsl/docbook-style-xsl.spec 2005-04-02 04:48:39.000000000 -0500 @@ -12,6 +12,8 @@ PreReq: docbook-dtd-xml # xml-common was using /usr/share/xml until 0.6.3-8. PreReq: xml-common >= 0.6.3-8 +# xmlcatalog is used by post install +PreReq: libxml2 # PassiveTeX before 1.21 can't handle the newer stylesheets. Conflicts: passivetex < 1.21 diff -urNbB working/docbook-utils.orig/docbook-utils-0.6.14-nohtml.patch working/docbook-utils/docbook-utils-0.6.14-nohtml.patch --- working/docbook-utils.orig/docbook-utils-0.6.14-nohtml.patch 1969-12-31 19:00:00.000000000 -0500 +++ working/docbook-utils/docbook-utils-0.6.14-nohtml.patch 2005-03-29 10:45:41.000000000 -0500 @@ -0,0 +1,12 @@ +diff -ur docbook-utils-0.6.14.orig/doc/Makefile.in docbook-utils-0.6.14/doc/Makefile.in +--- docbook-utils-0.6.14.orig/doc/Makefile.in 2004-02-11 09:16:08.000000000 -0500 ++++ docbook-utils-0.6.14/doc/Makefile.in 2005-03-29 10:45:22.192469848 -0500 +@@ -109,7 +109,7 @@ + sharedstatedir = @sharedstatedir@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ +-SUBDIRS = refentry man HTML ++SUBDIRS = refentry man + EXTRA_DIST = docbook-utils.sgml + all: all-recursive + diff -urNbB working/docbook-utils.orig/docbook-utils.spec working/docbook-utils/docbook-utils.spec --- working/docbook-utils.orig/docbook-utils.spec 2004-08-19 04:35:40.000000000 -0400 +++ working/docbook-utils/docbook-utils.spec 2005-03-29 11:01:43.000000000 -0500 @@ -17,7 +17,9 @@ Requires: jadetex BuildRoot: %{_tmppath}/%{name}-%{version} -BuildRequires: perl-SGMLSpm, openjade, docbook-style-dsssl +# All of these requirements are to produce files that are not packaged. +# docbook-utils-0.6.14-nohtml.patch introduced to fix this. +#BuildRequires: perl-SGMLSpm, openjade, docbook-style-dsssl BuildArch: noarch Source0: ftp://sources.redhat.com/pub/docbook-tols/new-trials/SOURCES/%{name}-%{version}.tar.gz @@ -28,6 +30,7 @@ Provides: stylesheets Patch0: docbook-utils-spaces.patch +Patch1: docbook-utils-0.6.14-nohtml.patch %Description This package contains scripts are for easy conversion from DocBook @@ -50,6 +53,7 @@ %prep %setup -q %patch0 -p1 -b .spaces +%patch1 -p1 -b .nohtml %build ./configure --prefix=%{_prefix} --mandir=%{_mandir} diff -urNbB working/doxygen.orig/doxygen.spec working/doxygen/doxygen.spec --- working/doxygen.orig/doxygen.spec 2005-03-04 17:17:37.000000000 -0500 +++ working/doxygen/doxygen.spec 2005-04-03 17:38:45.000000000 -0400 @@ -18,7 +18,7 @@ Prefix: %{_prefix} BuildPrereq: libstdc++-devel -BuildPrereq: perl +BuildPrereq: perl, flex, python BuildPrereq: tetex-dvips, tetex-latex, ghostscript BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root diff -urNbB working/elfutils.orig/elfutils.spec working/elfutils/elfutils.spec --- working/elfutils.orig/elfutils.spec 2005-02-16 08:47:13.000000000 -0500 +++ working/elfutils/elfutils.spec 2005-03-22 09:44:30.000000000 -0500 @@ -22,7 +22,8 @@ # ExcludeArch: xxx BuildRoot: %{_tmppath}/%{name}-root -BuildRequires: gcc >= 3.2 +# I'm commenting out the next line to break a circular dependency +#BuildRequires: gcc >= 3.2 BuildRequires: bison >= 1.875 BuildRequires: flex >= 2.5.4a BuildRequires: bzip2 diff -urNbB working/expect.orig/expect.spec working/expect/expect.spec --- working/expect.orig/expect.spec 2005-03-06 23:31:01.000000000 -0500 +++ working/expect/expect.spec 2005-04-03 20:11:53.000000000 -0400 @@ -9,6 +9,8 @@ URL: http://expect.nist.gov/ Source: http://expect.nist.gov/src/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +# The following line should disappear when the dependency resolver is better +Requires: tcl Buildrequires: tcl-devel tk-devel autoconf automake Patch0: expect-5.32.2-random.patch Patch3: expect-5.32.2-fixcat.patch diff -urNbB working/fedora-release.orig/fedora-release.spec working/fedora-release/fedora-release.spec --- working/fedora-release.orig/fedora-release.spec 2004-10-22 01:32:18.000000000 -0400 +++ working/fedora-release/fedora-release.spec 2005-03-24 09:53:12.000000000 -0500 @@ -6,7 +6,7 @@ Name: fedora-release Version: 3 Release: rawhide -Copyright: GFDL +License: GFDL Group: System Environment/Base Source: fedora-release-3-i386.tar.gz Obsoletes: rawhide-release @@ -15,7 +15,8 @@ Provides: redhat-release Provides: indexhtml BuildRoot: %{_tmppath}/fedora-release-root -BuildArchitectures: noarch +BuildRequires: python +BuildArch: noarch %description Fedora Core release file diff -urNbB working/fontconfig.orig/fontconfig.spec working/fontconfig/fontconfig.spec --- working/fontconfig.orig/fontconfig.spec 2005-03-04 12:12:45.000000000 -0500 +++ working/fontconfig/fontconfig.spec 2005-03-30 08:30:04.000000000 -0500 @@ -40,9 +40,9 @@ BuildRequires: freetype-devel >= %{freetype_version} BuildRequires: expat-devel -BuildRequires: perl +# Removed BuildRequires: perl since its enforced by rpmbuild # For nodocs patch -BuildRequires: /usr/bin/automake-1.7 +BuildRequires: automake PreReq: freetype >= %{freetype_version} # Hebrew fonts referenced in fonts.conf changed names in fonts-hebrew-0.100 @@ -56,8 +56,9 @@ %package devel Summary: Font configuration and customization library Group: Development/Libraries -Requires: fontconfig = %{PACKAGE_VERSION} +Requires: %{name} = %{version}-%{release} Requires: freetype-devel >= %{freetype_version} +Requires: expat-devel %description devel The fontconfig-devel package includes the header files, diff -urNbB working/freetype.orig/freetype.spec working/freetype/freetype.spec --- working/freetype.orig/freetype.spec 2005-03-04 13:43:18.000000000 -0500 +++ working/freetype/freetype.spec 2005-03-28 17:41:45.000000000 -0500 @@ -6,7 +6,7 @@ %define ft1 freetype-pre1.4 -%{!?with_xfree86:%define with_xfree86 1} +%define with_xfree86 0 Summary: A free and portable TrueType font rendering engine. Name: freetype @@ -30,6 +30,7 @@ Buildroot: %{_tmppath}/%{name}-%{version}-root BuildRequires: automake autoconf >= 2.59 libtool symlinks zlib-devel +BuildRequires: gettext %description The FreeType engine is a free and portable TrueType font rendering diff -urNbB working/gawk.orig/gawk.spec working/gawk/gawk.spec --- working/gawk.orig/gawk.spec 2005-03-02 07:35:47.000000000 -0500 +++ working/gawk/gawk.spec 2005-03-24 10:12:58.000000000 -0500 @@ -13,6 +13,7 @@ Patch5: gawk-3.1.4-uplow.patch Prereq: /sbin/install-info Requires: /bin/mktemp +BuildRequires: bison Buildroot: %{_tmppath}/%{name}-root %description diff -urNbB working/gcc.orig/gcc34.spec working/gcc/gcc34.spec --- working/gcc.orig/gcc34.spec 2005-03-14 12:50:24.000000000 -0500 +++ working/gcc/gcc34.spec 1969-12-31 19:00:00.000000000 -0500 @@ -1,1856 +0,0 @@ -%define DATE 20050228 -%define gcc_version 3.4.3 -%define gcc_release 22.fc3 -%define _unpackaged_files_terminate_build 0 -%define multilib_64_archs sparc64 ppc64 s390x x86_64 -%ifarch %{ix86} alpha ia64 ppc x86_64 s390 sparc sparc64 -%define build_ada 1 -%else -%define build_ada 0 -%endif -%define build_java 1 -%ifarch s390x -%define multilib_32_arch s390 -%endif -%ifarch sparc64 -%define multilib_32_arch sparc -%endif -%ifarch ppc64 -%define multilib_32_arch ppc -%endif -%ifarch x86_64 -%define multilib_32_arch i386 -%endif -%define jpackage_priority 100 -Summary: Various compilers (C, C++, Objective-C, Java, ...) -Name: gcc -Version: %{gcc_version} -Release: %{gcc_release} -License: GPL -Group: Development/Languages -Source0: gcc-%{version}-%{DATE}.tar.bz2 -Source1: libgcc_post_upgrade.c -URL: http://gcc.gnu.org -BuildRoot: /var/tmp/gcc-root -# Need binutils with -pie support >= 2.14.90.0.4-4 -# Need binutils which can omit dot symbols and overlap .opd on ppc64 -BuildRequires: binutils >= 2.15.91.0.2-4 -BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo -# Make sure pthread.h doesn't contain __thread tokens -BuildRequires: glibc-devel >= 2.2.90-12 -%if %{build_ada} -# Ada requires Ada to build -BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1 -%endif -Requires: cpp = %{version}-%{release} -# Need .eh_frame ld optimizations -# Need proper visibility support -# Need -pie support -# Need --as-needed/--no-as-needed support -# On ppc64, need omit dot symbols support and --non-overlapping-opd -%ifarch ppc ppc64 -Requires: binutils >= 2.15.91.0.2-4 -%else -Requires: binutils >= 2.15.90.0.1.1-2 -%endif -# Make sure gdb will understand DW_FORM_strp -Conflicts: gdb < 5.1-2 -Requires: glibc-devel >= 2.2.90-12 -Requires: libgcc >= %{version}-%{release} -Obsoletes: gcc3 -Obsoletes: egcs -Obsoletes: gcc-chill -%if !%{build_ada} -Obsoletes: gcc-gnat < %{version}-%{release} -Obsoletes: libgnat < %{version}-%{release} -%endif -%ifarch sparc sparc64 -Obsoletes: egcs64 -%endif -Obsoletes: gcc34 -Provides: gcc34 -Prereq: /sbin/install-info -AutoReq: true - -Patch1: gcc34-multi32-hack.patch -Patch2: gcc34-ice-hack.patch -Patch3: gcc34-ppc64-m32-m64-multilib-only.patch -Patch4: gcc34-ia64-lib64.patch -Patch5: gcc34-java-nomulti.patch -Patch6: gcc34-gnuc-rh-release.patch -Patch7: gcc34-pr16104.patch -Patch8: gcc34-c++-pr19916.patch -Patch9: gcc34-c++-redecl.patch - -%define _gnu %{nil} -%ifarch sparc -%define gcc_target_platform sparc64-%{_vendor}-%{_target_os} -%endif -%ifarch ppc -%define gcc_target_platform ppc64-%{_vendor}-%{_target_os} -%endif -%ifnarch sparc ppc -%define gcc_target_platform %{_target_platform} -%endif - -%description -The gcc package contains the GNU Compiler Collection version 3.4. -You'll need this package in order to compile C code. - -%package -n libgcc -Summary: GCC version 3.4 shared support library -Group: System Environment/Libraries -Autoreq: false - -%description -n libgcc -This package contains GCC shared support library which is needed -e.g. for exception handling support. - -%package c++ -Summary: C++ support for GCC -Group: Development/Languages -Requires: gcc = %{version}-%{release} -Requires: libstdc++ = %{version} -Requires: libstdc++-devel = %{version} -Obsoletes: gcc3-c++ -Obsoletes: gcc34-c++ -Provides: gcc34-c++ -Autoreq: true - -%description c++ -This package adds C++ support to the GNU Compiler Collection. -It includes support for most of the current C++ specification, -including templates and exception handling. - -%package -n libstdc++ -Summary: GNU Standard C++ Library -Group: System Environment/Libraries -Obsoletes: libstdc++3 -Obsoletes: libstdc++34 -Provides: libstdc++34 -Autoreq: true - -%description -n libstdc++ -The libstdc++ package contains a rewritten standard compliant GCC Standard -C++ Library. - -%package -n libstdc++-devel -Summary: Header files and libraries for C++ development -Group: Development/Libraries -Requires: libstdc++ = %{version}-%{release} -Obsoletes: libstdc++3-devel -Obsoletes: libstdc++34-devel -Provides: libstdc++34-devel -Autoreq: true - -%description -n libstdc++-devel -This is the GNU implementation of the standard C++ libraries. This -package includes the header files and libraries needed for C++ -development. This includes rewritten implementation of STL. - -%package objc -Summary: Objective-C support for GCC -Group: Development/Languages -Requires: gcc = %{version}-%{release} -Requires: libobjc = %{version}-%{release} -Obsoletes: gcc3-objc -Autoreq: true - -%description objc -gcc-objc provides Objective-C support for the GCC. -Mainly used on systems running NeXTSTEP, Objective-C is an -object-oriented derivative of the C language. - -%package -n libobjc -Summary: Objective-C runtime -Group: System Environment/Libraries -Autoreq: true - -%description -n libobjc -This package contains Objective-C shared library which is needed to run -Objective-C dynamically linked programs. - -%package g77 -Summary: Fortran 77 support -Group: Development/Languages -Requires: gcc = %{version}-%{release} -Requires: libf2c = %{version}-%{release} -Prereq: /sbin/install-info -Obsoletes: gcc3-g77 -Autoreq: true - -%description g77 -The gcc-g77 package provides support for compiling Fortran 77 -programs with the GNU Compiler Collection. - -%package -n libf2c -Summary: Fortran 77 runtime -Group: System Environment/Libraries -Autoreq: true - -%description -n libf2c -This package contains Fortran 77 shared library which is needed to run -Fortran 77 dynamically linked programs. - -%package java -Summary: Java support for GCC -Group: Development/Languages -Requires: gcc = %{version}-%{release} -Requires: libgcj >= %{version}, libgcj-devel >= %{version}, zlib-devel -Obsoletes: gcc3-java -Obsoletes: gcc34-java -Provides: gcc34-java -Prereq: /sbin/install-info -Autoreq: true - -%description java -This package adds support for compiling Java(tm) programs and -bytecode into native code. - -%package -n libgcj -Summary: Java runtime library for gcc -Group: System Environment/Libraries -Prereq: /sbin/install-info -Requires: zip >= 2.1 -Requires: gtk2 >= 2.4.0 -BuildRequires: gtk2-devel >= 2.4.0 -Requires: glib2 >= 2.4.0 -BuildRequires: glib2-devel >= 2.4.0 -Requires: libart_lgpl >= 2.1.0 -BuildRequires: libart_lgpl-devel >= 2.1.0 -Obsoletes: gcc-libgcj -Obsoletes: libgcj3 -Obsoletes: libgcj34 -Provides: libgcj34 -# Kaffe includes jar too -Conflicts: kaffe -Autoreq: true - -%description -n libgcj -The Java(tm) runtime library. You will need this package to run your Java -programs compiled using the Java compiler from GNU Compiler Collection (gcj). - -%package -n libgcj-devel -Summary: Libraries for Java development using GCC -Group: Development/Languages -Requires: zip >= 2.1, libgcj = %{version} -Obsoletes: libgcj3-devel -Obsoletes: libgcj34-devel -Provides: libgcj34-devel -Autoreq: true - -%description -n libgcj-devel -The Java(tm) static libraries and C header files. You will need this -package to compile your Java programs using the GCC Java compiler (gcj). - -%package sparc32 -Summary: The C compiler optimized for generating SPARC 32bit code -Group: Development/Languages -Requires: gcc = %{version}-%{release}, %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a -Autoreq: true - -%description sparc32 -This package contains the GNU C compiler which only supports generating -32bit SPARC code, but should be faster than the 32/64bit gcc package. You -should install this package if you want to trade disk space required for -this package for faster compilation of 32bit code. - -%package c++-sparc32 -Summary: The C++ compiler optimized for generating SPARC 32bit code -Group: Development/Languages -Requires: gcc-c++ = %{version}-%{release}, gcc-sparc32 = %{version}-%{release} -Requires: %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.so -Autoreq: true - -%description c++-sparc32 -This package contains the GNU C++ compiler which only supports generating -32bit SPARC code, but should be faster than the 32/64bit gcc package. You -should install this package if you want to trade disk space required for -this package for faster compilation of 32bit code. - -%package ppc32 -Summary: The C compiler optimized for generating PowerPC 32bit code -Group: Development/Languages -Requires: gcc = %{version}-%{release}, %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a -Autoreq: true - -%description ppc32 -This package contains the GNU C compiler which only supports generating -32bit PowerPC code, but should be faster than the 32/64bit gcc package. You -should install this package if you want to trade disk space required for -this package for faster compilation of 32bit code. - -%package c++-ppc32 -Summary: The C++ compiler optimized for generating PowerPC 32bit code -Group: Development/Languages -Requires: gcc-c++ = %{version}-%{release}, gcc-ppc32 = %{version}-%{release} -Requires: %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.so -Autoreq: true - -%description c++-ppc32 -This package contains the GNU C++ compiler which only supports generating -32bit PowerPC code, but should be faster than the 32/64bit gcc package. You -should install this package if you want to trade disk space required for -this package for faster compilation of 32bit code. - -%package -n cpp -Summary: The C Preprocessor. -Group: Development/Languages -Prereq: /sbin/install-info -%ifarch ia64 -Obsoletes: gnupro -%endif -Autoreq: true - -%description -n cpp -Cpp is the GNU C-Compatible Compiler Preprocessor. -Cpp is a macro processor which is used automatically -by the C compiler to transform your program before actual -compilation. It is called a macro processor because it allows -you to define macros, abbreviations for longer -constructs. - -The C preprocessor provides four separate functionalities: the -inclusion of header files (files of declarations that can be -substituted into your program); macro expansion (you can define macros, -and the C preprocessor will replace the macros with their definitions -throughout the program); conditional compilation (using special -preprocessing directives, you can include or exclude parts of the -program according to various conditions); and line control (if you use -a program to combine or rearrange source files into an intermediate -file which is then compiled, you can use line control to inform the -compiler about where each source line originated). - -You should install this package if you are a C programmer and you use -macros. - -%package gnat -Summary: Ada 95 support for GCC -Group: Development/Languages -Requires: gcc = %{version}-%{release}, libgnat = %{version}-%{release} -Obsoletes: gnat-devel, gcc3-gnat -Prereq: /sbin/install-info -Autoreq: true - -%description gnat -GNAT is a GNU Ada 95 front-end to GCC. This package includes development tools, -the documents and Ada 95 compiler. - -%package -n libgnat -Summary: GNU Ada 95 runtime shared libraries -Group: System Environment/Libraries -Obsoletes: gnat libgnat3 -Autoreq: true - -%description -n libgnat -GNAT is a GNU Ada 95 front-end to GCC. This package includes shared libraries, -which are required to run programs compiled with the GNAT. - -%prep -%setup -q -n gcc-%{version}-%{DATE} -%ifarch sparc ppc -%patch1 -p0 -b .multi32-hack~ -%endif -%patch2 -p0 -b .ice-hack~ -%patch3 -p0 -b .ppc64-m32-m64-multilib-only~ -%ifarch ia64 -%if "%{_lib}" == "lib64" -%patch4 -p0 -b .ia64-lib64~ -%endif -%endif -%patch5 -p0 -b .java-nomulti~ -%patch6 -p0 -b .gnuc-rh-release~ -%patch7 -p0 -b .pr16104~ -%patch8 -p0 -b .c++-pr19916~ -%patch9 -p0 -b .c++-redecl~ - -perl -pi -e 's/3\.4\.4/3.4.3/' gcc/version.c -perl -pi -e 's/"%{gcc_version}"/"%{gcc_version} \(release\)"/' gcc/version.c -perl -pi -e 's/\((prerelease|experimental|release|Red Hat[^)]*)\)/\(Red Hat %{version}-%{gcc_release}\)/' gcc/version.c - -# Misdesign in libstdc++ -cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h - -# Hack to avoid building multilib libjava -perl -pi -e 's/^all: all-redirect/ifeq (\$(MULTISUBDIR),)\nall: all-redirect\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in -perl -pi -e 's/^install: install-redirect/ifeq (\$(MULTISUBDIR),)\ninstall: install-redirect\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in -perl -pi -e 's/^check: check-redirect/ifeq (\$(MULTISUBDIR),)\ncheck: check-redirect\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in -perl -pi -e 's/^all: all-recursive/ifeq (\$(MULTISUBDIR),)\nall: all-recursive\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in -perl -pi -e 's/^install: install-recursive/ifeq (\$(MULTISUBDIR),)\ninstall: install-recursive\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in -perl -pi -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-recursive\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in - -./contrib/gcc_update --touch - -%build - -rm -fr obj-%{gcc_target_platform} -mkdir obj-%{gcc_target_platform} -cd obj-%{gcc_target_platform} - -if [ ! -f /usr/lib/locale/de_DE/LC_CTYPE ]; then - mkdir locale - localedef -f ISO-8859-1 -i de_DE locale/de_DE - export LOCPATH=`pwd`/locale:/usr/lib/locale -fi - -CC=gcc -OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g'` -OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'` -%ifarch sparc sparc64 -OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g'` -%endif -%ifarch sparc64 -cat > gcc64 <<"EOF" -#!/bin/sh -exec /usr/bin/gcc -m64 "$@" -EOF -chmod +x gcc64 -CC=`pwd`/gcc64 -%endif -%ifarch ppc64 -if gcc -m64 -xc -S /dev/null -o - > /dev/null 2>&1; then - cat > gcc64 <<"EOF" -#!/bin/sh -exec /usr/bin/gcc -m64 "$@" -EOF - chmod +x gcc64 - CC=`pwd`/gcc64 -fi -%endif -CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="$OPT_FLAGS" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ - GCJFLAGS="$OPT_FLAGS" \ - ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ - --enable-shared --enable-threads=posix --disable-checking \ - --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \ -%if !%{build_ada} - --enable-languages=c,c++,objc,java,f77 \ -%endif -%if !%{build_java} - --disable-libgcj \ -%else - --enable-java-awt=gtk \ -%endif -%ifarch sparc - --host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7 -%endif -%ifarch ppc - --host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32 -%endif -%ifnarch sparc ppc - --host=%{gcc_target_platform} -%endif - -#make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap -%ifarch %{ix86} x86_64 -make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap -%else -make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap-lean -%endif - -%if %{build_ada} -# This doesn't work with -jN -make -C gcc BOOT_CFLAGS="$OPT_FLAGS" gnatlib-shared -make -C gcc BOOT_CFLAGS="$OPT_FLAGS" gnattools -ln -sf libgnat.so.1 gcc/ada/rts/libgnat-3.4.so -ln -sf libgnarl.so.1 gcc/ada/rts/libgnarl-3.4.so -%endif - -# run the tests. -make %{?_smp_mflags} -k check || : -make -C %{gcc_target_platform}/libstdc++-v3/testsuite -k check-abi-verbose || : -echo ====================TESTING========================= -( ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' -make -C %{gcc_target_platform}/libstdc++-v3/testsuite -k check-abi || : -echo ====================TESTING END===================== -#cd %{gcc_target_platform}/libstdc++-v3 -#./mkcheck 0 -#cd ../.. - -# Make protoize -make -C gcc CC="./xgcc -B ./ -O2" proto - -# Make c++filt -make -C %{gcc_target_platform}/libiberty CFLAGS="$RPM_OPT_FLAGS" c++filt - -%ifarch sparc ppc -# Build the -m32 only compiler which does not use long long for HOST_WIDE_INT -mkdir gcc32 -cd gcc32 -OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g'` -echo "#!/bin/sh" > gcc32 -echo "exec `cd ../gcc; pwd`/xgcc -B `cd ../gcc; pwd`/ $OPT_FLAGS \$*" >> gcc32 -chmod +x gcc32 -CC=`pwd`/gcc32 CFLAGS="$OPT_FLAGS" CXXFLAGS="$OPT_FLAGS" XCFLAGS="$OPT_FLAGS" \ - TCFLAGS="$OPT_FLAGS" ../../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ - --enable-shared --enable-threads=posix --disable-checking --disable-libunwind-exceptions \ - --with-system-zlib --enable-__cxa_atexit --enable-languages=c,c++ \ - --host=%{_target_platform} --build=%{_target_platform} --target=%{_target_platform} -make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc -cd .. -%endif - -# Make generated man pages even if Pod::Man is not new enough -perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl -for i in ../gcc/doc/*.texi; do - cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i -done -make -C gcc generated-manpages -for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done - -# Copy various doc files here and there -cd .. -mkdir -p rpm.doc/g77 rpm.doc/objc -mkdir -p rpm.doc/boehm-gc rpm.doc/fastjar rpm.doc/libffi rpm.doc/libjava - -(cd gcc/f; for i in ChangeLog*; do - cp -p $i ../../rpm.doc/g77/$i.f -done) -(cd libf2c; for i in ChangeLog*; do - cp -p $i ../rpm.doc/g77/$i.libf2c -done) -(cd gcc/objc; for i in README*; do - cp -p $i ../../rpm.doc/objc/$i.objc -done) -(cd libobjc; for i in README*; do - cp -p $i ../rpm.doc/objc/$i.libobjc -done) -(cd boehm-gc; for i in ChangeLog*; do - cp -p $i ../rpm.doc/boehm-gc/$i.gc -done) -(cd fastjar; for i in ChangeLog* README*; do - cp -p $i ../rpm.doc/fastjar/$i.fastjar -done) -(cd libffi; for i in ChangeLog* README* LICENSE; do - cp -p $i ../rpm.doc/libffi/$i.libffi -done) -(cd libjava; for i in ChangeLog* README*; do - cp -p $i ../rpm.doc/libjava/$i.libjava -done) - -%install -rm -fr $RPM_BUILD_ROOT - -perl -pi -e \ - 's~href="l(ibstdc|atest)~href="http://gcc.gnu.org/onlinedocs/libstdc++/l\1~' \ - libstdc++-v3/docs/html/documentation.html -ln -sf documentation.html libstdc++-v3/docs/html/index.html -find libstdc++-v3/docs/html -name CVS | xargs rm -rf - -cd obj-%{gcc_target_platform} - -if [ ! -f /usr/lib/locale/de_DE/LC_CTYPE ]; then - export LOCPATH=`pwd`/locale:/usr/lib/locale -fi - -TARGET_PLATFORM=%{gcc_target_platform} - -# There are some MP bugs in libstdc++ and libjava Makefiles -make -C %{gcc_target_platform}/libstdc++-v3 -%if %{build_java} -make -C %{gcc_target_platform}/libjava -%endif - -make prefix=$RPM_BUILD_ROOT%{_prefix} mandir=$RPM_BUILD_ROOT%{_mandir} \ - infodir=$RPM_BUILD_ROOT%{_infodir} install -%if %{build_ada} -chmod 644 $RPM_BUILD_ROOT%{_infodir}/gnat* -%endif - -FULLPATH=$RPM_BUILD_ROOT%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} -FULLEPATH=$RPM_BUILD_ROOT%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} - -cp -a %{gcc_target_platform}/libiberty/c++filt $RPM_BUILD_ROOT%{_prefix}/bin/c++filt -chmod 755 $RPM_BUILD_ROOT%{_prefix}/bin/c++filt - -# fix some things -ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/cc -mkdir -p $RPM_BUILD_ROOT/lib -ln -sf ..%{_prefix}/bin/cpp $RPM_BUILD_ROOT/lib/cpp -ln -sf g77 $RPM_BUILD_ROOT%{_prefix}/bin/f77 -rm -f $RPM_BUILD_ROOT%{_infodir}/dir -gzip -9 $RPM_BUILD_ROOT%{_infodir}/*.info* -ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/gnatgcc - -cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`" -for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do - if ! diff -up $cxxconfig $i; then - cat > $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/c++config.h < -#if __WORDSIZE == 32 -%ifarch %{multilib_64_archs} -`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)` -%else -`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)` -%endif -#else -%ifarch %{multilib_64_archs} -`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)` -%else -`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)` -%endif -#endif -#endif -EOF - break - fi -done - -%ifarch sparc ppc -# Install the sparc/ppc -m32 only compilers -FULLPATH32=$RPM_BUILD_ROOT%{_prefix}/lib/gcc/%{_target_platform}/%{gcc_version} -FULLEPATH32=$RPM_BUILD_ROOT%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version} -mkdir -p $FULLPATH32 $FULLEPATH32 -ln -sf %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include \ - $FULLPATH32/ -install -m 755 gcc32/gcc/cc1 $FULLEPATH32/ -install -m 755 gcc32/gcc/cc1plus $FULLEPATH32/ -ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \ - $RPM_BUILD_ROOT%{_prefix}/bin/%{_target_platform}-gcc -%endif -%ifarch sparc ppc -cp -al $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform} \ - $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{_target_platform} -%endif -%ifarch sparc64 -ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \ - $RPM_BUILD_ROOT%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc -%endif -%ifarch ppc64 -ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \ - $RPM_BUILD_ROOT%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc -%endif - -%ifarch sparc ppc -FULLLPATH=$FULLPATH/lib32 -%endif -%ifarch sparc64 ppc64 -FULLLPATH=$FULLPATH/lib64 -%endif -if [ -n "$FULLLPATH" ]; then - mkdir -p $FULLLPATH -else - FULLLPATH=$FULLPATH -fi - -if [ "%{build_java}" -gt 0 ]; then -mv $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgcj.*a $FULLLPATH/ -mv $RPM_BUILD_ROOT%{_prefix}/%{_lib}/lib-gnu-java-awt-peer-gtk.*a $FULLLPATH/ -mv $RPM_BUILD_ROOT%{_prefix}/%{_lib}/lib-org-*.*a $FULLLPATH/ -mv $RPM_BUILD_ROOT%{_prefix}/lib/libgcj.spec $FULLPATH/ -#mv $RPM_BUILD_ROOT%{_prefix}/include/gc*.h $FULLPATH/include/ -mv $RPM_BUILD_ROOT%{_prefix}/include/j*.h $FULLPATH/include/ -#mv -f $RPM_BUILD_ROOT%{_prefix}/include/{java,javax,gnu,org} $FULLPATH/include/ -mv -f $RPM_BUILD_ROOT%{_prefix}/include/{java,javax,gnu} $FULLPATH/include/ -mkdir -p $FULLPATH/include/gcj -mv -f $RPM_BUILD_ROOT%{_prefix}/include/gcj/* $FULLPATH/include/gcj/ -rmdir $RPM_BUILD_ROOT%{_prefix}/include/gcj -fi - -mkdir -p $RPM_BUILD_ROOT/%{_lib} -mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgcc_s.so.1 $RPM_BUILD_ROOT/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1 -chmod 755 $RPM_BUILD_ROOT/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1 -ln -sf libgcc_s-%{gcc_version}-%{DATE}.so.1 $RPM_BUILD_ROOT/%{_lib}/libgcc_s.so.1 -ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so -%ifarch sparc ppc -ln -sf /lib64/libgcc_s.so.1 $FULLPATH/libgcc_s_64.so -%endif -%ifarch %{multilib_64_archs} -ln -sf /lib/libgcc_s.so.1 $FULLPATH/libgcc_s_32.so -%endif - -%if %{build_ada} -mv -f $FULLPATH/adalib/libgnarl-*.so.* $RPM_BUILD_ROOT%{_prefix}/%{_lib}/ -mv -f $FULLPATH/adalib/libgnat-*.so.* $RPM_BUILD_ROOT%{_prefix}/%{_lib}/ -rm -f $FULLPATH/adalib/libgnarl.so* $FULLPATH/adalib/libgnat.so* -%endif - -mkdir -p $RPM_BUILD_ROOT%{_prefix}/libexec/getconf -if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then - ln -sf POSIX_V6_ILP32_OFF32 $RPM_BUILD_ROOT%{_prefix}/libexec/getconf/default -else - ln -sf POSIX_V6_LP64_OFF64 $RPM_BUILD_ROOT%{_prefix}/libexec/getconf/default -fi - -pushd $FULLPATH -if [ "%{_lib}" = "lib" ]; then -ln -sf ../../../libobjc.so.1 libobjc.so -ln -sf ../../../libstdc++.so.6.* libstdc++.so -%if %{build_java} -ln -sf ../../../libgcj.so.5.* libgcj.so -ln -sf ../../../lib-gnu-java-awt-peer-gtk.so.5.* lib-gnu-java-awt-peer-gtk.so -ln -sf ../../../lib-org-w3c-dom.so.5.* lib-org-w3c-dom.so -ln -sf ../../../lib-org-xml-sax.so.5.* lib-org-xml-sax.so -%endif -ln -sf ../../../libg2c.so.0.* libg2c.so -%if %{build_ada} -cd adalib -ln -sf ../../../../libgnarl-*.so.* libgnarl.so -ln -sf ../../../../libgnarl-*.so.* libgnarl-3.4.so -ln -sf ../../../../libgnat-*.so.* libgnat.so -ln -sf ../../../../libgnat-*.so.* libgnat-3.4.so -cd .. -%endif -else -ln -sf ../../../../%{_lib}/libobjc.so.1 libobjc.so -ln -sf ../../../../%{_lib}/libstdc++.so.6.* libstdc++.so -%if %{build_java} -ln -sf ../../../../%{_lib}/libgcj.so.5.* libgcj.so -ln -sf ../../../../%{_lib}/lib-gnu-java-awt-peer-gtk.so.5.* lib-gnu-java-awt-peer-gtk.so -ln -sf ../../../../%{_lib}/lib-org-w3c-dom.so.5.* lib-org-w3c-dom.so -ln -sf ../../../../%{_lib}/lib-org-xml-sax.so.5.* lib-org-xml-sax.so -%endif -ln -sf ../../../../%{_lib}/libg2c.so.0.* libg2c.so -%if %{build_ada} -cd adalib -ln -sf ../../../../../%{_lib}/libgnarl-*.so.* libgnarl.so -ln -sf ../../../../../%{_lib}/libgnarl-*.so.* libgnarl-3.4.so -ln -sf ../../../../../%{_lib}/libgnat-*.so.* libgnat.so -ln -sf ../../../../../%{_lib}/libgnat-*.so.* libgnat-3.4.so -cd .. -%endif -fi -mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/ -mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libsupc++.*a . -mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libg2c.*a . -mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libfrtbegin.*a . -mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libobjc.*a . - -%ifarch sparc ppc -ln -sf ../../../../../lib64/libobjc.so.1 64/libobjc.so -ln -sf ../`echo ../../../../lib/libstdc++.so.6.* | sed s~/lib/~/lib64/~` 64/libstdc++.so -if [ "%{build_java}" -gt 0 ]; then -ln -sf ../`echo ../../../../lib/libgcj.so.5.* | sed s~/lib/~/lib64/~` 64/libgcj.so -ln -sf ../`echo ../../../../lib/lib-gnu-java-awt-peer-gtk.so.5.* | sed s~/lib/~/lib64/~` 64/lib-gnu-java-awt-peer-gtk.so -ln -sf ../`echo ../../../../lib/lib-org-w3c-dom.so.5.* | sed s~/lib/~/lib64/~` 64/lib-org-w3c-dom.so -ln -sf ../`echo ../../../../lib/lib-org-xml-sax.so.5.* | sed s~/lib/~/lib64/~` 64/lib-org-xml-sax.so -fi -ln -sf ../`echo ../../../../lib/libg2c.so.0.* | sed s~/lib/~/lib64/~` 64/libg2c.so -mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libsupc++.*a 64/ -mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libg2c.*a 64/ -mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libfrtbegin.*a 64/ -mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libobjc.*a 64/ -ln -sf lib32/libstdc++.a libstdc++.a -ln -sf ../lib64/libstdc++.a 64/libstdc++.a -if [ "%{build_java}" -gt 0 ]; then -ln -sf lib32/libgcj.a libgcj.a -ln -sf ../lib64/libgcj.a 64/libgcj.a -ln -sf ../lib64/lib-gnu-java-awt-peer-gtk.a 64/lib-gnu-java-awt-peer-gtk.a -ln -sf lib32/lib-gnu-java-awt-peer-gtk.a lib-gnu-java-awt-peer-gtk.a -ln -sf ../lib64/lib-org-w3c-dom.a 64/lib-org-w3c-dom.a -ln -sf lib32/lib-org-w3c-dom.a lib-org-w3c-dom.a -ln -sf ../lib64/lib-org-w3c-dom.a 64/lib-org-w3c-dom.a -ln -sf lib32/lib-org-xml-sax.a lib-org-xml-sax.a -ln -sf ../lib64/lib-org-xml-sax.a 64/lib-org-xml-sax.a -fi -%endif -%ifarch %{multilib_64_archs} -mkdir -p 32 -ln -sf ../../../../libobjc.so.1 32/libobjc.so -ln -sf ../`echo ../../../../lib64/libstdc++.so.6.* | sed s~/../lib64/~/~` 32/libstdc++.so -if [ "%{build_java}" -gt 0 ]; then -ln -sf ../`echo ../../../../lib64/libgcj.so.5.* | sed s~/../lib64/~/~` 32/libgcj.so -ln -sf ../`echo ../../../../lib64/lib-gnu-java-awt-peer-gtk.so.5.* | sed s~/../lib64/~/~` 32/lib-gnu-java-awt-peer-gtk.so -ln -sf ../`echo ../../../../lib64/lib-org-w3c-dom.so.5.* | sed s~/../lib64/~/~` 32/lib-org-w3c-dom.so -ln -sf ../`echo ../../../../lib64/lib-org-xml-sax.so.5.* | sed s~/../lib64/~/~` 32/lib-org-xml-sax.so -fi -ln -sf ../`echo ../../../../lib64/libg2c.so.0.* | sed s~/../lib64/~/~` 32/libg2c.so -mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libsupc++.*a 32/ -mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libg2c.*a 32/ -mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libfrtbegin.*a 32/ -mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libobjc.*a 32/ -%endif -%ifarch sparc64 ppc64 -ln -sf ../lib32/libstdc++.a 32/libstdc++.a -ln -sf lib64/libstdc++.a libstdc++.a -if [ "%{build_java}" -gt 0 ]; then -ln -sf ../lib32/libgcj.a 32/libgcj.a -ln -sf lib64/libgcj.a libgcj.a -ln -sf ../lib32/lib-gnu-java-awt-peer-gtk.a 32/lib-gnu-java-awt-peer-gtk.a -ln -sf lib64/lib-gnu-java-awt-peer-gtk.a lib-gnu-java-awt-peer-gtk.a -ln -sf ../lib32/lib-org-w3c-dom.a 32/lib-org-w3c-dom.a -ln -sf lib64/lib-org-w3c-dom.a lib-org-w3c-dom.a -ln -sf ../lib32/lib-org-xml-sax.a 32/lib-org-xml-sax.a -ln -sf lib64/lib-org-xml-sax.a lib-org-xml-sax.a -fi -%else -%ifarch %{multilib_64_archs} -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libstdc++.a 32/libstdc++.a -if [ "%{build_java}" -gt 0 ]; then -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgcj.a 32/libgcj.a -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/lib-gnu-java-awt-peer-gtk.a 32/lib-gnu-java-awt-peer-gtk.a -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/lib-org-w3c-dom.a 32/lib-org-w3c-dom.a -ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/lib-org-xml-sax.a 32/lib-org-xml-sax.a -fi -%endif -%endif - -# Strip debug info from Fortran/ObjC/Java static libraries -strip -g `find . \( -name libg2c.a -o -name libobjc.a -o -name libgcj.a \ - -o -name lib-gnu-java-awt-peer-gtk.a \ - -o -name lib-org-w3c-dom.a -o -name lib-org-xml-sax.a \ - -o -name libgcc.a -o -name libgcov.a \) -a -type f` -popd -chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libg2c.so.0.* -chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libobjc.so.1.* - -%if %{build_ada} -chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgnarl*so* -chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgnat*so* -%endif - -for h in `find $FULLPATH/include -name \*.h`; do - if grep -q 'It has been auto-edited by fixincludes from' $h; then - rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'` - diff -up $rh $h || : - rm -f $h - fi -done - -# gcj -static doesn't work properly anyway, unless using --whole-archive -# and saving 35MB is not bad. -find $FULLPATH -name libgcj.a -o -name lib-\*.a | xargs rm -f -sed -i -e 's/lib: /&%%{static:%%eJava programs cannot be linked statically}/' \ - $FULLPATH/libgcj.spec - -cat > $RPM_BUILD_ROOT%{_prefix}/bin/c89 <<"EOF" -#!/bin/sh -fl="-std=c89" -for opt; do - case "$opt" in - -ansi|-std=c89|-std=iso9899:1990) fl="";; - -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2 - exit 1;; - esac -done -exec %{_prefix}/bin/gcc $fl ${1+"$@"} -EOF -cat > $RPM_BUILD_ROOT%{_prefix}/bin/c99 <<"EOF" -#!/bin/sh -fl="-std=c99" -for opt; do - case "$opt" in - -std=c99|-std=iso9899:1999) fl="";; - -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2 - exit 1;; - esac -done -exec %{_prefix}/bin/gcc $fl ${1+"$@"} -EOF -chmod 755 $RPM_BUILD_ROOT%{_prefix}/bin/c?9 - -mkdir -p $RPM_BUILD_ROOT%{_prefix}/sbin -gcc -static -Os %{SOURCE1} -o $RPM_BUILD_ROOT%{_prefix}/sbin/libgcc_post_upgrade -strip $RPM_BUILD_ROOT%{_prefix}/sbin/libgcc_post_upgrade - -cd .. -%find_lang %{name} - -%if %{build_java} -# rename jpackage-conflicting tools -pushd $RPM_BUILD_ROOT%{_prefix}/bin - mv -f rmiregistry grmiregistry - mv -f jar fastjar - mv -f rmic grmic -popd - -# rename corresponding man pages -pushd $RPM_BUILD_ROOT%{_mandir}/man1 - mv -f rmiregistry.1 grmiregistry.1 - mv -f jar.1 fastjar.1 - mv -f rmic.1 grmic.1 -popd -%endif - -%clean -rm -rf $RPM_BUILD_ROOT - -%post -/sbin/install-info \ - --info-dir=%{_infodir} %{_infodir}/gcc.info.gz - -%preun -if [ $1 = 0 ]; then - /sbin/install-info --delete \ - --info-dir=%{_infodir} %{_infodir}/gcc.info.gz -fi - -%post -n cpp -/sbin/install-info \ - --info-dir=%{_infodir} %{_infodir}/cpp.info.gz - -%preun -n cpp -if [ $1 = 0 ]; then - /sbin/install-info --delete \ - --info-dir=%{_infodir} %{_infodir}/cpp.info.gz -fi - -%post g77 -/sbin/install-info \ - --info-dir=%{_infodir} %{_infodir}/g77.info.gz - -%preun g77 -if [ $1 = 0 ]; then - /sbin/install-info --delete \ - --info-dir=%{_infodir} %{_infodir}/g77.info.gz -fi - -%post java -/sbin/install-info \ - --info-dir=%{_infodir} %{_infodir}/gcj.info.gz - -%preun java -if [ $1 = 0 ]; then - /sbin/install-info --delete \ - --info-dir=%{_infodir} %{_infodir}/gcj.info.gz -fi - -%post gnat -/sbin/install-info \ - --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz -/sbin/install-info \ - --info-dir=%{_infodir} %{_infodir}/gnat_ugn_unw.info.gz -/sbin/install-info \ - --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz - -%preun gnat -if [ $1 = 0 ]; then - /sbin/install-info --delete \ - --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz - /sbin/install-info --delete \ - --info-dir=%{_infodir} %{_infodir}/gnat_ugn_unw.info.gz - /sbin/install-info --delete \ - --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz -fi - -# Because glibc Prereq's libgcc and /sbin/ldconfig -# comes from glibc, it might not exist yet when -# libgcc is installed -%post -n libgcc -p %{_prefix}/sbin/libgcc_post_upgrade - -%post -n libstdc++ -p /sbin/ldconfig - -%postun -n libstdc++ -p /sbin/ldconfig - -%post -n libobjc -p /sbin/ldconfig - -%postun -n libobjc -p /sbin/ldconfig - -%post -n libgcj -/sbin/ldconfig -/sbin/install-info \ - --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz - -%preun -n libgcj -if [ $1 = 0 ]; then - /sbin/install-info --delete \ - --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz -fi - -%postun -n libgcj -p /sbin/ldconfig - -%post -n libf2c -p /sbin/ldconfig - -%postun -n libf2c -p /sbin/ldconfig - -%post -n libgnat -p /sbin/ldconfig - -%postun -n libgnat -p /sbin/ldconfig - -%files -f %{name}.lang -%defattr(-,root,root) -%{_prefix}/bin/cc -%{_prefix}/bin/c89 -%{_prefix}/bin/c99 -%{_prefix}/bin/gcc -%{_prefix}/bin/gcov -%{_prefix}/bin/protoize -%{_prefix}/bin/unprotoize -%ifarch sparc ppc -%{_prefix}/bin/%{_target_platform}-gcc -%endif -%ifarch sparc64 -%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc -%endif -%ifarch ppc64 -%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc -%endif -%{_prefix}/bin/%{gcc_target_platform}-gcc -%{_mandir}/man1/gcc.1* -%{_mandir}/man1/gcov.1* -%{_infodir}/gcc* -%dir %{_prefix}/lib/gcc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} -%dir %{_prefix}/libexec/gcc -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stddef.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdarg.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/varargs.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/float.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/limits.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdbool.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/iso646.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/syslimits.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/unwind.h -%ifarch %{ix86} x86_64 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xmmintrin.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/emmintrin.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/pmmintrin.h -%endif -%ifarch ia64 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ia64intrin.h -%endif -%ifarch ppc ppc64 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ppc-asm.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/altivec.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/spe.h -%endif -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/README -%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcov.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_eh.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s.so -%ifarch sparc ppc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcov.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_eh.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s_64.so -%endif -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/crt*.o -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcov.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_eh.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s_32.so -%endif -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/specs -%dir %{_prefix}/libexec/getconf -%{_prefix}/libexec/getconf/default -%doc gcc/README* gcc/*ChangeLog* gcc/COPYING* - -%files -n cpp -%defattr(-,root,root) -/lib/cpp -%{_prefix}/bin/cpp -%{_mandir}/man1/cpp.1* -%{_infodir}/cpp* -%dir %{_prefix}/libexec/gcc -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} -%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1 - -%files -n libgcc -%defattr(-,root,root) -/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1 -/%{_lib}/libgcc_s.so.1 -%{_prefix}/sbin/libgcc_post_upgrade -%doc gcc/COPYING.LIB - -%files c++ -%defattr(-,root,root) -%{_prefix}/bin/%{gcc_target_platform}-*++ -%{_prefix}/bin/g++ -%{_prefix}/bin/c++ -%{_prefix}/bin/c++filt -%{_mandir}/man1/g++.1* -%dir %{_prefix}/lib/gcc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} -%dir %{_prefix}/libexec/gcc -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} -%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus -%ifarch sparc ppc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libsupc++.a -%endif -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libsupc++.a -%endif -%ifarch sparc ppc %{multilib_64_archs} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a -%endif -%ifarch sparc sparc64 ppc ppc64 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a -%endif -%doc gcc/cp/ChangeLog* - -%files -n libstdc++ -%defattr(-,root,root) -%{_prefix}/%{_lib}/libstdc++.so.6* - -%files -n libstdc++-devel -%defattr(-,root,root) -%{_prefix}/include/c++ -%dir %{_prefix}/lib/gcc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} -%ifarch sparc ppc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libstdc++.a -%endif -%ifarch sparc64 ppc64 -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libstdc++.a -%endif -%ifnarch sparc sparc64 ppc ppc64 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a -%endif -%ifnarch sparc ppc %{multilib_64_archs} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a -%endif -%doc libstdc++-v3/ChangeLog* libstdc++-v3/README* libstdc++-v3/docs/html/ - -%files objc -%defattr(-,root,root) -%dir %{_prefix}/lib/gcc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} -%dir %{_prefix}/libexec/gcc -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/objc -%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1obj -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.so -%ifarch sparc ppc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libobjc.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libobjc.so -%endif -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.so -%endif -%doc rpm.doc/objc/* -%doc libobjc/THREADS* libobjc/ChangeLog - -%files -n libobjc -%defattr(-,root,root) -%{_prefix}/%{_lib}/libobjc.so.1* - -%files g77 -%defattr(-,root,root) -%{_prefix}/bin/g77 -%{_prefix}/bin/f77 -%{_mandir}/man1/g77.1* -%{_infodir}/g77* -%dir %{_prefix}/lib/gcc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} -%dir %{_prefix}/libexec/gcc -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include -%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/f771 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libfrtbegin.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libg2c.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libg2c.so -%ifarch sparc ppc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libfrtbegin.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libg2c.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libg2c.so -%endif -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libfrtbegin.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libg2c.a -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libg2c.so -%endif -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/g2c.h -%doc rpm.doc/g77/* - -%files -n libf2c -%defattr(-,root,root) -%{_prefix}/%{_lib}/libg2c.so.0* - -%if %{build_java} -%files java -%defattr(-,root,root) -%{_prefix}/bin/gcj -%{_prefix}/bin/gcjh -%{_prefix}/bin/jcf-dump -%{_prefix}/bin/jv-scan -%{_mandir}/man1/gcj.1* -%{_mandir}/man1/gcjh.1* -%{_mandir}/man1/jcf-dump.1* -%{_mandir}/man1/jv-scan.1* -%{_infodir}/gcj* -%dir %{_prefix}/lib/gcc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} -%dir %{_prefix}/libexec/gcc -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} -%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jc1 -%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jvgenmain -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib-gnu-java-awt-peer-gtk.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib-org-w3c-dom.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib-org-xml-sax.so -%ifarch sparc ppc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcj.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/lib-gnu-java-awt-peer-gtk.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/lib-org-w3c-dom.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/lib-org-xml-sax.so -%endif -%ifarch %{multilib_64_archs} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32 -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/lib-gnu-java-awt-peer-gtk.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/lib-org-w3c-dom.so -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/lib-org-xml-sax.so -%endif -%doc gcc/java/ChangeLog* - -%files -n libgcj -%defattr(-,root,root) -%{_prefix}/bin/jv-convert -%{_prefix}/bin/gij -%{_prefix}/bin/fastjar -%{_prefix}/bin/grepjar -%{_prefix}/bin/grmic -%{_prefix}/bin/grmiregistry -%{_mandir}/man1/fastjar.1* -%{_mandir}/man1/grepjar.1* -%{_mandir}/man1/jv-convert.1* -%{_mandir}/man1/gij.1* -%{_mandir}/man1/grmic.1* -%{_mandir}/man1/grmiregistry.1* -%{_infodir}/fastjar* -%{_prefix}/%{_lib}/libgcj.so.* -%{_prefix}/%{_lib}/lib-gnu-java-awt-peer-gtk.so.* -%{_prefix}/%{_lib}/lib-org-w3c-dom.so.* -%{_prefix}/%{_lib}/lib-org-xml-sax.so.* -%{_prefix}/share/java -%{_prefix}/lib/security -%{_prefix}/lib/logging.properties - -%files -n libgcj-devel -%defattr(-,root,root) -%{_prefix}/bin/addr2name.awk -%dir %{_prefix}/lib/gcc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.spec -#%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/gc*.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/j*.h -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/java -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/javax -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/gnu -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/gcj -#%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/org -%{_prefix}/lib/pkgconfig/libgcj.pc -%doc rpm.doc/boehm-gc/* rpm.doc/fastjar/* rpm.doc/libffi/* -%doc rpm.doc/libjava/* -%endif - -%if %{build_ada} -%files gnat -%defattr(-,root,root) -%{_prefix}/bin/gnat* -%{_prefix}/bin/gpr* -%{_infodir}/gnat* -%dir %{_prefix}/lib/gcc -%dir %{_prefix}/lib/gcc/%{gcc_target_platform} -%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} -%dir %{_prefix}/libexec/gcc -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} -%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adainclude -%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adalib -%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/gnat1 -%{_prefix}/share/gnat -%doc gcc/ada/ChangeLog - -%files -n libgnat -%defattr(-,root,root) -%{_prefix}/%{_lib}/libgnat-*.so.* -%{_prefix}/%{_lib}/libgnarl-*.so.* -%endif - -%ifarch sparc -%files sparc32 -%defattr(-,root,root) -%dir %{_prefix}/lib/gcc -%dir %{_prefix}/lib/gcc/%{_target_platform} -%dir %{_prefix}/lib/gcc/%{_target_platform}/%{gcc_version} -%dir %{_prefix}/libexec/gcc -%dir %{_prefix}/libexec/gcc/%{_target_platform} -%dir %{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version} -%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}/cc1 -%{_prefix}/lib/gcc/%{_target_platform}/%{gcc_version}/include - -%files c++-sparc32 -%defattr(-,root,root) -%dir %{_prefix}/libexec/gcc -%dir %{_prefix}/libexec/gcc/%{_target_platform} -%dir %{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version} -%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}/cc1plus -%endif - -%ifarch ppc -%files ppc32 -%defattr(-,root,root) -%dir %{_prefix}/lib/gcc -%dir %{_prefix}/lib/gcc/%{_target_platform} -%dir %{_prefix}/lib/gcc/%{_target_platform}/%{gcc_version} -%dir %{_prefix}/libexec/gcc -%dir %{_prefix}/libexec/gcc/%{_target_platform} -%dir %{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version} -%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}/cc1 -%{_prefix}/lib/gcc/%{_target_platform}/%{gcc_version}/include - -%files c++-ppc32 -%defattr(-,root,root) -%dir %{_prefix}/libexec/gcc -%dir %{_prefix}/libexec/gcc/%{_target_platform} -%dir %{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version} -%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version}/cc1plus -%endif - -%changelog -* Mon Mar 14 2005 Jakub Jelinek 3.4.3-22.fc3 -- add Req/BuildReq for glib2 and libart_lgpl (#150923) -- fix PR c++/19916 (Mark Mitchell, #148793) -- fixed C++ redeclaration handling (Alexandre Oliva, #149098) - -* Mon Feb 28 2005 Jakub Jelinek 3.4.3-21 -- update from gcc-3_4-branch - - PRs rtl-optimization/17728, target/20159, c++/20175 - -* Tue Feb 22 2005 Jakub Jelinek 3.4.3-20 -- update from gcc-3_4-branch - - PRs c++/14479, c++/19487, c++/19739, c++/19755, c++/19762, c++/19787, - c++/20028, libstdc++/19829, libstdc++/19946, libstdc++/19955, - middle-end/19697, preprocessor/19077, target/19019, target/19715 - - rename PowerPC IBM long double helper routines _xlq* to __gcc_*, - but keep _xlq*@GCC_3.4 aliases around (#148841, PR target/19019) -- change __cxa_demangle to match cxx-abi change - http://www.codesourcery.com/archives/cxx-abi-dev/msg01877.html - (Jason Merrill, #133406) -- only obsolete < NVR gcc-gnat and libgnat if %%{build_ada} is 0 - (#139537) -- revert the alloca vs. VLA patch, it has too many false positives (#147758) -- make sure libjava GC memory is executable for libffi trampolines sake - (#149348, PR libgcj/19823) - -* Sat Feb 10 2005 Jakub Jelinek 3.4.3-19 -- use crtendS.o instead of crtend.o on ppc -pie -- use execv instead of execl in libgcc_post_upgrade to avoid bringing - in malloc and friends into the statically linked binary (which increases - its size ~ 10 times) - -* Thu Feb 10 2005 Jakub Jelinek 3.4.3-18 -- update from gcc-3_4-branch - - PRs c++/18370, c++/19366, c++/19499, c++/19733, libstdc++/19642, - middle-end/19775, target/15384, target/16201, target/17771, - target/19293, target/19329, target/19393, target/19803 -- fix c++filt/__cxa_demangle segfault on invalidly mangled names - generated by G++ 3.4 (#145781, PR c++/16240) -- make sure libgcj.so is not PT_GNU_STACK RWE -- disallow dlopening libgnat-3*.so, as it must be PT_GNU_STACK RWE - due to its extensive use of trampolines -- fix PRs c++/18838 and c++/19367 (Mark Mitchell, backported by - Alexandro Oliva) -- fix ICE in fold_convert (Andrew Pinski, #146385, PR c++/19666) - -* Tue Jan 25 2005 Jakub Jelinek 3.4.3-17 -- update from gcc-3_4-branch - - PRs c++/19258, c++/19375, libstdc++/19510, other/16403, - rtl-optimization/19296, target/16304, target/19548 -- fix PR rtl-optimization/19579 -- remove Java *.a libraries, issue error for gcj -static (#145829) - -* Sat Jan 22 2005 Jakub Jelinek 3.4.3-16 -- fix PRs middle-end/19551 - -* Tue Jan 18 2005 Jakub Jelinek 3.4.3-15 -- add gcc-gnat and libgnat on ppc, x86_64 and ia64 again -- fix Ada bootstrap problems on 64-bit architectures (PR ada/13470) -- run ACATS tests under expect, so that if they hang, they'll be timed - out - -* Fri Jan 14 2005 Jakub Jelinek 3.4.3-14 -- update from gcc-3_4-branch - - PRs bootstrap/18033, target/18987, target/18720, rtl-optimization/19012, - rtl-opt/13299, rtl-opt/10692 -- fix PRs c++/19263, rtl-optimization/16104, c/17297, middle-end/19164, - rtl-optimization/15139, rtl-optimization/19348, middle-end/19084, - java/17255 - -* Fri Jan 7 2005 Jakub Jelinek 3.4.3-13 -- fix memory attribute computation for addqi_1_slp (PR target/19012) -- fix TYPE_MODE of enum with __attribute__ ((mode ())) (#144358) - -* Wed Jan 5 2005 Jakub Jelinek 3.4.3-12 -- update from gcc-3_4-branch - - PRs c++/14607, middle-end/19175, rtl-optimization/12092, target/17643 -- fix ICE in same_translation_unit_p (#144166) - -* Mon Dec 27 2004 Jakub Jelinek 3.4.3-11 -- update from gcc-3_4-branch - - PRs c++/17972, c++/18962, c++/18975, java/14104, libobjc/12035, - middle-end/17930, middle-end/18424, middle-end/18493, - middle-end/18590, middle-end/18730, middle-end/18882, - middle-end/19068, other/18508, other/18665, other/19093, - preprocessor/15167, rtl-optimization/16968, target/16819, - target/17990, target/18002, target/18153, target/19005, - target/19010, target/19028, target/19102, target/19147 -- fix ICE in dwarf2out (Devang Patel, Eric Botcazou, #143719, - PR debug/16261) -- fix ICE in reshape_init_array (#143034, PRs c++/18384, c++/18327) - -* Tue Dec 14 2004 Jakub Jelinek 3.4.3-9.EL4 -- update from gcc-3_4-branch - - PRs target/18932, target/17025, c++/18731 -- fix _Jv_{Start,End}OfInterpreter computation (Andrew Haley, #142611, - PRs java/18036, java/13468) -- avoid multiple evaluation of sqrt and other math builtins when - not -ffast-math (#142603, PR middle-end/18951) -- remove leading underscore from %{_prefix}/libexec/getconf/default - symlink target - -* Thu Dec 9 2004 Jakub Jelinek 3.4.3-8.EL4 -- update from gcc-3_4-branch - - PRs target/18443, c++/18100, java/14853, c++/16681 -- fix creation of %{_prefix}/libexec/getconf/default symlink - -* Wed Dec 8 2004 Jakub Jelinek 3.4.3-8 -- update from gcc-3_4-branch - - PRs c++/17011, c++/17431, c++/17971, c++/18123, c++/6764, libstdc++/18837, - middle-end/17827, preprocessor/17610, preprocessor/17651, - rtl-opt/15289, rtl-optimization/16356, target/12769, target/12817, - target/16343, target/16952, target/17224, target/18841, target/9908 -- make sure target's LOAD_EXTEND_OP or lack thereof doesn't influence - gcj -C output (#141730) -- package %{_prefix}/libexec/getconf/default symlink -- avoid recursion in splay_tree_delete (D.J.Delorie, #142090) -- handle java.net.URL ((String) null) (Michael Koch) -- don't ICE on invalid templated source (Alexandre Oliva, #141300, - PR c++/18757) - -* Fri Nov 26 2004 Jakub Jelinek 3.4.3-7 -- update from gcc-3_4-branch - - PRs rtl-optimization/18614, rtl-optimization/14838, target/18263 -- don't optimize printf/fprintf/__printf_chk/__fprintf_chk in any way - if return value is not ignored -- fix folding of abs (#140890) -- fix ppc #pragma longcall (Alan Modra, PR target/18686) - -* Wed Nov 24 2004 Jakub Jelinek 3.4.3-6 -- make sure return value of __builtin_object_size () is size_t, - not the internal sizetype type (otherwise spurious - large integer implicitly truncated to unsigned type - warnings might be emitted) - -* Tue Nov 23 2004 Jakub Jelinek 3.4.3-5 -- change s390{,x} stack layout to work-around GCC 2.95.3 bug: - former -mno-backchain (the default), -mbackchain and -mkernel-backchain - options were transformed into (in order) -mno-backchain -mpacked-stack, - -mbackchain -mno-packed-stack and -mbackchain -mpacked-stack. - A new combination -mno-backchain -mno-packed-stack is now the - new default (Andreas Krebbel, #139678) - -* Sat Nov 20 2004 Jakub Jelinek 3.4.3-4 -- issue error on invalid bitfields (Joseph S. Myers, PR c/18498) -- fix __builtin_{setjmp,longjmp} to do stack adjustements properly - (Eric Botcazou, Roger Sayle, PR middle-end/17813 #139929) -- fix combine on STRICT_LOW_PART (PR rtl-optimization/17825, #138627) - -* Mon Nov 15 2004 Jakub Jelinek 3.4.3-3 -- update from gcc-3_4-branch - - PRs 17778, c++/18389, c++/18407, c++/18436, c/18322, objc/18406, - target/16480, target/18347, target/18380 -- some more libgcc_s.so.1 tweaks on ia64 -- add some Java stubs, fix a typo in method's name (Gary Benson, #130006) - -* Wed Nov 10 2004 Jakub Jelinek 3.4.3-2 -- make _Unwind_* symbols in libgcc_s.so.1 unversioned to match the - "IA-64 Linux ABI" -- fix ia64 unwind info generation (Jim Wilson, David Mosberger, #138217, - PRs target/13158, target/18010) -- kill the alternatives stuff for libgcj (Thomas Fitzsimmons) - -* Sun Nov 7 2004 Jakub Jelinek 3.4.3-1 -- update from gcc-3_4-branch - - GCC 3.4.3 release - - PRs 18004, bootstrap/15747, bootstrap/17684, c++/13560, c++/15172, - c++/17132, c++/18020, c++/18093, c++/18140, libstdc++/16612, - middle-end/18129, other/17783, other/18138, other/18186, - rtl-optimization/17581, rtl-optimization/18084, target/17317 - - with -D_GLIBCXX_FULLY_DYNAMIC_STRING, STL should now avoid - _S_empty_rep_storage (#135268) -- don't ICE when cc1 is called on a non-existent source file (Jim Wilson) -- add %%doc COPYING{,.LIB} - -* Tue Nov 2 2004 Jakub Jelinek 3.4.2-9 -- allow enums with mode attribute (if mode is integral; PR c/18282) - -* Mon Nov 1 2004 Jakub Jelinek 3.4.2-8 -- added object size checking patch (more limited than in gcc4-4.0.0-0.x, - still should catch some overflows) - -* Mon Oct 25 2004 Jakub Jelinek 3.4.2-7 -- fix ICE in dwarf2out.c introduced in 3.4.2-6 (#136884) -- fix -fwritable-strings (#136714) - -* Mon Oct 18 2004 Jakub Jelinek 3.4.2-6 -- update from gcc-3_4-branch - - PRs c++/15786, c++/15876, c++/16301, c/16999, c/17023, c++/17115, - c/17384, c++/17393, c++/17524, c++/17685, c++/17821, c++/17826, - c++/17868, c++/17976, debug/13841, debug/14492, debug/15860, - libstdc++/17850, other/17361, rtl-opt/17503, rtl-optimization/17027, - rtl-optimization/17853, target/14454, target/17245, target/17770 -- fix ICE in addqi_1_slp on i386 (#135872) -- avoid symlinks in /usr/include/c++/%{version}/ on ppc and sparc - (#135611) -- make sure .toc{,1} sections are created on ppc -m64 -mminimal-toc - (#134248, PR target/17751) -- define __GNUC_RH_RELEASE__ macro to match %%{gcc_release} rpm macro - (well, its first number) - -* Thu Oct 7 2004 Jakub Jelinek 3.4.2-5 -- update from gcc-3_4-branch - - PRs target/16007, 16406, libstdc++/10975, libstdc++/17505 -- fix a fastjar bug (Tom Tromey, #74106) -- obsolete gcc-chill (#84670) -- don't use Koenig lookup if normal lookup finds a member function - (Nathan Sidwell, #134676, PR c++/17829) - -* Tue Oct 5 2004 Jakub Jelinek 3.4.2-4 -- remove VMClassLoader change - -* Mon Oct 4 2004 Jakub Jelinek 3.4.2-3 -- update from gcc-3_4-branch - - PRs 15886, bootstrap/17369, c++/14179, c/15498, c++/16162, c/16566, - c++/17327, c++/17501, c++/17585, driver/17537, - inline-asm/6806, libgcj/17465, libstdc++/11722, libstdc++/16715, - libstdc++/16848, libstdc++/17259, libstdc++/17469, other/15526, - rtl-opt/17186, rtl-optimization/9771, target/11476, target/14064, - target/15583, target/16884, target/17167, target/17277, - target/17455, target/17493, target/17565 - - fix Fortran double precision constant handling (Bud Davis, - PR fortran/17541, #133694) -- fix up gnat_ung_unw's info direntry (#133629) -- install-info gnat-style -- another backport of s390{,x} -mkernel-backchain, by Andreas Krebbel -- remove nothrow attribute from stdio builtins that might be cancellation - points -- change ZipFile Java class so that it returns null if not found - to make ant happy (Anthony Green) -- x86-64 libffi argument alignment fix (Andrew Haley) - -* Mon Sep 20 2004 Jakub Jelinek 3.4.2-2 -- add .note.GNU-stack marking to ppc64 crtsavres.o and - ia64 crt{begin,end,i,n}.o - -* Wed Sep 8 2004 Jakub Jelinek 3.4.2-1 -- update from gcc-3_4-branch - - GCC 3.4.2 release - - PRs bootstrap/17325, target/17303, rtl-optimization/16408, - fortran/17180 -- gnu.regexp.* backport (Anthony Green) -- java.ext.dirs (Anthony Green) -- fix libjava hash synchronization (Hans Boehm, PR libgcj/16662) - -* Wed Sep 1 2004 Jakub Jelinek 3.4.1-10 -- update from gcc-3_4-branch - - PRs c++/15461, c++/15890, c++/16246, c++/16706, c++/16851, c++/16889, - c++/17068, c/14492, c/16180, debug/10695, middle-end/16693, - rtl-optimization/16590, rtl-optimization/17078, target/15927, - target/15948, target/16298, target/16974, target/17019, target/17093, - target/17113, target/17119 -- thread-safe C++ static initializers (Jason Merrill, #89828) -- fix x ? (unsigned long) d : (long) d conversion bug for d floating - (#131082) - -* Sat Aug 21 2004 Jakub Jelinek 3.4.1-9 -- make no-dot-syms on ppc64 runtime selectable: - -m64 -mcall-linux (the default) will use no dot symbols, - -m32 -mcall-aixdesc will use dot symbols -- backport C++ visibility patches, -fvisibility*, #pragma GCC visibility -- backport s390{,x} -mkernel-backchain and stack checking changes, - though for this rpm version the patches are still not applied -- add spe.h header on ppc and ppc64, altivec.h and ppc-asm.h on ppc64 -- add gcc34* and lib*34 Provides -- use libgcj-javac-placeholder.sh for javac alternative(8), - run exec gcj -C "$@" at the end of it and gij "$@" at the end - of libgcj-java-placeholder.sh - -* Tue Aug 17 2004 Jakub Jelinek 3.4.1-8 -- update from gcc-3_4-branch - - PRs 13956, 16684, bootstrap/16469, c++/16175, c++/16224, c++/16273, - c++/16489, c++/16529, c++/16618, c++/16637, c++/16698, c++/16717, - c++/16810, c++/16853, c++/16870, c++/16904, c++/16929, c++/16964, - libgfortran/15930, libstdc++/12658, libstdc++/14697, - libstdc++/16813, libstdc++/16959, middle-end/16790, other/16842, - preprocessor/16366, rtl-optimization/16490, rtl-optimization/16536, - rtl-optimization/16643, target/16239, target/16325 -- avoid making silly copies in convert_move (Jeff Law) -- make sure all files in libgcj*.jar have identical timestamps - accross all the architectures (#128431) -- one more gcj -C fix to make sure .class files are identical between - 32-bit and 64-bit targets (#128431) -- put jumptables for .gnu.linkonce.t.* sections into .gnu.linkonce.r.* - sections instead of .rodata (#129574, PR c++/16276) -- rtti linkonce fix (H.J.Lu, PR c++/16276) -- handle filenames with embedded spaces in gcj - (Elliot Lee, #129675, PR java/9677) -- stop using dot symbols on ppc64 (Alan Modra) -- overlap fd_aux field of ppc64 .opd entries with next .opd entry's fd_func - if a function is not going to use r11 passed to it -- avoid building multilib libjava's - they shouldn't be needed for packaging - and otherwise we would need all of Gtk+ installed as both 32-bit and - 64-bit development environment - -* Thu Aug 12 2004 Thomas Fitzsimmons -- build GTK peers, backport libjava changes from gui-branch -- rename gjar to fastjar - -* Tue Jul 20 2004 Jakub Jelinek 3.4.1-7 -- fix nested inline function patch - -* Mon Jul 19 2004 Jakub Jelinek 3.4.1-6 -- don't emit unreferenced nested C functions (PRs middle-end/15345, - c/16450) -- fix libgcj %post (#128068) - -* Thu Jul 15 2004 Jakub Jelinek 3.4.1-5 -- update from gcc-3_4-branch - - PRs 16478, bootstrap/16250, c++/16276, c++/16475, libgcj/16473, - libgcj/16478, libgcj/7587, libstdc++/15928, libstdc++/16210, - libstdc++/16248, libstdc++/16401, libstdc++/16411, other/15194, - rtl-optimization/14700, rtl-optimization/16380, target/12602, - target/13926, target/15186, target/15869, target/16130, - target/16142, target/16143, target/16199, target/16344, - target/16357, target/16407, target/16414, target/16416, - target/16430, target/16445, target/16459, target/16494, - target/1679 -- rename rmiregistry, jar and rmic binaries and their man pages and - install alternatives-managed symlinks in their place (Tom Fitzsimmons) -- make even multilib libstdc++.so's versioned - -* Sat Jul 10 2004 Jakub Jelinek 3.4.1-4 -- handle c++config.h being different between multilibs -- fix C++ enum handling in range tests (PR tree-optimization/16372) -- one more bitfield patch fix - -* Fri Jul 9 2004 Jakub Jelinek 3.4.1-3 -- reenable bitfield patch after fixing it -- don't use SSE prefetch instructions if -mcpu= is a CPU with - SSE prefetch, but -march= is not i686+ and -msse{2,3} is not given - either (#127375) - -* Mon Jul 5 2004 Jakub Jelinek 3.4.1-2 -- temporary disable the bitfield patch until it is fixed - -* Sat Jul 3 2004 Jakub Jelinek 3.4.1-1 -- update from gcc-3_4-branch - - 3.4.1 release - - PRs bootstrap/14760, c++/14865, c++/14950, c++/16174, libstdc++/16154, - libstdc++/16182, middle-end/16026, preprocessor/15572, - preprocessor/15913, preprocessor/16192, rtl-optimization/14782, - target/15551, target/16144, target/16176, wrong-code/15089, - wrong-code/16129 -- optimize some bitfield operations (PR tree-optimization/15310) - -* Fri Jun 25 2004 Jakub Jelinek 3.4.0-7 -- fix ppc64 -mminimal-toc (PR target/16195) -- fix gnat rpm scriptlets (#126654) - -* Tue Jun 22 2004 Jakub Jelinek 3.4.0-6 -- update from gcc-3_4-branch - - PRs c++/14007, c++/14930, c++/15096, c++/15947, c++/15967, c++/3518, - libf2c/15151, libstdc++/16020, rtl-optimization/15159, target/10129, - target/13292, target/15178, target/15550, target/15941 - - fix gcc hang in CSE on ppc64 kernel (PR rtl-opt/16114, Richard Henderson) -- optimize unsigned int i; ... if (i == 0 || i == -1U) and similar tests - -* Mon Jun 14 2004 Jakub Jelinek 3.4.0-5 -- update from gcc-3_4-branch - - PRs ada/14150, c++/14211, c++/15076, c++/15227, c++/15862, c++/15875, - c++/15877, libstdc++/15775, rtl-optimization/15296, - rtl-optimization/15761, target/13312, target/13803, target/14567, - target/14960, target/15191, target/15653, target/8309 -- don't optimize out Inf - Inf, Inf / Inf and 0 * Inf unless -ffast-math, - as they should generate runtime exception (PR middle-end/15945) -- add libgnat-3.4.so and libgnarl-3.4.so symlinks -- disable Ada support on 64-bit arches and PPC32 for now, xnmake is deadly - broken -- if Ada support is disabled, Obsolete older gcc-gnat and libgnat in gcc rpm -- add Provides libstdc++34 resp. libgcj34 in libstdc++ resp. libgcj packages - -* Wed Jun 9 2004 Jakub Jelinek 3.4.0-4 -- libstdc++ linker map fix for 64-bit arches (Jason Merrill) -- for the time being undeprecate #pragma interface and #pragma implementation - -* Wed Jun 9 2004 Jakub Jelinek 3.4.0-3 -- update from gcc-3_4-branch - - PRs c++/13092, c/14649, c++/14668, c/14765, c++/14777, - c++/14821, c++/14883, c++/14932, c++/15025, c++/15044, - c++/15057, c++/15083, c++/15142, c++/15165, c++/15209, c++/15285, - c++/15287, c++/15299, c++/15317, c++/15329, c++/15337, c++/15427, - c++/15471, c++/15503, c++/15507, c++/15542, c++/15554, c++/15625, - c++/15629, c++/15640, c++/15696, c++/15701, c++/15742, c/15749, - c++/15766, c++/15815, java/14315, libstdc++/12854, libstdc++/13928, - libstdc++/14600, libstdc++/15123, libstdc++/15565, - libstdc++/15675, middle-end/15069, middle-end/15228, middle-end/15666, - objc/7993, rtl-opt/15193, rtl-optimization/15717, target/13250, - target/14457, target/14478, target/14542, target/15569, target/15598, - target/15626, target/15693, target/15782, target/15783 - - fix ICE on IA-64 with -frename-registers -Os (Jim Wilson, #117946, - PR rtl-optimization/15681) -- fix libffi bug on ia64 (#122923) -- fix ia64 backtrace (#125204) - -* Thu May 20 2004 Jakub Jelinek 3.4.0-2 -- update from gcc-3_4-branch - - PRs libgcj/14695, preprocessor/15067, 11591, bootstrap/14671, - bootstrap/15120, c++/14962, c/15004, c++/15064, debug/14829, - libstdc++/12077, libstdc++/14220, libstdc++/14245, libstdc++/14340, - libstdc++/14775, libstdc++/14975, libstdc++/15002, libstdc++/15046, - libstdc++/15047, libstdc++/11610, libstdc++/15074, libstdc++/15090, - libstdc++/15361, libstdc++/15412, libstdc++/15488, libstdc++/15489, - middle-end/15054, optimization/13985, optimization/15100, - optimization/15112, other/1963, target/14715, target/14723, - target/14813, target/14857, target/15084, target/15130, target/15189, - target/15202, target/15290, target/15301, target/15302, target/15331 -- use lib64 instead of lib directories on ia64 if %{_lib} is - set to lib64 by rpm -- add Obsoletes for gcc34 etc. rpms -- emit .note.GNU-stack on IA-64 -- fix libgcc build on SPARC* -- fix SPARC* bi-arch compiler - -* Tue Apr 20 2004 Jakub Jelinek 3.4.0-1 -- GCC 3.4 release - - PRs bootstrap/14992, other/14918, 14936, ada/14538, ada/14665, - bootstrap/14462, c/14828, c++/14804, 14219, c++/14808, - c++/14803, c++/14804, c++/14810, c++/14724, c++/14763, - c++/14639, bootstrap/14893, libstdc++/14783, libstdc++/13598 -- fix some tests on x86-64 -- testcase for PR optimization/13488 - -* Fri Apr 2 2004 Jakub Jelinek 3.4.0-0.9 -- different PR optimization/13424 fix - -* Wed Mar 31 2004 Jakub Jelinek 3.4.0-0.8 -- update from gcc-3_4-branch - - PRs 11527, bootstrap/12974, bootstrap/14207, c/12373, c/13129, c/14069, - c++/14481, c++/14545, c++/14586, c++/14587, c++/14616, c/14635, - debug/13974, libstdc++/14647, libstdc++/14648, middle-end/14470, - middle-end/14535, optimization/14669, other/14630, other/14630, - pch/14137, preprocessor/14438, target/13889, target/14206, - target/14260, target/14291, target/14577, target/14599, target/14676 -- link libgcc_s even to C programs and executables if they need - exception handling -- add support for -m{arch,tune}={prescott,nocona} (Jan Hubicka) -- don't use 3dNOW! prefetches in x86-64 libgcj - (H.J.Lu, #119022, PR target/14326) -- fix typos in ICE hack, add -frandom-seek=0 -- another attempt to fix aggregates with mixed const and non-const - members and almost-zero initializer (Eric Botcazou, Mark Mitchell, - PR optimization/13424) -- fix bitfield handling in a.b++ == const to ++a.b == const + 1 - transformations (PR c++/14755) - -* Tue Mar 16 2004 Jakub Jelinek 3.4.0-0.7 -- update from gcc-3_4-branch - - PRs 13728, bootstrap/12371, c++/13170, c++/14397, c++/14401, - c++/14409, c++/14432, c++/14448, c++/14452, c++/14476, c++/14510, - c++/14550, c/14114, c/14465, c/14517, debug/11983, debug/14079, - driver/13577, libstdc++/11706, libstdc++/13450, libstdc++/14320, - libstdc++/3247, middle-end/11767, middle-end/14203, - middle-end/14289, middle-end/14327, middle-end/14470, - middle-end/14477, opt/13862, optimization/14235, optimization/14381, - other/14474, other/14536, target/14047, target/14343, target/14406, - target/14471, target/14480, target/14496, target/14539, target/14547 - - fix ICE in cp_expr_size (Mark Mitchell, #116213, PR c++/14230) - - fix s390x ICE in legitimize_pic_address (#117872, PR target/14533) -- fix miscompilation on IA-32 with fix_trunc* between CC setter and - consumer (Caroline Tice, #118026, PR target/12308) -- emit dwarf2 debug info for __thread vars on ppc/ppc64 (#111628) -- fix gcj ICE on final unitialized local variable used in switch - (Andrew Haley, #118219, PR java/14581) -- make all subpackages owns all dirs in the gcc-lib tree they are using - -* Tue Mar 2 2004 Jakub Jelinek 3.4.0-0.6 -- update from gcc-3_4-branch - - PRs 14240, bootstrap/14207, bootstrap/14356, c++/13944, c++/14138, - c++/14246, c++/14250, c++/14260, c++/14278, c++/14284, c++/14324, - c++/14337, c++/14359, c++/14360, c++/14361, c++/14369, c/14188, - debug/12103, debug/14328, java/14296, libstdc++/10246, - libstdc++/14248, libstdc++/14252, middle-end/13448, - optimization/7871, target/14209 -- fix PR optimization/12419 -- warn if VLAs might free alloca before end of function - (Alexandre Oliva, PR 14236) -- add --param min-pretend-dynamic-size=NNN option (Alexandre Oliva) - -* Sun Feb 22 2004 Jakub Jelinek 3.4.0-0.5 -- fix profiled feedback race - -* Sat Feb 21 2004 Jakub Jelinek 3.4.0-0.4 -- update from gcc-3_4-branch - - PRs 12028, 12179, bootstrap/13617, bootstrap/14180, bootstrap/9249, - c++/11295, c++/11326, c/12818, c++/12850, c++/13086, c++/13113, - c++/13635, c++/13683, c++/13714, c++/13813, c++/13854, c++/13883, - c++/13907, c++/13925, c++/13927, c++/13932, c++/13950, c++/13957, - c++/13968, c++/13969, c++/13970, c++/13971, c++/13975, c++/13978, - c++/13997, c++/14002, c++/14028, c++/14033, c++/14083, c++/14085, - c++/14086, c/14088, c/14092, c++/14108, c++/14122, c++/14173, - c++/14178, c++/14181, c++/14186, c++/14199, c/456, c++/9851, - c++/9941, debug/12934, fortran/14129, inline-asm/6162, java/13824, - libstdc++/11352, libstdc++/13731, libstdc++/13858, libstdc++/13976, - libstdc++/14026, libstdc++/14071, libstdc++/14072, libstdc++/14078, - libstdc++/14097, libstdc++/14098, libstdc++/5625, middle-end/13696, - middle-end/13750, optimization/12147, optimization/13424, - optimization/14119, other/10584, pch/13361, 13485, preprocessor/14103, - preprocessor/14198, target/11475, target/12476, target/12898, - target/12978, target/13721, target/13866, target/13914, target/14113, - target/14201, target/1532 -- avoid trailing space in instructions -- ppc64 Java fixes (Alan Modra) -- use push/pop in prologues/epilogues on P4 (Jan Hubicka) -- avoid more than 4 jumps per cacheline on P4 (Jan Hubicka) - -* Thu Jan 29 2004 Jakub Jelinek 3.4.0-0.3 -- update from gcc-3_4-branch - - PRs target/7297, target/10904, target/13058, optimization/13567, - target/13666, bootstrap/13853, target/13674, opt/12941, - c/13814 -- profiledbootstrap on IA-32/AMD64 -- add include symlink to gcc-{ppc32,sparc32} packages -- include libgcov.a -- fix IA-32/AMD64 string operations (PR optimization/13424) - -* Thu Jan 22 2004 Jakub Jelinek 3.4.0-0.2 -- fix build of ppc32/sparc32 -m32 only cc1/cc1plus binaries -- temporarily revert IA-64 TI/TFmode patch to put IA-64 into - bootstrapland - -* Wed Jan 21 2004 Jakub Jelinek 3.4.0-0.1 -- initial gcc 3.4 package diff -urNbB working/gcc.orig/gcc.spec working/gcc/gcc.spec --- working/gcc.orig/gcc.spec 1969-12-31 19:00:00.000000000 -0500 +++ working/gcc/gcc.spec 2005-03-22 09:32:47.000000000 -0500 @@ -0,0 +1,1858 @@ +%define DATE 20050228 +%define gcc_version 3.4.3 +%define gcc_release 22.fc3 +%define _unpackaged_files_terminate_build 0 +%define multilib_64_archs sparc64 ppc64 s390x x86_64 +%ifarch %{ix86} alpha ia64 ppc x86_64 s390 sparc sparc64 +%define build_ada 1 +%else +%define build_ada 0 +%endif +%define build_java 1 +%ifarch s390x +%define multilib_32_arch s390 +%endif +%ifarch sparc64 +%define multilib_32_arch sparc +%endif +%ifarch ppc64 +%define multilib_32_arch ppc +%endif +%ifarch x86_64 +%define multilib_32_arch i386 +%endif +%define jpackage_priority 100 +Summary: Various compilers (C, C++, Objective-C, Java, ...) +Name: gcc +Version: %{gcc_version} +Release: %{gcc_release} +License: GPL +Group: Development/Languages +Source0: gcc-%{version}-%{DATE}.tar.bz2 +Source1: libgcc_post_upgrade.c +URL: http://gcc.gnu.org +BuildRoot: %{_tmppath}/%{name}-root +# Need binutils with -pie support >= 2.14.90.0.4-4 +# Need binutils which can omit dot symbols and overlap .opd on ppc64 +BuildRequires: binutils >= 2.15.91.0.2-4 +BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo +# Make sure pthread.h doesn't contain __thread tokens +# I'm commenting out the next line to break a circular dependency +#BuildRequires: glibc-devel >= 2.2.90-12 +%if %{build_ada} +# Ada requires Ada to build +# I'm commenting out the next line to break a circular dependency +#BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1 +%endif +Requires: cpp = %{version}-%{release} +# Need .eh_frame ld optimizations +# Need proper visibility support +# Need -pie support +# Need --as-needed/--no-as-needed support +# On ppc64, need omit dot symbols support and --non-overlapping-opd +%ifarch ppc ppc64 +Requires: binutils >= 2.15.91.0.2-4 +%else +Requires: binutils >= 2.15.90.0.1.1-2 +%endif +# Make sure gdb will understand DW_FORM_strp +Conflicts: gdb < 5.1-2 +Requires: glibc-devel >= 2.2.90-12 +Requires: libgcc >= %{version}-%{release} +Obsoletes: gcc3 +Obsoletes: egcs +Obsoletes: gcc-chill +%if !%{build_ada} +Obsoletes: gcc-gnat < %{version}-%{release} +Obsoletes: libgnat < %{version}-%{release} +%endif +%ifarch sparc sparc64 +Obsoletes: egcs64 +%endif +Obsoletes: gcc34 +Provides: gcc34 +Prereq: /sbin/install-info +AutoReq: true + +Patch1: gcc34-multi32-hack.patch +Patch2: gcc34-ice-hack.patch +Patch3: gcc34-ppc64-m32-m64-multilib-only.patch +Patch4: gcc34-ia64-lib64.patch +Patch5: gcc34-java-nomulti.patch +Patch6: gcc34-gnuc-rh-release.patch +Patch7: gcc34-pr16104.patch +Patch8: gcc34-c++-pr19916.patch +Patch9: gcc34-c++-redecl.patch + +%define _gnu %{nil} +%ifarch sparc +%define gcc_target_platform sparc64-%{_vendor}-%{_target_os} +%endif +%ifarch ppc +%define gcc_target_platform ppc64-%{_vendor}-%{_target_os} +%endif +%ifnarch sparc ppc +%define gcc_target_platform %{_target_platform} +%endif + +%description +The gcc package contains the GNU Compiler Collection version 3.4. +You'll need this package in order to compile C code. + +%package -n libgcc +Summary: GCC version 3.4 shared support library +Group: System Environment/Libraries +Autoreq: false + +%description -n libgcc +This package contains GCC shared support library which is needed +e.g. for exception handling support. + +%package c++ +Summary: C++ support for GCC +Group: Development/Languages +Requires: gcc = %{version}-%{release} +Requires: libstdc++ = %{version} +Requires: libstdc++-devel = %{version} +Obsoletes: gcc3-c++ +Obsoletes: gcc34-c++ +Provides: gcc34-c++ +Autoreq: true + +%description c++ +This package adds C++ support to the GNU Compiler Collection. +It includes support for most of the current C++ specification, +including templates and exception handling. + +%package -n libstdc++ +Summary: GNU Standard C++ Library +Group: System Environment/Libraries +Obsoletes: libstdc++3 +Obsoletes: libstdc++34 +Provides: libstdc++34 +Autoreq: true + +%description -n libstdc++ +The libstdc++ package contains a rewritten standard compliant GCC Standard +C++ Library. + +%package -n libstdc++-devel +Summary: Header files and libraries for C++ development +Group: Development/Libraries +Requires: libstdc++ = %{version}-%{release} +Obsoletes: libstdc++3-devel +Obsoletes: libstdc++34-devel +Provides: libstdc++34-devel +Autoreq: true + +%description -n libstdc++-devel +This is the GNU implementation of the standard C++ libraries. This +package includes the header files and libraries needed for C++ +development. This includes rewritten implementation of STL. + +%package objc +Summary: Objective-C support for GCC +Group: Development/Languages +Requires: gcc = %{version}-%{release} +Requires: libobjc = %{version}-%{release} +Obsoletes: gcc3-objc +Autoreq: true + +%description objc +gcc-objc provides Objective-C support for the GCC. +Mainly used on systems running NeXTSTEP, Objective-C is an +object-oriented derivative of the C language. + +%package -n libobjc +Summary: Objective-C runtime +Group: System Environment/Libraries +Autoreq: true + +%description -n libobjc +This package contains Objective-C shared library which is needed to run +Objective-C dynamically linked programs. + +%package g77 +Summary: Fortran 77 support +Group: Development/Languages +Requires: gcc = %{version}-%{release} +Requires: libf2c = %{version}-%{release} +Prereq: /sbin/install-info +Obsoletes: gcc3-g77 +Autoreq: true + +%description g77 +The gcc-g77 package provides support for compiling Fortran 77 +programs with the GNU Compiler Collection. + +%package -n libf2c +Summary: Fortran 77 runtime +Group: System Environment/Libraries +Autoreq: true + +%description -n libf2c +This package contains Fortran 77 shared library which is needed to run +Fortran 77 dynamically linked programs. + +%package java +Summary: Java support for GCC +Group: Development/Languages +Requires: gcc = %{version}-%{release} +Requires: libgcj >= %{version}, libgcj-devel >= %{version}, zlib-devel +Obsoletes: gcc3-java +Obsoletes: gcc34-java +Provides: gcc34-java +Prereq: /sbin/install-info +Autoreq: true + +%description java +This package adds support for compiling Java(tm) programs and +bytecode into native code. + +%package -n libgcj +Summary: Java runtime library for gcc +Group: System Environment/Libraries +Prereq: /sbin/install-info +Requires: zip >= 2.1 +Requires: gtk2 >= 2.4.0 +BuildRequires: gtk2-devel >= 2.4.0 +Requires: glib2 >= 2.4.0 +BuildRequires: glib2-devel >= 2.4.0 +Requires: libart_lgpl >= 2.1.0 +BuildRequires: libart_lgpl-devel >= 2.1.0 +Obsoletes: gcc-libgcj +Obsoletes: libgcj3 +Obsoletes: libgcj34 +Provides: libgcj34 +# Kaffe includes jar too +Conflicts: kaffe +Autoreq: true + +%description -n libgcj +The Java(tm) runtime library. You will need this package to run your Java +programs compiled using the Java compiler from GNU Compiler Collection (gcj). + +%package -n libgcj-devel +Summary: Libraries for Java development using GCC +Group: Development/Languages +Requires: zip >= 2.1, libgcj = %{version} +Obsoletes: libgcj3-devel +Obsoletes: libgcj34-devel +Provides: libgcj34-devel +Autoreq: true + +%description -n libgcj-devel +The Java(tm) static libraries and C header files. You will need this +package to compile your Java programs using the GCC Java compiler (gcj). + +%package sparc32 +Summary: The C compiler optimized for generating SPARC 32bit code +Group: Development/Languages +Requires: gcc = %{version}-%{release}, %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a +Autoreq: true + +%description sparc32 +This package contains the GNU C compiler which only supports generating +32bit SPARC code, but should be faster than the 32/64bit gcc package. You +should install this package if you want to trade disk space required for +this package for faster compilation of 32bit code. + +%package c++-sparc32 +Summary: The C++ compiler optimized for generating SPARC 32bit code +Group: Development/Languages +Requires: gcc-c++ = %{version}-%{release}, gcc-sparc32 = %{version}-%{release} +Requires: %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.so +Autoreq: true + +%description c++-sparc32 +This package contains the GNU C++ compiler which only supports generating +32bit SPARC code, but should be faster than the 32/64bit gcc package. You +should install this package if you want to trade disk space required for +this package for faster compilation of 32bit code. + +%package ppc32 +Summary: The C compiler optimized for generating PowerPC 32bit code +Group: Development/Languages +Requires: gcc = %{version}-%{release}, %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a +Autoreq: true + +%description ppc32 +This package contains the GNU C compiler which only supports generating +32bit PowerPC code, but should be faster than the 32/64bit gcc package. You +should install this package if you want to trade disk space required for +this package for faster compilation of 32bit code. + +%package c++-ppc32 +Summary: The C++ compiler optimized for generating PowerPC 32bit code +Group: Development/Languages +Requires: gcc-c++ = %{version}-%{release}, gcc-ppc32 = %{version}-%{release} +Requires: %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.so +Autoreq: true + +%description c++-ppc32 +This package contains the GNU C++ compiler which only supports generating +32bit PowerPC code, but should be faster than the 32/64bit gcc package. You +should install this package if you want to trade disk space required for +this package for faster compilation of 32bit code. + +%package -n cpp +Summary: The C Preprocessor. +Group: Development/Languages +Prereq: /sbin/install-info +%ifarch ia64 +Obsoletes: gnupro +%endif +Autoreq: true + +%description -n cpp +Cpp is the GNU C-Compatible Compiler Preprocessor. +Cpp is a macro processor which is used automatically +by the C compiler to transform your program before actual +compilation. It is called a macro processor because it allows +you to define macros, abbreviations for longer +constructs. + +The C preprocessor provides four separate functionalities: the +inclusion of header files (files of declarations that can be +substituted into your program); macro expansion (you can define macros, +and the C preprocessor will replace the macros with their definitions +throughout the program); conditional compilation (using special +preprocessing directives, you can include or exclude parts of the +program according to various conditions); and line control (if you use +a program to combine or rearrange source files into an intermediate +file which is then compiled, you can use line control to inform the +compiler about where each source line originated). + +You should install this package if you are a C programmer and you use +macros. + +%package gnat +Summary: Ada 95 support for GCC +Group: Development/Languages +Requires: gcc = %{version}-%{release}, libgnat = %{version}-%{release} +Obsoletes: gnat-devel, gcc3-gnat +Prereq: /sbin/install-info +Autoreq: true + +%description gnat +GNAT is a GNU Ada 95 front-end to GCC. This package includes development tools, +the documents and Ada 95 compiler. + +%package -n libgnat +Summary: GNU Ada 95 runtime shared libraries +Group: System Environment/Libraries +Obsoletes: gnat libgnat3 +Autoreq: true + +%description -n libgnat +GNAT is a GNU Ada 95 front-end to GCC. This package includes shared libraries, +which are required to run programs compiled with the GNAT. + +%prep +%setup -q -n gcc-%{version}-%{DATE} +%ifarch sparc ppc +%patch1 -p0 -b .multi32-hack~ +%endif +%patch2 -p0 -b .ice-hack~ +%patch3 -p0 -b .ppc64-m32-m64-multilib-only~ +%ifarch ia64 +%if "%{_lib}" == "lib64" +%patch4 -p0 -b .ia64-lib64~ +%endif +%endif +%patch5 -p0 -b .java-nomulti~ +%patch6 -p0 -b .gnuc-rh-release~ +%patch7 -p0 -b .pr16104~ +%patch8 -p0 -b .c++-pr19916~ +%patch9 -p0 -b .c++-redecl~ + +perl -pi -e 's/3\.4\.4/3.4.3/' gcc/version.c +perl -pi -e 's/"%{gcc_version}"/"%{gcc_version} \(release\)"/' gcc/version.c +perl -pi -e 's/\((prerelease|experimental|release|Red Hat[^)]*)\)/\(Red Hat %{version}-%{gcc_release}\)/' gcc/version.c + +# Misdesign in libstdc++ +cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h + +# Hack to avoid building multilib libjava +perl -pi -e 's/^all: all-redirect/ifeq (\$(MULTISUBDIR),)\nall: all-redirect\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in +perl -pi -e 's/^install: install-redirect/ifeq (\$(MULTISUBDIR),)\ninstall: install-redirect\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in +perl -pi -e 's/^check: check-redirect/ifeq (\$(MULTISUBDIR),)\ncheck: check-redirect\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in +perl -pi -e 's/^all: all-recursive/ifeq (\$(MULTISUBDIR),)\nall: all-recursive\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in +perl -pi -e 's/^install: install-recursive/ifeq (\$(MULTISUBDIR),)\ninstall: install-recursive\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in +perl -pi -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-recursive\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in + +./contrib/gcc_update --touch + +%build + +rm -fr obj-%{gcc_target_platform} +mkdir obj-%{gcc_target_platform} +cd obj-%{gcc_target_platform} + +if [ ! -f /usr/lib/locale/de_DE/LC_CTYPE ]; then + mkdir locale + localedef -f ISO-8859-1 -i de_DE locale/de_DE + export LOCPATH=`pwd`/locale:/usr/lib/locale +fi + +CC=gcc +OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g'` +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'` +%ifarch sparc sparc64 +OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g'` +%endif +%ifarch sparc64 +cat > gcc64 <<"EOF" +#!/bin/sh +exec /usr/bin/gcc -m64 "$@" +EOF +chmod +x gcc64 +CC=`pwd`/gcc64 +%endif +%ifarch ppc64 +if gcc -m64 -xc -S /dev/null -o - > /dev/null 2>&1; then + cat > gcc64 <<"EOF" +#!/bin/sh +exec /usr/bin/gcc -m64 "$@" +EOF + chmod +x gcc64 + CC=`pwd`/gcc64 +fi +%endif +CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="$OPT_FLAGS" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ + GCJFLAGS="$OPT_FLAGS" \ + ../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ + --enable-shared --enable-threads=posix --disable-checking \ + --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \ +%if !%{build_ada} + --enable-languages=c,c++,objc,java,f77 \ +%endif +%if !%{build_java} + --disable-libgcj \ +%else + --enable-java-awt=gtk \ +%endif +%ifarch sparc + --host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7 +%endif +%ifarch ppc + --host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32 +%endif +%ifnarch sparc ppc + --host=%{gcc_target_platform} +%endif + +#make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap +%ifarch %{ix86} x86_64 +make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap +%else +make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap-lean +%endif + +%if %{build_ada} +# This doesn't work with -jN +make -C gcc BOOT_CFLAGS="$OPT_FLAGS" gnatlib-shared +make -C gcc BOOT_CFLAGS="$OPT_FLAGS" gnattools +ln -sf libgnat.so.1 gcc/ada/rts/libgnat-3.4.so +ln -sf libgnarl.so.1 gcc/ada/rts/libgnarl-3.4.so +%endif + +# run the tests. +make %{?_smp_mflags} -k check || : +make -C %{gcc_target_platform}/libstdc++-v3/testsuite -k check-abi-verbose || : +echo ====================TESTING========================= +( ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' +make -C %{gcc_target_platform}/libstdc++-v3/testsuite -k check-abi || : +echo ====================TESTING END===================== +#cd %{gcc_target_platform}/libstdc++-v3 +#./mkcheck 0 +#cd ../.. + +# Make protoize +make -C gcc CC="./xgcc -B ./ -O2" proto + +# Make c++filt +make -C %{gcc_target_platform}/libiberty CFLAGS="$RPM_OPT_FLAGS" c++filt + +%ifarch sparc ppc +# Build the -m32 only compiler which does not use long long for HOST_WIDE_INT +mkdir gcc32 +cd gcc32 +OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g'` +echo "#!/bin/sh" > gcc32 +echo "exec `cd ../gcc; pwd`/xgcc -B `cd ../gcc; pwd`/ $OPT_FLAGS \$*" >> gcc32 +chmod +x gcc32 +CC=`pwd`/gcc32 CFLAGS="$OPT_FLAGS" CXXFLAGS="$OPT_FLAGS" XCFLAGS="$OPT_FLAGS" \ + TCFLAGS="$OPT_FLAGS" ../../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ + --enable-shared --enable-threads=posix --disable-checking --disable-libunwind-exceptions \ + --with-system-zlib --enable-__cxa_atexit --enable-languages=c,c++ \ + --host=%{_target_platform} --build=%{_target_platform} --target=%{_target_platform} +make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc +cd .. +%endif + +# Make generated man pages even if Pod::Man is not new enough +perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl +for i in ../gcc/doc/*.texi; do + cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i +done +make -C gcc generated-manpages +for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done + +# Copy various doc files here and there +cd .. +mkdir -p rpm.doc/g77 rpm.doc/objc +mkdir -p rpm.doc/boehm-gc rpm.doc/fastjar rpm.doc/libffi rpm.doc/libjava + +(cd gcc/f; for i in ChangeLog*; do + cp -p $i ../../rpm.doc/g77/$i.f +done) +(cd libf2c; for i in ChangeLog*; do + cp -p $i ../rpm.doc/g77/$i.libf2c +done) +(cd gcc/objc; for i in README*; do + cp -p $i ../../rpm.doc/objc/$i.objc +done) +(cd libobjc; for i in README*; do + cp -p $i ../rpm.doc/objc/$i.libobjc +done) +(cd boehm-gc; for i in ChangeLog*; do + cp -p $i ../rpm.doc/boehm-gc/$i.gc +done) +(cd fastjar; for i in ChangeLog* README*; do + cp -p $i ../rpm.doc/fastjar/$i.fastjar +done) +(cd libffi; for i in ChangeLog* README* LICENSE; do + cp -p $i ../rpm.doc/libffi/$i.libffi +done) +(cd libjava; for i in ChangeLog* README*; do + cp -p $i ../rpm.doc/libjava/$i.libjava +done) + +%install +rm -fr $RPM_BUILD_ROOT + +perl -pi -e \ + 's~href="l(ibstdc|atest)~href="http://gcc.gnu.org/onlinedocs/libstdc++/l\1~' \ + libstdc++-v3/docs/html/documentation.html +ln -sf documentation.html libstdc++-v3/docs/html/index.html +find libstdc++-v3/docs/html -name CVS | xargs rm -rf + +cd obj-%{gcc_target_platform} + +if [ ! -f /usr/lib/locale/de_DE/LC_CTYPE ]; then + export LOCPATH=`pwd`/locale:/usr/lib/locale +fi + +TARGET_PLATFORM=%{gcc_target_platform} + +# There are some MP bugs in libstdc++ and libjava Makefiles +make -C %{gcc_target_platform}/libstdc++-v3 +%if %{build_java} +make -C %{gcc_target_platform}/libjava +%endif + +make prefix=$RPM_BUILD_ROOT%{_prefix} mandir=$RPM_BUILD_ROOT%{_mandir} \ + infodir=$RPM_BUILD_ROOT%{_infodir} install +%if %{build_ada} +chmod 644 $RPM_BUILD_ROOT%{_infodir}/gnat* +%endif + +FULLPATH=$RPM_BUILD_ROOT%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} +FULLEPATH=$RPM_BUILD_ROOT%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} + +cp -a %{gcc_target_platform}/libiberty/c++filt $RPM_BUILD_ROOT%{_prefix}/bin/c++filt +chmod 755 $RPM_BUILD_ROOT%{_prefix}/bin/c++filt + +# fix some things +ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/cc +mkdir -p $RPM_BUILD_ROOT/lib +ln -sf ..%{_prefix}/bin/cpp $RPM_BUILD_ROOT/lib/cpp +ln -sf g77 $RPM_BUILD_ROOT%{_prefix}/bin/f77 +rm -f $RPM_BUILD_ROOT%{_infodir}/dir +gzip -9 $RPM_BUILD_ROOT%{_infodir}/*.info* +ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/gnatgcc + +cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`" +for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do + if ! diff -up $cxxconfig $i; then + cat > $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/c++config.h < +#if __WORDSIZE == 32 +%ifarch %{multilib_64_archs} +`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)` +%else +`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)` +%endif +#else +%ifarch %{multilib_64_archs} +`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)` +%else +`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)` +%endif +#endif +#endif +EOF + break + fi +done + +%ifarch sparc ppc +# Install the sparc/ppc -m32 only compilers +FULLPATH32=$RPM_BUILD_ROOT%{_prefix}/lib/gcc/%{_target_platform}/%{gcc_version} +FULLEPATH32=$RPM_BUILD_ROOT%{_prefix}/libexec/gcc/%{_target_platform}/%{gcc_version} +mkdir -p $FULLPATH32 $FULLEPATH32 +ln -sf %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include \ + $FULLPATH32/ +install -m 755 gcc32/gcc/cc1 $FULLEPATH32/ +install -m 755 gcc32/gcc/cc1plus $FULLEPATH32/ +ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \ + $RPM_BUILD_ROOT%{_prefix}/bin/%{_target_platform}-gcc +%endif +%ifarch sparc ppc +cp -al $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform} \ + $RPM_BUILD_ROOT%{_prefix}/include/c++/%{gcc_version}/%{_target_platform} +%endif +%ifarch sparc64 +ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \ + $RPM_BUILD_ROOT%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc +%endif +%ifarch ppc64 +ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \ + $RPM_BUILD_ROOT%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc +%endif + +%ifarch sparc ppc +FULLLPATH=$FULLPATH/lib32 +%endif +%ifarch sparc64 ppc64 +FULLLPATH=$FULLPATH/lib64 +%endif +if [ -n "$FULLLPATH" ]; then + mkdir -p $FULLLPATH +else + FULLLPATH=$FULLPATH +fi + +if [ "%{build_java}" -gt 0 ]; then +mv $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgcj.*a $FULLLPATH/ +mv $RPM_BUILD_ROOT%{_prefix}/%{_lib}/lib-gnu-java-awt-peer-gtk.*a $FULLLPATH/ +mv $RPM_BUILD_ROOT%{_prefix}/%{_lib}/lib-org-*.*a $FULLLPATH/ +mv $RPM_BUILD_ROOT%{_prefix}/lib/libgcj.spec $FULLPATH/ +#mv $RPM_BUILD_ROOT%{_prefix}/include/gc*.h $FULLPATH/include/ +mv $RPM_BUILD_ROOT%{_prefix}/include/j*.h $FULLPATH/include/ +#mv -f $RPM_BUILD_ROOT%{_prefix}/include/{java,javax,gnu,org} $FULLPATH/include/ +mv -f $RPM_BUILD_ROOT%{_prefix}/include/{java,javax,gnu} $FULLPATH/include/ +mkdir -p $FULLPATH/include/gcj +mv -f $RPM_BUILD_ROOT%{_prefix}/include/gcj/* $FULLPATH/include/gcj/ +rmdir $RPM_BUILD_ROOT%{_prefix}/include/gcj +fi + +mkdir -p $RPM_BUILD_ROOT/%{_lib} +mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgcc_s.so.1 $RPM_BUILD_ROOT/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1 +chmod 755 $RPM_BUILD_ROOT/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1 +ln -sf libgcc_s-%{gcc_version}-%{DATE}.so.1 $RPM_BUILD_ROOT/%{_lib}/libgcc_s.so.1 +ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so +%ifarch sparc ppc +ln -sf /lib64/libgcc_s.so.1 $FULLPATH/libgcc_s_64.so +%endif +%ifarch %{multilib_64_archs} +ln -sf /lib/libgcc_s.so.1 $FULLPATH/libgcc_s_32.so +%endif + +%if %{build_ada} +mv -f $FULLPATH/adalib/libgnarl-*.so.* $RPM_BUILD_ROOT%{_prefix}/%{_lib}/ +mv -f $FULLPATH/adalib/libgnat-*.so.* $RPM_BUILD_ROOT%{_prefix}/%{_lib}/ +rm -f $FULLPATH/adalib/libgnarl.so* $FULLPATH/adalib/libgnat.so* +%endif + +mkdir -p $RPM_BUILD_ROOT%{_prefix}/libexec/getconf +if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then + ln -sf POSIX_V6_ILP32_OFF32 $RPM_BUILD_ROOT%{_prefix}/libexec/getconf/default +else + ln -sf POSIX_V6_LP64_OFF64 $RPM_BUILD_ROOT%{_prefix}/libexec/getconf/default +fi + +pushd $FULLPATH +if [ "%{_lib}" = "lib" ]; then +ln -sf ../../../libobjc.so.1 libobjc.so +ln -sf ../../../libstdc++.so.6.* libstdc++.so +%if %{build_java} +ln -sf ../../../libgcj.so.5.* libgcj.so +ln -sf ../../../lib-gnu-java-awt-peer-gtk.so.5.* lib-gnu-java-awt-peer-gtk.so +ln -sf ../../../lib-org-w3c-dom.so.5.* lib-org-w3c-dom.so +ln -sf ../../../lib-org-xml-sax.so.5.* lib-org-xml-sax.so +%endif +ln -sf ../../../libg2c.so.0.* libg2c.so +%if %{build_ada} +cd adalib +ln -sf ../../../../libgnarl-*.so.* libgnarl.so +ln -sf ../../../../libgnarl-*.so.* libgnarl-3.4.so +ln -sf ../../../../libgnat-*.so.* libgnat.so +ln -sf ../../../../libgnat-*.so.* libgnat-3.4.so +cd .. +%endif +else +ln -sf ../../../../%{_lib}/libobjc.so.1 libobjc.so +ln -sf ../../../../%{_lib}/libstdc++.so.6.* libstdc++.so +%if %{build_java} +ln -sf ../../../../%{_lib}/libgcj.so.5.* libgcj.so +ln -sf ../../../../%{_lib}/lib-gnu-java-awt-peer-gtk.so.5.* lib-gnu-java-awt-peer-gtk.so +ln -sf ../../../../%{_lib}/lib-org-w3c-dom.so.5.* lib-org-w3c-dom.so +ln -sf ../../../../%{_lib}/lib-org-xml-sax.so.5.* lib-org-xml-sax.so +%endif +ln -sf ../../../../%{_lib}/libg2c.so.0.* libg2c.so +%if %{build_ada} +cd adalib +ln -sf ../../../../../%{_lib}/libgnarl-*.so.* libgnarl.so +ln -sf ../../../../../%{_lib}/libgnarl-*.so.* libgnarl-3.4.so +ln -sf ../../../../../%{_lib}/libgnat-*.so.* libgnat.so +ln -sf ../../../../../%{_lib}/libgnat-*.so.* libgnat-3.4.so +cd .. +%endif +fi +mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/ +mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libsupc++.*a . +mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libg2c.*a . +mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libfrtbegin.*a . +mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libobjc.*a . + +%ifarch sparc ppc +ln -sf ../../../../../lib64/libobjc.so.1 64/libobjc.so +ln -sf ../`echo ../../../../lib/libstdc++.so.6.* | sed s~/lib/~/lib64/~` 64/libstdc++.so +if [ "%{build_java}" -gt 0 ]; then +ln -sf ../`echo ../../../../lib/libgcj.so.5.* | sed s~/lib/~/lib64/~` 64/libgcj.so +ln -sf ../`echo ../../../../lib/lib-gnu-java-awt-peer-gtk.so.5.* | sed s~/lib/~/lib64/~` 64/lib-gnu-java-awt-peer-gtk.so +ln -sf ../`echo ../../../../lib/lib-org-w3c-dom.so.5.* | sed s~/lib/~/lib64/~` 64/lib-org-w3c-dom.so +ln -sf ../`echo ../../../../lib/lib-org-xml-sax.so.5.* | sed s~/lib/~/lib64/~` 64/lib-org-xml-sax.so +fi +ln -sf ../`echo ../../../../lib/libg2c.so.0.* | sed s~/lib/~/lib64/~` 64/libg2c.so +mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libsupc++.*a 64/ +mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libg2c.*a 64/ +mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libfrtbegin.*a 64/ +mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libobjc.*a 64/ +ln -sf lib32/libstdc++.a libstdc++.a +ln -sf ../lib64/libstdc++.a 64/libstdc++.a +if [ "%{build_java}" -gt 0 ]; then +ln -sf lib32/libgcj.a libgcj.a +ln -sf ../lib64/libgcj.a 64/libgcj.a +ln -sf ../lib64/lib-gnu-java-awt-peer-gtk.a 64/lib-gnu-java-awt-peer-gtk.a +ln -sf lib32/lib-gnu-java-awt-peer-gtk.a lib-gnu-java-awt-peer-gtk.a +ln -sf ../lib64/lib-org-w3c-dom.a 64/lib-org-w3c-dom.a +ln -sf lib32/lib-org-w3c-dom.a lib-org-w3c-dom.a +ln -sf ../lib64/lib-org-w3c-dom.a 64/lib-org-w3c-dom.a +ln -sf lib32/lib-org-xml-sax.a lib-org-xml-sax.a +ln -sf ../lib64/lib-org-xml-sax.a 64/lib-org-xml-sax.a +fi +%endif +%ifarch %{multilib_64_archs} +mkdir -p 32 +ln -sf ../../../../libobjc.so.1 32/libobjc.so +ln -sf ../`echo ../../../../lib64/libstdc++.so.6.* | sed s~/../lib64/~/~` 32/libstdc++.so +if [ "%{build_java}" -gt 0 ]; then +ln -sf ../`echo ../../../../lib64/libgcj.so.5.* | sed s~/../lib64/~/~` 32/libgcj.so +ln -sf ../`echo ../../../../lib64/lib-gnu-java-awt-peer-gtk.so.5.* | sed s~/../lib64/~/~` 32/lib-gnu-java-awt-peer-gtk.so +ln -sf ../`echo ../../../../lib64/lib-org-w3c-dom.so.5.* | sed s~/../lib64/~/~` 32/lib-org-w3c-dom.so +ln -sf ../`echo ../../../../lib64/lib-org-xml-sax.so.5.* | sed s~/../lib64/~/~` 32/lib-org-xml-sax.so +fi +ln -sf ../`echo ../../../../lib64/libg2c.so.0.* | sed s~/../lib64/~/~` 32/libg2c.so +mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libsupc++.*a 32/ +mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libg2c.*a 32/ +mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libfrtbegin.*a 32/ +mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libobjc.*a 32/ +%endif +%ifarch sparc64 ppc64 +ln -sf ../lib32/libstdc++.a 32/libstdc++.a +ln -sf lib64/libstdc++.a libstdc++.a +if [ "%{build_java}" -gt 0 ]; then +ln -sf ../lib32/libgcj.a 32/libgcj.a +ln -sf lib64/libgcj.a libgcj.a +ln -sf ../lib32/lib-gnu-java-awt-peer-gtk.a 32/lib-gnu-java-awt-peer-gtk.a +ln -sf lib64/lib-gnu-java-awt-peer-gtk.a lib-gnu-java-awt-peer-gtk.a +ln -sf ../lib32/lib-org-w3c-dom.a 32/lib-org-w3c-dom.a +ln -sf lib64/lib-org-w3c-dom.a lib-org-w3c-dom.a +ln -sf ../lib32/lib-org-xml-sax.a 32/lib-org-xml-sax.a +ln -sf lib64/lib-org-xml-sax.a lib-org-xml-sax.a +fi +%else +%ifarch %{multilib_64_archs} +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libstdc++.a 32/libstdc++.a +if [ "%{build_java}" -gt 0 ]; then +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgcj.a 32/libgcj.a +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/lib-gnu-java-awt-peer-gtk.a 32/lib-gnu-java-awt-peer-gtk.a +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/lib-org-w3c-dom.a 32/lib-org-w3c-dom.a +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/lib-org-xml-sax.a 32/lib-org-xml-sax.a +fi +%endif +%endif + +# Strip debug info from Fortran/ObjC/Java static libraries +strip -g `find . \( -name libg2c.a -o -name libobjc.a -o -name libgcj.a \ + -o -name lib-gnu-java-awt-peer-gtk.a \ + -o -name lib-org-w3c-dom.a -o -name lib-org-xml-sax.a \ + -o -name libgcc.a -o -name libgcov.a \) -a -type f` +popd +chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libg2c.so.0.* +chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libobjc.so.1.* + +%if %{build_ada} +chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgnarl*so* +chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgnat*so* +%endif + +for h in `find $FULLPATH/include -name \*.h`; do + if grep -q 'It has been auto-edited by fixincludes from' $h; then + rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'` + diff -up $rh $h || : + rm -f $h + fi +done + +# gcj -static doesn't work properly anyway, unless using --whole-archive +# and saving 35MB is not bad. +find $FULLPATH -name libgcj.a -o -name lib-\*.a | xargs rm -f +sed -i -e 's/lib: /&%%{static:%%eJava programs cannot be linked statically}/' \ + $FULLPATH/libgcj.spec + +cat > $RPM_BUILD_ROOT%{_prefix}/bin/c89 <<"EOF" +#!/bin/sh +fl="-std=c89" +for opt; do + case "$opt" in + -ansi|-std=c89|-std=iso9899:1990) fl="";; + -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2 + exit 1;; + esac +done +exec %{_prefix}/bin/gcc $fl ${1+"$@"} +EOF +cat > $RPM_BUILD_ROOT%{_prefix}/bin/c99 <<"EOF" +#!/bin/sh +fl="-std=c99" +for opt; do + case "$opt" in + -std=c99|-std=iso9899:1999) fl="";; + -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2 + exit 1;; + esac +done +exec %{_prefix}/bin/gcc $fl ${1+"$@"} +EOF +chmod 755 $RPM_BUILD_ROOT%{_prefix}/bin/c?9 + +mkdir -p $RPM_BUILD_ROOT%{_prefix}/sbin +gcc -static -Os %{SOURCE1} -o $RPM_BUILD_ROOT%{_prefix}/sbin/libgcc_post_upgrade +strip $RPM_BUILD_ROOT%{_prefix}/sbin/libgcc_post_upgrade + +cd .. +%find_lang %{name} + +%if %{build_java} +# rename jpackage-conflicting tools +pushd $RPM_BUILD_ROOT%{_prefix}/bin + mv -f rmiregistry grmiregistry + mv -f jar fastjar + mv -f rmic grmic +popd + +# rename corresponding man pages +pushd $RPM_BUILD_ROOT%{_mandir}/man1 + mv -f rmiregistry.1 grmiregistry.1 + mv -f jar.1 fastjar.1 + mv -f rmic.1 grmic.1 +popd +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + +%post +/sbin/install-info \ + --info-dir=%{_infodir} %{_infodir}/gcc.info.gz + +%preun +if [ $1 = 0 ]; then + /sbin/install-info --delete \ + --info-dir=%{_infodir} %{_infodir}/gcc.info.gz +fi + +%post -n cpp +/sbin/install-info \ + --info-dir=%{_infodir} %{_infodir}/cpp.info.gz + +%preun -n cpp +if [ $1 = 0 ]; then + /sbin/install-info --delete \ + --info-dir=%{_infodir} %{_infodir}/cpp.info.gz +fi + +%post g77 +/sbin/install-info \ + --info-dir=%{_infodir} %{_infodir}/g77.info.gz + +%preun g77 +if [ $1 = 0 ]; then + /sbin/install-info --delete \ + --info-dir=%{_infodir} %{_infodir}/g77.info.gz +fi + +%post java +/sbin/install-info \ + --info-dir=%{_infodir} %{_infodir}/gcj.info.gz + +%preun java +if [ $1 = 0 ]; then + /sbin/install-info --delete \ + --info-dir=%{_infodir} %{_infodir}/gcj.info.gz +fi + +%post gnat +/sbin/install-info \ + --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz +/sbin/install-info \ + --info-dir=%{_infodir} %{_infodir}/gnat_ugn_unw.info.gz +/sbin/install-info \ + --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz + +%preun gnat +if [ $1 = 0 ]; then + /sbin/install-info --delete \ + --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz + /sbin/install-info --delete \ + --info-dir=%{_infodir} %{_infodir}/gnat_ugn_unw.info.gz + /sbin/install-info --delete \ + --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz +fi + +# Because glibc Prereq's libgcc and /sbin/ldconfig +# comes from glibc, it might not exist yet when +# libgcc is installed +%post -n libgcc -p %{_prefix}/sbin/libgcc_post_upgrade + +%post -n libstdc++ -p /sbin/ldconfig + +%postun -n libstdc++ -p /sbin/ldconfig + +%post -n libobjc -p /sbin/ldconfig + +%postun -n libobjc -p /sbin/ldconfig + +%post -n libgcj +/sbin/ldconfig +/sbin/install-info \ + --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz + +%preun -n libgcj +if [ $1 = 0 ]; then + /sbin/install-info --delete \ + --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz +fi + +%postun -n libgcj -p /sbin/ldconfig + +%post -n libf2c -p /sbin/ldconfig + +%postun -n libf2c -p /sbin/ldconfig + +%post -n libgnat -p /sbin/ldconfig + +%postun -n libgnat -p /sbin/ldconfig + +%files -f %{name}.lang +%defattr(-,root,root) +%{_prefix}/bin/cc +%{_prefix}/bin/c89 +%{_prefix}/bin/c99 +%{_prefix}/bin/gcc +%{_prefix}/bin/gcov +%{_prefix}/bin/protoize +%{_prefix}/bin/unprotoize +%ifarch sparc ppc +%{_prefix}/bin/%{_target_platform}-gcc +%endif +%ifarch sparc64 +%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc +%endif +%ifarch ppc64 +%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc +%endif +%{_prefix}/bin/%{gcc_target_platform}-gcc +%{_mandir}/man1/gcc.1* +%{_mandir}/man1/gcov.1* +%{_infodir}/gcc* +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} +%dir %{_prefix}/libexec/gcc +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stddef.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdarg.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/varargs.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/float.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/limits.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdbool.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/iso646.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/syslimits.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/unwind.h +%ifarch %{ix86} x86_64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xmmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/emmintrin.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/pmmintrin.h +%endif +%ifarch ia64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ia64intrin.h +%endif +%ifarch ppc ppc64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ppc-asm.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/altivec.h +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/spe.h +%endif +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/README +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcov.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_eh.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s.so +%ifarch sparc ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcov.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_eh.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s_64.so +%endif +%ifarch %{multilib_64_archs} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/crt*.o +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcov.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_eh.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s_32.so +%endif +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/specs +%dir %{_prefix}/libexec/getconf +%{_prefix}/libexec/getconf/default +%doc gcc/README* gcc/*ChangeLog* gcc/COPYING* + +%files -n cpp +%defattr(-,root,root) +/lib/cpp +%{_prefix}/bin/cpp +%{_mandir}/man1/cpp.1* +%{_infodir}/cpp* +%dir %{_prefix}/libexec/gcc +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1 + +%files -n libgcc +%defattr(-,root,root) +/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1 +/%{_lib}/libgcc_s.so.1 +%{_prefix}/sbin/libgcc_post_upgrade +%doc gcc/COPYING.LIB + +%files c++ +%defattr(-,root,root) +%{_prefix}/bin/%{gcc_target_platform}-*++ +%{_prefix}/bin/g++ +%{_prefix}/bin/c++ +%{_prefix}/bin/c++filt +%{_mandir}/man1/g++.1* +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} +%dir %{_prefix}/libexec/gcc +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform} +%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version} +%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus +%ifarch sparc ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libsupc++.a +%endif +%ifarch %{multilib_64_archs} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.a +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libsupc++.a +%endif +%ifarch sparc ppc %{multilib_64_archs} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a +%endif +%ifarch sparc sparc64 ppc ppc64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a +%endif +%doc gcc/cp/ChangeLog* + +%files -n libstdc++ +%defattr(-,root,root) +%{_prefix}/%{_lib}/libstdc++.so.6* + +%files -n libstdc++-devel +%defattr(-,root,root) +%{_prefix}/include/c++ +%dir %{_prefix}/lib/gcc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform} +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version} +%ifarch sparc ppc +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib32/libstdc++.a +%endif +%ifarch sparc64 ppc64 +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/lib64/libstdc++.a +%endif +%ifnarch sparc sparc64 ppc ppc64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a +%endif +%ifnarch sparc ppc %{multilib_64_archs} +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/