Blame SPECS/compat-gcc-32.spec

6f1b0c
%define LIBSTDCXXDATE 20040818
6f1b0c
%define DATE 20040701
6f1b0c
%define gcc_version 3.2.3
6f1b0c
%define gcc_release 72
6f1b0c
%define _unpackaged_files_terminate_build 0
6f1b0c
%define multilib_64_archs sparc64 ppc64 s390x x86_64
6f1b0c
%define build_java 0
6f1b0c
%define _default_patch_fuzz 2
6f1b0c
%ifarch s390x
6f1b0c
%define multilib_32_arch s390
6f1b0c
%endif
6f1b0c
%ifarch sparc64
6f1b0c
%define multilib_32_arch sparc
6f1b0c
%endif
6f1b0c
%ifarch ppc64
6f1b0c
%define multilib_32_arch ppc
6f1b0c
%endif
6f1b0c
%ifarch x86_64
6f1b0c
%define multilib_32_arch i386
6f1b0c
%endif
6f1b0c
Summary: The compatibility GNU Compiler Collection
6f1b0c
Name: compat-gcc-32
6f1b0c
Version: %{gcc_version}
6f1b0c
Release: %{gcc_release}%{?dist}
6f1b0c
License: GPLv2+ with exceptions
6f1b0c
Group: Development/Languages
6f1b0c
Source0: gcc-%{gcc_version}-%{DATE}.tar.bz2
6f1b0c
Source2: libstdc++-3.3.4-%{LIBSTDCXXDATE}.tar.bz2
6f1b0c
Source3: dummylib.sh
6f1b0c
URL: http://gcc.gnu.org
6f1b0c
BuildRoot: /var/tmp/gcc-root
6f1b0c
# Need .eh_frame ld optimizations
6f1b0c
# Need proper visibility support
6f1b0c
# Need -pie support
6f1b0c
# Need --as-needed/--no-as-needed support
6f1b0c
# Need .weakref support
6f1b0c
BuildRequires: binutils >= 2.16.91.0.5-1
6f1b0c
BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo
6f1b0c
# Make sure pthread.h doesn't contain __thread tokens
6f1b0c
BuildRequires: glibc-devel >= 2.2.90-12, glibc-static
6f1b0c
# Need .eh_frame ld optimizations
6f1b0c
# Need proper visibility support
6f1b0c
# Need -pie support
6f1b0c
# Need .weakref support
6f1b0c
Requires: binutils >= 2.16.91.0.5-1
6f1b0c
# Make sure gdb will understand DW_FORM_strp
6f1b0c
Conflicts: gdb < 5.1-2
6f1b0c
Requires: glibc-devel >= 2.2.90-12
6f1b0c
Requires: libgcc >= 3.4.0
6f1b0c
%ifarch %{multilib_64_archs} sparc sparcv9 ppc
6f1b0c
# Ensure glibc{,-devel} is installed for both multilib arches
6f1b0c
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
6f1b0c
%endif
6f1b0c
Provides: bundled(libiberty)
6f1b0c
6f1b0c
Patch1: gcc32-multi32-hack.patch
6f1b0c
Patch2: gcc32-ice-hack.patch
6f1b0c
Patch3: gcc32-ppc64-m32-m64-multilib-only.patch
6f1b0c
Patch4: gcc32-bison-1.875c.patch
6f1b0c
Patch5: gcc32-i386-prefetch-sse.patch
6f1b0c
Patch6: gcc32-convert-move.patch
6f1b0c
Patch7: gcc32-libjava-jar-timestamps.patch
6f1b0c
Patch8: gcc32-c++-friend-templ-member.patch
6f1b0c
Patch9: gcc32-c++-scope-nesting.patch
6f1b0c
Patch10: gcc32-libstdc++-symver.patch
6f1b0c
Patch11: gcc32-java-intlex.patch
6f1b0c
Patch12: gcc32-java-nan.patch
6f1b0c
Patch13: gcc32-dwarf2-pruning-keep-spec.patch
6f1b0c
Patch14: gcc32-java-bytecode.patch
6f1b0c
Patch15: gcc32-pr3581.patch
6f1b0c
Patch16: gcc32-libstdc++-limits.patch
6f1b0c
Patch17: gcc32-ppc64-crtsavres.patch
6f1b0c
Patch18: gcc32-s390-reload-dup.patch
6f1b0c
Patch19: gcc32-ppc-altivec-ap.patch
6f1b0c
Patch20: gcc32-ppc-mpowerpc64.patch
6f1b0c
Patch21: gcc32-null-pointer-check-noncc0.patch
6f1b0c
Patch22: gcc32-ppc-movdi_internal64.patch
6f1b0c
Patch23: gcc32-c++-reregister-specialization.patch
6f1b0c
Patch24: gcc32-c++-pr7566.patch
6f1b0c
Patch25: gcc32-c++-pass-by-invisible-ref.patch
6f1b0c
Patch26: gcc32-c++-unitialized-self-ref.patch
6f1b0c
Patch27: gcc32-tablejump-cleanup.patch
6f1b0c
Patch28: gcc32-libstdc++-fully-dynamic-strings.patch
6f1b0c
Patch29: gcc32-Winline-doc.patch
6f1b0c
Patch30: gcc32-ia64-expand_load_address.patch
6f1b0c
Patch31: gcc32-demangle-pr16240.patch
6f1b0c
Patch32: gcc32-debug-cdtor.patch
6f1b0c
Patch33: gcc32-cxa_demangle-ambiguity.patch
6f1b0c
Patch34: gcc32-c++-pr10558.patch
6f1b0c
Patch35: gcc32-libstdc++-pr9659.patch
6f1b0c
Patch36: gcc32-libstdc++-symver2.patch
6f1b0c
Patch37: gcc32-pr19005.patch
6f1b0c
Patch38: gcc32-rh149250.patch
6f1b0c
Patch39: gcc32-rh156185.patch
6f1b0c
Patch40: gcc32-rh156291.patch
6f1b0c
Patch41: gcc32-pr18300.patch
6f1b0c
Patch42: gcc32-gnuc-rh-release.patch
6f1b0c
Patch43: gcc32-weakref.patch
6f1b0c
Patch44: gcc32-pr13106.patch
6f1b0c
Patch45: gcc32-ppc64-stack-boundary.patch
6f1b0c
Patch46: gcc32-pr12799.patch
6f1b0c
Patch47: gcc32-pr13041.patch
6f1b0c
Patch48: gcc32-pr26208.patch
6f1b0c
Patch49: gcc32-rh173224.patch
6f1b0c
Patch50: gcc32-rh180778.patch
6f1b0c
Patch51: gcc32-rh181894.patch
6f1b0c
Patch52: gcc32-rh186252.patch
6f1b0c
Patch53: gcc32-pr26208-workaround.patch
6f1b0c
Patch54: gcc32-libgcc_eh-hidden.patch
6f1b0c
Patch55: gcc32-java-zoneinfo.patch
6f1b0c
Patch56: gcc32-CVE-2006-3619.patch
6f1b0c
Patch57: gcc32-rh226706.patch
6f1b0c
6f1b0c
Patch60: gcc32-obstack-lvalues.patch
6f1b0c
Patch61: gcc32-fc4-compile.patch
6f1b0c
Patch62: gcc32-s390x-compile.patch
6f1b0c
Patch63: gcc32-bison.patch
6f1b0c
6f1b0c
Patch100: compat-libstdc++33-incdir.patch
6f1b0c
Patch101: compat-libstdc++33-limits.patch
6f1b0c
Patch102: compat-libstdc++33-symver.patch
6f1b0c
Patch103: compat-libstdc++33-v3.patch
6f1b0c
Patch104: compat-libstdc++33++-fully-dynamic-strings.patch
6f1b0c
Patch105: compat-libstdc++33++-symver2.patch
6f1b0c
Patch106: compat-libstdc++33-cxa_demangle-ambiguity.patch
6f1b0c
Patch107: compat-libstdc++33-ldbl.patch
6f1b0c
6f1b0c
%define _gnu %{nil}
6f1b0c
6f1b0c
%ifarch sparc sparcv9
6f1b0c
%define gcc_target_platform sparc64-%{_vendor}-linux
6f1b0c
%endif
6f1b0c
%ifarch ppc
6f1b0c
%define gcc_target_platform ppc64-%{_vendor}-linux
6f1b0c
%endif
6f1b0c
%ifnarch sparc sparcv9 ppc
6f1b0c
%define gcc_target_platform %{_target_cpu}-%{_vendor}-linux
6f1b0c
%endif
6f1b0c
6f1b0c
%description
6f1b0c
This package includes a GCC 3.2.3-RH compatibility compiler.
6f1b0c
6f1b0c
%package -n compat-libstdc++-33
6f1b0c
Summary: Compatibility standard C++ libraries
6f1b0c
Group: System Environment/Libraries
6f1b0c
Obsoletes: compat-libstdc++
6f1b0c
Obsoletes: compat-gcc-32, compat-gcc-32-c++, compat-gcc-32-g77
6f1b0c
6f1b0c
%description -n compat-libstdc++-33
6f1b0c
The compat-libstdc++ package contains compatibility standard C++ library
6f1b0c
from GCC 3.3.4.
6f1b0c
6f1b0c
%prep
6f1b0c
%setup -q -n gcc-%{gcc_version}-%{DATE} -a2
6f1b0c
mv gcc-3.3.4-%{LIBSTDCXXDATE}/libstdc++-v3 libstdc++33-v3
6f1b0c
%ifarch sparc ppc
6f1b0c
#%patch1 -p0 -b .multi32-hack~
6f1b0c
%endif
6f1b0c
%patch2 -p0 -b .ice-hack~
6f1b0c
%patch3 -p0 -b .ppc64-m32-m64-multilib-only~
6f1b0c
%patch4 -p0 -b .bison-1.875c~
6f1b0c
%patch5 -p0 -b .i386-prefetch-sse~
6f1b0c
%patch6 -p0 -b .convert-move~
6f1b0c
%patch7 -p0 -b .libjava-jar-timestamps~
6f1b0c
%patch8 -p0 -b .c++-friend-templ-member~
6f1b0c
#%patch9 -p0 -b .c++-scope-nesting~
6f1b0c
%patch10 -p0 -b .libstdc++-symver~
6f1b0c
%patch11 -p0 -b .java-intlex~
6f1b0c
%patch12 -p0 -b .java-nan~
6f1b0c
%patch13 -p0 -b .dwarf2-pruning-keep-spec~
6f1b0c
%patch14 -p0 -b .java-bytecode~
6f1b0c
%patch15 -p0 -b .pr3581~
6f1b0c
%patch16 -p0 -b .libstdc++-limits~
6f1b0c
%patch17 -p0 -b .ppc64-crtsavres~
6f1b0c
%patch18 -p0 -b .s390-reload-dup~
6f1b0c
%patch19 -p0 -b .ppc-altivec-ap~
6f1b0c
%patch20 -p0 -b .ppc-mpowerpc64~
6f1b0c
%patch21 -p0 -b .null-pointer-check-noncc0~
6f1b0c
%patch22 -p0 -b .ppc-movdi_internal64~
6f1b0c
%patch23 -p0 -b .c++-reregister-specialization~
6f1b0c
%patch24 -p0 -b .c++-pr7566~
6f1b0c
%patch25 -p0 -b .c++-pass-by-invisible-ref~
6f1b0c
%patch26 -p0 -b .c++-unitialized-self-ref~
6f1b0c
%patch27 -p0 -b .tablejump-cleanup~
6f1b0c
%patch28 -p0 -b .libstdc++-fully-dynamic-strings~
6f1b0c
%patch29 -p0 -b .Winline-doc~
6f1b0c
%patch30 -p0 -b .ia64-expand_load_address~
6f1b0c
%patch31 -p0 -b .demangle-pr16240~
6f1b0c
%patch32 -p0 -b .debug-cdtor~
6f1b0c
%patch33 -p0 -b .cxa_demangle-ambiguity~
6f1b0c
%patch34 -p0 -b .c++-pr10558~
6f1b0c
%patch35 -p0 -b .libstdc++-pr9659~
6f1b0c
%patch36 -p0 -b .libstdc++-symver2~
6f1b0c
%patch37 -p0 -b .pr19005~
6f1b0c
%patch38 -p0 -b .rh149250~
6f1b0c
%patch39 -p0 -b .rh156185~
6f1b0c
%patch40 -p0 -b .rh156291~
6f1b0c
%patch41 -p0 -b .pr18300~
6f1b0c
%patch42 -p0 -b .gnuc-rh-release~
6f1b0c
%patch43 -p0 -b .weakref~
6f1b0c
%patch44 -p0 -b .pr13106~
6f1b0c
%patch45 -p0 -b .ppc64-stack-boundary~
6f1b0c
%patch46 -p0 -b .pr12799~
6f1b0c
%patch47 -p0 -b .pr13041~
6f1b0c
%patch48 -p0 -b .pr26208~
6f1b0c
%patch49 -p0 -b .rh173224~
6f1b0c
%patch50 -p0 -b .rh180778~
6f1b0c
%patch51 -p0 -b .rh181894~
6f1b0c
%patch52 -p0 -b .rh186252~
6f1b0c
%patch53 -p0 -b .pr26208-workaround~
6f1b0c
%patch54 -p0 -b .libgcc_eh-hidden~
6f1b0c
%patch55 -p0 -b .java-zoneinfo~
6f1b0c
%patch56 -p0 -b .CVE-2006-3619~
6f1b0c
%patch57 -p0 -b .rh226706~
6f1b0c
6f1b0c
%patch60 -p0 -b .obstack-lvalues~
6f1b0c
%patch61 -p0 -b .fc4-compile~
6f1b0c
%patch62 -p0 -b .s390x-compile~
6f1b0c
%patch63 -p0 -b .bison~
6f1b0c
6f1b0c
%patch100 -p0 -b .compat-libstdc++33-incdir~
6f1b0c
%patch101 -p0 -b .compat-libstdc++33-limits~
6f1b0c
%patch102 -p0 -b .compat-libstdc++33-symver~
6f1b0c
%patch103 -p0 -b .compat-libstdc++33-v3~
6f1b0c
%patch104 -p0 -b .compat-libstdc++33++-fully-dynamic-strings~
6f1b0c
%patch105 -p0 -b .compat-libstdc++33++-symver2~
6f1b0c
%patch106 -p0 -b .compat-libstdc++33-cxa_demangle-ambiguity~
6f1b0c
%patch107 -p0 -b .compat-libstdc++33-ldbl.patch~
6f1b0c
6f1b0c
sed -i -e 's/struct siginfo/siginfo_t/' gcc/config/*/linux*.h
6f1b0c
6f1b0c
%ifarch ppc ppc64 s390 s390x
6f1b0c
sed -i -e 's/-lm @LIBUNWIND_FLAG@/-lm @LIBUNWIND_FLAG@ -lnldbl_nonshared/' \
6f1b0c
  libstdc++33-v3/src/Makefile.{am,in}
6f1b0c
%endif
6f1b0c
# Don't need to test C, only check-g++ and libstdc++-v33's make check
6f1b0c
sed -i -e 's/\$(RUNTEST) --tool gcc/: $(RUNTEST) --tool gcc/' \
6f1b0c
  gcc/Makefile.in
6f1b0c
sed -i -e 's/\$\$runtest \$(RUNTESTDEFAULTFLAGS)/: $$runtest $(RUNTESTDEFAULTFLAGS)/' \
6f1b0c
  libstdc++-v3/testsuite/Makefile.in
6f1b0c
perl -pi -e 's/3\.2\.4/3.2.3/' gcc/version.c
6f1b0c
perl -pi -e 's/"%{gcc_version}"/"%{gcc_version} \(release\)"/' gcc/version.c
6f1b0c
perl -pi -e 's/\((prerelease|experimental|release|Red Hat[^)]*)\)/\(Red Hat Linux %{gcc_version}-%{gcc_release}\)/' gcc/version.c
6f1b0c
6f1b0c
cp -a libstdc++33-v3/config/cpu/i{4,3}86/atomicity.h
6f1b0c
6f1b0c
./contrib/gcc_update --touch
6f1b0c
6f1b0c
%build
6f1b0c
6f1b0c
rm -fr obj-%{gcc_target_platform}
6f1b0c
mkdir obj-%{gcc_target_platform}
6f1b0c
cd obj-%{gcc_target_platform}
6f1b0c
6f1b0c
mkdir -p ld_hack
6f1b0c
cat > ld_hack/ld <<\EOF
6f1b0c
#!/bin/sh
6f1b0c
case " $* " in *\ -r\ *) exec /usr/bin/ld "$@";; esac
6f1b0c
exec /usr/bin/ld --build-id "$@"
6f1b0c
EOF
6f1b0c
chmod 755 ld_hack/ld
6f1b0c
export PATH=`pwd`/ld_hack/${PATH:+:$PATH}
6f1b0c
6f1b0c
if [ ! -f /usr/lib/locale/de_DE/LC_CTYPE ]; then
6f1b0c
  mkdir locale
6f1b0c
  localedef -f ISO-8859-1 -i de_DE locale/de_DE
6f1b0c
  export LOCPATH=`pwd`/locale:/usr/lib/locale
6f1b0c
fi
6f1b0c
6f1b0c
CC=gcc
6f1b0c
OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g'`
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'`
6f1b0c
%ifarch %{ix86}
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mtune=pentium4/-mcpu=i686/g'`
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mtune=generic/-mcpu=i686/g'`
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mtune=atom/-mcpu=i686/g'`
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mtune=atom/-mcpu=i686/g'`
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=x86-64//g'`
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse//g'`
6f1b0c
%endif
6f1b0c
%ifarch x86_64
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mtune=nocona//g'`
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mtune=generic//g'`
6f1b0c
%endif
6f1b0c
%ifarch sparc sparcv9 sparc64
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g'`
6f1b0c
%endif
6f1b0c
%ifarch s390 s390x
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=z9-109//g;s/-march=z10//g;s/-march=z196//g;s/-mtune=z10//g;s/-mtune=zEC12//g'`
6f1b0c
%endif
6f1b0c
%ifarch ppc ppc64
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=power[678]//g;s/-mcpu=power[678]//g;s/-mtune=power[678]//g'`
6f1b0c
%endif
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Wall//g' -e 's/-Wp,-D_FORTIFY_SOURCE=2//g'`
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fexceptions//g' -e 's/-fasynchronous-unwind-tables//g'`
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-grecord-gcc-switches//g' -e 's/-fstack-protector-strong//g'`
6f1b0c
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fstack-protector//g' -e 's/--param=ssp-buffer-size=[0-9]*//g'`
6f1b0c
%ifarch sparc64
6f1b0c
cat > gcc64 <<"EOF"
6f1b0c
#!/bin/sh
6f1b0c
exec /usr/bin/gcc -m64 "$@"
6f1b0c
EOF
6f1b0c
chmod +x gcc64
6f1b0c
CC=`pwd`/gcc64
6f1b0c
%endif
6f1b0c
%ifarch ppc64
6f1b0c
if gcc -m64 -xc -S /dev/null -o - > /dev/null 2>&1; then
6f1b0c
  cat > gcc64 <<"EOF"
