Add armv7l support and fix build error of cross gcc.
[platform/upstream/gcc48.git] / packaging / gcc48-testresults.spec
index 832999b..e62b0b6 100644 (file)
@@ -1,25 +1,41 @@
 %define building_testsuite 1
 %define run_tests 1
-%define fast_build 1
+#
+# spec file for package gcc48
+#
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
+#
+
+# norootforbuild
+# icecream 0
+
 
-# Ada currently fails to build on a few platforms, enable it only
-# on those that work
-# Note that AdaCore only supports %ix86, x86_64 and ia64
-%ifarch %ix86 x86_64
-%define build_ada !0%{?building_libjava:1}%{?building_libffi:1}
-%else
 %define build_ada 0
-%endif
 
-%define quadmath_arch %ix86 x86_64 
+%define quadmath_arch %ix86 x86_64 ia64
+%define tsan_arch x86_64
+%define asan_arch x86_64 %ix86 ppc ppc64
+%define itm_arch x86_64 %ix86 %arm ppc ppc64
+%define atomic_arch x86_64 %ix86 %arm ppc ppc64 s390 s390x
 
 # We don't want to build java
-%define build_java 1
-%define build_libjava 0%{?building_libjava:1}%{?building_libffi:1}%{?building_testsuite:1}
+%define build_java 0
+%define build_libjava 0
 
 %define build_cp 1
-%define build_fortran 1
-%define build_objc 1
+%define build_fortran !0%{?building_libjava:1}%{?building_libffi:1}
+%define build_objc !0%{?building_libjava:1}%{?building_libffi:1}
 %define build_objcp !0%{?building_libjava:1}%{?building_libffi:1}
 %define build_with_mudflap 0
 
 %endif
 
 # For optional compilers only build C, C++ and Fortran
-##%if 0%{?build_optional_compiler:1}%{?build_optional_compiler_languages:1}
-%if 0%{!?building_libffi:1}
+%if 0%{?build_optional_compiler_languages:1}
 %define build_ada 0
 %define build_java 0
 %define build_libjava 0
-%define build_objc 1
-%define build_objcp 1
+%define build_objc 0
+%define build_objcp 0
 %endif
 
+# Shared library SONAME versions
+%define libgcc_s 1
+%define libgcj_sover %{nil}
+%define libgcj_bc_sover %{nil}
+%define libffi_sover %{nil}
+%define libmudflap_sover %{nil}
+%define libgomp_sover %{nil}
+%define libstdcxx_sover %{nil}
+%define libobjc_sover %{nil}
+%define libgfortran_sover %{nil}
+%define libquadmath_sover %{nil}
+%define libasan_sover %{nil}
+%define libtsan_sover %{nil}
+%define libatomic_sover %{nil}
+%define libitm_sover %{nil}
+
+# Shared library package suffix
+# This is used for the "non-standard" set of libraries, the standard
+# being defined by %product_libs_gcc_ver, the GCC version that should
+# provide un-suffixed shared library packages following the shared-library
+# policy.  Even suffixed variants should provide the shared-library policy
+# mandated names and ensure they conflict with each other.
+# Note that on SONAME changes of any library the %product_libs_gcc_ver
+# define needs to be either split or the newest GCC version still providing
+# the old SONAME needs to unconditionally produce an un-suffixed library
+# if %product_libs_gcc_ver is newer than it.  Similar the _oldest_ GCC
+# version first providing a new SONAME needs to unconditionally produce
+# an un-suffixed library if %product_libs_gcc_ver is lower that it.
+%if %{!?product_libs_gcc_ver:48}%{?product_libs_gcc_ver} != 48
+%define pne 1
+%endif
+%define libgcc_s_suffix %{?pne:-gcc48}
+# libgcj SONAME changes with every GCC version
+%define libgcj_suffix %nil
+%define libgcj_bc_suffix %{?pne:-gcc48}
+%define libffi_suffix %{?pne:-gcc48}
+%define libmudflap_suffix %{?pne:-gcc48}
+%define libgomp_suffix %{?pne:-gcc48}
+%define libstdcxx_suffix %{?pne:-gcc48}
+%define libobjc_suffix %{?pne:-gcc48}
+%define libgfortran_suffix %{?pne:-gcc48}
+%define libquadmath_suffix %{?pne:-gcc48}
+%define libasan_suffix %{?pne:-gcc48}
+%define libtsan_suffix %{?pne:-gcc48}
+%define libatomic_suffix %{?pne:-gcc48}
+%define libitm_suffix %{?pne:-gcc48}
+
+
+
 
 Name: gcc48-testresults
