Update to 4.8.2.
[platform/upstream/gcc48.git] / packaging / libgcj48.spec
index 62b706c..2646bb8 100644 (file)
@@ -1,25 +1,41 @@
 %define building_libjava 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 %arm
+%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_objcp !0%{?building_libjava:1}%{?building_libffi: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
 
 %if %{build_objcp}
 %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: libgcj48
+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
 
@@ -95,7 +161,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
@@ -104,62 +170,49 @@ 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
+Version: 4.8.2
 Release:      1
-%define gcc_version %(echo %version | sed 's/_.*//')
-%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 gcc_dir_version 4.8
 %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
-
-# GCC-TESTSUITE-DELETE-BEGIN
-# LIBFFI-DELETE-BEGIN
+
+
 Summary:      Java Runtime Library for gcc
 License:      GPL-2.0-with-classpath-exception
 Group:        System/Libraries
-%define gcj_sover 13
-Provides: libgcj%{gcj_sover} = %{version}-%{release}
-Conflicts: libgcj%{gcj_sover} < %{version}-%{release}
-Provides: libgij%{gcj_sover} = %{version}-%{release}
-Conflicts: libgij%{gcj_sover} < %{version}-%{release}
-Provides: libgcj-tools%{gcj_sover} = %{version}-%{release}
-Conflicts: libgcj-tools%{gcj_sover} < %{version}-%{release}
 
 %description 
 This library is needed if you want to use the GNU Java compiler, gcj.
@@ -175,7 +228,6 @@ Source code for this package is in gcc.
 %package -n gcc48-java
 Summary:      The GNU Java Compiler
 License:        GPL-3.0+
-Group:        Development/Languages
 Requires: gcc48 = %{version}
 Requires: libgcj48-devel = %{version}-%{release}
 
@@ -183,24 +235,20 @@ Requires: libgcj48-devel = %{version}-%{release}
 The Java compiler from the GCC-tools-suite.
 
 
-%package -n libgcj_bc48
+%package -n libgcj_bc%{libgcj_bc_sover}%{libgcj_bc_suffix}
 Summary:      Fake library for BC-ABI compatibility.
 License:        GPL-2.0-with-classpath-exception
-Group:        Development/Libraries
-Provides: libgcj_bc1 = %{version}-%{release}
-Conflicts: libgcj_bc1 < %{version}-%{release}
 # libgcj_bc is special in that it just contains a symlink to
 # a proper libgcj version.  So require that library and add
 # provides for the shlib version as created at link time
-Requires: libgcj%{gcj_sover}
-%ifarch x86_64 
-Provides: libgcj_bc.so.1()(64bit)
+Requires: libgcj%{libgcj_sover} >= %{version}-%{release}
+%ifarch x86_64 ia64 ppc64 s390x sparc64 aarch64
+Provides: libgcj_bc.so.%{libgcj_bc_sover}()(64bit)
 %else
-Provides: libgcj_bc.so.1
+Provides: libgcj_bc.so.%{libgcj_bc_sover}
 %endif
 
-
-%description -n libgcj_bc48
+%description -n libgcj_bc%{libgcj_bc_sover}%{libgcj_bc_suffix}
 A fake library that is used at link time only. It ensures that
 binaries built with the BC-ABI link against a constant SONAME.
 This way, BC-ABI binaries continue to work if the SONAME underlying
@@ -210,7 +258,6 @@ libgcj.so changes.
 %package -n libgcj48-jar
 Summary:      Java runtime library (jar files).
 License:        GPL-2.0-with-classpath-exception
-Group:        Development/Libraries/Java
 
 %description -n libgcj48-jar
 These are the jar files that go along with the gcj front end to gcc.
@@ -219,15 +266,17 @@ These are the jar files that go along with the gcj front end to gcc.
 %package -n libgcj48-devel
 Summary:      Include Files and Libraries mandatory for Development.
 License:        GPL-2.0-with-classpath-exception
-Group:        Development/Libraries
 Requires: libstdc++48-devel = %{version}
-Requires: libgcj%{gcj_sover} >= %{version}-%{release}
-Requires: libgcj_bc1 >= %{version}-%{release}
+Requires: libgcj%{libgcj_sover} >= %{version}-%{release}
+Requires: libgcj_bc%{libgcj_bc_sover} >= %{version}-%{release}
 Requires: libgcj48-jar = %{version}-%{release}
 Requires: gtk2-devel
 Requires: libart_lgpl-devel
 Requires: glibc-devel
 Requires: zlib-devel
+%ifarch ia64
+Requires: libunwind-devel
+%endif
 
 %description -n libgcj48-devel
 This package contains all necessary include files and libraries needed
@@ -237,122 +286,78 @@ to develop applications that require these.
 %package -n gcc48-gij
 Summary:      Java Bytecode Interpreter for gcc
 License:      GPL-2.0-with-classpath-exception
-Group:        Development/Libraries
-Requires: libgcj%{gcj_sover} >= %{version}-%{release}
+Requires: libgcj%{libgcj_sover} >= %{version}-%{release}
 
 %description -n gcc48-gij
 This package contains the java bytecode interpreter gij and related tools.
 
-# LIBFFI-DELETE-END
-# PACKAGE-BEGIN
-# PACKAGE-BEGIN
-%package -n libffi48
+%package -n libffi%{libffi_sover}%{libffi_suffix}
 Summary:      Foreign Function Interface library
 License:        BSD-3-Clause
-Group:        Base/Libraries
-Provides: g-wrap:/usr/lib/libffi.so.4
-Provides: libffi4 = %{version}-%{release}
-Conflicts: libffi4 < %{version}-%{release}
 
-%description -n libffi48
+%description -n libffi%{libffi_sover}%{libffi_suffix}
 A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language.
 
-%post -n libffi48
+%post -n libffi%{libffi_sover}%{libffi_suffix}
 /sbin/ldconfig
 
-%postun -n libffi48
+%postun -n libffi%{libffi_sover}%{libffi_suffix}
 /sbin/ldconfig
-# PACKAGE-END
-# PACKAGE-BEGIN
-# PACKAGE-BEGIN
-%package -n libffi48-32bit
+%package -n libffi%{libffi_sover}%{libffi_suffix}-32bit
 Summary:      Foreign Function Interface library
 License:        BSD-3-Clause
-Group:        Base/Libraries
-Provides: g-wrap:/usr/lib/libffi.so.4
-Provides: libffi4-32bit = %{version}-%{release}
-Conflicts: libffi4-32bit < %{version}-%{release}
 
-%description -n libffi48-32bit
+%description -n libffi%{libffi_sover}%{libffi_suffix}-32bit
 A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language.
 
-%post -n libffi48-32bit
+%post -n libffi%{libffi_sover}%{libffi_suffix}-32bit
 /sbin/ldconfig
 
-%postun -n libffi48-32bit
+%postun -n libffi%{libffi_sover}%{libffi_suffix}-32bit
 /sbin/ldconfig
-# PACKAGE-END
-# PACKAGE-BEGIN
-# PACKAGE-BEGIN
-%package -n libffi48-64bit
+%package -n libffi%{libffi_sover}%{libffi_suffix}-64bit
 Summary:      Foreign Function Interface library
 License:        BSD-3-Clause
-Group:        Base/Libraries
-Provides: g-wrap:/usr/lib/libffi.so.4
-Provides: libffi4-64bit = %{version}-%{release}
-Conflicts: libffi4-64bit < %{version}-%{release}
 
-%description -n libffi48-64bit
+%description -n libffi%{libffi_sover}%{libffi_suffix}-64bit
 A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language.
 
-%post -n libffi48-64bit
+%post -n libffi%{libffi_sover}%{libffi_suffix}-64bit
 /sbin/ldconfig
 
-%postun -n libffi48-64bit
+%postun -n libffi%{libffi_sover}%{libffi_suffix}-64bit
 /sbin/ldconfig
-# PACKAGE-END
 
-# PACKAGE-BEGIN
-# PACKAGE-BEGIN
 %package -n libffi48-devel
 Summary:      Foreign Function Interface library development files
 License:        BSD 3-Clause
-Group:        Development/Toolchain
-Requires: libffi4 >= %{version}-%{release}
-Provides: libffi-devel = %{version}-%{release}
-Conflicts: libffi-devel < %{version}-%{release}
+Requires: libffi%{libffi_sover} >= %{version}-%{release}
 
 %description -n libffi48-devel
 A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language.
-# PACKAGE-END
-# PACKAGE-BEGIN
-# PACKAGE-BEGIN
 %package -n libffi48-devel-32bit
 Summary:      Foreign Function Interface library development files
 License:        BSD 3-Clause
-Group:        Development/Toolchain
-Requires: libffi4-32bit >= %{version}-%{release}
-Provides: libffi-devel-32bit = %{version}-%{release}
-Conflicts: libffi-devel-32bit < %{version}-%{release}
+Requires: libffi%{libffi_sover}-32bit >= %{version}-%{release}
 
 %description -n libffi48-devel-32bit
 A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language.
-# PACKAGE-END
-# PACKAGE-BEGIN
-# PACKAGE-BEGIN
 %package -n libffi48-devel-64bit
 Summary:      Foreign Function Interface library development files
 License:        BSD 3-Clause
-Group:        Development/Toolchain
-Requires: libffi4-64bit >= %{version}-%{release}
-Provides: libffi-devel-64bit = %{version}-%{release}
-Conflicts: libffi-devel-64bit < %{version}-%{release}
+Requires: libffi%{libffi_sover}-64bit >= %{version}-%{release}
 
 %description -n libffi48-devel-64bit
 A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language.
-# PACKAGE-END
 
 %package -n gcc48-testresults
-# GCC-TESTSUITE-DELETE-END
 Summary:      Testsuite results
-License:       Public-Domain
-Group:        Development/Toolchain
+License:       SUSE-Public-Domain
 
 %description -n gcc48-testresults
 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
@@ -361,6 +366,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
@@ -370,11 +381,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/;")
@@ -383,44 +391,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
@@ -428,88 +438,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
@@ -540,6 +513,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'`
@@ -602,7 +579,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
@@ -623,26 +600,30 @@ 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_fortran}
+       --disable-libquadmath \
+%endif
 %if !%{build_libjava}
         --disable-libgcj \
 %else