6f1b0c
#!/bin/sh
6f1b0c
exec /usr/bin/gcc -m64 "$@"
6f1b0c
EOF
6f1b0c
  chmod +x gcc64
6f1b0c
  CC=`pwd`/gcc64
6f1b0c
fi
6f1b0c
%endif
6f1b0c
CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="$OPT_FLAGS" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
6f1b0c
	GCJFLAGS="$OPT_FLAGS" \
6f1b0c
	../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
6f1b0c
	--enable-shared --enable-threads=posix --disable-checking \
6f1b0c
	--with-system-zlib --enable-__cxa_atexit \
6f1b0c
	--enable-languages=c,c++ --disable-libgcj \
6f1b0c
%ifarch sparc sparcv9
6f1b0c
	--host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7
6f1b0c
%endif
6f1b0c
%ifarch ppc
6f1b0c
	--host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32
6f1b0c
%endif
6f1b0c
%ifnarch sparc sparcv9 ppc
6f1b0c
	--host=%{gcc_target_platform}
6f1b0c
%endif
6f1b0c
6f1b0c
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap-lean
6f1b0c
#make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
6f1b0c
6f1b0c
# Fix up libstdc++.so's
6f1b0c
for d in `pwd`/%{gcc_target_platform}/libstdc++-v3 `pwd`/%{gcc_target_platform}/*/libstdc++-v3; do
6f1b0c
  test -d $d || continue
6f1b0c
  d33=`dirname $d`/libstdc++33-v3
6f1b0c
  pushd $d/src
6f1b0c
    sh %{SOURCE3} .libs/libstdc++.so .libs/ll.so linker.map
6f1b0c
    rm .libs/libstdc++.so; mv .libs/ll.so .libs/libstdc++.so
6f1b0c
    f=`basename .libs/libstdc++.so.5.0.*`
6f1b0c
    f33=`basename $d33/src/.libs/libstdc++.so.5.0.*`
6f1b0c
    cp -a $d33/src/.libs/libstdc++.so.5.0.* .libs/
6f1b0c
    if [ "$f" != "$f33" ]; then
6f1b0c
      ln -sf $f33 .libs/libstdc++.so.5
6f1b0c
      ln -sf $f33 .libs/$f
6f1b0c
    fi
6f1b0c
  popd
6f1b0c
  pushd $d33/src
6f1b0c
    sh %{SOURCE3} .libs/libstdc++.so .libs/ll.so libstdc++*.ver
6f1b0c
    rm .libs/libstdc++.so; mv .libs/ll.so .libs/libstdc++.so
6f1b0c
  popd
6f1b0c
done
6f1b0c
6f1b0c
# Make sure we are using system libgcc_s, as system libc might
6f1b0c
# use unwinding features that require it.
6f1b0c
mv gcc/libgcc_s.so.1{,.bak}
6f1b0c
ln -sf /%{_lib}/libgcc_s.so.1 gcc/libgcc_s.so.1
6f1b0c
6f1b0c
# run the tests.
6f1b0c
make %{?_smp_mflags} -k check || :
6f1b0c
sed -ie s/libstdc++-v3/libstdc++33-v3/g `find $(find %{gcc_target_platform} -type d -a -name libstdc++33-v3) -name \*.sum`
6f1b0c
echo ====================TESTING=========================
6f1b0c
( ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}'
6f1b0c
echo ====================TESTING END=====================
6f1b0c
6f1b0c
%install
6f1b0c
rm -fr $RPM_BUILD_ROOT
6f1b0c
6f1b0c
export PATH=`pwd`/obj-%{gcc_target_platform}/ld_hack/${PATH:+:$PATH}
6f1b0c
6f1b0c
perl -pi -e \
6f1b0c
  's~href="l(ibstdc|atest)~href="http://gcc.gnu.org/onlinedocs/libstdc++/l\1~' \
6f1b0c
  libstdc++-v3/docs/html/documentation.html
6f1b0c
ln -sf documentation.html libstdc++-v3/docs/html/index.html
6f1b0c
find libstdc++-v3/docs/html -name CVS | xargs rm -rf
6f1b0c
6f1b0c
cd obj-%{gcc_target_platform}
6f1b0c
6f1b0c
if [ ! -f /usr/lib/locale/de_DE/LC_CTYPE ]; then
6f1b0c
  export LOCPATH=`pwd`/locale:/usr/lib/locale
6f1b0c
fi
6f1b0c
6f1b0c
TARGET_PLATFORM=%{gcc_target_platform}
6f1b0c
6f1b0c
# There are some MP bugs in libstdc++ and libjava Makefiles
6f1b0c
# make -C %{gcc_target_platform}/libstdc++-v3
6f1b0c
6f1b0c
make prefix=$RPM_BUILD_ROOT%{_prefix} mandir=$RPM_BUILD_ROOT%{_mandir} \
6f1b0c
  infodir=$RPM_BUILD_ROOT%{_infodir} install
6f1b0c
6f1b0c
FULLPATH=$RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/%{gcc_version}
6f1b0c
FULLPATH33=$RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/%{gcc_target_platform}/3.3.4
6f1b0c
6f1b0c
rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libstdc++.*a
6f1b0c
rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libsupc++.*a
6f1b0c
rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libstdc++.so*
6f1b0c
6f1b0c
for d in %{gcc_target_platform}/libstdc++-v3 %{gcc_target_platform}/*/libstdc++-v3; do
6f1b0c
  test -d $d || continue