+BuildRequires: gcc-c++
 BuildRequires: bison
 BuildRequires: flex
-BuildRequires: gettext-tools
-BuildRequires: makeinfo
 BuildRequires: glibc-devel-32bit
 BuildRequires: mpc-devel
 BuildRequires: mpfr-devel
 BuildRequires: perl
-BuildRequires: texinfo
+BuildRequires: makeinfo
 BuildRequires: zlib-devel
-%ifarch %ix86 x86_64 %arm
-BuildRequires: cloog-devel
-BuildRequires: ppl-devel
+%ifarch %ix86 x86_64 ppc ppc64 s390 s390x ia64 %sparc hppa %arm
+BuildRequires: cloog-isl-devel
+BuildRequires: isl-devel
 %endif
 %if %{build_ada}
-%define hostsuffix -4.8
-BuildRequires: gcc48-ada
+%define hostsuffix -4.7
+BuildRequires: gcc47-ada
 %endif
 %if 0%{?building_libjava:1}%{?building_testsuite:1}
 BuildRequires: fastjar
-BuildRequires: unzip
 %endif
 %if 0%{?building_libffi:1}
 BuildRequires: pkg-config
 %endif
+%ifarch ia64
+BuildRequires: libunwind-devel
+%endif
 %if 0%{?run_tests:1}
 BuildRequires: dejagnu
 BuildRequires: expect
 BuildRequires: gdb
 %endif
 
-# Define version number of libgcc_s
-%define libgcc_s 1
-%define build_nof 0
-
 %define separate_bi32 0
 %define separate_bi64 0
-%ifarch x86_64 
+%ifarch ppc sparcv9
+# Beware, this does _not_ separate libgcj, as for that one multilibing
+# is inactive for the time being
+%define separate_bi64 1
+%endif
+%ifarch x86_64 s390x ppc64 sparc64
 %define separate_bi32 1
 %endif
 
@@ -96,7 +162,7 @@ BuildRequires: gdb
 %define separate_biarch_suffix -64bit
 %endif
 
-%ifarch x86_64
+%ifarch x86_64 ia64 s390x alpha ppc64 sparc64
 # 64-bit is primary build target
 %define build_primary_64bit 1
 %else
@@ -105,8 +171,7 @@ BuildRequires: gdb
 
 %define biarch_libjava 0
 
-# COMMON-BEGIN
-%define biarch_targets x86_64 
+%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
 
 URL:          http://gcc.gnu.org/
 Version: 4.8.1
@@ -115,49 +180,47 @@ Release:      1
 %define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
 %define snapshot_date %(echo %version | sed 's/[34]\.[0-9]\.[0-6]//' | sed 's/_/-/')
 %define binsuffix -4.8
-# COMMON-END
 
 %if !0%{?building_libjava:1}%{?building_libffi:1}%{?building_testsuite:1}
 Requires: binutils glibc-devel
 Requires: cpp48 = %{version}-%{release}
-%if 0%{!?build_optional_compiler:1}
-Requires: libgcc%{libgcc_s} >= %{version}-%{release}
-Requires: libgomp1 >= %{version}-%{release}
+Requires: libgcc_s%{libgcc_s} >= %{version}-%{release}
+Requires: libgomp%{libgomp_sover} >= %{version}-%{release}
 %if %{build_with_mudflap}