@@ -665,20 +646,21 @@ TCFLAGS="$RPM_OPT_FLAGS" GCJFLAGS="$RPM_OPT_FLAGS" \
        --enable-linker-build-id \
 %if 0%{?gcc_target_arch:1}
 %if 0%{?gcc_icecream:1}
-       --with-build-sysroot=/ \
-       --with-sysroot=%{_prefix}/%{gcc_target_arch}%{?canonical_target_abi:%canonical_target_abi} \
-       --with-gxx-include-dir=%{_prefix}/%{gcc_target_arch}%{?canonical_target_abi:%canonical_target_abi}/usr/include/c++/%{gcc_dir_version} \
+       --with-sysroot=/ \
+       --with-gxx-include-dir=%{_prefix}/%{gcc_target_arch}%{?canonical_target_abi:%canonical_target_abi}/include/c++/%{gcc_dir_version} \
        --enable-linux-futex \
 %endif
 %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 \
@@ -686,8 +668,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 \
@@ -695,15 +681,15 @@ 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-tune=cortex-a8 \
+       --with-float=softfp \
        --with-fpu=vfpv3 \
+       --with-mode=thumb \
        --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 \
@@ -711,6 +697,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 \
@@ -719,23 +721,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
@@ -746,6 +753,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
@@ -755,7 +764,6 @@ mkdir ../testresults
 %install
 export NO_BRP_CHECK_BYTECODE_VERSION=true
 cd obj-%{GCCDIST}