6f1b0c
  d33=`dirname $d`/libstdc++33-v3
6f1b0c
  b=""
6f1b0c
  test x"$d" != x%{gcc_target_platform}/libstdc++-v3 && b=/`basename $(dirname $d)`
6f1b0c
  install -m 644 $d/libsupc++/.libs/libsupc++.a $FULLPATH$b/
6f1b0c
  install -m 644 $d/src/.libs/libstdc++.a $FULLPATH$b/
6f1b0c
  strip -g $FULLPATH$b/*.a
6f1b0c
  install -m 644 $d/src/.libs/libstdc++.so $FULLPATH$b/
6f1b0c
6f1b0c
  mkdir -p $FULLPATH33$b
6f1b0c
  install -m 644 $d33/libsupc++/.libs/libsupc++.a $FULLPATH33$b/
6f1b0c
  install -m 644 $d33/src/.libs/libstdc++.a $FULLPATH33$b/
6f1b0c
  strip -g $FULLPATH33$b/*.a
6f1b0c
  install -m 644 $d33/src/.libs/libstdc++.so $FULLPATH33$b/
6f1b0c
done
6f1b0c
6f1b0c
mkdir -p $RPM_BUILD_ROOT/%{_lib}
6f1b0c
install -m755 %{gcc_target_platform}/libstdc++33-v3/src/.libs/libstdc++.so.5.0* \
6f1b0c
  $RPM_BUILD_ROOT%{_prefix}/%{_lib}/
6f1b0c
/sbin/ldconfig -n $RPM_BUILD_ROOT%{_prefix}/%{_lib}/
6f1b0c
6f1b0c
rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgcc_s*
6f1b0c
6f1b0c
cd ..
6f1b0c
6f1b0c
for i in $RPM_BUILD_ROOT%{_prefix}/bin/{*gcc,*++,gcov}; do
6f1b0c
  mv -f $i ${i}32
6f1b0c
done
6f1b0c
6f1b0c
rm -f $RPM_BUILD_ROOT%{_prefix}/lib*/{libiberty.a,*/libiberty.a}
6f1b0c
rm -f $RPM_BUILD_ROOT/lib*/libgcc_s*
6f1b0c
6f1b0c
%ifarch %{multilib_64_archs}
6f1b0c
# Remove libraries for the other arch on multilib arches
6f1b0c
rm -f $RPM_BUILD_ROOT%{_prefix}/lib/lib*.so*
6f1b0c
rm -f $RPM_BUILD_ROOT%{_prefix}/lib/lib*.a
6f1b0c
%else
6f1b0c
%ifarch sparc sparcv9 ppc
6f1b0c
rm -f $RPM_BUILD_ROOT%{_prefix}/lib64/lib*.so*
6f1b0c
rm -f $RPM_BUILD_ROOT%{_prefix}/lib64/lib*.a
6f1b0c
%endif
6f1b0c
%endif
6f1b0c
6f1b0c
rm -rf $RPM_BUILD_ROOT%{_prefix}/{lib/gcc-lib,bin,include}
6f1b0c
6f1b0c
%clean
6f1b0c
rm -rf $RPM_BUILD_ROOT
6f1b0c
6f1b0c
%post -n compat-libstdc++-33 -p /sbin/ldconfig
6f1b0c
6f1b0c
%postun -n compat-libstdc++-33 -p /sbin/ldconfig
6f1b0c
6f1b0c
%files -n compat-libstdc++-33
6f1b0c
%defattr(-,root,root)
6f1b0c
%{_prefix}/%{_lib}/libstdc++.so.5*
6f1b0c
6f1b0c
%changelog
6f1b0c
* Tue Nov  4 2014 Jakub Jelinek  <jakub@redhat.com> 3.2.3-72
6f1b0c
- rebuilt against fixed glibc to avoid infinite recursion in btowc (#1159772)
6f1b0c
6f1b0c
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 3.2.3-71
6f1b0c
- Mass rebuild 2014-01-24
6f1b0c
6f1b0c
* Tue Jan  7 2014 Jakub Jelinek  <jakub@redhat.com> 3.2.3-70
6f1b0c
- filter out -fstack-protector-strong, -grecord-gcc-switches and new
6f1b0c
  i686, ppc and s390 tunings (#1048850)
6f1b0c
6f1b0c
* Wed Aug 28 2013 Jakub Jelinek  <jakub@redhat.com> 3.2.3-69
6f1b0c
- add %%{?dist} to release (#874993)
6f1b0c
6f1b0c
* Wed Feb 20 2013 Jakub Jelinek  <jakub@redhat.com> 3.2.3-68.7
6f1b0c
- use siginfo_t instead of struct siginfo
6f1b0c
6f1b0c
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.3-68.6
6f1b0c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
6f1b0c
6f1b0c
* Mon Oct 15 2012 Jon Ciesla <limburgher@gmail.com> - 3.2.3-68.5
6f1b0c
- Provides: bundled(libiberty)
6f1b0c
6f1b0c
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.3-68.4
6f1b0c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
6f1b0c
6f1b0c
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.3-68.3
6f1b0c
- Rebuilt for c++ ABI breakage
6f1b0c
6f1b0c
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.3-68.2
6f1b0c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
6f1b0c
6f1b0c
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.3-68.1
6f1b0c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
6f1b0c
6f1b0c
* Thu Sep 17 2009 Jakub Jelinek  <jakub@redhat.com> 3.2.3-68
6f1b0c
- strip -march=z9-109 and -mtune=z10 from OPT_FLAGS on s390, s390x
6f1b0c
  (#523209)
6f1b0c
- make sure to use system libgcc_s.so.1 instead of gcc32 one during
6f1b0c
  testing
6f1b0c
6f1b0c
* Tue Jul 28 2009 Jakub Jelinek  <jakub@redhat.com> 3.2.3-67
6f1b0c
- replace -mtune=generic in $RPM_OPT_FLAGS with something that
6f1b0c
  GCC 3.2.3 groks
6f1b0c
6f1b0c
* Mon Mar  9 2009 Jakub Jelinek  <jakub@redhat.com> 3.2.3-66
6f1b0c
- fix up for latest bison
6f1b0c
6f1b0c
* Sat Feb 14 2009 Dennis Gilmore <dennis@ausil.us> - 3.2.3-65
6f1b0c
- fix to build 32 bit sparc sparcv9
6f1b0c
6f1b0c
* Tue Jul 15 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 3.2.3-64
6f1b0c
- fix license tag
6f1b0c
- apply patches with fuzz=2
6f1b0c
6f1b0c
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 3.2.3-63
6f1b0c
- Autorebuild for GCC 4.3
6f1b0c
6f1b0c
* Tue Oct  9 2007 Jakub Jelinek  <jakub@redhat.com> 3.2.3-62
6f1b0c
- rebuilt
6f1b0c
6f1b0c
* Mon Aug 21 2006 Jakub Jelinek  <jakub@redhat.com> 3.2.3-61
6f1b0c
- fix the ppc*/s390* math *l stub changes
6f1b0c
6f1b0c
* Fri Aug 18 2006 Jakub Jelinek  <jakub@redhat.com> 3.2.3-60
6f1b0c
- on ppc*/s390* make sure all needed math *l stubs are included
6f1b0c
6f1b0c
* Thu Aug 10 2006 Jakub Jelinek  <jakub@redhat.com> 3.2.3-59
6f1b0c
- fix cleaning up the buildroot before debuginfo generation
6f1b0c
6f1b0c
* Thu Aug 10 2006 Jakub Jelinek  <jakub@redhat.com> 3.2.3-58
6f1b0c
- include only compat-libstdc++-33 subpackage
6f1b0c
6f1b0c
* Thu Aug  3 2006 Jakub Jelinek  <jakub@redhat.com> 3.2.3-57
6f1b0c
- in 64-bit builds remove 32-bit /usr/lib/lib* libraries from the
6f1b0c
  buildroots (and similarly on 32-bit builds remove 64-bit /usr/lib64/lib*)
6f1b0c
  before AutoReq generation
6f1b0c
6f1b0c
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 3.2.3-55.fc5.1
6f1b0c
- rebuild
6f1b0c
6f1b0c
* Sat Feb 11 2006 Jakub Jelinek  <jakub@redhat.com> 3.2.3-55.fc5
6f1b0c
- replace -mtune=generic in $RPM_OPT_FLAGS with something that
6f1b0c
  GCC 3.2.3 groks
6f1b0c
6f1b0c
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 3.2.3-54.fc5.2
6f1b0c
- bump again for double-long bug on ppc(64)
6f1b0c
6f1b0c
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 3.2.3-54.fc5.1
6f1b0c
- rebuilt for new gcc4.1 snapshot and glibc changes
6f1b0c
6f1b0c
* Wed Jan  4 2006 Jakub Jelinek  <jakub@redhat.com> 3.2.3-54.fc5
6f1b0c
- rebuilt with new gcc, massage $RPM_OPT_FLAGS, as GCC 3.2.3-RH doesn't
6f1b0c
  grok -fstack-protector etc.
6f1b0c
- make sure glibc and glibc-devel for all multilib arches is installed
6f1b0c
  for building (#170601)
6f1b0c
- fix compat-libstdc++-33 %%description (#171684)
6f1b0c
- disable os_defines.h changes introduced in 3.2.3-45 also for
6f1b0c
  IBM xlC compiler (#146196, IT#75174)
6f1b0c
- fix pushdecl_class_level for OVERLOADs (Mark Mitchell,
6f1b0c
  Alexandre Oliva, #156185)
6f1b0c
- reword diagnostics about unresolved overloaded type
6f1b0c
  (Alexandre Oliva, #156291, IT#70101)
6f1b0c
- fix x86_64 compiler hang when passing object with 3+ base classes by value
6f1b0c
  (Zak Kipling, PR target/18300, #164421, #171940, IT#76454)
6f1b0c
- predefine __GNUC_RH_RELEASE__ macro to rpm's %%{release} (Alexandre Oliva)
6f1b0c
- weakref attribute support, use it in <bits/gthr.h> various C++ headers
6f1b0c
  are using (Alexandre Oliva, #165728, IT#73356)
6f1b0c
- don't warn in templates about missing return if return type is dependent
6f1b0c
  on template parameters (Alexandre Oliva, PR c++/13106, #169044, IT#77857)
6f1b0c
- ensure ppc64 keeps stack 16 byte aligned even with dynamic allocation
6f1b0c
  (alloca, VLAs), but don't rely on it in the generated code
6f1b0c
  (Alexandre Oliva, #169111, IT#76136)
6f1b0c
- fix invalid CC clobberation on i?86/x86_64 (Eric Botcazou,
6f1b0c
  PR optimization/12799, #169654)
6f1b0c
- don't assume hard frame pointer register is STACK_BOUNDARY aligned
6f1b0c
  if frame pointer isn't used and the register has been reused
6f1b0c
  for something else (Eric Botcazou, PR optimization/13041, #169845)
6f1b0c
- fix libstdc++ seekoff bug (Scott Snyder, #151692, IT#66065,
6f1b0c
  PR libstdc++/9659)
6f1b0c
- don't use .symver directives in libstdc++.a, instead
6f1b0c
  provide hidden aliases for the obsolete symbols (#151732, IT#64710)
6f1b0c
- fix a strength reduction bug (Jan Hubicka, #149250, IT#66328)
6f1b0c
- fix xchgb constraints on i386 (#156104, IT#69633, PR target/19005)
6f1b0c
- change __cxa_demangle to match cxx-abi change
6f1b0c
  http://www.codesourcery.com/archives/cxx-abi-dev/msg01877.html
6f1b0c
  (Jason Merrill, #133406)
6f1b0c
- fix ICE on invalid use of template without arguments as primary
6f1b0c
  expression (Mark Mitchell, #149492, PR c++/10558)
6f1b0c
- fix c++filt/__cxa_demangle segfault on invalidly mangled names
6f1b0c
  generated by G++ 3.4 (Ian Lance Taylor, #145781, PR c++/16240)
6f1b0c
- disable os_defines.h changes introduced in 3.2.3-45 for non-GCC
6f1b0c
  compilers (#144725, #146196)
6f1b0c
- fix debugging information in in-charge constructors and
6f1b0c
  destructors (Mark Mitchell, #146416, PR debug/11098)
6f1b0c
- fix delete_null_pointer_checks on non-cc0 targets (Alan Modra, #141694,
6f1b0c
  IT#54408, PR rtl-optimization/14279)
6f1b0c
- fix some reload related issues on ppc64 (David Edelsohn, #139099,
6f1b0c
  IT#45622, PRs target/16239, target/8480, optimization/8328)
6f1b0c
- fix ICE in regenerate_decl_from_template (Mark Mitchell, #142418,
6f1b0c
  PR c++/7053)
6f1b0c
- fix ICE when printing jump to case label... crosses initialization
6f1b0c
  warning (Gabriel Dos Reis, #140830, PR c++/7566)
6f1b0c
- fix corner case in passing by invisible reference (Alexandre Oliva,
6f1b0c
  IT#54891, #141270)
6f1b0c
- fix ICE on code that uses value of reference in reference's initializer
6f1b0c
  (Alexandre Oliva, #141274, IT#36304)
6f1b0c
- avoid moving jumptable away from corresponding jump even if there is an
6f1b0c
  intervening barrier (Josef Zlomek, #131378)
6f1b0c
- with -D_GLIBCXX_FULLY_DYNAMIC_STRING, STL should now avoid
6f1b0c
  _S_empty_rep_storage (Paolo Carlini, #131030, IT#45103, PR libstdc++/16612)
6f1b0c
- document -Winline only works for languages that use RTL inliner (Java,
6f1b0c
  Ada, #141272, IT#28331)
6f1b0c
6f1b0c
* Tue Mar  8 2005 Jakub Jelinek  <jakub@redhat.com> 3.2.3-47.fc4
6f1b0c
- new compatibility package