ExcludeArch: s390x
%define LIBSTDCXXDATE 20040818
%define DATE 20040701
%define gcc_version 3.2.3
%define gcc_release 56
%define _unpackaged_files_terminate_build 0
%define multilib_64_archs sparc64 ppc64 s390x x86_64
%define build_java 0
%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
Summary: The compatibility GNU Compiler Collection
Name: compat-gcc-32
Version: %{gcc_version}
Release: %{gcc_release}
License: GPL
Group: Development/Languages
Source0: gcc-%{gcc_version}-%{DATE}.tar.bz2
Source1: libgcc_post_upgrade.c
Source2: libstdc++-3.3.4-%{LIBSTDCXXDATE}.tar.bz2
Source3: dummylib.sh
URL: http://gcc.gnu.org
BuildRoot: /var/tmp/gcc-root
# Need .eh_frame ld optimizations
# Need proper visibility support
# Need -pie support
# Need --as-needed/--no-as-needed support
# Need .weakref support
BuildRequires: binutils >= 2.16.91.0.5-1
BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo
# Make sure pthread.h doesn't contain __thread tokens
BuildRequires: glibc-devel >= 2.2.90-12
# Need .eh_frame ld optimizations
# Need proper visibility support
# Need -pie support
# Need .weakref support
Requires: binutils >= 2.16.91.0.5-1
# Make sure gdb will understand DW_FORM_strp
Conflicts: gdb < 5.1-2
Requires: glibc-devel >= 2.2.90-12
Requires: libgcc >= 3.4.0
%ifarch %{multilib_64_archs} sparc ppc
# Ensure glibc{,-devel} is installed for both multilib arches
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
%endif
Obsoletes: compat-egcs
Obsoletes: compat-gcc
Obsoletes: compat-gcc-objc
Obsoletes: compat-egcs-objc
Obsoletes: compat-gcc-g77
Obsoletes: compat-egcs-g77
Obsoletes: compat-gcc-java
Obsoletes: compat-libgcj
Obsoletes: compat-libgcj-devel
Patch1: gcc32-multi32-hack.patch
Patch2: gcc32-ice-hack.patch
Patch3: gcc32-ppc64-m32-m64-multilib-only.patch
Patch4: gcc32-bison-1.875c.patch
Patch5: gcc32-i386-prefetch-sse.patch
Patch6: gcc32-convert-move.patch
Patch7: gcc32-libjava-jar-timestamps.patch
Patch8: gcc32-c++-friend-templ-member.patch
Patch9: gcc32-c++-scope-nesting.patch
Patch10: gcc32-libstdc++-symver.patch
Patch11: gcc32-java-intlex.patch
Patch12: gcc32-java-nan.patch
Patch13: gcc32-dwarf2-pruning-keep-spec.patch
Patch14: gcc32-java-bytecode.patch
Patch15: gcc32-pr3581.patch
Patch16: gcc32-libstdc++-limits.patch
Patch17: gcc32-ppc64-crtsavres.patch
Patch18: gcc32-s390-reload-dup.patch
Patch19: gcc32-ppc-altivec-ap.patch
Patch20: gcc32-ppc-mpowerpc64.patch
Patch21: gcc32-null-pointer-check-noncc0.patch
Patch22: gcc32-ppc-movdi_internal64.patch
Patch23: gcc32-c++-reregister-specialization.patch
Patch24: gcc32-c++-pr7566.patch
Patch25: gcc32-c++-pass-by-invisible-ref.patch
Patch26: gcc32-c++-unitialized-self-ref.patch
Patch27: gcc32-tablejump-cleanup.patch
Patch28: gcc32-libstdc++-fully-dynamic-strings.patch
Patch29: gcc32-Winline-doc.patch
Patch30: gcc32-ia64-expand_load_address.patch
Patch31: gcc32-demangle-pr16240.patch
Patch32: gcc32-debug-cdtor.patch
Patch33: gcc32-cxa_demangle-ambiguity.patch
Patch34: gcc32-c++-pr10558.patch
Patch35: gcc32-libstdc++-pr9659.patch
Patch36: gcc32-libstdc++-symver2.patch
Patch37: gcc32-pr19005.patch
Patch38: gcc32-rh149250.patch
Patch39: gcc32-rh156185.patch
Patch40: gcc32-rh156291.patch
Patch41: gcc32-pr18300.patch
Patch42: gcc32-gnuc-rh-release.patch
Patch43: gcc32-weakref.patch
Patch44: gcc32-pr13106.patch
Patch45: gcc32-ppc64-stack-boundary.patch
Patch46: gcc32-pr12799.patch
Patch47: gcc32-pr13041.patch
Patch50: gcc32-obstack-lvalues.patch
Patch51: gcc32-fc4-compile.patch
Patch100: compat-libstdc++33-incdir.patch
Patch101: compat-libstdc++33-limits.patch
Patch102: compat-libstdc++33-symver.patch
Patch103: compat-libstdc++33-v3.patch
Patch104: compat-libstdc++33++-fully-dynamic-strings.patch
Patch105: compat-libstdc++33++-symver2.patch
Patch106: compat-libstdc++33-cxa_demangle-ambiguity.patch
%define _gnu %{nil}
%ifarch sparc
%define gcc_target_platform sparc64-%{_vendor}-linux
%endif
%ifarch ppc
%define gcc_target_platform ppc64-%{_vendor}-linux
%endif
%ifnarch sparc ppc
%define gcc_target_platform %{_target_cpu}-%{_vendor}-linux
%endif
%description
This package includes a GCC 3.2.3-RH compatibility compiler.
%package c++
Summary: C++ support for compatibility compiler
Group: Development/Languages
Requires: compat-gcc-32 = %{version}-%{release}
Requires: compat-libstdc++-33 = %{version}
Obsoletes: compat-egcs-c++
Obsoletes: compat-gcc-c++
Obsoletes: compat-libstdc++-devel
AutoProv: false
%description c++
This package includes a GCC 3.2.3-RH compatibility C++ compiler.
%package -n compat-libstdc++-33
Summary: Compatibility standard C++ libraries
Group: System Environment/Libraries
Obsoletes: compat-libstdc++
%description -n compat-libstdc++-33
The compat-libstdc++ package contains compatibility standard C++ library
from GCC 3.3.4.
%package g77
Summary: Fortran 77 support for compatibility compiler
Group: Development/Languages
Requires: compat-gcc-32 = %{version}-%{release}
Requires: compat-libf2c-32 = %{version}-%{release}
Prereq: /sbin/install-info
Obsoletes: gcc3-g77
Obsoletes: gcc-g77
Autoreq: true
%description g77
The compat-gcc-32-g77 package provides support for compiling Fortran 77
programs with the GNU Compiler Collection.
%package -n compat-libf2c-32
Summary: Fortran 77 compatibility runtime
Group: System Environment/Libraries
Autoreq: true
Obsoletes: libf2c
%description -n compat-libf2c-32
This package contains Fortran 77 shared library which is needed to run
Fortran 77 dynamically linked programs.
%prep
%setup -q -n gcc-%{gcc_version}-%{DATE} -a2
mv gcc-3.3.4-%{LIBSTDCXXDATE}/libstdc++-v3 libstdc++33-v3
%ifarch sparc ppc
#%patch1 -p0 -b .multi32-hack~
%endif
%patch2 -p0 -b .ice-hack~
%patch3 -p0 -b .ppc64-m32-m64-multilib-only~
%patch4 -p0 -b .bison-1.875c~
%patch5 -p0 -b .i386-prefetch-sse~
%patch6 -p0 -b .convert-move~
%patch7 -p0 -b .libjava-jar-timestamps~
%patch8 -p0 -b .c++-friend-templ-member~
#%patch9 -p0 -b .c++-scope-nesting~
%patch10 -p0 -b .libstdc++-symver~
%patch11 -p0 -b .java-intlex~
%patch12 -p0 -b .java-nan~
%patch13 -p0 -b .dwarf2-pruning-keep-spec~
%patch14 -p0 -b .java-bytecode~
%patch15 -p0 -b .pr3581~
%patch16 -p0 -b .libstdc++-limits~
%patch17 -p0 -b .ppc64-crtsavres~
%patch18 -p0 -b .s390-reload-dup~
%patch19 -p0 -b .ppc-altivec-ap~
%patch20 -p0 -b .ppc-mpowerpc64~
%patch21 -p0 -b .null-pointer-check-noncc0~
%patch22 -p0 -b .ppc-movdi_internal64~
%patch23 -p0 -b .c++-reregister-specialization~
%patch24 -p0 -b .c++-pr7566~
%patch25 -p0 -b .c++-pass-by-invisible-ref~
%patch26 -p0 -b .c++-unitialized-self-ref~
%patch27 -p0 -b .tablejump-cleanup~
%patch28 -p0 -b .libstdc++-fully-dynamic-strings~
%patch29 -p0 -b .Winline-doc~
%patch30 -p0 -b .ia64-expand_load_address~
%patch31 -p0 -b .demangle-pr16240~
%patch32 -p0 -b .debug-cdtor~
%patch33 -p0 -b .cxa_demangle-ambiguity~
%patch34 -p0 -b .c++-pr10558~
%patch35 -p0 -b .libstdc++-pr9659~
%patch36 -p0 -b .libstdc++-symver2~
%patch37 -p0 -b .pr19005~
%patch38 -p0 -b .rh149250~
%patch39 -p0 -b .rh156185~
%patch40 -p0 -b .rh156291~
%patch41 -p0 -b .pr18300~
%patch42 -p0 -b .gnuc-rh-release~
%patch43 -p0 -b .weakref~
%patch44 -p0 -b .pr13106~
%patch45 -p0 -b .ppc64-stack-boundary~
%patch46 -p0 -b .pr12799~
%patch47 -p0 -b .pr13041~
%patch50 -p0 -b .obstack-lvalues~
%patch51 -p0 -b .fc4-compile~
%patch100 -p0 -b .compat-libstdc++33-incdir~
%patch101 -p0 -b .compat-libstdc++33-limits~
%patch102 -p0 -b .compat-libstdc++33-symver~
%patch103 -p0 -b .compat-libstdc++33-v3~
%patch104 -p0 -b .compat-libstdc++33++-fully-dynamic-strings~
%patch105 -p0 -b .compat-libstdc++33++-symver2~
%patch106 -p0 -b .compat-libstdc++33-cxa_demangle-ambiguity~
perl -pi -e 's/3\.2\.4/3.2.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 Linux %{gcc_version}-%{gcc_release}\)/' gcc/version.c
cp -a libstdc++33-v3/config/cpu/i{4,3}86/atomicity.h
./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 %{ix86}
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mtune=pentium4/-mcpu=i686/g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mtune=generic/-mcpu=i686/g'`
%endif
%ifarch x86_64
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mtune=nocona//g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mtune=generic//g'`
%endif
%ifarch sparc sparc64
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g'`
%endif
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Wall//g' -e 's/-Wp,-D_FORTIFY_SOURCE=2//g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fexceptions//g' -e 's/-fasynchronous-unwind-tables//g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fstack-protector//g' -e 's/--param=ssp-buffer-size=[0-9]*//g'`
%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 \
--enable-languages=c,c++,f77 --disable-libgcj \
%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-lean
#make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
# Fix up libstdc++.so's
for d in `pwd`/%{gcc_target_platform}/libstdc++-v3 `pwd`/%{gcc_target_platform}/*/libstdc++-v3; do
test -d $d || continue
d33=`dirname $d`/libstdc++33-v3
pushd $d/src
sh %{SOURCE3} .libs/libstdc++.so .libs/ll.so linker.map
rm .libs/libstdc++.so; mv .libs/ll.so .libs/libstdc++.so
f=`basename .libs/libstdc++.so.5.0.*`
f33=`basename $d33/src/.libs/libstdc++.so.5.0.*`
cp -a $d33/src/.libs/libstdc++.so.5.0.* .libs/
if [ "$f" != "$f33" ]; then
ln -sf $f33 .libs/libstdc++.so.5
ln -sf $f33 .libs/$f
fi
popd
pushd $d33/src
sh %{SOURCE3} .libs/libstdc++.so .libs/ll.so libstdc++*.ver
rm .libs/libstdc++.so; mv .libs/ll.so .libs/libstdc++.so
popd
done
# run the tests.
make %{?_smp_mflags} -k check || :
sed -ie s/libstdc++-v3/libstdc++33-v3/g `find $(find %{gcc_target_platform} -type d -a -name libstdc++33-v3) -name \*.sum`
echo ====================TESTING=========================
( ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}'
echo ====================TESTING END=====================
%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
make prefix=$RPM_BUILD_ROOT%{_prefix} mandir=$RPM_BUILD_ROOT%{_mandir} \
infodir=$RPM_BUILD_ROOT%{_infodir} install
FULLPATH=$RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}
FULLPATH33=$RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4
%ifarch sparc ppc
ln -f $RPM_BUILD_ROOT%{_prefix}/bin/%{gcc_target_platform}-gcc \
$RPM_BUILD_ROOT%{_prefix}/bin/%{_target_platform}-gcc
%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
rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libstdc++.*a
rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libsupc++.*a
rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libstdc++.so*
for d in %{gcc_target_platform}/libstdc++-v3 %{gcc_target_platform}/*/libstdc++-v3; do
test -d $d || continue
d33=`dirname $d`/libstdc++33-v3
b=""
test x"$d" != x%{gcc_target_platform}/libstdc++-v3 && b=/`basename $(dirname $d)`
install -m 644 $d/libsupc++/.libs/libsupc++.a $FULLPATH$b/
install -m 644 $d/src/.libs/libstdc++.a $FULLPATH$b/
strip -g $FULLPATH$b/*.a
install -m 644 $d/src/.libs/libstdc++.so $FULLPATH$b/
mkdir -p $FULLPATH33$b
install -m 644 $d33/libsupc++/.libs/libsupc++.a $FULLPATH33$b/
install -m 644 $d33/src/.libs/libstdc++.a $FULLPATH33$b/
strip -g $FULLPATH33$b/*.a
install -m 644 $d33/src/.libs/libstdc++.so $FULLPATH33$b/
done
mkdir -p $RPM_BUILD_ROOT/%{_lib}
install -m755 %{gcc_target_platform}/libstdc++33-v3/src/.libs/libstdc++.so.5.0* \
$RPM_BUILD_ROOT%{_prefix}/%{_lib}/
/sbin/ldconfig -n $RPM_BUILD_ROOT%{_prefix}/%{_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
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
cd ..
for i in $RPM_BUILD_ROOT%{_prefix}/bin/{*gcc,*++,gcov}; do
mv -f $i ${i}32
done
ln -sf g77 $RPM_BUILD_ROOT%{_prefix}/bin/f77
pushd $FULLPATH
mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libg2c.*a .
mv -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libfrtbegin.*a .
if [ "%{_lib}" = "lib" ]; then
ln -sf ../../../libg2c.so.0.* libg2c.so
else
ln -sf ../../../../%{_lib}/libg2c.so.0.* libg2c.so
fi
%ifarch sparc ppc
mkdir -p 64
ln -sf ../`echo ../../../../lib/libg2c.so.0.* | sed s~/lib/~/lib64/~` 64/libg2c.so
mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libg2c.*a 64/
mv -f $RPM_BUILD_ROOT%{_prefix}/lib64/libfrtbegin.*a 64/
%endif
%ifarch %{multilib_64_archs}
mkdir -p 32
ln -sf ../`echo ../../../../lib64/libg2c.so.0.* | sed s~/../lib64/~/~` 32/libg2c.so
mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libg2c.*a 32/
mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libfrtbegin.*a 32/
%endif
popd
# Strip debug info from Fortran static libraries
strip -g `find . \( -name libg2c.a -o -name libfrtbegin.a \) -a -type f`
chmod 755 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libg2c.so.0.*
rm -f $RPM_BUILD_ROOT%{_prefix}/lib*/libiberty.a
rm -f $RPM_BUILD_ROOT/lib*/libgcc_s*
%clean
rm -rf $RPM_BUILD_ROOT
%post -n compat-libstdc++-33 -p /sbin/ldconfig
%postun -n compat-libstdc++-33 -p /sbin/ldconfig
%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 -n compat-libf2c-32 -p /sbin/ldconfig
%postun -n compat-libf2c-32 -p /sbin/ldconfig
%files
%defattr(-,root,root)
%{_prefix}/bin/gcc32
%{_prefix}/bin/gcov32
%ifarch sparc ppc
%{_prefix}/bin/%{_target_platform}-gcc32
%endif
%ifarch sparc64
%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc32
%endif
%ifarch ppc64
%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc32
%endif
%{_prefix}/bin/%{gcc_target_platform}-gcc32
%dir %{_prefix}/lib/gcc-lib
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/stddef.h
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/stdarg.h
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/varargs.h
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/float.h
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/limits.h
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/stdbool.h
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/iso646.h
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/syslimits.h
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/unwind.h
%ifarch %{ix86} x86_64
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/mmintrin.h
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/xmmintrin.h
#%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/emmintrin.h
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/pmmintrin.h
%endif
%ifarch ia64
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/ia64intrin.h
%endif
%ifarch ppc ppc64
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/ppc-asm.h
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/altivec.h
%endif
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/README
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/collect2
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/cc1
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/cpp0
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/tradcpp0
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/crt*.o
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/libgcc.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/libgcc_eh.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/libgcc_s.so
%ifarch sparc ppc
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/64
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/64/crt*.o
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/64/libgcc_eh.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/libgcc_s_64.so
%endif
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/32/crt*.o
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/32/libgcc.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/32/libgcc_eh.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/libgcc_s_32.so
%endif
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/specs
%doc gcc/README* gcc/*ChangeLog* gcc/COPYING*
%files c++
%defattr(-,root,root)
%{_prefix}/bin/%{gcc_target_platform}-*++32
%{_prefix}/bin/g++32
%dir %{_prefix}/lib/gcc-lib
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/cc1plus
%ifarch sparc ppc
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/64
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.so
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/64/libstdc++.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/64/libsupc++.a
%endif
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/32/libsupc++.a
%endif
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/libstdc++.a
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4
%ifarch sparc ppc
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4/64
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4/64/libstdc++.so
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4/64/libstdc++.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4/64/libsupc++.a
%endif
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4/32
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4/32/libstdc++.so
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4/32/libstdc++.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4/32/libsupc++.a
%endif
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4/libstdc++.so
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4/libsupc++.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4/libstdc++.a
%{_prefix}/include/c++
%doc gcc/cp/ChangeLog*
%doc libstdc++-v3/ChangeLog* libstdc++-v3/README* libstdc++-v3/docs/html/
%files -n compat-libstdc++-33
%defattr(-,root,root)
%{_prefix}/%{_lib}/libstdc++.so.5*
%files g77
%defattr(-,root,root)
%{_prefix}/bin/g77
%{_prefix}/bin/f77
%{_mandir}/man1/g77.1*
%{_infodir}/g77*
%dir %{_prefix}/lib/gcc-lib
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/f771
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/libfrtbegin.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/libg2c.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/libg2c.so
%ifarch sparc ppc
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/64
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/64/libfrtbegin.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/64/libg2c.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/64/libg2c.so
%endif
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/32
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/32/libfrtbegin.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/32/libg2c.a
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/32/libg2c.so
%endif
%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}/include/g2c.h
%doc gcc/f/README gcc/f/ChangeLog*
%files -n compat-libf2c-32
%defattr(-,root,root)
%{_prefix}/%{_lib}/libg2c.so.0*
%changelog
* Thu Aug 3 2006 Jakub Jelinek <jakub@redhat.com> 3.2.3-56
- rebuilt
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 3.2.3-55.fc5.1
- rebuild
* Sat Feb 11 2006 Jakub Jelinek <jakub@redhat.com> 3.2.3-55.fc5
- replace -mtune=generic in $RPM_OPT_FLAGS with something that
GCC 3.2.3 groks
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 3.2.3-54.fc5.2
- bump again for double-long bug on ppc(64)
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 3.2.3-54.fc5.1
- rebuilt for new gcc4.1 snapshot and glibc changes
* Wed Jan 4 2006 Jakub Jelinek <jakub@redhat.com> 3.2.3-54.fc5
- rebuilt with new gcc, massage $RPM_OPT_FLAGS, as GCC 3.2.3-RH doesn't
grok -fstack-protector etc.
- make sure glibc and glibc-devel for all multilib arches is installed
for building (#170601)
- fix compat-libstdc++-33 %%description (#171684)
- disable os_defines.h changes introduced in 3.2.3-45 also for
IBM xlC compiler (#146196, IT#75174)
- fix pushdecl_class_level for OVERLOADs (Mark Mitchell,
Alexandre Oliva, #156185)
- reword diagnostics about unresolved overloaded type
(Alexandre Oliva, #156291, IT#70101)
- fix x86_64 compiler hang when passing object with 3+ base classes by value
(Zak Kipling, PR target/18300, #164421, #171940, IT#76454)
- predefine __GNUC_RH_RELEASE__ macro to rpm's %%{release} (Alexandre Oliva)
- weakref attribute support, use it in <bits/gthr.h> various C++ headers
are using (Alexandre Oliva, #165728, IT#73356)
- don't warn in templates about missing return if return type is dependent
on template parameters (Alexandre Oliva, PR c++/13106, #169044, IT#77857)
- ensure ppc64 keeps stack 16 byte aligned even with dynamic allocation
(alloca, VLAs), but don't rely on it in the generated code
(Alexandre Oliva, #169111, IT#76136)
- fix invalid CC clobberation on i?86/x86_64 (Eric Botcazou,
PR optimization/12799, #169654)
- don't assume hard frame pointer register is STACK_BOUNDARY aligned
if frame pointer isn't used and the register has been reused
for something else (Eric Botcazou, PR optimization/13041, #169845)
- fix libstdc++ seekoff bug (Scott Snyder, #151692, IT#66065,
PR libstdc++/9659)
- don't use .symver directives in libstdc++.a, instead
provide hidden aliases for the obsolete symbols (#151732, IT#64710)
- fix a strength reduction bug (Jan Hubicka, #149250, IT#66328)
- fix xchgb constraints on i386 (#156104, IT#69633, PR target/19005)
- change __cxa_demangle to match cxx-abi change
http://www.codesourcery.com/archives/cxx-abi-dev/msg01877.html
(Jason Merrill, #133406)
- fix ICE on invalid use of template without arguments as primary
expression (Mark Mitchell, #149492, PR c++/10558)
- fix c++filt/__cxa_demangle segfault on invalidly mangled names
generated by G++ 3.4 (Ian Lance Taylor, #145781, PR c++/16240)
- disable os_defines.h changes introduced in 3.2.3-45 for non-GCC
compilers (#144725, #146196)
- fix debugging information in in-charge constructors and
destructors (Mark Mitchell, #146416, PR debug/11098)
- fix delete_null_pointer_checks on non-cc0 targets (Alan Modra, #141694,
IT#54408, PR rtl-optimization/14279)
- fix some reload related issues on ppc64 (David Edelsohn, #139099,
IT#45622, PRs target/16239, target/8480, optimization/8328)
- fix ICE in regenerate_decl_from_template (Mark Mitchell, #142418,
PR c++/7053)
- fix ICE when printing jump to case label... crosses initialization
warning (Gabriel Dos Reis, #140830, PR c++/7566)
- fix corner case in passing by invisible reference (Alexandre Oliva,
IT#54891, #141270)
- fix ICE on code that uses value of reference in reference's initializer
(Alexandre Oliva, #141274, IT#36304)
- avoid moving jumptable away from corresponding jump even if there is an
intervening barrier (Josef Zlomek, #131378)
- with -D_GLIBCXX_FULLY_DYNAMIC_STRING, STL should now avoid
_S_empty_rep_storage (Paolo Carlini, #131030, IT#45103, PR libstdc++/16612)
- document -Winline only works for languages that use RTL inliner (Java,
Ada, #141272, IT#28331)
* Tue Mar 8 2005 Jakub Jelinek <jakub@redhat.com> 3.2.3-47.fc4
- new compatibility package