-# GCC-TESTSUITE-DELETE-BEGIN
 # Work around tail/head -1 changes
 export _POSIX2_VERSION=199209
 export LIBRARY_PATH=$RPM_BUILD_ROOT%{libsubdir}:$RPM_BUILD_ROOT%{mainlibdirbi}
@@ -800,11 +808,13 @@ rm -f $RPM_BUILD_ROOT%{libsubdir}/include/ffitarget.h
 rm -f $RPM_BUILD_ROOT%{_mandir}/man3/ffi%{binsuffix}.3*
 rm -f $RPM_BUILD_ROOT%{_mandir}/man3/ffi_call%{binsuffix}.3*
 rm -f $RPM_BUILD_ROOT%{_mandir}/man3/ffi_prep_cif%{binsuffix}.3*
+rm -f $RPM_BUILD_ROOT%{_mandir}/man3/ffi_prep_cif_var%{binsuffix}.3*
 %endif
 
 # Remove some useless .la files
 for lib in libobjc libgfortran libgfortranbegin libquadmath libcaf_single \
-    libmudflap libmudflapth libgomp libstdc++ libsupc++ libgcj-tools libgij; do
+    libmudflap libmudflapth libgomp libstdc++ libsupc++ libgcj-tools libgij \
+    libasan libatomic libitm libtsan; do
   rm -f $RPM_BUILD_ROOT%{versmainlibdir}/$lib.la
 %if %{biarch}
   rm -f $RPM_BUILD_ROOT%{versmainlibdirbi}/$lib.la