-Requires: libmudflap0 >= %{version}-%{release}
-Requires: libmudflapth0 >= %{version}-%{release}
+Requires: libmudflap%{libmudflap_sover} >= %{version}-%{release}
+Requires: libmudflapth%{libmudflap_sover} >= %{version}-%{release}
 %endif
-%else
-Requires: libgcc48 = %{version}-%{release}
-Requires: libgomp48 = %{version}-%{release}
+%ifarch %asan_arch
+Requires: libasan%{libasan_sover} >= %{version}-%{release}
+%endif
+%ifarch %tsan_arch
+Requires: libtsan%{libtsan_sover} >= %{version}-%{release}
+%endif
+%ifarch %atomic_arch
+Requires: libatomic%{libatomic_sover} >= %{version}-%{release}
 %endif
+%ifarch %itm_arch
+Requires: libitm%{libitm_sover} >= %{version}-%{release}
+%endif
+Suggests: gcc48-info gcc48-locale
 %endif
 
-# COMMON-BEGIN
 BuildRoot:     %{_tmppath}/%{name}-%{version}-build
-#Source:               gcc-%{gcc_version}%{snapshot_date}.tar.bz2
-Source:     gcc-%{version}.tar.bz2
-
+Source:                gcc-%{version}.tar.bz2
 Source1:       change_spec
-Source2:       libgcj48-rpmlintrc
 Source3:       gcc48-rpmlintrc
 Source4:       ecj.jar
 Source6:       baselibs.conf
-# Patches auto-generated by git-buildpackage:
-Patch0:     0001-dir-version.patch
-Patch1:     0002-textdomain.patch
-Patch2:     0003-rename-info-files.patch
-Patch3:     0004-ARM-linker.patch
+
 
 Summary:      Testsuite results
-License:       Public-Domain
-Group:        Development/Toolchain
+License:       SUSE-Public-Domain
+Group:        Development/Languages/C and C++
 
 %description 
 Results from running the gcc and target library testsuites.
 
 
-# COMMON-BEGIN
 
 # Define the canonical target and host architecture
 #   %gcc_target_arch  is supposed to be the full target triple