@@ -820,9 +830,7 @@ mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib64
 %endif
 %endif
 
-# LIBFFI-DELETE-BEGIN
 
-%if 0%{!?build_optional_compiler:1}
 # move shared libs from versionspecific dir to main libdir
 for libname in \
 %if 0%{?building_libjava:1}
@@ -841,6 +849,18 @@ for libname in \
   libstdc++ \
 %endif
   libgomp \
+%ifarch %atomic_arch
+  libatomic \
+%endif
+%ifarch %itm_arch
+  libitm \
+%endif
+%ifarch %asan_arch
+  libasan \
+%endif
+%ifarch %tsan_arch
+  libtsan \
+%endif
 %if %{build_with_mudflap}
   libmudflap libmudflapth \
 %endif
@@ -861,6 +881,12 @@ for libname in \
   fi
 %endif
 done
+# FIXME, tsan is not multilib
+%ifarch %tsan_arch
+%if %{biarch}
+rm -f $RPM_BUILD_ROOT%{versmainlibdirbi}/libtsan.so
+%endif
+%endif
 %if %{build_cp}
 %if !0%{?building_libjava:1}
 # And we want to move the shlib gdb pretty printers to a more sane
@@ -884,17 +910,15 @@ sed -i -e '/^libdir/s/\/gcc\/%{GCCDIST}\/%{gcc_dir_version}//g' $RPM_BUILD_ROOT%
 for lib in `find $RPM_BUILD_ROOT%{versmainlibdir} -maxdepth 1 -name libgcj_bc.so.*`; do
   rm $lib
 done
-ln -s libgcj.so.%{gcj_sover} $RPM_BUILD_ROOT%{mainlibdir}/libgcj_bc.so.1
+ln -s libgcj.so.%{libgcj_sover} $RPM_BUILD_ROOT%{mainlibdir}/libgcj_bc.so.%{libgcj_bc_sover}
 %if %{biarch_libjava}
 for lib in `find $RPM_BUILD_ROOT%{versmainlibdirbi} -maxdepth 1 -name libgcj_bc.so.*`; do
   rm $lib
 done
-ln -s libgcj.so.%{gcj_sover} $RPM_BUILD_ROOT%{mainlibdirbi}/libgcj_bc.so.1
-%endif
+ln -s libgcj.so.%{libgcj_sover} $RPM_BUILD_ROOT%{mainlibdirbi}/libgcj_bc.so.%{libgcj_bc_sover}
 %endif
 %endif
 
-# LIBFFI-DELETE-END
 
 %if %{build_ada}
 mv $RPM_BUILD_ROOT%{libsubdir}/adalib/lib*-*.so $RPM_BUILD_ROOT%{_libdir}
@@ -931,14 +955,11 @@ for l in `find $RPM_BUILD_ROOT -name '*.la'`; do
   mv $l.new $l
 done
 
-# GCC-TESTSUITE-DELETE-END
 %if 0%{?run_tests:1} 
 cp `find . -name "*.sum"` ../testresults/
 cp `find . -name "*.log"  \! -name "config.log" | grep -v 'acats.\?/tests' ` ../testresults/
 chmod 644 ../testresults/*
 %endif
-# GCC-TESTSUITE-DELETE-BEGIN
-# LIBFFI-DELETE-BEGIN
 %if %{build_cp}
 # Find C++ and Java headers
 find $RPM_BUILD_ROOT%{_prefix}/include/c++ \
@@ -946,7 +967,6 @@ find $RPM_BUILD_ROOT%{_prefix}/include/c++ \
   -o \( -type d -printf "%%%%dir " , \
         -printf "%{_prefix}/include/c++/%%P\n" \) > ../c++-headers
 %endif
-# LIBFFI-DELETE-END
 # Remove files that we do not need to clean up filelist
 rm -f $RPM_BUILD_ROOT%{_prefix}/bin/%{GCCDIST}-*
 rm -rf $RPM_BUILD_ROOT%{libsubdir}/install-tools
@@ -982,6 +1002,9 @@ crt32_list=$RPM_BUILD_ROOT%{versmainlibdirbi32}/crt*.o
 crt64_list=$RPM_BUILD_ROOT%{versmainlibdirbi64}/crt*.o
 %endif
 %endif
+for o in $crt_list $crt32_list $crt64_list; do
+  objcopy -R ".comment.SUSE.OPTs" $o
+done
 %endif
 
 %if 0%{?building_libjava:1}
@@ -1035,9 +1058,6 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man7/fsf-funding.7
 rm -f $RPM_BUILD_ROOT%{_mandir}/man7/gfdl.7
 rm -f $RPM_BUILD_ROOT%{_mandir}/man7/gpl.7
 rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
-%if %{build_nof}
-rm -f $RPM_BUILD_ROOT%{_prefix}/lib/nof/libiberty.a
-%endif
 %if %{biarch}
 %if %{build_primary_64bit}
 rm -f $RPM_BUILD_ROOT%{_prefix}/lib/libiberty.a
@@ -1048,7 +1068,6 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/lib64/libiberty.a
 rm -f $RPM_BUILD_ROOT%{libsubdir}/liblto_plugin.a
 rm -f $RPM_BUILD_ROOT%{libsubdir}/liblto_plugin.la
 
-# LIBFFI-DELETE-BEGIN
 %if 0%{?building_libjava:1}
 # For building libjava only we need to delete other info docs
 rm $RPM_BUILD_ROOT%{_infodir}/cp-tools.info*
@@ -1061,6 +1080,9 @@ cp $RPM_SOURCE_DIR/ecj.jar $RPM_BUILD_ROOT%{libsubdir}
 # For regular build, some info files do not get renamed properly.
 # Do so here.
 mv $RPM_BUILD_ROOT%{_infodir}/libgomp.info $RPM_BUILD_ROOT%{_infodir}/libgomp%{binsuffix}.info
+%ifarch %itm_arch
+mv $RPM_BUILD_ROOT%{_infodir}/libitm.info $RPM_BUILD_ROOT%{_infodir}/libitm%{binsuffix}.info
+%endif
 %if %{build_fortran} 
 %ifarch %quadmath_arch
 mv $RPM_BUILD_ROOT%{_infodir}/libquadmath.info $RPM_BUILD_ROOT%{_infodir}/libquadmath%{binsuffix}.info
@@ -1106,11 +1128,11 @@ mv $RPM_BUILD_ROOT%{_infodir}/gnat_ugn.info $RPM_BUILD_ROOT%{_infodir}/gnat_ugn%
 %if %{build_libjava}
 %files 
 %defattr(-,root,root)
-%dir %{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}
+%dir %{_libdir}/gcj-%{gcc_dir_version}-%{libgcj_sover}
 %dir %{_libdir}/gcc
 %dir %{_libdir}/gcc/%{GCCDIST}
 %dir %{libsubdir}
-%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/classmap.db
+%{_libdir}/gcj-%{gcc_dir_version}-%{libgcj_sover}/classmap.db
 # We usually do not multilib libjava
 %if %{biarch_libjava}
 %versbiarchlib libgcj.la
@@ -1123,17 +1145,17 @@ mv $RPM_BUILD_ROOT%{_infodir}/gnat_ugn.info $RPM_BUILD_ROOT%{_infodir}/gnat_ugn%
 %mainlib libgij.so.*
 %mainlib libgcj-tools.so.*
 %endif
-%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjvm.la
-%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjvm.so
-%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjavamath.la
-%{_libdir}/gcj-%{gcc_dir_version}-%{gcj_sover}/libjavamath.so
+%{_libdir}/gcj-%{gcc_dir_version}-%{libgcj_sover}/libjvm.la
+%{_libdir}/gcj-%{gcc_dir_version}-%{libgcj_sover}/libjvm.so
+%{_libdir}/gcj-%{gcc_dir_version}-%{libgcj_sover}/libjavamath.la
+%{_libdir}/gcj-%{gcc_dir_version}-%{libgcj_sover}/libjavamath.so
 
-%files -n libgcj_bc48
+%files -n libgcj_bc%{libgcj_bc_sover}%{libgcj_bc_suffix}
 %defattr(-,root,root)
 %if %{biarch_libjava}
-%biarchlib libgcj_bc.so.*
+%biarchlib libgcj_bc.so.%{libgcj_bc_sover}*
 %else
-%mainlib libgcj_bc.so.*
+%mainlib libgcj_bc.so.%{libgcj_bc_sover}*
 %endif
 
 %files -n libgcj48-jar
@@ -1204,20 +1226,24 @@ mv $RPM_BUILD_ROOT%{_infodir}/gnat_ugn.info $RPM_BUILD_ROOT%{_infodir}/gnat_ugn%
 %doc %{_mandir}/man1/gtnameserv%{binsuffix}.1.gz
 %endif
 %endif
-# LIBFFI-DELETE-END
 
 %if %{build_java}
 %if 0%{?building_libffi:1}
-%files -n libffi48
+%files -n libffi%{libffi_sover}%{libffi_suffix}
 %defattr(-,root,root)
-%mainlib libffi.so.*
+%mainlib libffi.so.%{libffi_sover}*
 
 %if %{separate_biarch}
-%files -n libffi48%{separate_biarch_suffix}
+%files -n libffi%{libffi_sover}%{libffi_suffix}%{separate_biarch_suffix}
 %defattr(-,root,root)
-%biarchlib libffi.so.*
+%biarchlib libffi.so.%{libffi_sover}*
 %endif
 
+%post -n libffi48-devel
+%install_info --info-dir=%{_infodir} %{_infodir}/libffi%{binsuffix}.info.gz
+%postun -n libffi48-devel
+%install_info_delete --info-dir=%{_infodir} %{_infodir}/libffi%{binsuffix}.info.gz
+
 %files -n libffi48-devel
 %defattr(-,root,root)
 %{_prefix}/include/ffi.h
@@ -1225,9 +1251,11 @@ mv $RPM_BUILD_ROOT%{_infodir}/gnat_ugn.info $RPM_BUILD_ROOT%{_infodir}/gnat_ugn%
 %mainlib libffi.so
 %mainlib libffi.a
 %{_libdir}/pkgconfig/libffi.pc
+%doc %{_infodir}/libffi%{binsuffix}.info.gz
 %doc %{_mandir}/man3/ffi%{binsuffix}.3.gz
 %doc %{_mandir}/man3/ffi_call%{binsuffix}.3.gz
 %doc %{_mandir}/man3/ffi_prep_cif%{binsuffix}.3.gz
+%doc %{_mandir}/man3/ffi_prep_cif_var%{binsuffix}.3.gz
 
 %if %{separate_biarch}
 %files -n libffi48-devel%{separate_biarch_suffix}
@@ -1237,7 +1265,6 @@ mv $RPM_BUILD_ROOT%{_infodir}/gnat_ugn.info $RPM_BUILD_ROOT%{_infodir}/gnat_ugn%
 %endif
 %endif
 %endif
-# GCC-TESTSUITE-DELETE-END
 
 %if 0%{?run_tests:1}
 %files -n gcc48-testresults