@@ -166,6 +229,12 @@ Results from running the gcc and target library testsuites.
 %if 0%{?gcc_target_arch:1}
 %define CONFIGURE_TARGET %{gcc_target_arch}
 %define TARGET_ARCH %(echo %{gcc_target_arch} | cut -d - -f 1 | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
+%if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "powerpc"
+%define CONFIGURE_TARGET powerpc64-tizen-linux
+%endif
+%if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "powerpc64"
+%define CONFIGURE_TARGET powerpc64-tizen-linux
+%endif
 %if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "i586"
 %define CONFIGURE_TARGET i586-tizen-linux
 %endif
@@ -175,11 +244,8 @@ Results from running the gcc and target library testsuites.
 %if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "armv7hl"
 %define CONFIGURE_TARGET armv7hl-tizen-linux-gnueabi
 %endif
-%if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "armv7el"
-%define CONFIGURE_TARGET armv7el-tizen-linux-gnueabi
-%endif
-%if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "armv5el"
-%define CONFIGURE_TARGET armv5el-tizen-linux-gnueabi
+%if 0%{?gcc_icecream:1} && %{TARGET_ARCH} == "armv5tel"
+%define CONFIGURE_TARGET armv5tel-tizen-linux-gnueabi
 %endif
 %else
 %define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
@@ -188,44 +254,46 @@ Results from running the gcc and target library testsuites.
 
 %define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
 
+%ifarch ppc
+%define GCCDIST powerpc64-tizen-linux
+%else
+%ifarch %sparc
+%define GCCDIST sparc64-tizen-linux
+%else
 %ifarch %arm
 %define GCCDIST %{HOST_ARCH}-tizen-linux-gnueabi
 %else
 %define GCCDIST %{HOST_ARCH}-tizen-linux
 %endif
+%endif
+%endif
 
 %define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
 %define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
 
-# COMMON-END
 
 # Versionspecific directories
 %define versmainlibdir %{libsubdir}
 %define versmainlibdirbi32 %{libsubdir}/32
 %define versmainlibdirbi64 %{libsubdir}/64
+%ifarch ppc
+%define versmainlibdirbi32 %{libsubdir}
+%define versmainlibdirbi64 %{libsubdir}/64
+%endif
 %if %{build_primary_64bit}
 %define versmainlibdirbi %{versmainlibdirbi32}
 %else
 %define versmainlibdirbi %{versmainlibdirbi64}
 %endif
 
-%if 0%{?build_optional_compiler:1}
-%define mainlibdir %{versmainlibdir}
-%define mainlibdirbi32 %{versmainlibdirbi32}
-%define mainlibdirbi64 %{versmainlibdirbi64}
-%define noflibdir %{versnoflibdir}
-%define mainlibdirbi %{versmainlibdirbi}
-%else
 %define mainlibdir %{_libdir}
 %define mainlibdirbi32 %{_prefix}/lib
 %define mainlibdirbi64 %{_prefix}/lib64
-%define noflibdir %{_prefix}/lib/nof
 %if %{build_primary_64bit}
 %define mainlibdirbi %{mainlibdirbi32}
 %else
 %define mainlibdirbi %{mainlibdirbi64}
 %endif
-%endif
 
 
 # Now define a few macros that make it easy to package libs and
@@ -233,88 +301,51 @@ Results from running the gcc and target library testsuites.
 # exact path the files are in.
 #   %mainlib  package X from all dirs that belong to the main package
 #   %biarchlib   package X from all dirs that belong to the -32/64bit package
-# by default, nof libs go where the 32bit libs go.
-%if %{build_nof}
-%define mainlib() %{mainlibdir}/%1\
-%{noflibdir}/%1\
-%{nil}
-%else
 %define mainlib() %{mainlibdir}/%1\
 %{nil}
-%endif
 %define biarchlib() %{nil}
 %if %{biarch}
 %if !%{separate_biarch}
-%if %{build_nof}
 %define mainlib() %{mainlibdir}/%1\
 %{mainlibdirbi}/%1\
-%{noflibdir}/%1\
 %{nil}
 %else
-%define mainlib() %{mainlibdir}/%1\
-%{mainlibdirbi}/%1\
-%{nil}
-%endif
-%else
-%if %{build_nof}
 %define biarchlib() %{mainlibdirbi}/%1\
-%{noflibdir}/%1\
 %{nil}
-%define mainlib() %{mainlibdir}/%1\
-%{nil}
-%else
-%define biarchlib() %{mainlibdirbi}/%1\
-%{nil}
-%endif
 %endif
 %endif
 
-%if %{build_nof}
 %define versmainlib() %{versmainlibdir}/%1\
-%{versnoflibdir}/%1\
 %{nil}
-%else
-%define versmainlib() %{versmainlibdir}/%1\
-%{nil}
-%endif
 %define versbiarchlib() %{nil}
 %if %{biarch}
 %if !%{separate_biarch}
-%if %{build_nof}
-%define versmainlib() %{versmainlibdir}/%1\
-%{versmainlibdirbi}/%1\
-%{versnoflibdir}/%1\
-%{nil}
-%else
 %define versmainlib() %{versmainlibdir}/%1\
 %{versmainlibdirbi}/%1\
 %{nil}
-%endif
 %else
-%if %{build_nof}
 %define versbiarchlib() %{versmainlibdirbi}/%1\
-%{versnoflibdir}/%1\
 %{nil}
-%define versmainlib() %{versmainlibdir}/%1\
-%{nil}
-%else
-%define versbiarchlib() %{versmainlibdirbi}/%1\
-%{nil}
-%endif
 %endif
 %endif
 
 
-# COMMON-BEGIN
 
 %prep
-#%setup -q -n gcc-%{gcc_version}%{snapshot_date}
 %setup -q -n gcc-%{version}
-# 0001-dir-version.patch
-%patch0 -p1
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
+
+
+# We are configuring ppc as ppc64 but with switched multilibs.  Adjust
+# the libstdc++ abi testsuite baseline files accordingly
+%ifarch ppc
+if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
+  mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
+  mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
+       libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
+  mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
+       libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
+fi
+%endif
 
 %build
 # Avoid rebuilding of generated files
@@ -345,6 +376,10 @@ RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions
 # default compiler settings now.
 RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
 %endif
+%ifarch s390 s390x
+RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
+RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
+%endif
 %if 0%{?gcc_target_arch:1} && 0%{!?gcc_icecream:1}
 # Kill all -march/tune/cpu because that screws building the target libs
 RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
@@ -407,7 +442,7 @@ export _POSIX2_VERSION=199209
 # if glibc supports SSP.  When cross compiling we would need
 # to install a cross glibc, which we don't, or make the whole
 # thing point to the native glibc, which is in /, hence the
-# --with-sysroot=/
+# --with-build-sysroot=/
 
 %if %{build_ada}
 # Using the host gnatmake like
@@ -428,26 +463,27 @@ export PATH="`pwd`/host-tools/bin:$PATH"
 #      --enable-threads=posix \
 #%endif
 #      --enable-shared \
+%if "%{TARGET_ARCH}" == "armv7l" || "%{TARGET_ARCH}" == "armv7hl"
+# temporary workaround for a miscompilation of hash functions in java code
+GCJ_EXTRA_FLAGS="-marm"
+%endif
 CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
-TCFLAGS="$RPM_OPT_FLAGS" GCJFLAGS="$RPM_OPT_FLAGS" \
+TCFLAGS="$RPM_OPT_FLAGS" GCJFLAGS="$RPM_OPT_FLAGS $GCJ_EXTRA_FLAGS" \
 ../configure \
        --prefix=%{_prefix} \
        --infodir=%{_infodir} \
        --mandir=%{_mandir} \
        --libdir=%{_libdir} \
        --libexecdir=%{_libdir} \
+    --disable-bootstrap \
        --enable-languages=$languages \
        $ENABLE_CHECKING \
        --with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
        --enable-ssp \
        --disable-libssp \
-       --disable-libitm \
-%if 0%{?fast_build}
-       --disable-bootstrap \
-%endif
        --disable-plugin \
        --with-bugurl="http://bugs.tizen.org/" \
-       --with-pkgversion="Tizen Linux" \
+       --with-pkgversion="Tizen" \
 %if !%{build_libjava}
         --disable-libgcj \
 %else
@@ -478,12 +514,14 @@ TCFLAGS="$RPM_OPT_FLAGS" GCJFLAGS="$RPM_OPT_FLAGS" \
 %if 0%{?canonical_target:1}
        --with-build-time-tools=/usr/%{canonical_target}-tizen-linux%{?canonical_target_abi:%canonical_target_abi}/bin \
 %endif
+%if 0%{?sysroot:1}
+       --with-sysroot=%sysroot \
+%endif
 %if 0%{?build_static:1}
        --disable-shared \
 %endif
 %if "%{TARGET_ARCH}" == "spu"
-       --with-sysroot=/usr/spu \
-       --with-gxx-include-dir=%{_prefix}/spu/include/c++/%{gcc_dir_version} \
+       --with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
        --with-newlib \
 %endif
        --disable-nls \
@@ -491,8 +529,12 @@ TCFLAGS="$RPM_OPT_FLAGS" GCJFLAGS="$RPM_OPT_FLAGS" \
 %else
        --program-suffix=%{binsuffix} \
        --enable-linux-futex \
+%ifarch ia64
+       --with-system-libunwind \
+%else
        --without-system-libunwind \
 %endif
+%endif
 %if "%{TARGET_ARCH}" == "armv5tel"
        --with-arch=armv5te \
        --with-float=soft \
@@ -500,15 +542,14 @@ TCFLAGS="$RPM_OPT_FLAGS" GCJFLAGS="$RPM_OPT_FLAGS" \
        --with-abi=aapcs-linux \
        --disable-sjlj-exceptions \
 %endif
-%if "%{TARGET_ARCH}" == "armv7el" 
+%if "%{TARGET_ARCH}" == "armv7l" 
        --with-arch=armv7-a \
        --with-tune=cortex-a9 \
-       --with-float=soft \
-       --with-abi=softfp \
-       --with-fpu=vfpv3 \
+    --with-float=soft \
+       --with-fpu=vfpv3-d16 \
        --disable-sjlj-exceptions \
 %endif
-%if "%{TARGET_ARCH}" == "armv7l" || "%{TARGET_ARCH}" == "armv7hl"
+%if  "%{TARGET_ARCH}" == "armv7hl"
        --with-arch=armv7-a \
        --with-tune=cortex-a9 \
        --with-float=hard \
@@ -516,6 +557,22 @@ TCFLAGS="$RPM_OPT_FLAGS" GCJFLAGS="$RPM_OPT_FLAGS" \
        --with-fpu=vfpv3-d16 \
        --disable-sjlj-exceptions \
 %endif
+%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64"
+%if "%{TARGET_ARCH}" == "powerpc"
+       --with-cpu=default32 \
+%endif
+       --with-cpu-64=power4 \
+       --enable-secureplt \
+       --with-long-double-128 \
+%endif
+%if "%{TARGET_ARCH}" == "sparc64"
+       --with-cpu=ultrasparc \
+       --with-long-double-128 \
+%endif
+%if "%{TARGET_ARCH}" == "sparc"
+       --with-cpu=v8 \
+       --with-long-double-128 \
+%endif
 %if "%{TARGET_ARCH}" == "i586"
        --with-arch-32=i586 \
        --with-tune=generic \
@@ -524,23 +581,28 @@ TCFLAGS="$RPM_OPT_FLAGS" GCJFLAGS="$RPM_OPT_FLAGS" \
        --with-arch-32=i586 \
        --with-tune=generic \
 %endif
+%if "%{TARGET_ARCH}" == "s390"
+        --with-tune=z196 --with-arch=z10 \
+       --with-long-double-128 \
+       --enable-decimal-float \
+%endif
+%if "%{TARGET_ARCH}" == "s390x"
+        --with-tune=z196 --with-arch=z10 \
+       --with-long-double-128 \
+       --enable-decimal-float \
+%endif
        --build=%{GCCDIST}
 
-# COMMON-END
 
 %if 0%{?building_libffi:1}
 make stage1-bubble $PARALLEL
 make all-target-libffi $PARALLEL
 %else
+STAGE1_FLAGS="-g"
 # Only run profiled bootstrap on archs where it works
-#%ifarch %ix86 x86_64 
-#make profiledbootstrap-lean STAGE1_CFLAGS="-O -g" BOOT_CFLAGS="$RPM_OPT_FLAGS" $PARALLEL
+#%ifarch %ix86 x86_64 ppc ppc64 ia64
+#make profiledbootstrap-lean STAGE1_CFLAGS="$STAGE1_FLAGS" BOOT_CFLAGS="$RPM_OPT_FLAGS" $PARALLEL
 #%else
-%ifarch %arm
-STAGE1_FLAGS="-O0"
-%else
-STAGE1_FLAGS="-O -g"
-%endif
 #make bootstrap-lean STAGE1_CFLAGS="$STAGE1_FLAGS" BOOT_CFLAGS="$RPM_OPT_FLAGS" $PARALLEL
 make STAGE1_CFLAGS="$STAGE1_FLAGS" BOOT_CFLAGS="$RPM_OPT_FLAGS" $PARALLEL
 #%endif
@@ -551,6 +613,8 @@ echo "Run testsuite"
 (make -C %{GCCDIST}/libstdc++-v3 check-abi || true)
 mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.log %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.log
 mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.sum %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.sum
+# asan needs a whole shadow address space
+ulimit -v unlimited || true
 make -k check $PARALLEL || true
 mkdir ../testresults
 ../contrib/test_summary | tee ../testresults/test_summary.txt