[meego-commits] 5764: Changes to Trunk/gcc

Anas Nashif nashif at linux.intel.com
Thu Jul 15 13:58:45 UTC 2010


Hi,
I have made the following changes to gcc in project Trunk. Please review and accept ASAP.

Thank You,
Anas Nashif

[This message was auto-generated]

---

Request #5764:

  submit:   Trunk:Testing/gcc(r8) -> Trunk/gcc


Message:
    Move to Trunk

State:   new          2010-07-15T01:52:00 nashif
Comment: None



changes files:
--------------
--- gcc.changes
+++ gcc.changes
@@ -0,0 +1,26 @@
+* Tue Jul 08 2010 Austin Zhang <austin.zhang at intel.com> - 4.5.0
+- Applied 4.5.0 mainline branch patch for fixing PR#43572(PR#43904)
+- Added missing symbolic link
+
+* Tue Jun 29 2010 Austin Zhang <austin.zhang at intel.com> - 4.5.0
+- Fixed packing issue of symbolic link of libgcc_s.so
+- Fixed gcc45-use-atom arch string
+
+* Mon Jun 28 2010 Jan-Simon Möller <jsmoeller@łinuxfoundation.org> - 4.5.0
+- Added aaa_README.PACKAGER
+- Added precheckin.sh
+- Added cross-* conditionals to main gcc.spec
+- Added cross-* files
+- Added gcc44-ARM-boehm-gc-stack-qemu.patch (make qemu-arm happy)
+
+* Mon May 24 2010 Austin Zhang <austin.zhang at intel.com> - 4.5.0
+- Added rpmlintrc to suppress wanring/error.
+- Added multilib support explicitly
+
+* Mon Apr 19 2010 Austin Zhang <austin.zhang at intel.com> - 4.5.0
+- Gcc-4.5.0, the first official version with atom support inside
+- Added MPC support
+- Enable LTO
+- Remove protoize feature
+- Removed obsoleted stuffs
+

old:
----
  gcc-4.4.2-20091027.tar.bz2
  gcc-rpmlintrc
  gcc44-cloog-dl.patch
  gcc44-pr38757.patch
  gcc44-pr41762.patch
  gcc44-rh330771.patch
  gcc44-unwind-debug-hook.patch
  gcc44-use-atom.patch

new:
----
  aaa_README.PACKAGER
  baselibs.conf
  cross-armv5tel-gcc-accel.spec
  cross-armv5tel-gcc.spec
  cross-armv7l-gcc-accel.spec
  cross-armv7l-gcc.spec
  gcc-4.5.0-rpmlintrc
  gcc-4.5.0.tar.bz2
  gcc44-ARM-boehm-gc-stack-qemu.patch
  gcc45-pr43572.patch
  gcc45-use-atom.patch
  precheckin.sh

spec files:
-----------

++++++ new spec file:
--- cross-armv5tel-gcc-accel.spec
+++ cross-armv5tel-gcc-accel.spec
+# Combined gcc / cross-armv*-gcc(-accel) specfile
+Name: cross-armv5tel-gcc-accel
+# Keep Name on top !
+
+# crossbuild / accelerator section
+# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
+%define crossbuild 0
+%define accelerator_crossbuild 0
+%if "%{name}" != "gcc"
+# this is the ix86 -> arm cross compiler (cross-armv*-gcc)
+#
+# cross arch retrieval
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc/\\1/")
+# We set requires/provides by hand and disable post-build-checks.
+# Captain Trunk: Sledge, you cannot disarm that nuclear bomb!
+# Sledge Hammer: Trust me, I know what I'm doing. 
+AutoReqProv: 0
+AutoReq: false
+BuildRequires: -rpmlint-Moblin -rpmlint-mini -post-build-checks
+# cross platform
+%define cross_gcc_target_platform %{crossarch}-meego-linux-gnueabi
+# gcc_target_platform holds the host (executing the compiler)
+# cross_gcc_target_platform holds the target (for which the compiler is producing binaries)
+# prefix for cross compiler
+%define _prefix /opt/cross
+# strip of 'foreign arch' symbols fails
+%define __strip /bin/true
+# sysroot for cross-compiler
+%define crosssysroot %{_prefix}/%{cross_gcc_target_platform}/sys-root
+# flag
+%define crossbuild 1
+# macros in buildrequires is hard to expand for the scheduler (e.g. crossarch) which would make this easier.
+#BuildRequires: cross-%{crossarch}-glibc cross-%{crossarch}-glibc-devel cross-%{crossarch}-glibc-headers
+#BuildRequires: cross-%{crossarch}-kernel-headers cross-%{crossarch}-binutils
+# Fixme: find way to make this without listing every package
+%if "%{name}" == "cross-armv5tel-gcc"
+BuildRequires: cross-armv5tel-glibc cross-armv5tel-glibc-devel cross-armv5tel-glibc-headers
+BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
+%endif
+%if "%{name}" == "cross-armv7l-gcc"
+BuildRequires: cross-armv7l-glibc cross-armv7l-glibc-devel cross-armv7l-glibc-headers
+BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
+%endif
+# Fixme: see above
+%if "%{name}" == "cross-armv5tel-gcc-accel"
+BuildRequires: cross-armv5tel-glibc cross-armv5tel-glibc-devel cross-armv5tel-glibc-headers
+BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
+%endif
+%if "%{name}" == "cross-armv7l-gcc-accel"
+BuildRequires: cross-armv7l-glibc cross-armv7l-glibc-devel cross-armv7l-glibc-headers
+BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
+%endif
+# single target atm.
+ExclusiveArch: %ix86
+#
+# special handling for MeeGo ARM build acceleration
+# cross-armv*-gcc-accel
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+# cross architecture
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+# cross target platform
+%define cross_gcc_target_platform %{crossarch}-meego-linux-gnueabi
+# prefix - as it's going to "replace" the original compiler ...
+%define _prefix /usr
+# cross-build sets sysroot as default , we need to override this a bit
+%define crosssysroot /
+# where to find the libs during the build
+%define crossbuildsysroot /opt/cross/%{cross_gcc_target_platform}/sys-root
+# flags
+%define crossbuild 1
+%define accelerator_crossbuild 1
+# where to find the libs at runtime
+%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define _build_name_fmt    %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
+%endif
+# end special accel
+%endif
+# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
+# end crossbuild / accelerator section
+
+%global gcc_version 4.5.0
+%global gcc_release 1
+%global _unpackaged_files_terminate_build 0
+%global include_gappletviewer 0
+%global build_ada 0
+%global build_java 0
+%ifarch %{arm}
+%global build_cloog 0
+%else
+%if %{crossbuild}
+%global build_cloog 0
+%else
+%global build_cloog 1
+%endif
+%endif
+%global build_libstdcxx_docs 0
+%global bootstrap_java %{?_with_java_bootstrap:%{build_java}}%{!?_with_java_bootstrap:0}
+%global build_java_tar %{?_with_java_tar:%{build_java}}%{!?_with_java_tar:0}
+%global multilib_64_archs x86_64
+%ifarch x86_64
+%global multilib_32_arch i686
+%endif
+%global build_64bit_multilib 0
+
+Summary: Various compilers (C, C++, Objective-C, Java, ...)
+Version: %{gcc_version}
+Release: %{gcc_release}
+License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
+Group: Development/Languages
+URL: http://gcc.gnu.org
+Source0: gcc-%{version}.tar.bz2
+Source1: libgcc_post_upgrade.c
+Source2: README.libgcjwebplugin.so
+%global fastjar_ver 0.97
+Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz
+Source100: gcc-4.5.0-rpmlintrc
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: binutils >= 2.19.51.0.14
+BuildRequires: glibc-static
+BuildRequires: zlib-devel, gettext,  bison, flex, texinfo
+BuildRequires: mpc-devel
+BuildRequires: glibc-devel >= 2.4.90-13
+BuildRequires: elfutils-devel >= 0.72
+
+%if %{build_java}
+BuildRequires: /usr/share/java/eclipse-ecj.jar, zip, unzip
+%if %{bootstrap_java}
+Source10: libjava-classes-%{version}-%{release}.tar.bz2
+%else
+BuildRequires: gcc-java, libgcj
+%endif
+%endif
+
+%if %{build_ada}
+# Ada requires Ada to build
+BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1
+%endif
+
+%if %{build_cloog}
+BuildRequires: ppl >= 0.10, ppl-devel >= 0.10, cloog-ppl >= 0.15, cloog-ppl-devel >= 0.15
+%endif
+
+%if %{build_libstdcxx_docs}
+BuildRequires: doxygen
+BuildRequires: graphviz
+%endif
+
+Requires: cpp = %{version}-%{release}
+Requires: libgcc >= %{version}-%{release}
+Requires: libgomp = %{version}-%{release}
+Requires: glibc-devel
+
+%if !%{build_ada}
+Obsoletes: gcc-gnat < %{version}-%{release}
+Obsoletes: libgnat < %{version}-%{release}
+%endif
+
+%if %{build_cloog}
+Requires: cloog-ppl >= 0.15
+%endif
+
+%if %{build_64bit_multilib}
+Requires: glibc64bit-helper
+%endif
+
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: gcc < %{version}-%{release}
+Obsoletes: gcc43
+AutoReq: true
+
+Patch0: gcc44-hack.patch
+Patch1: gcc44-build-id.patch
+Patch2: gcc44-c++-builtin-redecl.patch
+Patch4: gcc44-java-nomulti.patch
+Patch9: gcc44-pr33763.patch
+Patch11: gcc44-rh341221.patch
+Patch12: gcc44-java-debug-iface-type.patch
+Patch13: gcc44-i386-libgomp.patch
+Patch16: gcc44-libgomp-omp_h-multilib.patch
+Patch20: gcc44-libtool-no-rpath.patch
+Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
+
+Patch40: gcc45-use-atom.patch
+Patch41: libgcc_post_upgrade.c.arm.patch
+
+#Patch42: var-tracking1.patch
+#Patch43: var-tracking2.patch
+#Patch44: var-tracking3.patch
+
+#Patch45: gcc44-max-vartrack-size.patch
+#Patch46: gcc44-max-vartrack-size-2.patch
+
+Patch1000: fastjar-0.97-segfault.patch
+Patch9999: gcc44-ARM-boehm-gc-stack-qemu.patch
+
+#We need -gnueabi indicator for ARM
+%ifnarch %{arm}
+%global _gnu %{nil}
+%endif
+%global gcc_target_platform %{_target_platform}
+
+%description
+The gcc package contains the GNU Compiler Collection version 4.5.0.
+You'll need this package in order to compile C code.
+
+%package -n libgcc
+Summary: GCC version 4.5.0 shared support library
+Group: System Environment/Libraries
+Obsoletes: libgcc < %{version}-%{release}
+Obsoletes: libgcc43
+Autoreq: false
+
+%description -n libgcc
+This package contains GCC shared support library which is needed
+e.g. for exception handling support.
+
+%package c++
+Summary: C++ support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libstdc++ = %{version}-%{release}
+Requires: libstdc++-devel = %{version}-%{release}
+Obsoletes: gcc-c++ < %{version}-%{release}
+Obsoletes: gcc43-c++
+Autoreq: true
+
+%description c++
+This package adds C++ support to the GNU Compiler Collection.
+It includes support for most of the current C++ specification,
+including templates and exception handling.
+
+%package -n libstdc++
+Summary: GNU Standard C++ Library
+Group: System Environment/Libraries
+Obsoletes: libstdc++ < %{version}-%{release}
+Obsoletes: libstdc++43
+Obsoletes: libstdc++6 < %{version}-%{release}
+Autoreq: true
+Requires: glibc 
+
+%description -n libstdc++
+The libstdc++ package contains a rewritten standard compliant GCC Standard
+C++ Library.
+
+%package -n libstdc++-devel
+Summary: Header files and libraries for C++ development
+Group: Development/Libraries
+Requires: libstdc++ = %{version}-%{release}
+Obsoletes: libstdc++-devel < %{version}-%{release}
+Obsoletes: libstdc++43-devel
+Autoreq: true
+
+%description -n libstdc++-devel
+This is the GNU implementation of the standard C++ libraries.  This
+package includes the header files and libraries needed for C++
+development. This includes rewritten implementation of STL.
+
+%package -n libstdc++-docs
+Summary: Documentation for the GNU standard C++ library
+Group: Development/Libraries
+Obsoletes: libstdc++-docs < %{version}-%{release}
+Obsoletes: libstdc++43-doc
+Autoreq: true
+
+%description -n libstdc++-docs
+Manual, doxygen generated API information and Frequently Asked Questions
+for the GNU standard C++ library.
+
+%package objc
+Summary: Objective-C support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libobjc = %{version}-%{release}
+Obsoletes: gcc-objc < %{version}-%{release}
+Obsoletes: gcc43-objc
+Autoreq: true
+
+%description objc
+gcc-objc provides Objective-C support for the GCC.
+Mainly used on systems running NeXTSTEP, Objective-C is an
+object-oriented derivative of the C language.
+
+%package objc++
+Summary: Objective-C++ support for GCC
+Group: Development/Languages
+Requires: gcc-c++ = %{version}-%{release}, gcc-objc = %{version}-%{release}
+Obsoletes: gcc-objc++ < %{version}-%{release}
+Obsoletes: gcc43-obj-c++ gcc43-objc++
+Autoreq: true
+
+%description objc++
+gcc-objc++ package provides Objective-C++ support for the GCC.
+
+%package -n libobjc
+Summary: Objective-C runtime
+Group: System Environment/Libraries
+Obsoletes: libobjc < %{version}-%{release}
+Obsoletes: libobjc43
+Autoreq: true
+
+%description -n libobjc
+This package contains Objective-C shared library which is needed to run
+Objective-C dynamically linked programs.
+
+%package gfortran
+Summary: Fortran support
+Group: Development/Languages
+BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1
+Requires: gcc = %{version}-%{release}
+Requires: libgfortran = %{version}-%{release}
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: gcc-fortran < %{version}-%{release}
+Obsoletes: gcc43-fortran
+Autoreq: true
+Provides: gcc-fortran
+
+%description gfortran
+The gcc-gfortran package provides support for compiling Fortran
+programs with the GNU Compiler Collection.
+
+%package -n libgfortran
+Summary: Fortran runtime
+Group: System Environment/Libraries
+Obsoletes: libgfortran < %{version}-%{release}
+Obsoletes: libgfortran43
+Autoreq: true
+
+%description -n libgfortran
+This package contains Fortran shared library which is needed to run
+Fortran dynamically linked programs.
+
+%package -n libgomp
+Summary: GCC OpenMP v3.0 shared support library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: libgomp < %{version}-%{release}
+Obsoletes: libgomp43
+
+%description -n libgomp
+This package contains GCC shared support library which is needed
+for OpenMP v3.0 support.
+
+%package -n libmudflap
+Summary: GCC mudflap shared support library
+Group: System Environment/Libraries
+
+%description -n libmudflap
+This package contains GCC shared support library which is needed
+for mudflap support.
+
+%package -n libmudflap-devel
+Summary: GCC mudflap support
+Group: Development/Libraries
+Requires: libmudflap = %{version}-%{release}
+Requires: gcc = %{version}-%{release}
+
+%description -n libmudflap-devel
+This package contains headers and static libraries for building
+mudflap-instrumented programs.
+
+To instrument a non-threaded program, add -fmudflap
+option to GCC and when linking add -lmudflap, for threaded programs
+also add -fmudflapth and -lmudflapth.
+
+%package java
+Summary: Java support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libgcj = %{version}-%{release}
+Requires: libgcj-devel = %{version}-%{release}
+Requires: /usr/share/java/eclipse-ecj.jar
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: gcc-java < %{version}-%{release}
+Obsoletes: gcc43-java
+Autoreq: true
+
+%description java
+This package adds support for compiling Java(tm) programs and
+bytecode into native code.
+
+%package -n libgcj
+Summary: Java runtime library for gcc
+Group: System Environment/Libraries
+%if %{build_java}
+BuildRequires: gtk2-devel >= 2.4.0
+BuildRequires: glib2-devel >= 2.4.0
+BuildRequires: xulrunner-devel
+BuildRequires: libart_lgpl-devel >= 2.1.0
+BuildRequires: alsa-lib-devel
+BuildRequires: libXtst-devel
+BuildRequires: libXt-devel
+%endif
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Requires: zip >= 2.1
+Requires: gtk2 >= 2.4.0
+Requires: glib2 >= 2.4.0
+Requires: libart_lgpl >= 2.1.0
+Obsoletes: libgcj < %{version}-%{release}
+Obsoletes: libgcj43
+Autoreq: true
+
+%description -n libgcj
+The Java(tm) runtime library. You will need this package to run your Java
+programs compiled using the Java compiler from GNU Compiler Collection (gcj).
+
+%package -n libgcj-devel
+Summary: Libraries for Java development using GCC
+Group: Development/Languages
+Requires: libgcj = %{version}-%{release}, %{_prefix}/%{_lib}/libgcj.so.10
+Requires: zlib-devel, %{_prefix}/%{_lib}/libz.so
+Requires: /bin/awk
+Obsoletes: libgcj-devel < %{version}-%{release}
+Obsoletes: libgcj43-devel
+Autoreq: false
+Autoprov: false
+
+%description -n libgcj-devel
+The Java(tm) static libraries and C header files. You will need this
+package to compile your Java programs using the GCC Java compiler (gcj).
+
+%package -n libgcj-src
+Summary: Java library sources from GCC4 preview
+Group: System Environment/Libraries
+Requires: libgcj = %{version}-%{release}
+Autoreq: true
+
+%description -n libgcj-src
+The Java(tm) runtime library sources for use in Eclipse.
+
+%package -n cpp
+Summary: The C Preprocessor
+Group: Development/Languages
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Requires: mpc
+Obsoletes: cpp < %{version}-%{release}
+Obsoletes: cpp43
+Autoreq: true
+
+%description -n cpp
+Cpp is the GNU C-Compatible Compiler Preprocessor.
+Cpp is a macro processor which is used automatically
+by the C compiler to transform your program before actual
+compilation. It is called a macro processor because it allows
+you to define macros, abbreviations for longer
+constructs.
+
+The C preprocessor provides four separate functionalities: the
+inclusion of header files (files of declarations that can be
+substituted into your program); macro expansion (you can define macros,
+and the C preprocessor will replace the macros with their definitions
+throughout the program); conditional compilation (using special
+preprocessing directives, you can include or exclude parts of the
+program according to various conditions); and line control (if you use
+a program to combine or rearrange source files into an intermediate
+file which is then compiled, you can use line control to inform the
+compiler about where each source line originated).
+
+You should install this package if you are a C programmer and you use
+macros.
+
+%package gnat
+Summary: Ada 95 support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libgnat = %{version}-%{release}, libgnat-devel = %{version}-%{release}
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Autoreq: true
+
+%description gnat
+GNAT is a GNU Ada 95 front-end to GCC. This package includes development tools,
+the documents and Ada 95 compiler.
+
+%package -n libgnat
+Summary: GNU Ada 95 runtime shared libraries
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libgnat
+GNAT is a GNU Ada 95 front-end to GCC. This package includes shared libraries,
+which are required to run programs compiled with the GNAT.
+
+%package -n libgnat-devel
+Summary: GNU Ada 95 libraries
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libgnat-devel
+GNAT is a GNU Ada 95 front-end to GCC. This package includes libraries,
+which are required to compile with the GNAT.
+
+%package -n gcc-multilib
+Summary: for 64bit multilib support
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n gcc-multilib
+This is one set of libraries which support 64bit multilib on top of
+32bit enviroment from compiler side.
+
+%prep
+%setup -q -n gcc-%{version}
+%patch0 -p0 -b .hack~
+%patch1 -p0 -b .build-id~
+%patch2 -p0 -b .c++-builtin-redecl~
+%patch4 -p0 -b .java-nomulti~
+%patch9 -p0 -b .pr33763~
+%patch11 -p0 -b .rh341221~
+%patch12 -p0 -b .java-debug-iface-type~
+%patch13 -p0 -b .i386-libgomp~
+%patch16 -p0 -b .libgomp-omp_h-multilib~
+%patch20 -p0 -b .libtool-no-rpath~
+
+%if %{build_libstdcxx_docs}
+%patch29 -p0 -b .libstdc++-docs~
+%endif
+
+%patch30 -p1 -b .pr43572
+%patch40 -p1 -b .atom
+
+#%patch42 -p0 -b .var-track1~
+#%patch43 -p0 -b .var-track2~
+#%patch44 -p0 -b .var-track3~
+
+#%patch45 -p0 -b .max-vartrack-size~
+#%patch46 -p1 -b .max-vartrack-size-2~
+
+# This testcase doesn't compile.
+rm libjava/testsuite/libjava.lang/PR35020*
+
+tar xzf %{SOURCE4}
+
+%patch1000 -p0 -b .fastjar-0.97-segfault~
+%patch9999 -p1 -b .arm-boehm-gc~
+
+%if %{bootstrap_java}
+tar xjf %{SOURCE10}
+%endif
+
+echo 'MeeGo %{version}-%{gcc_release}' > gcc/DEV-PHASE
+
+# Default to -gdwarf-3 rather than -gdwarf-2
+sed -i '/UInteger Var(dwarf_version)/s/Init(2)/Init(3)/' gcc/common.opt
+sed -i 's/\(may be either 2 or 3; the default version is \)2\./\13./' gcc/doc/invoke.texi
+
+cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
+
+# Hack to avoid building multilib libjava
+perl -pi -e 's/^all: all-redirect/ifeq (\$(MULTISUBDIR),)\nall: all-redirect\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^install: install-redirect/ifeq (\$(MULTISUBDIR),)\ninstall: install-redirect\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^check: check-redirect/ifeq (\$(MULTISUBDIR),)\ncheck: check-redirect\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^all: all-recursive/ifeq (\$(MULTISUBDIR),)\nall: all-recursive\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^install: install-recursive/ifeq (\$(MULTISUBDIR),)\ninstall: install-recursive\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-recursive\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
+
+./contrib/gcc_update --touch
+
+LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
+
+%build
+
+%if %{build_java}
+mkdir fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+cd fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+../configure CFLAGS="%{optflags}" --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir}
+make %{?_smp_mflags}
+export PATH=`pwd`${PATH:+:$PATH}
+cd ../../
+%endif
+
+rm -fr obj-%{gcc_target_platform}
+mkdir obj-%{gcc_target_platform}
+cd obj-%{gcc_target_platform}
+
+%if %{build_java}
+%if !%{bootstrap_java}
+mkdir java_hacks
+cd java_hacks
+cp -a ../../libjava/classpath/tools/external external
+mkdir -p gnu/classpath/tools
+cp -a ../../libjava/classpath/tools/gnu/classpath/tools/{common,javah,getopt} gnu/classpath/tools/
+cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties gnu/classpath/tools/common
+cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties gnu/classpath/tools/getopt
+cd external/asm; for i in `find . -name \*.java`; do gcj --encoding ISO-8859-1 -C $i -I.; done; cd ../..
+for i in `find gnu -name \*.java`; do gcj -C $i -I. -Iexternal/asm/; done
+gcj -findirect-dispatch -O2 -fmain=gnu.classpath.tools.javah.Main -I. -Iexternal/asm/ `find . -name \*.class` -o gjavah.real
+cat > gjavah <<EOF
+#!/bin/sh
+export CLASSPATH=`pwd`${CLASSPATH:+:$CLASSPATH}
+exec `pwd`/gjavah.real "\$@"
+EOF
+chmod +x `pwd`/gjavah
+cat > ecj1 <<EOF
+#!/bin/sh
+exec gij -cp /usr/share/java/eclipse-ecj.jar org.eclipse.jdt.internal.compiler.batch.GCCMain "\$@"
+EOF
+chmod +x `pwd`/ecj1
+export PATH=`pwd`${PATH:+:$PATH}
+cd ..
+%endif
+%endif
+
+CC=gcc
+OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//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/-march=i.86//g'`
+%endif
+OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
+case "$OPT_FLAGS" in
+  *-fasynchronous-unwind-tables*)
+    sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables/' \
+      ../gcc/Makefile.in
+    ;;
+esac
+%if %{crossbuild}
+# cross build
+export PATH=/opt/cross/bin:$PATH
+# strip all after -march . no arch specific options in cross-compiler build .
+# -march=core2 -mssse3 -mtune=atom -mfpmath=sse -fasynchronous-unwi
+export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
+%if %{accelerator_crossbuild}
+# adding -rpath to the special crosscompiler
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+%endif
+%endif
+
+CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
+	GCJFLAGS="$OPT_FLAGS" \
+	../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+%ifarch %{arm}
+	--with-bugurl=http://bugzilla.meego.com/ --disable-bootstrap \
+	--enable-shared --enable-threads=posix --disable-checking \
+%else
+%if %{crossbuild}
+	--build=%{gcc_target_platform} \
+	--host=%{gcc_target_platform} \
+	--target=%{cross_gcc_target_platform} \
+	--with-bugurl=http://bugzilla.meego.com/ --disable-bootstrap \
+	--enable-shared --enable-threads=posix --disable-checking \
+%else
+	--with-bugurl=http://bugzilla.meego.com/ --enable-bootstrap \
+	--enable-shared --enable-threads=posix --enable-checking=release \
+%endif
+%if %{build_64bit_multilib}
+	--enable-targets=all \
+	--enable-multilib \
+%endif
+%endif
+	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
+	--enable-gnu-unique-object --enable-lto \
+%if !%{build_ada}
+%if !%{build_java}
+	--enable-languages=c,c++,objc,obj-c++,fortran \
+%else
+	--enable-languages=c,c++,objc,obj-c++,java,fortran \
+%endif
+%else
+%if !%{build_java}
+	--enable-languages=c,c++,objc,obj-c++,fortran,ada \
+%else
+	--enable-languages=c,c++,objc,obj-c++,java,fortran,ada \
+%endif
+%endif
+%if !%{build_java}
+	--disable-libgcj \
+%else
+	--enable-java-awt=gtk --disable-dssi --enable-plugin \
+	--with-java-home=%{_prefix}/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre \
+	--enable-libgcj-multifile \
+%if !%{bootstrap_java}
+	--enable-java-maintainer-mode \
+%endif
+	--with-ecj-jar=/usr/share/java/eclipse-ecj.jar \
+	--disable-libjava-multilib \
+%endif
+%if %{build_cloog}
+	--with-ppl --with-cloog \
+%endif
+%ifarch %{arm}
+	--disable-sjlj-exceptions \
+%endif
+%if !%{crossbuild}
+%ifarch %{ix86} x86_64
+	--with-tune=generic \
+%endif
+%ifarch %{ix86}
+	--with-arch=i686 \
+%endif
+%ifarch x86_64
+	--with-arch_32=i686 \
+%endif
+	--build=%{gcc_target_platform}
+#end for x86
+%else
+%if !%{accelerator_crossbuild}
+	--with-sysroot=%{crosssysroot}
+#end for cross-compiler
+%else
+	--program-transform-name='s/%{cross_gcc_target_platform}-//' \
+	--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_version} \
+	--with-build-sysroot=%{crossbuildsysroot} \
+	--with-sysroot=%{crosssysroot} 
+#end for special cross-compiler
+%endif
+%endif
+
+
+#GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
+%ifarch %{arm}
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS"
+# native ARM
+%else
+%if !%{crossbuild}
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
+# native x86
+%else
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS"
+# crosscompiler
+%endif
+%endif
+
+# Make
+make -C gcc CC="./xgcc -B ./ -O2" all
+
+# Make generated man pages even if Pod::Man is not new enough
+perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
+for i in ../gcc/doc/*.texi; do
+  cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
+done
+make -C gcc generated-manpages
+for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done
+
+# Make generated doxygen pages.
+%if %{build_libstdcxx_docs}
+cd %{gcc_target_platform}/libstdc++-v3
+make doc-html-doxygen
+make doc-man-doxygen
+cd ../..
+%endif
+
+# Copy various doc files here and there
+cd ..
+mkdir -p rpm.doc/gfortran rpm.doc/objc
+mkdir -p rpm.doc/boehm-gc rpm.doc/fastjar rpm.doc/libffi rpm.doc/libjava
+mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}
+sed -e 's, at VERSION@,%{gcc_version},' %{SOURCE2} > rpm.doc/README.libgcjwebplugin.so
+
+for i in {gcc,gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}/ChangeLog*; do
+	cp -p $i rpm.doc/changelogs/$i
+done
+
+(cd gcc/fortran; for i in ChangeLog*; do
+	cp -p $i ../../rpm.doc/gfortran/$i
+done)
+(cd libgfortran; for i in ChangeLog*; do
+	cp -p $i ../rpm.doc/gfortran/$i.libgfortran
+done)
+(cd gcc/objc; for i in README*; do
+	cp -p $i ../../rpm.doc/objc/$i.objc
+done)
+(cd libobjc; for i in README*; do
+	cp -p $i ../rpm.doc/objc/$i.libobjc
+done)
+(cd boehm-gc; for i in ChangeLog*; do
+	cp -p $i ../rpm.doc/boehm-gc/$i.gc
+done)
+(cd fastjar-%{fastjar_ver}; for i in ChangeLog* README*; do
+	cp -p $i ../rpm.doc/fastjar/$i.fastjar
+done)
+(cd libffi; for i in ChangeLog* README* LICENSE; do
+	cp -p $i ../rpm.doc/libffi/$i.libffi
+done)
+(cd libjava; for i in ChangeLog* README*; do
+	cp -p $i ../rpm.doc/libjava/$i.libjava
+done)
+cp -p libjava/LIBGCJ_LICENSE rpm.doc/libjava/
+
+rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
+find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
+
+%if %{build_java_tar}
+find libjava -name \*.h -type f | xargs grep -l '// DO NOT EDIT THIS FILE - it is machine generated' > libjava-classes.list
+find libjava -name \*.class -type f >> libjava-classes.list
+find libjava/testsuite -name \*.jar -type f >> libjava-classes.list
+tar cf - -T libjava-classes.list | bzip2 -9 > $RPM_SOURCE_DIR/libjava-classes-%{version}-%{release}.tar.bz2
+%endif
+
+
+%install
+rm -fr %{buildroot}
+
+cd obj-%{gcc_target_platform}
+
+%if %{build_java}
+export PATH=`pwd`/../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}${PATH:+:$PATH}
+%if !%{bootstrap_java}
+export PATH=`pwd`/java_hacks${PATH:+:$PATH}
+%endif
+%endif
+
+%if !%{crossbuild}
+# native
+TARGET_PLATFORM=%{gcc_target_platform}
+# There are some MP bugs in libstdc++ Makefiles
+make -C %{gcc_target_platform}/libstdc++-v3
+%else
+# cross build
+export PATH=/opt/cross/bin:$PATH
+# strip all after -march . no arch specific options in cross-compiler build .
+# -march=core2 -mssse3 -mtune=atom -mfpmath=sse -fasynchronous-unwi
+export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
+#echo "$OPT_FLAGS"
+#TARGET_PLATFORM=%{cross_gcc_target_platform}
+# There are some MP bugs in libstdc++ Makefiles
+#make -C %{cross_gcc_target_platform}/libstdc++-v3
+%endif
+
+make DESTDIR=%{buildroot} install
+#prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
+#  infodir=%{buildroot}%{_infodir} install
+
+%if !%{crossbuild}
+# native
+# \/\/\/
+%if %{build_java}
+make DESTDIR=%{buildroot} -C %{gcc_target_platform}/libjava install-src.zip
+%endif
+%if %{build_ada}
+chmod 644 %{buildroot}%{_infodir}/gnat*
+%endif
+
+FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+
+ln -sf gcc %{buildroot}%{_prefix}/bin/cc
+mkdir -p %{buildroot}/lib
+ln -sf ..%{_prefix}/bin/cpp %{buildroot}/lib/cpp
+ln -sf gfortran %{buildroot}%{_prefix}/bin/f95
+rm -f %{buildroot}%{_infodir}/dir
+gzip -9 %{buildroot}%{_infodir}/*.info*
+ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc
+
+cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`"
+for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do
+  if ! diff -up $cxxconfig $i; then
+    cat > %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/c++config.h <<EOF
+#ifndef _CPP_CPPCONFIG_WRAPPER
+#define _CPP_CPPCONFIG_WRAPPER 1
+#include <bits/wordsize.h>
+#if __WORDSIZE == 32
+%ifarch %{multilib_64_archs}
+`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)`
+%else
+`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
+%endif
+#else
+%ifarch %{multilib_64_archs}
+`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
+%else
+`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)`
+%endif
+#endif
+#endif
+EOF
+    break
+  fi
+done
+
+for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/ -name c++config.h`; do
+  for i in 1 2 4 8; do
+    sed -i -e 's/#define _GLIBCXX_ATOMIC_BUILTINS_'$i' 1/#ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_'$i'\
+&\
+#endif/' $f
+  done
+done
+
+# Nuke bits/stdc++.h.gch dirs
+# 1) there is no bits/stdc++.h header installed, so when gch file can't be
+#    used, compilation fails
+# 2) sometimes it is hard to match the exact options used for building
+#    libstdc++-v3 or they aren't desirable
+# 3) there are multilib issues, conflicts etc. with this
+# 4) it is huge
+# People can always precompile on their own whatever they want, but
+# shipping this for everybody is unnecessary.
+rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/stdc++.h.gch
+
+%if %{build_libstdcxx_docs}
+libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen
+mkdir -p ../rpm.doc/libstdc++-v3
+cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html
+mv $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api
+mkdir -p %{buildroot}%{_mandir}
+mv $libstdcxx_doc_builddir/man/man3 %{buildroot}%{_mandir}/man3/
+find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
+%endif
+
+if [ -n "$FULLLPATH" ]; then
+  mkdir -p $FULLLPATH
+else
+  FULLLPATH=$FULLPATH
+fi
+
+find %{buildroot} -name \*.la | xargs rm -f
+%if %{build_java}
+find %{buildroot} -name libgcj.a -o -name libgtkpeer.a \
+		     -o -name libgjsmalsa.a -o -name libgcj-tools.a -o -name libjvm.a \
+		     -o -name libgij.a -o -name libgcj_bc.a -o -name libjavamath.a \
+  | xargs rm -f
+
+mv %{buildroot}%{_prefix}/lib/libgcj.spec $FULLPATH/
+sed -i -e 's/lib: /&%%{static:%%eJava programs cannot be linked statically}/' \
+  $FULLPATH/libgcj.spec
+%endif
+
+mkdir -p %{buildroot}/%{_lib}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
+chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
+ln -sf libgcc_s-%{gcc_version}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
+ln -sf /%{_lib}/libgcc_s.so.1 %{buildroot}/%{_libdir}/libgcc_s.so
+ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
+%ifarch %{multilib_64_archs}
+ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
+%endif
+
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
+
+%if %{build_ada}
+mv -f $FULLPATH/adalib/libgnarl-*.so %{buildroot}%{_prefix}/%{_lib}/
+mv -f $FULLPATH/adalib/libgnat-*.so %{buildroot}%{_prefix}/%{_lib}/
+rm -f $FULLPATH/adalib/libgnarl.so* $FULLPATH/adalib/libgnat.so*
+%endif
+
+mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
+  ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+else
+  ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+fi
+
+%if %{build_java}
+pushd ../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+make install DESTDIR=%{buildroot}
+popd
+
+if [ "%{_lib}" != "lib" ]; then
+  mkdir -p %{buildroot}%{_prefix}/%{_lib}/pkgconfig
+  sed '/^libdir/s/lib$/%{_lib}/' %{buildroot}%{_prefix}/lib/pkgconfig/libgcj-*.pc \
+    > %{buildroot}%{_prefix}/%{_lib}/pkgconfig/`basename %{buildroot}%{_prefix}/lib/pkgconfig/libgcj-*.pc`
+fi
+%endif
+
+pushd $FULLPATH
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../libobjc.so.2 libobjc.so
+#FIXME
+rm -fr ../../../libstdc++.so.6.*-gdb.py
+ln -sf ../../../libstdc++.so.6.* libstdc++.so
+ln -sf ../../../libgfortran.so.3.* libgfortran.so
+ln -sf ../../../libgomp.so.1.* libgomp.so
+ln -sf ../../../libmudflap.so.0.* libmudflap.so
+ln -sf ../../../libmudflapth.so.0.* libmudflapth.so
+%if %{build_java}
+ln -sf ../../../libgcj.so.10.* libgcj.so
+ln -sf ../../../libgcj-tools.so.10.* libgcj-tools.so
+ln -sf ../../../libgij.so.10.* libgij.so
+%endif
+else
+ln -sf ../../../../%{_lib}/libobjc.so.2 libobjc.so
+ln -sf ../../../../%{_lib}/libstdc++.so.6.* libstdc++.so
+ln -sf ../../../../%{_lib}/libgfortran.so.3.* libgfortran.so
+ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so
+ln -sf ../../../../%{_lib}/libmudflap.so.0.* libmudflap.so
+ln -sf ../../../../%{_lib}/libmudflapth.so.0.* libmudflapth.so
+%if %{build_java}
+ln -sf ../../../../%{_lib}/libgcj.so.10.* libgcj.so
+ln -sf ../../../../%{_lib}/libgcj-tools.so.10.* libgcj-tools.so
+ln -sf ../../../../%{_lib}/libgij.so.10.* libgij.so
+%endif
+fi
+%if %{build_java}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgcj_bc.so $FULLLPATH/
+%endif
+mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
+mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libobjc.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.*a $FULLLPATH/
+
+%if %{build_ada}
+%ifarch %{multilib_64_archs}
+rm -rf $FULLPATH/32/ada{include,lib}
+%endif
+if [ "$FULLPATH" != "$FULLLPATH" ]; then
+mv -f $FULLPATH/ada{include,lib} $FULLLPATH/
+pushd $FULLLPATH/adalib
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../../../libgnarl-*.so libgnarl.so
+ln -sf ../../../../../libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../libgnat-*.so libgnat.so
+ln -sf ../../../../../libgnat-*.so libgnat-4.4.so
+else
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-4.4.so
+fi
+popd
+else
+pushd $FULLPATH/adalib
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../../libgnarl-*.so libgnarl.so
+ln -sf ../../../../libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../libgnat-*.so libgnat.so
+ln -sf ../../../../libgnat-*.so libgnat-4.4.so
+else
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-4.4.so
+fi
+popd
+fi
+%endif
+
+%ifarch %{multilib_64_archs}
+mkdir -p 32
+ln -sf ../../../../libobjc.so.2 32/libobjc.so
+ln -sf ../`echo ../../../../lib64/libstdc++.so.6.* | sed s~/../lib64/~/~` 32/libstdc++.so
+ln -sf ../`echo ../../../../lib64/libgfortran.so.3.* | sed s~/../lib64/~/~` 32/libgfortran.so
+ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so
+rm -f libmudflap.so libmudflapth.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflap.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflapth.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflap.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflapth.so
+%if %{build_java}
+ln -sf ../`echo ../../../../lib64/libgcj.so.10.* | sed s~/../lib64/~/~` 32/libgcj.so
+ln -sf ../`echo ../../../../lib64/libgcj-tools.so.10.* | sed s~/../lib64/~/~` 32/libgcj-tools.so
+ln -sf ../`echo ../../../../lib64/libgij.so.10.* | sed s~/../lib64/~/~` 32/libgij.so
+%endif
+mv -f %{buildroot}%{_prefix}/lib/libsupc++.*a 32/
+mv -f %{buildroot}%{_prefix}/lib/libgfortran.*a 32/
+mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/
+mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libstdc++.a 32/libstdc++.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libmudflap.a 32/libmudflap.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libmudflapth.a 32/libmudflapth.a
+%if %{build_java}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgcj_bc.so 32/libgcj_bc.so
+%endif
+%if %{build_ada}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/adainclude 32/adainclude
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/adalib 32/adalib
+%endif
+%endif
+
+# Strip debug info from Fortran/ObjC/Java static libraries
+strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \
+		    -o -name libmudflap.a -o -name libmudflapth.a \
+		    -o -name libgcc.a -o -name libgcov.a \) -a -type f`
+popd
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.3.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.so.0.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.2.*
+
+%if %{build_ada}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnarl*so*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnat*so*
+%endif
+
+mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h
+mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h
+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
+
+cat > %{buildroot}%{_prefix}/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+  case "$opt" in
+    -ansi|-std=c89|-std=iso9899:1990) fl="";;
+    -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+	    exit 1;;
+  esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+cat > %{buildroot}%{_prefix}/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+  case "$opt" in
+    -std=c99|-std=iso9899:1999) fl="";;
+    -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+	    exit 1;;
+  esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+chmod 755 %{buildroot}%{_prefix}/bin/c?9
+
+mkdir -p %{buildroot}%{_prefix}/sbin
+%ifarch %{arm}
+patch %{SOURCE1} < %{PATCH41}
+%endif
+gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
+strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
+
+cd ..
+%find_lang %{name}
+%find_lang cpplib
+
+# Remove binaries we will not be including, so that they don't end up in
+# gcc-debuginfo
+rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
+rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
+rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a
+rm -f %{buildroot}%{_prefix}/%{_lib}/libssp*
+rm -f %{buildroot}%{_prefix}/bin/gnative2ascii
+
+%ifarch %{multilib_64_archs}
+# Remove libraries for the other arch on multilib arches
+rm -f %{buildroot}%{_prefix}/lib/lib*.so*
+rm -f %{buildroot}%{_prefix}/lib/lib*.a
+%endif
+
+%if %{build_java}
+mkdir -p %{buildroot}%{_prefix}/share/java/gcj-endorsed \
+	 %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+chmod 755 %{buildroot}%{_prefix}/share/java/gcj-endorsed \
+	  %{buildroot}%{_prefix}/%{_lib}/gcj-%{version} \
+	  %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+touch %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db
+%endif
+# /\/\/\
+# native
+%else
+# cross
+# \/\/\/
+# additional install for cross
+# remove some obsolete files
+%if !%{accelerator_crossbuild}
+#set -x
+rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
+rm -rRf %buildroot/%{_prefix}/share
+#set +x
+%endif
+# /\/\/\
+# cross
+%endif
+
+%if !%{crossbuild}
+# checking and split packaging for native ...
+# native
+# \/\/\/
+
+%check
+%if 0
+cd obj-%{gcc_target_platform}
+
+# run the tests.
+make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || :
+echo ====================TESTING=========================
+( LC_ALL=C ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}'
+echo ====================TESTING END=====================
+mkdir testlogs-%{_target_platform}-%{version}-%{release}
+for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats\|ada'`; do
+  ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
+done
+tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \
+  | uuencode testlogs-%{_target_platform}.tar.bz2 || :
+rm -rf testlogs-%{_target_platform}-%{version}-%{release}
+
+%endif
+
+%clean
+rm -rf %{buildroot}
+
+%post
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
+
+%preun
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
+fi
+
+%post -n cpp
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
+
+%preun -n cpp
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
+fi
+
+%post gfortran
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
+
+%preun gfortran
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
+fi
+
+%post java
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gcj.info.gz || :
+
+%preun java
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gcj.info.gz || :
+fi
+
+%post gnat
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat_ugn.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
+
+%preun gnat
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat_ugn.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
+fi
+
+%post -n libgcc -p %{_prefix}/sbin/libgcc_post_upgrade
+
+%postun -n libgcc -p /sbin/ldconfig
+
+%post -n libstdc++ -p /sbin/ldconfig
+
+%postun -n libstdc++ -p /sbin/ldconfig
+
+%post -n libobjc -p /sbin/ldconfig
+
+%postun -n libobjc -p /sbin/ldconfig
+
+%post -n libgcj
+/sbin/ldconfig
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/cp-tools.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz || :
+
+%preun -n libgcj
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/cp-tools.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz || :
+fi
+
+%postun -n libgcj -p /sbin/ldconfig
+
+%post -n libgfortran -p /sbin/ldconfig
+
+%postun -n libgfortran -p /sbin/ldconfig
+
+%post -n libgnat -p /sbin/ldconfig
+
+%postun -n libgnat -p /sbin/ldconfig
+
+%post -n libgomp
+/sbin/ldconfig
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
+
+%preun -n libgomp
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
+fi
+
+%postun -n libgomp -p /sbin/ldconfig
+
+%post -n libmudflap -p /sbin/ldconfig
+
+%postun -n libmudflap -p /sbin/ldconfig
+
+%files -f %{name}.lang
+%defattr(-,root,root,-)
+%{_prefix}/bin/cc
+%{_prefix}/bin/c89
+%{_prefix}/bin/c99
+%{_prefix}/bin/gcc
+%{_prefix}/bin/gcov
+%ifnarch %{arm}
+%{_prefix}/bin/%{gcc_target_platform}-*
+%endif
+%{_mandir}/man1/gcc.1*
+%{_mandir}/man1/gcov.1*
+%{_mandir}/man7/*
+%{_infodir}/gcc*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include/*
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/*
+
+%ifarch %{arm}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/ssp.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/stdio.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/string.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/unistd.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdfix.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/install-tools
+%endif
+
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.spec
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
+%endif
+%dir %{_prefix}/libexec/getconf
+%{_prefix}/libexec/getconf/default
+%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING*
+
+%files -n cpp -f cpplib.lang
+%defattr(-,root,root,-)
+/lib/cpp
+%{_prefix}/bin/cpp
+%{_mandir}/man1/cpp.1*
+%{_infodir}/cpp*
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+
+%files -n libgcc
+%defattr(-,root,root,-)
+/%{_lib}/libgcc_s-%{gcc_version}.so.1
+/%{_lib}/libgcc_s.*
+/%{_libdir}/libgcc_s.*
+%{_prefix}/sbin/libgcc_post_upgrade
+%doc gcc/COPYING.LIB
+
+%files c++
+%defattr(-,root,root,-)
+%ifnarch %{arm}
+%{_prefix}/bin/%{gcc_target_platform}-*++
+%endif
+%{_prefix}/bin/g++
+%{_prefix}/bin/c++
+%{_mandir}/man1/g++.1*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libsupc++.a
+%endif
+%ifarch %{multilib_64_archs}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
+%endif
+%doc rpm.doc/changelogs/gcc/cp/ChangeLog*
+
+%files -n libstdc++
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libstdc++.*
+#/usr/share/locale/de/LC_MESSAGES/libstdc++.mo
+#/usr/share/locale/fr/LC_MESSAGES/libstdc++.mo
+
+%files -n libstdc++-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/include/c++
+%dir %{_prefix}/include/c++/%{gcc_version}
+%{_prefix}/include/c++/%{gcc_version}/[^gjos]*
+%{_prefix}/include/c++/%{gcc_version}/os*
+%{_prefix}/include/c++/%{gcc_version}/s[^u]*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a  
+%ifnarch  %{multilib_64_archs}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
+%endif
+%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README*
+
+%if %{build_libstdcxx_docs}
+%files -n libstdc++-docs
+%defattr(-,root,root)
+%{_mandir}/man3/*
+%doc rpm.doc/libstdc++-v3/html
+%endif
+
+%files objc
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/objc
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1obj
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.so
+%endif
+%doc rpm.doc/objc/*
+%doc libobjc/THREADS* rpm.doc/changelogs/libobjc/ChangeLog*
+
+%files objc++
+%defattr(-,root,root,-)
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1objplus
+
+%files -n libobjc
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libobjc.*
+
+%files gfortran
+%defattr(-,root,root,-)
+%{_prefix}/bin/gfortran
+%{_prefix}/bin/f95
+%{_mandir}/man1/gfortran.1*
+%{_infodir}/gfortran*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.f90
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.mod
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib_kinds.mod
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/f951
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.so
+%endif
+%doc rpm.doc/gfortran/*
+
+%files -n libgfortran
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libgfortran.*
+
+%if %{build_java}
+%files java
+%defattr(-,root,root,-)
+%{_prefix}/bin/gcj
+%{_prefix}/bin/gjavah
+%{_prefix}/bin/gcjh
+%{_prefix}/bin/jcf-dump
+%{_mandir}/man1/gcj.1*
+%{_mandir}/man1/jcf-dump.1*
+%{_mandir}/man1/gjavah.1*
+%{_mandir}/man1/gcjh.1*
+%{_infodir}/gcj*
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jc1
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/ecj1
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jvgenmain
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj-tools.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgij.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj-tools.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj_bc.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgij.so
+%endif
+%doc rpm.doc/changelogs/gcc/java/ChangeLog*
+
+%files -n libgcj
+%defattr(-,root,root,-)
+%{_prefix}/bin/jv-convert
+%{_prefix}/bin/gij
+%{_prefix}/bin/gjar
+%{_prefix}/bin/fastjar
+%{_prefix}/bin/grepjar
+%{_prefix}/bin/grmic
+%{_prefix}/bin/grmid
+%{_prefix}/bin/grmiregistry
+%{_prefix}/bin/gtnameserv
+%{_prefix}/bin/gkeytool
+%{_prefix}/bin/gorbd
+%{_prefix}/bin/gserialver
+%{_prefix}/bin/gcj-dbtool
+%if %{include_gappletviewer}
+%{_prefix}/bin/gappletviewer
+%{_mandir}/man1/gappletviewer.1*
+%endif
+%{_prefix}/bin/gjarsigner
+%{_mandir}/man1/fastjar.1*
+%{_mandir}/man1/grepjar.1*
+%{_mandir}/man1/gjar.1*
+%{_mandir}/man1/gjarsigner.1*
+%{_mandir}/man1/jv-convert.1*
+%{_mandir}/man1/gij.1*
+%{_mandir}/man1/grmic.1*
+%{_mandir}/man1/grmiregistry.1*
+%{_mandir}/man1/gcj-dbtool.1*
+%{_mandir}/man1/gkeytool.1*
+%{_mandir}/man1/gorbd.1*
+%{_mandir}/man1/grmid.1*
+%{_mandir}/man1/gserialver.1*
+%{_mandir}/man1/gtnameserv.1*
+%{_infodir}/fastjar.info*
+%{_infodir}/cp-tools.info*
+%{_prefix}/%{_lib}/libgcj.so.*
+%{_prefix}/%{_lib}/libgcj-tools.so.*
+%{_prefix}/%{_lib}/libgcj_bc.so.*
+%{_prefix}/%{_lib}/libgij.so.*
+%dir %{_prefix}/%{_lib}/gcj-%{version}
+%{_prefix}/%{_lib}/gcj-%{version}/libgtkpeer.so
+%{_prefix}/%{_lib}/gcj-%{version}/libgjsmalsa.so
+%{_prefix}/%{_lib}/gcj-%{version}/libjawt.so
+%if %{include_gappletviewer}
+%{_prefix}/%{_lib}/gcj-%{version}/libgcjwebplugin.so
+%endif
+%{_prefix}/%{_lib}/gcj-%{version}/libjvm.so
+%{_prefix}/%{_lib}/gcj-%{version}/libjavamath.so
+%dir %{_prefix}/share/java
+%{_prefix}/share/java/[^sl]*
+%{_prefix}/share/java/libgcj-%{version}.jar
+%dir %{_prefix}/%{_lib}/security
+%config(noreplace) %{_prefix}/%{_lib}/security/classpath.security
+%{_prefix}/%{_lib}/logging.properties
+%dir %{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_prefix}/%{_lib}/gcj-%{version}/classmap.db
+%if %{include_gappletviewer}
+%doc rpm.doc/README.libgcjwebplugin.so
+%endif
+
+%files -n libgcj-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/gcj
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jawt.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jawt_md.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jni.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jni_md.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jvmpi.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.spec
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj_bc.so  
+%dir %{_prefix}/include/c++
+%dir %{_prefix}/include/c++/%{gcc_version}
+%{_prefix}/include/c++/%{gcc_version}/[gj]*
+%{_prefix}/include/c++/%{gcc_version}/org
+%{_prefix}/include/c++/%{gcc_version}/sun
+%{_prefix}/%{_lib}/pkgconfig/libgcj-*.pc
+%doc rpm.doc/boehm-gc/* rpm.doc/fastjar/* rpm.doc/libffi/*
+%doc rpm.doc/libjava/*
+
+%files -n libgcj-src
+%defattr(-,root,root,-)
+%dir %{_prefix}/share/java
+%{_prefix}/share/java/src*.zip
+%{_prefix}/share/java/libgcj-tools-%{version}.jar
+%endif
+
+%if %{build_ada}
+%files gnat
+%defattr(-,root,root,-)
+%{_prefix}/bin/gnat*
+%{_infodir}/gnat*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/adainclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/adalib
+%endif
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/gnat1
+%doc rpm.doc/changelogs/gcc/ada/ChangeLog*
+
+%files -n libgnat
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libgnat-*.so
+%{_prefix}/%{_lib}/libgnarl-*.so
+
+%files -n libgnat-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adainclude  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adalib  
+%endif
+
+%files -n libgomp
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libgomp.*
+%{_infodir}/libgomp.info*
+%doc rpm.doc/changelogs/libgomp/ChangeLog*
+
+%files -n libmudflap
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libmudflap.*
+%{_prefix}/%{_lib}/libmudflapth.*
+
+%files -n libmudflap-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mf-runtime.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.a  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.a  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.so  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.so  
+%doc rpm.doc/changelogs/libmudflap/ChangeLog*
+
+%if %{build_64bit_multilib}
+%files -n gcc-multilib
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortranbegin.a
+%dir %{_prefix}/lib64
+%{_prefix}/lib64/*
+%endif
+
+# /\/\/\
+# native
+%else
+# cross
+# \/\/\/
+%files
+%defattr(-,root,root,-)
+%{_prefix}
+# /\/\/\
+# cross
+%endif

++++++ new spec file:
--- cross-armv5tel-gcc.spec
+++ cross-armv5tel-gcc.spec
+# Combined gcc / cross-armv*-gcc(-accel) specfile
+Name: cross-armv5tel-gcc
+# Keep Name on top !
+
+# crossbuild / accelerator section
+# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
+%define crossbuild 0
+%define accelerator_crossbuild 0
+%if "%{name}" != "gcc"
+# this is the ix86 -> arm cross compiler (cross-armv*-gcc)
+#
+# cross arch retrieval
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc/\\1/")
+# We set requires/provides by hand and disable post-build-checks.
+# Captain Trunk: Sledge, you cannot disarm that nuclear bomb!
+# Sledge Hammer: Trust me, I know what I'm doing. 
+AutoReqProv: 0
+AutoReq: false
+BuildRequires: -rpmlint-Moblin -rpmlint-mini -post-build-checks
+# cross platform
+%define cross_gcc_target_platform %{crossarch}-meego-linux-gnueabi
+# gcc_target_platform holds the host (executing the compiler)
+# cross_gcc_target_platform holds the target (for which the compiler is producing binaries)
+# prefix for cross compiler
+%define _prefix /opt/cross
+# strip of 'foreign arch' symbols fails
+%define __strip /bin/true
+# sysroot for cross-compiler
+%define crosssysroot %{_prefix}/%{cross_gcc_target_platform}/sys-root
+# flag
+%define crossbuild 1
+# macros in buildrequires is hard to expand for the scheduler (e.g. crossarch) which would make this easier.
+#BuildRequires: cross-%{crossarch}-glibc cross-%{crossarch}-glibc-devel cross-%{crossarch}-glibc-headers
+#BuildRequires: cross-%{crossarch}-kernel-headers cross-%{crossarch}-binutils
+# Fixme: find way to make this without listing every package
+%if "%{name}" == "cross-armv5tel-gcc"
+BuildRequires: cross-armv5tel-glibc cross-armv5tel-glibc-devel cross-armv5tel-glibc-headers
+BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
+%endif
+%if "%{name}" == "cross-armv7l-gcc"
+BuildRequires: cross-armv7l-glibc cross-armv7l-glibc-devel cross-armv7l-glibc-headers
+BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
+%endif
+# Fixme: see above
+%if "%{name}" == "cross-armv5tel-gcc-accel"
+BuildRequires: cross-armv5tel-glibc cross-armv5tel-glibc-devel cross-armv5tel-glibc-headers
+BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
+%endif
+%if "%{name}" == "cross-armv7l-gcc-accel"
+BuildRequires: cross-armv7l-glibc cross-armv7l-glibc-devel cross-armv7l-glibc-headers
+BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
+%endif
+# single target atm.
+ExclusiveArch: %ix86
+#
+# special handling for MeeGo ARM build acceleration
+# cross-armv*-gcc-accel
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+# cross architecture
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+# cross target platform
+%define cross_gcc_target_platform %{crossarch}-meego-linux-gnueabi
+# prefix - as it's going to "replace" the original compiler ...
+%define _prefix /usr
+# cross-build sets sysroot as default , we need to override this a bit
+%define crosssysroot /
+# where to find the libs during the build
+%define crossbuildsysroot /opt/cross/%{cross_gcc_target_platform}/sys-root
+# flags
+%define crossbuild 1
+%define accelerator_crossbuild 1
+# where to find the libs at runtime
+%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define _build_name_fmt    %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
+%endif
+# end special accel
+%endif
+# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
+# end crossbuild / accelerator section
+
+%global gcc_version 4.5.0
+%global gcc_release 1
+%global _unpackaged_files_terminate_build 0
+%global include_gappletviewer 0
+%global build_ada 0
+%global build_java 0
+%ifarch %{arm}
+%global build_cloog 0
+%else
+%if %{crossbuild}
+%global build_cloog 0
+%else
+%global build_cloog 1
+%endif
+%endif
+%global build_libstdcxx_docs 0
+%global bootstrap_java %{?_with_java_bootstrap:%{build_java}}%{!?_with_java_bootstrap:0}
+%global build_java_tar %{?_with_java_tar:%{build_java}}%{!?_with_java_tar:0}
+%global multilib_64_archs x86_64
+%ifarch x86_64
+%global multilib_32_arch i686
+%endif
+%global build_64bit_multilib 0
+
+Summary: Various compilers (C, C++, Objective-C, Java, ...)
+Version: %{gcc_version}
+Release: %{gcc_release}
+License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
+Group: Development/Languages
+URL: http://gcc.gnu.org
+Source0: gcc-%{version}.tar.bz2
+Source1: libgcc_post_upgrade.c
+Source2: README.libgcjwebplugin.so
+%global fastjar_ver 0.97
+Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz
+Source100: gcc-4.5.0-rpmlintrc
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: binutils >= 2.19.51.0.14
+BuildRequires: glibc-static
+BuildRequires: zlib-devel, gettext,  bison, flex, texinfo
+BuildRequires: mpc-devel
+BuildRequires: glibc-devel >= 2.4.90-13
+BuildRequires: elfutils-devel >= 0.72
+
+%if %{build_java}
+BuildRequires: /usr/share/java/eclipse-ecj.jar, zip, unzip
+%if %{bootstrap_java}
+Source10: libjava-classes-%{version}-%{release}.tar.bz2
+%else
+BuildRequires: gcc-java, libgcj
+%endif
+%endif
+
+%if %{build_ada}
+# Ada requires Ada to build
+BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1
+%endif
+
+%if %{build_cloog}
+BuildRequires: ppl >= 0.10, ppl-devel >= 0.10, cloog-ppl >= 0.15, cloog-ppl-devel >= 0.15
+%endif
+
+%if %{build_libstdcxx_docs}
+BuildRequires: doxygen
+BuildRequires: graphviz
+%endif
+
+Requires: cpp = %{version}-%{release}
+Requires: libgcc >= %{version}-%{release}
+Requires: libgomp = %{version}-%{release}
+Requires: glibc-devel
+
+%if !%{build_ada}
+Obsoletes: gcc-gnat < %{version}-%{release}
+Obsoletes: libgnat < %{version}-%{release}
+%endif
+
+%if %{build_cloog}
+Requires: cloog-ppl >= 0.15
+%endif
+
+%if %{build_64bit_multilib}
+Requires: glibc64bit-helper
+%endif
+
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: gcc < %{version}-%{release}
+Obsoletes: gcc43
+AutoReq: true
+
+Patch0: gcc44-hack.patch
+Patch1: gcc44-build-id.patch
+Patch2: gcc44-c++-builtin-redecl.patch
+Patch4: gcc44-java-nomulti.patch
+Patch9: gcc44-pr33763.patch
+Patch11: gcc44-rh341221.patch
+Patch12: gcc44-java-debug-iface-type.patch
+Patch13: gcc44-i386-libgomp.patch
+Patch16: gcc44-libgomp-omp_h-multilib.patch
+Patch20: gcc44-libtool-no-rpath.patch
+Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
+
+Patch40: gcc45-use-atom.patch
+Patch41: libgcc_post_upgrade.c.arm.patch
+
+#Patch42: var-tracking1.patch
+#Patch43: var-tracking2.patch
+#Patch44: var-tracking3.patch
+
+#Patch45: gcc44-max-vartrack-size.patch
+#Patch46: gcc44-max-vartrack-size-2.patch
+
+Patch1000: fastjar-0.97-segfault.patch
+Patch9999: gcc44-ARM-boehm-gc-stack-qemu.patch
+
+#We need -gnueabi indicator for ARM
+%ifnarch %{arm}
+%global _gnu %{nil}
+%endif
+%global gcc_target_platform %{_target_platform}
+
+%description
+The gcc package contains the GNU Compiler Collection version 4.5.0.
+You'll need this package in order to compile C code.
+
+%package -n libgcc
+Summary: GCC version 4.5.0 shared support library
+Group: System Environment/Libraries
+Obsoletes: libgcc < %{version}-%{release}
+Obsoletes: libgcc43
+Autoreq: false
+
+%description -n libgcc
+This package contains GCC shared support library which is needed
+e.g. for exception handling support.
+
+%package c++
+Summary: C++ support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libstdc++ = %{version}-%{release}
+Requires: libstdc++-devel = %{version}-%{release}
+Obsoletes: gcc-c++ < %{version}-%{release}
+Obsoletes: gcc43-c++
+Autoreq: true
+
+%description c++
+This package adds C++ support to the GNU Compiler Collection.
+It includes support for most of the current C++ specification,
+including templates and exception handling.
+
+%package -n libstdc++
+Summary: GNU Standard C++ Library
+Group: System Environment/Libraries
+Obsoletes: libstdc++ < %{version}-%{release}
+Obsoletes: libstdc++43
+Obsoletes: libstdc++6 < %{version}-%{release}
+Autoreq: true
+Requires: glibc 
+
+%description -n libstdc++
+The libstdc++ package contains a rewritten standard compliant GCC Standard
+C++ Library.
+
+%package -n libstdc++-devel
+Summary: Header files and libraries for C++ development
+Group: Development/Libraries
+Requires: libstdc++ = %{version}-%{release}
+Obsoletes: libstdc++-devel < %{version}-%{release}
+Obsoletes: libstdc++43-devel
+Autoreq: true
+
+%description -n libstdc++-devel
+This is the GNU implementation of the standard C++ libraries.  This
+package includes the header files and libraries needed for C++
+development. This includes rewritten implementation of STL.
+
+%package -n libstdc++-docs
+Summary: Documentation for the GNU standard C++ library
+Group: Development/Libraries
+Obsoletes: libstdc++-docs < %{version}-%{release}
+Obsoletes: libstdc++43-doc
+Autoreq: true
+
+%description -n libstdc++-docs
+Manual, doxygen generated API information and Frequently Asked Questions
+for the GNU standard C++ library.
+
+%package objc
+Summary: Objective-C support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libobjc = %{version}-%{release}
+Obsoletes: gcc-objc < %{version}-%{release}
+Obsoletes: gcc43-objc
+Autoreq: true
+
+%description objc
+gcc-objc provides Objective-C support for the GCC.
+Mainly used on systems running NeXTSTEP, Objective-C is an
+object-oriented derivative of the C language.
+
+%package objc++
+Summary: Objective-C++ support for GCC
+Group: Development/Languages
+Requires: gcc-c++ = %{version}-%{release}, gcc-objc = %{version}-%{release}
+Obsoletes: gcc-objc++ < %{version}-%{release}
+Obsoletes: gcc43-obj-c++ gcc43-objc++
+Autoreq: true
+
+%description objc++
+gcc-objc++ package provides Objective-C++ support for the GCC.
+
+%package -n libobjc
+Summary: Objective-C runtime
+Group: System Environment/Libraries
+Obsoletes: libobjc < %{version}-%{release}
+Obsoletes: libobjc43
+Autoreq: true
+
+%description -n libobjc
+This package contains Objective-C shared library which is needed to run
+Objective-C dynamically linked programs.
+
+%package gfortran
+Summary: Fortran support
+Group: Development/Languages
+BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1
+Requires: gcc = %{version}-%{release}
+Requires: libgfortran = %{version}-%{release}
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: gcc-fortran < %{version}-%{release}
+Obsoletes: gcc43-fortran
+Autoreq: true
+Provides: gcc-fortran
+
+%description gfortran
+The gcc-gfortran package provides support for compiling Fortran
+programs with the GNU Compiler Collection.
+
+%package -n libgfortran
+Summary: Fortran runtime
+Group: System Environment/Libraries
+Obsoletes: libgfortran < %{version}-%{release}
+Obsoletes: libgfortran43
+Autoreq: true
+
+%description -n libgfortran
+This package contains Fortran shared library which is needed to run
+Fortran dynamically linked programs.
+
+%package -n libgomp
+Summary: GCC OpenMP v3.0 shared support library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: libgomp < %{version}-%{release}
+Obsoletes: libgomp43
+
+%description -n libgomp
+This package contains GCC shared support library which is needed
+for OpenMP v3.0 support.
+
+%package -n libmudflap
+Summary: GCC mudflap shared support library
+Group: System Environment/Libraries
+
+%description -n libmudflap
+This package contains GCC shared support library which is needed
+for mudflap support.
+
+%package -n libmudflap-devel
+Summary: GCC mudflap support
+Group: Development/Libraries
+Requires: libmudflap = %{version}-%{release}
+Requires: gcc = %{version}-%{release}
+
+%description -n libmudflap-devel
+This package contains headers and static libraries for building
+mudflap-instrumented programs.
+
+To instrument a non-threaded program, add -fmudflap
+option to GCC and when linking add -lmudflap, for threaded programs
+also add -fmudflapth and -lmudflapth.
+
+%package java
+Summary: Java support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libgcj = %{version}-%{release}
+Requires: libgcj-devel = %{version}-%{release}
+Requires: /usr/share/java/eclipse-ecj.jar
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: gcc-java < %{version}-%{release}
+Obsoletes: gcc43-java
+Autoreq: true
+
+%description java
+This package adds support for compiling Java(tm) programs and
+bytecode into native code.
+
+%package -n libgcj
+Summary: Java runtime library for gcc
+Group: System Environment/Libraries
+%if %{build_java}
+BuildRequires: gtk2-devel >= 2.4.0
+BuildRequires: glib2-devel >= 2.4.0
+BuildRequires: xulrunner-devel
+BuildRequires: libart_lgpl-devel >= 2.1.0
+BuildRequires: alsa-lib-devel
+BuildRequires: libXtst-devel
+BuildRequires: libXt-devel
+%endif
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Requires: zip >= 2.1
+Requires: gtk2 >= 2.4.0
+Requires: glib2 >= 2.4.0
+Requires: libart_lgpl >= 2.1.0
+Obsoletes: libgcj < %{version}-%{release}
+Obsoletes: libgcj43
+Autoreq: true
+
+%description -n libgcj
+The Java(tm) runtime library. You will need this package to run your Java
+programs compiled using the Java compiler from GNU Compiler Collection (gcj).
+
+%package -n libgcj-devel
+Summary: Libraries for Java development using GCC
+Group: Development/Languages
+Requires: libgcj = %{version}-%{release}, %{_prefix}/%{_lib}/libgcj.so.10
+Requires: zlib-devel, %{_prefix}/%{_lib}/libz.so
+Requires: /bin/awk
+Obsoletes: libgcj-devel < %{version}-%{release}
+Obsoletes: libgcj43-devel
+Autoreq: false
+Autoprov: false
+
+%description -n libgcj-devel
+The Java(tm) static libraries and C header files. You will need this
+package to compile your Java programs using the GCC Java compiler (gcj).
+
+%package -n libgcj-src
+Summary: Java library sources from GCC4 preview
+Group: System Environment/Libraries
+Requires: libgcj = %{version}-%{release}
+Autoreq: true
+
+%description -n libgcj-src
+The Java(tm) runtime library sources for use in Eclipse.
+
+%package -n cpp
+Summary: The C Preprocessor
+Group: Development/Languages
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Requires: mpc
+Obsoletes: cpp < %{version}-%{release}
+Obsoletes: cpp43
+Autoreq: true
+
+%description -n cpp
+Cpp is the GNU C-Compatible Compiler Preprocessor.
+Cpp is a macro processor which is used automatically
+by the C compiler to transform your program before actual
+compilation. It is called a macro processor because it allows
+you to define macros, abbreviations for longer
+constructs.
+
+The C preprocessor provides four separate functionalities: the
+inclusion of header files (files of declarations that can be
+substituted into your program); macro expansion (you can define macros,
+and the C preprocessor will replace the macros with their definitions
+throughout the program); conditional compilation (using special
+preprocessing directives, you can include or exclude parts of the
+program according to various conditions); and line control (if you use
+a program to combine or rearrange source files into an intermediate
+file which is then compiled, you can use line control to inform the
+compiler about where each source line originated).
+
+You should install this package if you are a C programmer and you use
+macros.
+
+%package gnat
+Summary: Ada 95 support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libgnat = %{version}-%{release}, libgnat-devel = %{version}-%{release}
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Autoreq: true
+
+%description gnat
+GNAT is a GNU Ada 95 front-end to GCC. This package includes development tools,
+the documents and Ada 95 compiler.
+
+%package -n libgnat
+Summary: GNU Ada 95 runtime shared libraries
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libgnat
+GNAT is a GNU Ada 95 front-end to GCC. This package includes shared libraries,
+which are required to run programs compiled with the GNAT.
+
+%package -n libgnat-devel
+Summary: GNU Ada 95 libraries
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libgnat-devel
+GNAT is a GNU Ada 95 front-end to GCC. This package includes libraries,
+which are required to compile with the GNAT.
+
+%package -n gcc-multilib
+Summary: for 64bit multilib support
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n gcc-multilib
+This is one set of libraries which support 64bit multilib on top of
+32bit enviroment from compiler side.
+
+%prep
+%setup -q -n gcc-%{version}
+%patch0 -p0 -b .hack~
+%patch1 -p0 -b .build-id~
+%patch2 -p0 -b .c++-builtin-redecl~
+%patch4 -p0 -b .java-nomulti~
+%patch9 -p0 -b .pr33763~
+%patch11 -p0 -b .rh341221~
+%patch12 -p0 -b .java-debug-iface-type~
+%patch13 -p0 -b .i386-libgomp~
+%patch16 -p0 -b .libgomp-omp_h-multilib~
+%patch20 -p0 -b .libtool-no-rpath~
+
+%if %{build_libstdcxx_docs}
+%patch29 -p0 -b .libstdc++-docs~
+%endif
+
+%patch30 -p1 -b .pr43572
+%patch40 -p1 -b .atom
+
+#%patch42 -p0 -b .var-track1~
+#%patch43 -p0 -b .var-track2~
+#%patch44 -p0 -b .var-track3~
+
+#%patch45 -p0 -b .max-vartrack-size~
+#%patch46 -p1 -b .max-vartrack-size-2~
+
+# This testcase doesn't compile.
+rm libjava/testsuite/libjava.lang/PR35020*
+
+tar xzf %{SOURCE4}
+
+%patch1000 -p0 -b .fastjar-0.97-segfault~
+%patch9999 -p1 -b .arm-boehm-gc~
+
+%if %{bootstrap_java}
+tar xjf %{SOURCE10}
+%endif
+
+echo 'MeeGo %{version}-%{gcc_release}' > gcc/DEV-PHASE
+
+# Default to -gdwarf-3 rather than -gdwarf-2
+sed -i '/UInteger Var(dwarf_version)/s/Init(2)/Init(3)/' gcc/common.opt
+sed -i 's/\(may be either 2 or 3; the default version is \)2\./\13./' gcc/doc/invoke.texi
+
+cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
+
+# Hack to avoid building multilib libjava
+perl -pi -e 's/^all: all-redirect/ifeq (\$(MULTISUBDIR),)\nall: all-redirect\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^install: install-redirect/ifeq (\$(MULTISUBDIR),)\ninstall: install-redirect\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^check: check-redirect/ifeq (\$(MULTISUBDIR),)\ncheck: check-redirect\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^all: all-recursive/ifeq (\$(MULTISUBDIR),)\nall: all-recursive\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^install: install-recursive/ifeq (\$(MULTISUBDIR),)\ninstall: install-recursive\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-recursive\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
+
+./contrib/gcc_update --touch
+
+LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
+
+%build
+
+%if %{build_java}
+mkdir fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+cd fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+../configure CFLAGS="%{optflags}" --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir}
+make %{?_smp_mflags}
+export PATH=`pwd`${PATH:+:$PATH}
+cd ../../
+%endif
+
+rm -fr obj-%{gcc_target_platform}
+mkdir obj-%{gcc_target_platform}
+cd obj-%{gcc_target_platform}
+
+%if %{build_java}
+%if !%{bootstrap_java}
+mkdir java_hacks
+cd java_hacks
+cp -a ../../libjava/classpath/tools/external external
+mkdir -p gnu/classpath/tools
+cp -a ../../libjava/classpath/tools/gnu/classpath/tools/{common,javah,getopt} gnu/classpath/tools/
+cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties gnu/classpath/tools/common
+cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties gnu/classpath/tools/getopt
+cd external/asm; for i in `find . -name \*.java`; do gcj --encoding ISO-8859-1 -C $i -I.; done; cd ../..
+for i in `find gnu -name \*.java`; do gcj -C $i -I. -Iexternal/asm/; done
+gcj -findirect-dispatch -O2 -fmain=gnu.classpath.tools.javah.Main -I. -Iexternal/asm/ `find . -name \*.class` -o gjavah.real
+cat > gjavah <<EOF
+#!/bin/sh
+export CLASSPATH=`pwd`${CLASSPATH:+:$CLASSPATH}
+exec `pwd`/gjavah.real "\$@"
+EOF
+chmod +x `pwd`/gjavah
+cat > ecj1 <<EOF
+#!/bin/sh
+exec gij -cp /usr/share/java/eclipse-ecj.jar org.eclipse.jdt.internal.compiler.batch.GCCMain "\$@"
+EOF
+chmod +x `pwd`/ecj1
+export PATH=`pwd`${PATH:+:$PATH}
+cd ..
+%endif
+%endif
+
+CC=gcc
+OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//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/-march=i.86//g'`
+%endif
+OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
+case "$OPT_FLAGS" in
+  *-fasynchronous-unwind-tables*)
+    sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables/' \
+      ../gcc/Makefile.in
+    ;;
+esac
+%if %{crossbuild}
+# cross build
+export PATH=/opt/cross/bin:$PATH
+# strip all after -march . no arch specific options in cross-compiler build .
+# -march=core2 -mssse3 -mtune=atom -mfpmath=sse -fasynchronous-unwi
+export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
+%if %{accelerator_crossbuild}
+# adding -rpath to the special crosscompiler
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+%endif
+%endif
+
+CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
+	GCJFLAGS="$OPT_FLAGS" \
+	../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+%ifarch %{arm}
+	--with-bugurl=http://bugzilla.meego.com/ --disable-bootstrap \
+	--enable-shared --enable-threads=posix --disable-checking \
+%else
+%if %{crossbuild}
+	--build=%{gcc_target_platform} \
+	--host=%{gcc_target_platform} \
+	--target=%{cross_gcc_target_platform} \
+	--with-bugurl=http://bugzilla.meego.com/ --disable-bootstrap \
+	--enable-shared --enable-threads=posix --disable-checking \
+%else
+	--with-bugurl=http://bugzilla.meego.com/ --enable-bootstrap \
+	--enable-shared --enable-threads=posix --enable-checking=release \
+%endif
+%if %{build_64bit_multilib}
+	--enable-targets=all \
+	--enable-multilib \
+%endif
+%endif
+	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
+	--enable-gnu-unique-object --enable-lto \
+%if !%{build_ada}
+%if !%{build_java}
+	--enable-languages=c,c++,objc,obj-c++,fortran \
+%else
+	--enable-languages=c,c++,objc,obj-c++,java,fortran \
+%endif
+%else
+%if !%{build_java}
+	--enable-languages=c,c++,objc,obj-c++,fortran,ada \
+%else
+	--enable-languages=c,c++,objc,obj-c++,java,fortran,ada \
+%endif
+%endif
+%if !%{build_java}
+	--disable-libgcj \
+%else
+	--enable-java-awt=gtk --disable-dssi --enable-plugin \
+	--with-java-home=%{_prefix}/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre \
+	--enable-libgcj-multifile \
+%if !%{bootstrap_java}
+	--enable-java-maintainer-mode \
+%endif
+	--with-ecj-jar=/usr/share/java/eclipse-ecj.jar \
+	--disable-libjava-multilib \
+%endif
+%if %{build_cloog}
+	--with-ppl --with-cloog \
+%endif
+%ifarch %{arm}
+	--disable-sjlj-exceptions \
+%endif
+%if !%{crossbuild}
+%ifarch %{ix86} x86_64
+	--with-tune=generic \
+%endif
+%ifarch %{ix86}
+	--with-arch=i686 \
+%endif
+%ifarch x86_64
+	--with-arch_32=i686 \
+%endif
+	--build=%{gcc_target_platform}
+#end for x86
+%else
+%if !%{accelerator_crossbuild}
+	--with-sysroot=%{crosssysroot}
+#end for cross-compiler
+%else
+	--program-transform-name='s/%{cross_gcc_target_platform}-//' \
+	--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_version} \
+	--with-build-sysroot=%{crossbuildsysroot} \
+	--with-sysroot=%{crosssysroot} 
+#end for special cross-compiler
+%endif
+%endif
+
+
+#GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
+%ifarch %{arm}
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS"
+# native ARM
+%else
+%if !%{crossbuild}
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
+# native x86
+%else
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS"
+# crosscompiler
+%endif
+%endif
+
+# Make
+make -C gcc CC="./xgcc -B ./ -O2" all
+
+# Make generated man pages even if Pod::Man is not new enough
+perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
+for i in ../gcc/doc/*.texi; do
+  cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
+done
+make -C gcc generated-manpages
+for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done
+
+# Make generated doxygen pages.
+%if %{build_libstdcxx_docs}
+cd %{gcc_target_platform}/libstdc++-v3
+make doc-html-doxygen
+make doc-man-doxygen
+cd ../..
+%endif
+
+# Copy various doc files here and there
+cd ..
+mkdir -p rpm.doc/gfortran rpm.doc/objc
+mkdir -p rpm.doc/boehm-gc rpm.doc/fastjar rpm.doc/libffi rpm.doc/libjava
+mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}
+sed -e 's, at VERSION@,%{gcc_version},' %{SOURCE2} > rpm.doc/README.libgcjwebplugin.so
+
+for i in {gcc,gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}/ChangeLog*; do
+	cp -p $i rpm.doc/changelogs/$i
+done
+
+(cd gcc/fortran; for i in ChangeLog*; do
+	cp -p $i ../../rpm.doc/gfortran/$i
+done)
+(cd libgfortran; for i in ChangeLog*; do
+	cp -p $i ../rpm.doc/gfortran/$i.libgfortran
+done)
+(cd gcc/objc; for i in README*; do
+	cp -p $i ../../rpm.doc/objc/$i.objc
+done)
+(cd libobjc; for i in README*; do
+	cp -p $i ../rpm.doc/objc/$i.libobjc
+done)
+(cd boehm-gc; for i in ChangeLog*; do
+	cp -p $i ../rpm.doc/boehm-gc/$i.gc
+done)
+(cd fastjar-%{fastjar_ver}; for i in ChangeLog* README*; do
+	cp -p $i ../rpm.doc/fastjar/$i.fastjar
+done)
+(cd libffi; for i in ChangeLog* README* LICENSE; do
+	cp -p $i ../rpm.doc/libffi/$i.libffi
+done)
+(cd libjava; for i in ChangeLog* README*; do
+	cp -p $i ../rpm.doc/libjava/$i.libjava
+done)
+cp -p libjava/LIBGCJ_LICENSE rpm.doc/libjava/
+
+rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
+find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
+
+%if %{build_java_tar}
+find libjava -name \*.h -type f | xargs grep -l '// DO NOT EDIT THIS FILE - it is machine generated' > libjava-classes.list
+find libjava -name \*.class -type f >> libjava-classes.list
+find libjava/testsuite -name \*.jar -type f >> libjava-classes.list
+tar cf - -T libjava-classes.list | bzip2 -9 > $RPM_SOURCE_DIR/libjava-classes-%{version}-%{release}.tar.bz2
+%endif
+
+
+%install
+rm -fr %{buildroot}
+
+cd obj-%{gcc_target_platform}
+
+%if %{build_java}
+export PATH=`pwd`/../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}${PATH:+:$PATH}
+%if !%{bootstrap_java}
+export PATH=`pwd`/java_hacks${PATH:+:$PATH}
+%endif
+%endif
+
+%if !%{crossbuild}
+# native
+TARGET_PLATFORM=%{gcc_target_platform}
+# There are some MP bugs in libstdc++ Makefiles
+make -C %{gcc_target_platform}/libstdc++-v3
+%else
+# cross build
+export PATH=/opt/cross/bin:$PATH
+# strip all after -march . no arch specific options in cross-compiler build .
+# -march=core2 -mssse3 -mtune=atom -mfpmath=sse -fasynchronous-unwi
+export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
+#echo "$OPT_FLAGS"
+#TARGET_PLATFORM=%{cross_gcc_target_platform}
+# There are some MP bugs in libstdc++ Makefiles
+#make -C %{cross_gcc_target_platform}/libstdc++-v3
+%endif
+
+make DESTDIR=%{buildroot} install
+#prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
+#  infodir=%{buildroot}%{_infodir} install
+
+%if !%{crossbuild}
+# native
+# \/\/\/
+%if %{build_java}
+make DESTDIR=%{buildroot} -C %{gcc_target_platform}/libjava install-src.zip
+%endif
+%if %{build_ada}
+chmod 644 %{buildroot}%{_infodir}/gnat*
+%endif
+
+FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+
+ln -sf gcc %{buildroot}%{_prefix}/bin/cc
+mkdir -p %{buildroot}/lib
+ln -sf ..%{_prefix}/bin/cpp %{buildroot}/lib/cpp
+ln -sf gfortran %{buildroot}%{_prefix}/bin/f95
+rm -f %{buildroot}%{_infodir}/dir
+gzip -9 %{buildroot}%{_infodir}/*.info*
+ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc
+
+cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`"
+for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do
+  if ! diff -up $cxxconfig $i; then
+    cat > %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/c++config.h <<EOF
+#ifndef _CPP_CPPCONFIG_WRAPPER
+#define _CPP_CPPCONFIG_WRAPPER 1
+#include <bits/wordsize.h>
+#if __WORDSIZE == 32
+%ifarch %{multilib_64_archs}
+`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)`
+%else
+`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
+%endif
+#else
+%ifarch %{multilib_64_archs}
+`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
+%else
+`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)`
+%endif
+#endif
+#endif
+EOF
+    break
+  fi
+done
+
+for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/ -name c++config.h`; do
+  for i in 1 2 4 8; do
+    sed -i -e 's/#define _GLIBCXX_ATOMIC_BUILTINS_'$i' 1/#ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_'$i'\
+&\
+#endif/' $f
+  done
+done
+
+# Nuke bits/stdc++.h.gch dirs
+# 1) there is no bits/stdc++.h header installed, so when gch file can't be
+#    used, compilation fails
+# 2) sometimes it is hard to match the exact options used for building
+#    libstdc++-v3 or they aren't desirable
+# 3) there are multilib issues, conflicts etc. with this
+# 4) it is huge
+# People can always precompile on their own whatever they want, but
+# shipping this for everybody is unnecessary.
+rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/stdc++.h.gch
+
+%if %{build_libstdcxx_docs}
+libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen
+mkdir -p ../rpm.doc/libstdc++-v3
+cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html
+mv $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api
+mkdir -p %{buildroot}%{_mandir}
+mv $libstdcxx_doc_builddir/man/man3 %{buildroot}%{_mandir}/man3/
+find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
+%endif
+
+if [ -n "$FULLLPATH" ]; then
+  mkdir -p $FULLLPATH
+else
+  FULLLPATH=$FULLPATH
+fi
+
+find %{buildroot} -name \*.la | xargs rm -f
+%if %{build_java}
+find %{buildroot} -name libgcj.a -o -name libgtkpeer.a \
+		     -o -name libgjsmalsa.a -o -name libgcj-tools.a -o -name libjvm.a \
+		     -o -name libgij.a -o -name libgcj_bc.a -o -name libjavamath.a \
+  | xargs rm -f
+
+mv %{buildroot}%{_prefix}/lib/libgcj.spec $FULLPATH/
+sed -i -e 's/lib: /&%%{static:%%eJava programs cannot be linked statically}/' \
+  $FULLPATH/libgcj.spec
+%endif
+
+mkdir -p %{buildroot}/%{_lib}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
+chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
+ln -sf libgcc_s-%{gcc_version}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
+ln -sf /%{_lib}/libgcc_s.so.1 %{buildroot}/%{_libdir}/libgcc_s.so
+ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
+%ifarch %{multilib_64_archs}
+ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
+%endif
+
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
+
+%if %{build_ada}
+mv -f $FULLPATH/adalib/libgnarl-*.so %{buildroot}%{_prefix}/%{_lib}/
+mv -f $FULLPATH/adalib/libgnat-*.so %{buildroot}%{_prefix}/%{_lib}/
+rm -f $FULLPATH/adalib/libgnarl.so* $FULLPATH/adalib/libgnat.so*
+%endif
+
+mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
+  ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+else
+  ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+fi
+
+%if %{build_java}
+pushd ../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+make install DESTDIR=%{buildroot}
+popd
+
+if [ "%{_lib}" != "lib" ]; then
+  mkdir -p %{buildroot}%{_prefix}/%{_lib}/pkgconfig
+  sed '/^libdir/s/lib$/%{_lib}/' %{buildroot}%{_prefix}/lib/pkgconfig/libgcj-*.pc \
+    > %{buildroot}%{_prefix}/%{_lib}/pkgconfig/`basename %{buildroot}%{_prefix}/lib/pkgconfig/libgcj-*.pc`
+fi
+%endif
+
+pushd $FULLPATH
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../libobjc.so.2 libobjc.so
+#FIXME
+rm -fr ../../../libstdc++.so.6.*-gdb.py
+ln -sf ../../../libstdc++.so.6.* libstdc++.so
+ln -sf ../../../libgfortran.so.3.* libgfortran.so
+ln -sf ../../../libgomp.so.1.* libgomp.so
+ln -sf ../../../libmudflap.so.0.* libmudflap.so
+ln -sf ../../../libmudflapth.so.0.* libmudflapth.so
+%if %{build_java}
+ln -sf ../../../libgcj.so.10.* libgcj.so
+ln -sf ../../../libgcj-tools.so.10.* libgcj-tools.so
+ln -sf ../../../libgij.so.10.* libgij.so
+%endif
+else
+ln -sf ../../../../%{_lib}/libobjc.so.2 libobjc.so
+ln -sf ../../../../%{_lib}/libstdc++.so.6.* libstdc++.so
+ln -sf ../../../../%{_lib}/libgfortran.so.3.* libgfortran.so
+ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so
+ln -sf ../../../../%{_lib}/libmudflap.so.0.* libmudflap.so
+ln -sf ../../../../%{_lib}/libmudflapth.so.0.* libmudflapth.so
+%if %{build_java}
+ln -sf ../../../../%{_lib}/libgcj.so.10.* libgcj.so
+ln -sf ../../../../%{_lib}/libgcj-tools.so.10.* libgcj-tools.so
+ln -sf ../../../../%{_lib}/libgij.so.10.* libgij.so
+%endif
+fi
+%if %{build_java}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgcj_bc.so $FULLLPATH/
+%endif
+mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
+mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libobjc.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.*a $FULLLPATH/
+
+%if %{build_ada}
+%ifarch %{multilib_64_archs}
+rm -rf $FULLPATH/32/ada{include,lib}
+%endif
+if [ "$FULLPATH" != "$FULLLPATH" ]; then
+mv -f $FULLPATH/ada{include,lib} $FULLLPATH/
+pushd $FULLLPATH/adalib
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../../../libgnarl-*.so libgnarl.so
+ln -sf ../../../../../libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../libgnat-*.so libgnat.so
+ln -sf ../../../../../libgnat-*.so libgnat-4.4.so
+else
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-4.4.so
+fi
+popd
+else
+pushd $FULLPATH/adalib
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../../libgnarl-*.so libgnarl.so
+ln -sf ../../../../libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../libgnat-*.so libgnat.so
+ln -sf ../../../../libgnat-*.so libgnat-4.4.so
+else
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-4.4.so
+fi
+popd
+fi
+%endif
+
+%ifarch %{multilib_64_archs}
+mkdir -p 32
+ln -sf ../../../../libobjc.so.2 32/libobjc.so
+ln -sf ../`echo ../../../../lib64/libstdc++.so.6.* | sed s~/../lib64/~/~` 32/libstdc++.so
+ln -sf ../`echo ../../../../lib64/libgfortran.so.3.* | sed s~/../lib64/~/~` 32/libgfortran.so
+ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so
+rm -f libmudflap.so libmudflapth.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflap.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflapth.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflap.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflapth.so
+%if %{build_java}
+ln -sf ../`echo ../../../../lib64/libgcj.so.10.* | sed s~/../lib64/~/~` 32/libgcj.so
+ln -sf ../`echo ../../../../lib64/libgcj-tools.so.10.* | sed s~/../lib64/~/~` 32/libgcj-tools.so
+ln -sf ../`echo ../../../../lib64/libgij.so.10.* | sed s~/../lib64/~/~` 32/libgij.so
+%endif
+mv -f %{buildroot}%{_prefix}/lib/libsupc++.*a 32/
+mv -f %{buildroot}%{_prefix}/lib/libgfortran.*a 32/
+mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/
+mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libstdc++.a 32/libstdc++.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libmudflap.a 32/libmudflap.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libmudflapth.a 32/libmudflapth.a
+%if %{build_java}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgcj_bc.so 32/libgcj_bc.so
+%endif
+%if %{build_ada}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/adainclude 32/adainclude
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/adalib 32/adalib
+%endif
+%endif
+
+# Strip debug info from Fortran/ObjC/Java static libraries
+strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \
+		    -o -name libmudflap.a -o -name libmudflapth.a \
+		    -o -name libgcc.a -o -name libgcov.a \) -a -type f`
+popd
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.3.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.so.0.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.2.*
+
+%if %{build_ada}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnarl*so*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnat*so*
+%endif
+
+mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h
+mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h
+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
+
+cat > %{buildroot}%{_prefix}/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+  case "$opt" in
+    -ansi|-std=c89|-std=iso9899:1990) fl="";;
+    -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+	    exit 1;;
+  esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+cat > %{buildroot}%{_prefix}/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+  case "$opt" in
+    -std=c99|-std=iso9899:1999) fl="";;
+    -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+	    exit 1;;
+  esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+chmod 755 %{buildroot}%{_prefix}/bin/c?9
+
+mkdir -p %{buildroot}%{_prefix}/sbin
+%ifarch %{arm}
+patch %{SOURCE1} < %{PATCH41}
+%endif
+gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
+strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
+
+cd ..
+%find_lang %{name}
+%find_lang cpplib
+
+# Remove binaries we will not be including, so that they don't end up in
+# gcc-debuginfo
+rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
+rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
+rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a
+rm -f %{buildroot}%{_prefix}/%{_lib}/libssp*
+rm -f %{buildroot}%{_prefix}/bin/gnative2ascii
+
+%ifarch %{multilib_64_archs}
+# Remove libraries for the other arch on multilib arches
+rm -f %{buildroot}%{_prefix}/lib/lib*.so*
+rm -f %{buildroot}%{_prefix}/lib/lib*.a
+%endif
+
+%if %{build_java}
+mkdir -p %{buildroot}%{_prefix}/share/java/gcj-endorsed \
+	 %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+chmod 755 %{buildroot}%{_prefix}/share/java/gcj-endorsed \
+	  %{buildroot}%{_prefix}/%{_lib}/gcj-%{version} \
+	  %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+touch %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db
+%endif
+# /\/\/\
+# native
+%else
+# cross
+# \/\/\/
+# additional install for cross
+# remove some obsolete files
+%if !%{accelerator_crossbuild}
+#set -x
+rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
+rm -rRf %buildroot/%{_prefix}/share
+#set +x
+%endif
+# /\/\/\
+# cross
+%endif
+
+%if !%{crossbuild}
+# checking and split packaging for native ...
+# native
+# \/\/\/
+
+%check
+%if 0
+cd obj-%{gcc_target_platform}
+
+# run the tests.
+make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || :
+echo ====================TESTING=========================
+( LC_ALL=C ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}'
+echo ====================TESTING END=====================
+mkdir testlogs-%{_target_platform}-%{version}-%{release}
+for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats\|ada'`; do
+  ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
+done
+tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \
+  | uuencode testlogs-%{_target_platform}.tar.bz2 || :
+rm -rf testlogs-%{_target_platform}-%{version}-%{release}
+
+%endif
+
+%clean
+rm -rf %{buildroot}
+
+%post
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
+
+%preun
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
+fi
+
+%post -n cpp
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
+
+%preun -n cpp
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
+fi
+
+%post gfortran
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
+
+%preun gfortran
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
+fi
+
+%post java
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gcj.info.gz || :
+
+%preun java
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gcj.info.gz || :
+fi
+
+%post gnat
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat_ugn.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
+
+%preun gnat
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat_ugn.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
+fi
+
+%post -n libgcc -p %{_prefix}/sbin/libgcc_post_upgrade
+
+%postun -n libgcc -p /sbin/ldconfig
+
+%post -n libstdc++ -p /sbin/ldconfig
+
+%postun -n libstdc++ -p /sbin/ldconfig
+
+%post -n libobjc -p /sbin/ldconfig
+
+%postun -n libobjc -p /sbin/ldconfig
+
+%post -n libgcj
+/sbin/ldconfig
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/cp-tools.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz || :
+
+%preun -n libgcj
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/cp-tools.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz || :
+fi
+
+%postun -n libgcj -p /sbin/ldconfig
+
+%post -n libgfortran -p /sbin/ldconfig
+
+%postun -n libgfortran -p /sbin/ldconfig
+
+%post -n libgnat -p /sbin/ldconfig
+
+%postun -n libgnat -p /sbin/ldconfig
+
+%post -n libgomp
+/sbin/ldconfig
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
+
+%preun -n libgomp
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
+fi
+
+%postun -n libgomp -p /sbin/ldconfig
+
+%post -n libmudflap -p /sbin/ldconfig
+
+%postun -n libmudflap -p /sbin/ldconfig
+
+%files -f %{name}.lang
+%defattr(-,root,root,-)
+%{_prefix}/bin/cc
+%{_prefix}/bin/c89
+%{_prefix}/bin/c99
+%{_prefix}/bin/gcc
+%{_prefix}/bin/gcov
+%ifnarch %{arm}
+%{_prefix}/bin/%{gcc_target_platform}-*
+%endif
+%{_mandir}/man1/gcc.1*
+%{_mandir}/man1/gcov.1*
+%{_mandir}/man7/*
+%{_infodir}/gcc*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include/*
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/*
+
+%ifarch %{arm}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/ssp.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/stdio.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/string.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/unistd.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdfix.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/install-tools
+%endif
+
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.spec
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
+%endif
+%dir %{_prefix}/libexec/getconf
+%{_prefix}/libexec/getconf/default
+%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING*
+
+%files -n cpp -f cpplib.lang
+%defattr(-,root,root,-)
+/lib/cpp
+%{_prefix}/bin/cpp
+%{_mandir}/man1/cpp.1*
+%{_infodir}/cpp*
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+
+%files -n libgcc
+%defattr(-,root,root,-)
+/%{_lib}/libgcc_s-%{gcc_version}.so.1
+/%{_lib}/libgcc_s.*
+/%{_libdir}/libgcc_s.*
+%{_prefix}/sbin/libgcc_post_upgrade
+%doc gcc/COPYING.LIB
+
+%files c++
+%defattr(-,root,root,-)
+%ifnarch %{arm}
+%{_prefix}/bin/%{gcc_target_platform}-*++
+%endif
+%{_prefix}/bin/g++
+%{_prefix}/bin/c++
+%{_mandir}/man1/g++.1*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libsupc++.a
+%endif
+%ifarch %{multilib_64_archs}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
+%endif
+%doc rpm.doc/changelogs/gcc/cp/ChangeLog*
+
+%files -n libstdc++
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libstdc++.*
+#/usr/share/locale/de/LC_MESSAGES/libstdc++.mo
+#/usr/share/locale/fr/LC_MESSAGES/libstdc++.mo
+
+%files -n libstdc++-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/include/c++
+%dir %{_prefix}/include/c++/%{gcc_version}
+%{_prefix}/include/c++/%{gcc_version}/[^gjos]*
+%{_prefix}/include/c++/%{gcc_version}/os*
+%{_prefix}/include/c++/%{gcc_version}/s[^u]*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a  
+%ifnarch  %{multilib_64_archs}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
+%endif
+%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README*
+
+%if %{build_libstdcxx_docs}
+%files -n libstdc++-docs
+%defattr(-,root,root)
+%{_mandir}/man3/*
+%doc rpm.doc/libstdc++-v3/html
+%endif
+
+%files objc
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/objc
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1obj
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.so
+%endif
+%doc rpm.doc/objc/*
+%doc libobjc/THREADS* rpm.doc/changelogs/libobjc/ChangeLog*
+
+%files objc++
+%defattr(-,root,root,-)
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1objplus
+
+%files -n libobjc
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libobjc.*
+
+%files gfortran
+%defattr(-,root,root,-)
+%{_prefix}/bin/gfortran
+%{_prefix}/bin/f95
+%{_mandir}/man1/gfortran.1*
+%{_infodir}/gfortran*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.f90
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.mod
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib_kinds.mod
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/f951
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.so
+%endif
+%doc rpm.doc/gfortran/*
+
+%files -n libgfortran
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libgfortran.*
+
+%if %{build_java}
+%files java
+%defattr(-,root,root,-)
+%{_prefix}/bin/gcj
+%{_prefix}/bin/gjavah
+%{_prefix}/bin/gcjh
+%{_prefix}/bin/jcf-dump
+%{_mandir}/man1/gcj.1*
+%{_mandir}/man1/jcf-dump.1*
+%{_mandir}/man1/gjavah.1*
+%{_mandir}/man1/gcjh.1*
+%{_infodir}/gcj*
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jc1
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/ecj1
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jvgenmain
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj-tools.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgij.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj-tools.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj_bc.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgij.so
+%endif
+%doc rpm.doc/changelogs/gcc/java/ChangeLog*
+
+%files -n libgcj
+%defattr(-,root,root,-)
+%{_prefix}/bin/jv-convert
+%{_prefix}/bin/gij
+%{_prefix}/bin/gjar
+%{_prefix}/bin/fastjar
+%{_prefix}/bin/grepjar
+%{_prefix}/bin/grmic
+%{_prefix}/bin/grmid
+%{_prefix}/bin/grmiregistry
+%{_prefix}/bin/gtnameserv
+%{_prefix}/bin/gkeytool
+%{_prefix}/bin/gorbd
+%{_prefix}/bin/gserialver
+%{_prefix}/bin/gcj-dbtool
+%if %{include_gappletviewer}
+%{_prefix}/bin/gappletviewer
+%{_mandir}/man1/gappletviewer.1*
+%endif
+%{_prefix}/bin/gjarsigner
+%{_mandir}/man1/fastjar.1*
+%{_mandir}/man1/grepjar.1*
+%{_mandir}/man1/gjar.1*
+%{_mandir}/man1/gjarsigner.1*
+%{_mandir}/man1/jv-convert.1*
+%{_mandir}/man1/gij.1*
+%{_mandir}/man1/grmic.1*
+%{_mandir}/man1/grmiregistry.1*
+%{_mandir}/man1/gcj-dbtool.1*
+%{_mandir}/man1/gkeytool.1*
+%{_mandir}/man1/gorbd.1*
+%{_mandir}/man1/grmid.1*
+%{_mandir}/man1/gserialver.1*
+%{_mandir}/man1/gtnameserv.1*
+%{_infodir}/fastjar.info*
+%{_infodir}/cp-tools.info*
+%{_prefix}/%{_lib}/libgcj.so.*
+%{_prefix}/%{_lib}/libgcj-tools.so.*
+%{_prefix}/%{_lib}/libgcj_bc.so.*
+%{_prefix}/%{_lib}/libgij.so.*
+%dir %{_prefix}/%{_lib}/gcj-%{version}
+%{_prefix}/%{_lib}/gcj-%{version}/libgtkpeer.so
+%{_prefix}/%{_lib}/gcj-%{version}/libgjsmalsa.so
+%{_prefix}/%{_lib}/gcj-%{version}/libjawt.so
+%if %{include_gappletviewer}
+%{_prefix}/%{_lib}/gcj-%{version}/libgcjwebplugin.so
+%endif
+%{_prefix}/%{_lib}/gcj-%{version}/libjvm.so
+%{_prefix}/%{_lib}/gcj-%{version}/libjavamath.so
+%dir %{_prefix}/share/java
+%{_prefix}/share/java/[^sl]*
+%{_prefix}/share/java/libgcj-%{version}.jar
+%dir %{_prefix}/%{_lib}/security
+%config(noreplace) %{_prefix}/%{_lib}/security/classpath.security
+%{_prefix}/%{_lib}/logging.properties
+%dir %{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_prefix}/%{_lib}/gcj-%{version}/classmap.db
+%if %{include_gappletviewer}
+%doc rpm.doc/README.libgcjwebplugin.so
+%endif
+
+%files -n libgcj-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/gcj
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jawt.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jawt_md.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jni.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jni_md.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jvmpi.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.spec
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj_bc.so  
+%dir %{_prefix}/include/c++
+%dir %{_prefix}/include/c++/%{gcc_version}
+%{_prefix}/include/c++/%{gcc_version}/[gj]*
+%{_prefix}/include/c++/%{gcc_version}/org
+%{_prefix}/include/c++/%{gcc_version}/sun
+%{_prefix}/%{_lib}/pkgconfig/libgcj-*.pc
+%doc rpm.doc/boehm-gc/* rpm.doc/fastjar/* rpm.doc/libffi/*
+%doc rpm.doc/libjava/*
+
+%files -n libgcj-src
+%defattr(-,root,root,-)
+%dir %{_prefix}/share/java
+%{_prefix}/share/java/src*.zip
+%{_prefix}/share/java/libgcj-tools-%{version}.jar
+%endif
+
+%if %{build_ada}
+%files gnat
+%defattr(-,root,root,-)
+%{_prefix}/bin/gnat*
+%{_infodir}/gnat*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/adainclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/adalib
+%endif
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/gnat1
+%doc rpm.doc/changelogs/gcc/ada/ChangeLog*
+
+%files -n libgnat
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libgnat-*.so
+%{_prefix}/%{_lib}/libgnarl-*.so
+
+%files -n libgnat-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adainclude  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adalib  
+%endif
+
+%files -n libgomp
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libgomp.*
+%{_infodir}/libgomp.info*
+%doc rpm.doc/changelogs/libgomp/ChangeLog*
+
+%files -n libmudflap
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libmudflap.*
+%{_prefix}/%{_lib}/libmudflapth.*
+
+%files -n libmudflap-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mf-runtime.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.a  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.a  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.so  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.so  
+%doc rpm.doc/changelogs/libmudflap/ChangeLog*
+
+%if %{build_64bit_multilib}
+%files -n gcc-multilib
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortranbegin.a
+%dir %{_prefix}/lib64
+%{_prefix}/lib64/*
+%endif
+
+# /\/\/\
+# native
+%else
+# cross
+# \/\/\/
+%files
+%defattr(-,root,root,-)
+%{_prefix}
+# /\/\/\
+# cross
+%endif

++++++ new spec file:
--- cross-armv7l-gcc-accel.spec
+++ cross-armv7l-gcc-accel.spec
+# Combined gcc / cross-armv*-gcc(-accel) specfile
+Name: cross-armv7l-gcc-accel
+# Keep Name on top !
+
+# crossbuild / accelerator section
+# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
+%define crossbuild 0
+%define accelerator_crossbuild 0
+%if "%{name}" != "gcc"
+# this is the ix86 -> arm cross compiler (cross-armv*-gcc)
+#
+# cross arch retrieval
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc/\\1/")
+# We set requires/provides by hand and disable post-build-checks.
+# Captain Trunk: Sledge, you cannot disarm that nuclear bomb!
+# Sledge Hammer: Trust me, I know what I'm doing. 
+AutoReqProv: 0
+AutoReq: false
+BuildRequires: -rpmlint-Moblin -rpmlint-mini -post-build-checks
+# cross platform
+%define cross_gcc_target_platform %{crossarch}-meego-linux-gnueabi
+# gcc_target_platform holds the host (executing the compiler)
+# cross_gcc_target_platform holds the target (for which the compiler is producing binaries)
+# prefix for cross compiler
+%define _prefix /opt/cross
+# strip of 'foreign arch' symbols fails
+%define __strip /bin/true
+# sysroot for cross-compiler
+%define crosssysroot %{_prefix}/%{cross_gcc_target_platform}/sys-root
+# flag
+%define crossbuild 1
+# macros in buildrequires is hard to expand for the scheduler (e.g. crossarch) which would make this easier.
+#BuildRequires: cross-%{crossarch}-glibc cross-%{crossarch}-glibc-devel cross-%{crossarch}-glibc-headers
+#BuildRequires: cross-%{crossarch}-kernel-headers cross-%{crossarch}-binutils
+# Fixme: find way to make this without listing every package
+%if "%{name}" == "cross-armv5tel-gcc"
+BuildRequires: cross-armv5tel-glibc cross-armv5tel-glibc-devel cross-armv5tel-glibc-headers
+BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
+%endif
+%if "%{name}" == "cross-armv7l-gcc"
+BuildRequires: cross-armv7l-glibc cross-armv7l-glibc-devel cross-armv7l-glibc-headers
+BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
+%endif
+# Fixme: see above
+%if "%{name}" == "cross-armv5tel-gcc-accel"
+BuildRequires: cross-armv5tel-glibc cross-armv5tel-glibc-devel cross-armv5tel-glibc-headers
+BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
+%endif
+%if "%{name}" == "cross-armv7l-gcc-accel"
+BuildRequires: cross-armv7l-glibc cross-armv7l-glibc-devel cross-armv7l-glibc-headers
+BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
+%endif
+# single target atm.
+ExclusiveArch: %ix86
+#
+# special handling for MeeGo ARM build acceleration
+# cross-armv*-gcc-accel
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+# cross architecture
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+# cross target platform
+%define cross_gcc_target_platform %{crossarch}-meego-linux-gnueabi
+# prefix - as it's going to "replace" the original compiler ...
+%define _prefix /usr
+# cross-build sets sysroot as default , we need to override this a bit
+%define crosssysroot /
+# where to find the libs during the build
+%define crossbuildsysroot /opt/cross/%{cross_gcc_target_platform}/sys-root
+# flags
+%define crossbuild 1
+%define accelerator_crossbuild 1
+# where to find the libs at runtime
+%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define _build_name_fmt    %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
+%endif
+# end special accel
+%endif
+# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
+# end crossbuild / accelerator section
+
+%global gcc_version 4.5.0
+%global gcc_release 1
+%global _unpackaged_files_terminate_build 0
+%global include_gappletviewer 0
+%global build_ada 0
+%global build_java 0
+%ifarch %{arm}
+%global build_cloog 0
+%else
+%if %{crossbuild}
+%global build_cloog 0
+%else
+%global build_cloog 1
+%endif
+%endif
+%global build_libstdcxx_docs 0
+%global bootstrap_java %{?_with_java_bootstrap:%{build_java}}%{!?_with_java_bootstrap:0}
+%global build_java_tar %{?_with_java_tar:%{build_java}}%{!?_with_java_tar:0}
+%global multilib_64_archs x86_64
+%ifarch x86_64
+%global multilib_32_arch i686
+%endif
+%global build_64bit_multilib 0
+
+Summary: Various compilers (C, C++, Objective-C, Java, ...)
+Version: %{gcc_version}
+Release: %{gcc_release}
+License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
+Group: Development/Languages
+URL: http://gcc.gnu.org
+Source0: gcc-%{version}.tar.bz2
+Source1: libgcc_post_upgrade.c
+Source2: README.libgcjwebplugin.so
+%global fastjar_ver 0.97
+Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz
+Source100: gcc-4.5.0-rpmlintrc
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: binutils >= 2.19.51.0.14
+BuildRequires: glibc-static
+BuildRequires: zlib-devel, gettext,  bison, flex, texinfo
+BuildRequires: mpc-devel
+BuildRequires: glibc-devel >= 2.4.90-13
+BuildRequires: elfutils-devel >= 0.72
+
+%if %{build_java}
+BuildRequires: /usr/share/java/eclipse-ecj.jar, zip, unzip
+%if %{bootstrap_java}
+Source10: libjava-classes-%{version}-%{release}.tar.bz2
+%else
+BuildRequires: gcc-java, libgcj
+%endif
+%endif
+
+%if %{build_ada}
+# Ada requires Ada to build
+BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1
+%endif
+
+%if %{build_cloog}
+BuildRequires: ppl >= 0.10, ppl-devel >= 0.10, cloog-ppl >= 0.15, cloog-ppl-devel >= 0.15
+%endif
+
+%if %{build_libstdcxx_docs}
+BuildRequires: doxygen
+BuildRequires: graphviz
+%endif
+
+Requires: cpp = %{version}-%{release}
+Requires: libgcc >= %{version}-%{release}
+Requires: libgomp = %{version}-%{release}
+Requires: glibc-devel
+
+%if !%{build_ada}
+Obsoletes: gcc-gnat < %{version}-%{release}
+Obsoletes: libgnat < %{version}-%{release}
+%endif
+
+%if %{build_cloog}
+Requires: cloog-ppl >= 0.15
+%endif
+
+%if %{build_64bit_multilib}
+Requires: glibc64bit-helper
+%endif
+
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: gcc < %{version}-%{release}
+Obsoletes: gcc43
+AutoReq: true
+
+Patch0: gcc44-hack.patch
+Patch1: gcc44-build-id.patch
+Patch2: gcc44-c++-builtin-redecl.patch
+Patch4: gcc44-java-nomulti.patch
+Patch9: gcc44-pr33763.patch
+Patch11: gcc44-rh341221.patch
+Patch12: gcc44-java-debug-iface-type.patch
+Patch13: gcc44-i386-libgomp.patch
+Patch16: gcc44-libgomp-omp_h-multilib.patch
+Patch20: gcc44-libtool-no-rpath.patch
+Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
+
+Patch40: gcc45-use-atom.patch
+Patch41: libgcc_post_upgrade.c.arm.patch
+
+#Patch42: var-tracking1.patch
+#Patch43: var-tracking2.patch
+#Patch44: var-tracking3.patch
+
+#Patch45: gcc44-max-vartrack-size.patch
+#Patch46: gcc44-max-vartrack-size-2.patch
+
+Patch1000: fastjar-0.97-segfault.patch
+Patch9999: gcc44-ARM-boehm-gc-stack-qemu.patch
+
+#We need -gnueabi indicator for ARM
+%ifnarch %{arm}
+%global _gnu %{nil}
+%endif
+%global gcc_target_platform %{_target_platform}
+
+%description
+The gcc package contains the GNU Compiler Collection version 4.5.0.
+You'll need this package in order to compile C code.
+
+%package -n libgcc
+Summary: GCC version 4.5.0 shared support library
+Group: System Environment/Libraries
+Obsoletes: libgcc < %{version}-%{release}
+Obsoletes: libgcc43
+Autoreq: false
+
+%description -n libgcc
+This package contains GCC shared support library which is needed
+e.g. for exception handling support.
+
+%package c++
+Summary: C++ support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libstdc++ = %{version}-%{release}
+Requires: libstdc++-devel = %{version}-%{release}
+Obsoletes: gcc-c++ < %{version}-%{release}
+Obsoletes: gcc43-c++
+Autoreq: true
+
+%description c++
+This package adds C++ support to the GNU Compiler Collection.
+It includes support for most of the current C++ specification,
+including templates and exception handling.
+
+%package -n libstdc++
+Summary: GNU Standard C++ Library
+Group: System Environment/Libraries
+Obsoletes: libstdc++ < %{version}-%{release}
+Obsoletes: libstdc++43
+Obsoletes: libstdc++6 < %{version}-%{release}
+Autoreq: true
+Requires: glibc 
+
+%description -n libstdc++
+The libstdc++ package contains a rewritten standard compliant GCC Standard
+C++ Library.
+
+%package -n libstdc++-devel
+Summary: Header files and libraries for C++ development
+Group: Development/Libraries
+Requires: libstdc++ = %{version}-%{release}
+Obsoletes: libstdc++-devel < %{version}-%{release}
+Obsoletes: libstdc++43-devel
+Autoreq: true
+
+%description -n libstdc++-devel
+This is the GNU implementation of the standard C++ libraries.  This
+package includes the header files and libraries needed for C++
+development. This includes rewritten implementation of STL.
+
+%package -n libstdc++-docs
+Summary: Documentation for the GNU standard C++ library
+Group: Development/Libraries
+Obsoletes: libstdc++-docs < %{version}-%{release}
+Obsoletes: libstdc++43-doc
+Autoreq: true
+
+%description -n libstdc++-docs
+Manual, doxygen generated API information and Frequently Asked Questions
+for the GNU standard C++ library.
+
+%package objc
+Summary: Objective-C support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libobjc = %{version}-%{release}
+Obsoletes: gcc-objc < %{version}-%{release}
+Obsoletes: gcc43-objc
+Autoreq: true
+
+%description objc
+gcc-objc provides Objective-C support for the GCC.
+Mainly used on systems running NeXTSTEP, Objective-C is an
+object-oriented derivative of the C language.
+
+%package objc++
+Summary: Objective-C++ support for GCC
+Group: Development/Languages
+Requires: gcc-c++ = %{version}-%{release}, gcc-objc = %{version}-%{release}
+Obsoletes: gcc-objc++ < %{version}-%{release}
+Obsoletes: gcc43-obj-c++ gcc43-objc++
+Autoreq: true
+
+%description objc++
+gcc-objc++ package provides Objective-C++ support for the GCC.
+
+%package -n libobjc
+Summary: Objective-C runtime
+Group: System Environment/Libraries
+Obsoletes: libobjc < %{version}-%{release}
+Obsoletes: libobjc43
+Autoreq: true
+
+%description -n libobjc
+This package contains Objective-C shared library which is needed to run
+Objective-C dynamically linked programs.
+
+%package gfortran
+Summary: Fortran support
+Group: Development/Languages
+BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1
+Requires: gcc = %{version}-%{release}
+Requires: libgfortran = %{version}-%{release}
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: gcc-fortran < %{version}-%{release}
+Obsoletes: gcc43-fortran
+Autoreq: true
+Provides: gcc-fortran
+
+%description gfortran
+The gcc-gfortran package provides support for compiling Fortran
+programs with the GNU Compiler Collection.
+
+%package -n libgfortran
+Summary: Fortran runtime
+Group: System Environment/Libraries
+Obsoletes: libgfortran < %{version}-%{release}
+Obsoletes: libgfortran43
+Autoreq: true
+
+%description -n libgfortran
+This package contains Fortran shared library which is needed to run
+Fortran dynamically linked programs.
+
+%package -n libgomp
+Summary: GCC OpenMP v3.0 shared support library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: libgomp < %{version}-%{release}
+Obsoletes: libgomp43
+
+%description -n libgomp
+This package contains GCC shared support library which is needed
+for OpenMP v3.0 support.
+
+%package -n libmudflap
+Summary: GCC mudflap shared support library
+Group: System Environment/Libraries
+
+%description -n libmudflap
+This package contains GCC shared support library which is needed
+for mudflap support.
+
+%package -n libmudflap-devel
+Summary: GCC mudflap support
+Group: Development/Libraries
+Requires: libmudflap = %{version}-%{release}
+Requires: gcc = %{version}-%{release}
+
+%description -n libmudflap-devel
+This package contains headers and static libraries for building
+mudflap-instrumented programs.
+
+To instrument a non-threaded program, add -fmudflap
+option to GCC and when linking add -lmudflap, for threaded programs
+also add -fmudflapth and -lmudflapth.
+
+%package java
+Summary: Java support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libgcj = %{version}-%{release}
+Requires: libgcj-devel = %{version}-%{release}
+Requires: /usr/share/java/eclipse-ecj.jar
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: gcc-java < %{version}-%{release}
+Obsoletes: gcc43-java
+Autoreq: true
+
+%description java
+This package adds support for compiling Java(tm) programs and
+bytecode into native code.
+
+%package -n libgcj
+Summary: Java runtime library for gcc
+Group: System Environment/Libraries
+%if %{build_java}
+BuildRequires: gtk2-devel >= 2.4.0
+BuildRequires: glib2-devel >= 2.4.0
+BuildRequires: xulrunner-devel
+BuildRequires: libart_lgpl-devel >= 2.1.0
+BuildRequires: alsa-lib-devel
+BuildRequires: libXtst-devel
+BuildRequires: libXt-devel
+%endif
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Requires: zip >= 2.1
+Requires: gtk2 >= 2.4.0
+Requires: glib2 >= 2.4.0
+Requires: libart_lgpl >= 2.1.0
+Obsoletes: libgcj < %{version}-%{release}
+Obsoletes: libgcj43
+Autoreq: true
+
+%description -n libgcj
+The Java(tm) runtime library. You will need this package to run your Java
+programs compiled using the Java compiler from GNU Compiler Collection (gcj).
+
+%package -n libgcj-devel
+Summary: Libraries for Java development using GCC
+Group: Development/Languages
+Requires: libgcj = %{version}-%{release}, %{_prefix}/%{_lib}/libgcj.so.10
+Requires: zlib-devel, %{_prefix}/%{_lib}/libz.so
+Requires: /bin/awk
+Obsoletes: libgcj-devel < %{version}-%{release}
+Obsoletes: libgcj43-devel
+Autoreq: false
+Autoprov: false
+
+%description -n libgcj-devel
+The Java(tm) static libraries and C header files. You will need this
+package to compile your Java programs using the GCC Java compiler (gcj).
+
+%package -n libgcj-src
+Summary: Java library sources from GCC4 preview
+Group: System Environment/Libraries
+Requires: libgcj = %{version}-%{release}
+Autoreq: true
+
+%description -n libgcj-src
+The Java(tm) runtime library sources for use in Eclipse.
+
+%package -n cpp
+Summary: The C Preprocessor
+Group: Development/Languages
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Requires: mpc
+Obsoletes: cpp < %{version}-%{release}
+Obsoletes: cpp43
+Autoreq: true
+
+%description -n cpp
+Cpp is the GNU C-Compatible Compiler Preprocessor.
+Cpp is a macro processor which is used automatically
+by the C compiler to transform your program before actual
+compilation. It is called a macro processor because it allows
+you to define macros, abbreviations for longer
+constructs.
+
+The C preprocessor provides four separate functionalities: the
+inclusion of header files (files of declarations that can be
+substituted into your program); macro expansion (you can define macros,
+and the C preprocessor will replace the macros with their definitions
+throughout the program); conditional compilation (using special
+preprocessing directives, you can include or exclude parts of the
+program according to various conditions); and line control (if you use
+a program to combine or rearrange source files into an intermediate
+file which is then compiled, you can use line control to inform the
+compiler about where each source line originated).
+
+You should install this package if you are a C programmer and you use
+macros.
+
+%package gnat
+Summary: Ada 95 support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libgnat = %{version}-%{release}, libgnat-devel = %{version}-%{release}
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Autoreq: true
+
+%description gnat
+GNAT is a GNU Ada 95 front-end to GCC. This package includes development tools,
+the documents and Ada 95 compiler.
+
+%package -n libgnat
+Summary: GNU Ada 95 runtime shared libraries
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libgnat
+GNAT is a GNU Ada 95 front-end to GCC. This package includes shared libraries,
+which are required to run programs compiled with the GNAT.
+
+%package -n libgnat-devel
+Summary: GNU Ada 95 libraries
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libgnat-devel
+GNAT is a GNU Ada 95 front-end to GCC. This package includes libraries,
+which are required to compile with the GNAT.
+
+%package -n gcc-multilib
+Summary: for 64bit multilib support
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n gcc-multilib
+This is one set of libraries which support 64bit multilib on top of
+32bit enviroment from compiler side.
+
+%prep
+%setup -q -n gcc-%{version}
+%patch0 -p0 -b .hack~
+%patch1 -p0 -b .build-id~
+%patch2 -p0 -b .c++-builtin-redecl~
+%patch4 -p0 -b .java-nomulti~
+%patch9 -p0 -b .pr33763~
+%patch11 -p0 -b .rh341221~
+%patch12 -p0 -b .java-debug-iface-type~
+%patch13 -p0 -b .i386-libgomp~
+%patch16 -p0 -b .libgomp-omp_h-multilib~
+%patch20 -p0 -b .libtool-no-rpath~
+
+%if %{build_libstdcxx_docs}
+%patch29 -p0 -b .libstdc++-docs~
+%endif
+
+%patch30 -p1 -b .pr43572
+%patch40 -p1 -b .atom
+
+#%patch42 -p0 -b .var-track1~
+#%patch43 -p0 -b .var-track2~
+#%patch44 -p0 -b .var-track3~
+
+#%patch45 -p0 -b .max-vartrack-size~
+#%patch46 -p1 -b .max-vartrack-size-2~
+
+# This testcase doesn't compile.
+rm libjava/testsuite/libjava.lang/PR35020*
+
+tar xzf %{SOURCE4}
+
+%patch1000 -p0 -b .fastjar-0.97-segfault~
+%patch9999 -p1 -b .arm-boehm-gc~
+
+%if %{bootstrap_java}
+tar xjf %{SOURCE10}
+%endif
+
+echo 'MeeGo %{version}-%{gcc_release}' > gcc/DEV-PHASE
+
+# Default to -gdwarf-3 rather than -gdwarf-2
+sed -i '/UInteger Var(dwarf_version)/s/Init(2)/Init(3)/' gcc/common.opt
+sed -i 's/\(may be either 2 or 3; the default version is \)2\./\13./' gcc/doc/invoke.texi
+
+cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
+
+# Hack to avoid building multilib libjava
+perl -pi -e 's/^all: all-redirect/ifeq (\$(MULTISUBDIR),)\nall: all-redirect\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^install: install-redirect/ifeq (\$(MULTISUBDIR),)\ninstall: install-redirect\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^check: check-redirect/ifeq (\$(MULTISUBDIR),)\ncheck: check-redirect\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^all: all-recursive/ifeq (\$(MULTISUBDIR),)\nall: all-recursive\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^install: install-recursive/ifeq (\$(MULTISUBDIR),)\ninstall: install-recursive\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-recursive\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
+
+./contrib/gcc_update --touch
+
+LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
+
+%build
+
+%if %{build_java}
+mkdir fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+cd fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+../configure CFLAGS="%{optflags}" --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir}
+make %{?_smp_mflags}
+export PATH=`pwd`${PATH:+:$PATH}
+cd ../../
+%endif
+
+rm -fr obj-%{gcc_target_platform}
+mkdir obj-%{gcc_target_platform}
+cd obj-%{gcc_target_platform}
+
+%if %{build_java}
+%if !%{bootstrap_java}
+mkdir java_hacks
+cd java_hacks
+cp -a ../../libjava/classpath/tools/external external
+mkdir -p gnu/classpath/tools
+cp -a ../../libjava/classpath/tools/gnu/classpath/tools/{common,javah,getopt} gnu/classpath/tools/
+cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties gnu/classpath/tools/common
+cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties gnu/classpath/tools/getopt
+cd external/asm; for i in `find . -name \*.java`; do gcj --encoding ISO-8859-1 -C $i -I.; done; cd ../..
+for i in `find gnu -name \*.java`; do gcj -C $i -I. -Iexternal/asm/; done
+gcj -findirect-dispatch -O2 -fmain=gnu.classpath.tools.javah.Main -I. -Iexternal/asm/ `find . -name \*.class` -o gjavah.real
+cat > gjavah <<EOF
+#!/bin/sh
+export CLASSPATH=`pwd`${CLASSPATH:+:$CLASSPATH}
+exec `pwd`/gjavah.real "\$@"
+EOF
+chmod +x `pwd`/gjavah
+cat > ecj1 <<EOF
+#!/bin/sh
+exec gij -cp /usr/share/java/eclipse-ecj.jar org.eclipse.jdt.internal.compiler.batch.GCCMain "\$@"
+EOF
+chmod +x `pwd`/ecj1
+export PATH=`pwd`${PATH:+:$PATH}
+cd ..
+%endif
+%endif
+
+CC=gcc
+OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//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/-march=i.86//g'`
+%endif
+OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
+case "$OPT_FLAGS" in
+  *-fasynchronous-unwind-tables*)
+    sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables/' \
+      ../gcc/Makefile.in
+    ;;
+esac
+%if %{crossbuild}
+# cross build
+export PATH=/opt/cross/bin:$PATH
+# strip all after -march . no arch specific options in cross-compiler build .
+# -march=core2 -mssse3 -mtune=atom -mfpmath=sse -fasynchronous-unwi
+export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
+%if %{accelerator_crossbuild}
+# adding -rpath to the special crosscompiler
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+%endif
+%endif
+
+CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
+	GCJFLAGS="$OPT_FLAGS" \
+	../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+%ifarch %{arm}
+	--with-bugurl=http://bugzilla.meego.com/ --disable-bootstrap \
+	--enable-shared --enable-threads=posix --disable-checking \
+%else
+%if %{crossbuild}
+	--build=%{gcc_target_platform} \
+	--host=%{gcc_target_platform} \
+	--target=%{cross_gcc_target_platform} \
+	--with-bugurl=http://bugzilla.meego.com/ --disable-bootstrap \
+	--enable-shared --enable-threads=posix --disable-checking \
+%else
+	--with-bugurl=http://bugzilla.meego.com/ --enable-bootstrap \
+	--enable-shared --enable-threads=posix --enable-checking=release \
+%endif
+%if %{build_64bit_multilib}
+	--enable-targets=all \
+	--enable-multilib \
+%endif
+%endif
+	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
+	--enable-gnu-unique-object --enable-lto \
+%if !%{build_ada}
+%if !%{build_java}
+	--enable-languages=c,c++,objc,obj-c++,fortran \
+%else
+	--enable-languages=c,c++,objc,obj-c++,java,fortran \
+%endif
+%else
+%if !%{build_java}
+	--enable-languages=c,c++,objc,obj-c++,fortran,ada \
+%else
+	--enable-languages=c,c++,objc,obj-c++,java,fortran,ada \
+%endif
+%endif
+%if !%{build_java}
+	--disable-libgcj \
+%else
+	--enable-java-awt=gtk --disable-dssi --enable-plugin \
+	--with-java-home=%{_prefix}/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre \
+	--enable-libgcj-multifile \
+%if !%{bootstrap_java}
+	--enable-java-maintainer-mode \
+%endif
+	--with-ecj-jar=/usr/share/java/eclipse-ecj.jar \
+	--disable-libjava-multilib \
+%endif
+%if %{build_cloog}
+	--with-ppl --with-cloog \
+%endif
+%ifarch %{arm}
+	--disable-sjlj-exceptions \
+%endif
+%if !%{crossbuild}
+%ifarch %{ix86} x86_64
+	--with-tune=generic \
+%endif
+%ifarch %{ix86}
+	--with-arch=i686 \
+%endif
+%ifarch x86_64
+	--with-arch_32=i686 \
+%endif
+	--build=%{gcc_target_platform}
+#end for x86
+%else
+%if !%{accelerator_crossbuild}
+	--with-sysroot=%{crosssysroot}
+#end for cross-compiler
+%else
+	--program-transform-name='s/%{cross_gcc_target_platform}-//' \
+	--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_version} \
+	--with-build-sysroot=%{crossbuildsysroot} \
+	--with-sysroot=%{crosssysroot} 
+#end for special cross-compiler
+%endif
+%endif
+
+
+#GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
+%ifarch %{arm}
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS"
+# native ARM
+%else
+%if !%{crossbuild}
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
+# native x86
+%else
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS"
+# crosscompiler
+%endif
+%endif
+
+# Make
+make -C gcc CC="./xgcc -B ./ -O2" all
+
+# Make generated man pages even if Pod::Man is not new enough
+perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
+for i in ../gcc/doc/*.texi; do
+  cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
+done
+make -C gcc generated-manpages
+for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done
+
+# Make generated doxygen pages.
+%if %{build_libstdcxx_docs}
+cd %{gcc_target_platform}/libstdc++-v3
+make doc-html-doxygen
+make doc-man-doxygen
+cd ../..
+%endif
+
+# Copy various doc files here and there
+cd ..
+mkdir -p rpm.doc/gfortran rpm.doc/objc
+mkdir -p rpm.doc/boehm-gc rpm.doc/fastjar rpm.doc/libffi rpm.doc/libjava
+mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}
+sed -e 's, at VERSION@,%{gcc_version},' %{SOURCE2} > rpm.doc/README.libgcjwebplugin.so
+
+for i in {gcc,gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}/ChangeLog*; do
+	cp -p $i rpm.doc/changelogs/$i
+done
+
+(cd gcc/fortran; for i in ChangeLog*; do
+	cp -p $i ../../rpm.doc/gfortran/$i
+done)
+(cd libgfortran; for i in ChangeLog*; do
+	cp -p $i ../rpm.doc/gfortran/$i.libgfortran
+done)
+(cd gcc/objc; for i in README*; do
+	cp -p $i ../../rpm.doc/objc/$i.objc
+done)
+(cd libobjc; for i in README*; do
+	cp -p $i ../rpm.doc/objc/$i.libobjc
+done)
+(cd boehm-gc; for i in ChangeLog*; do
+	cp -p $i ../rpm.doc/boehm-gc/$i.gc
+done)
+(cd fastjar-%{fastjar_ver}; for i in ChangeLog* README*; do
+	cp -p $i ../rpm.doc/fastjar/$i.fastjar
+done)
+(cd libffi; for i in ChangeLog* README* LICENSE; do
+	cp -p $i ../rpm.doc/libffi/$i.libffi
+done)
+(cd libjava; for i in ChangeLog* README*; do
+	cp -p $i ../rpm.doc/libjava/$i.libjava
+done)
+cp -p libjava/LIBGCJ_LICENSE rpm.doc/libjava/
+
+rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
+find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
+
+%if %{build_java_tar}
+find libjava -name \*.h -type f | xargs grep -l '// DO NOT EDIT THIS FILE - it is machine generated' > libjava-classes.list
+find libjava -name \*.class -type f >> libjava-classes.list
+find libjava/testsuite -name \*.jar -type f >> libjava-classes.list
+tar cf - -T libjava-classes.list | bzip2 -9 > $RPM_SOURCE_DIR/libjava-classes-%{version}-%{release}.tar.bz2
+%endif
+
+
+%install
+rm -fr %{buildroot}
+
+cd obj-%{gcc_target_platform}
+
+%if %{build_java}
+export PATH=`pwd`/../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}${PATH:+:$PATH}
+%if !%{bootstrap_java}
+export PATH=`pwd`/java_hacks${PATH:+:$PATH}
+%endif
+%endif
+
+%if !%{crossbuild}
+# native
+TARGET_PLATFORM=%{gcc_target_platform}
+# There are some MP bugs in libstdc++ Makefiles
+make -C %{gcc_target_platform}/libstdc++-v3
+%else
+# cross build
+export PATH=/opt/cross/bin:$PATH
+# strip all after -march . no arch specific options in cross-compiler build .
+# -march=core2 -mssse3 -mtune=atom -mfpmath=sse -fasynchronous-unwi
+export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
+#echo "$OPT_FLAGS"
+#TARGET_PLATFORM=%{cross_gcc_target_platform}
+# There are some MP bugs in libstdc++ Makefiles
+#make -C %{cross_gcc_target_platform}/libstdc++-v3
+%endif
+
+make DESTDIR=%{buildroot} install
+#prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
+#  infodir=%{buildroot}%{_infodir} install
+
+%if !%{crossbuild}
+# native
+# \/\/\/
+%if %{build_java}
+make DESTDIR=%{buildroot} -C %{gcc_target_platform}/libjava install-src.zip
+%endif
+%if %{build_ada}
+chmod 644 %{buildroot}%{_infodir}/gnat*
+%endif
+
+FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+
+ln -sf gcc %{buildroot}%{_prefix}/bin/cc
+mkdir -p %{buildroot}/lib
+ln -sf ..%{_prefix}/bin/cpp %{buildroot}/lib/cpp
+ln -sf gfortran %{buildroot}%{_prefix}/bin/f95
+rm -f %{buildroot}%{_infodir}/dir
+gzip -9 %{buildroot}%{_infodir}/*.info*
+ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc
+
+cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`"
+for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do
+  if ! diff -up $cxxconfig $i; then
+    cat > %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/c++config.h <<EOF
+#ifndef _CPP_CPPCONFIG_WRAPPER
+#define _CPP_CPPCONFIG_WRAPPER 1
+#include <bits/wordsize.h>
+#if __WORDSIZE == 32
+%ifarch %{multilib_64_archs}
+`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)`
+%else
+`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
+%endif
+#else
+%ifarch %{multilib_64_archs}
+`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
+%else
+`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)`
+%endif
+#endif
+#endif
+EOF
+    break
+  fi
+done
+
+for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/ -name c++config.h`; do
+  for i in 1 2 4 8; do
+    sed -i -e 's/#define _GLIBCXX_ATOMIC_BUILTINS_'$i' 1/#ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_'$i'\
+&\
+#endif/' $f
+  done
+done
+
+# Nuke bits/stdc++.h.gch dirs
+# 1) there is no bits/stdc++.h header installed, so when gch file can't be
+#    used, compilation fails
+# 2) sometimes it is hard to match the exact options used for building
+#    libstdc++-v3 or they aren't desirable
+# 3) there are multilib issues, conflicts etc. with this
+# 4) it is huge
+# People can always precompile on their own whatever they want, but
+# shipping this for everybody is unnecessary.
+rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/stdc++.h.gch
+
+%if %{build_libstdcxx_docs}
+libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen
+mkdir -p ../rpm.doc/libstdc++-v3
+cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html
+mv $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api
+mkdir -p %{buildroot}%{_mandir}
+mv $libstdcxx_doc_builddir/man/man3 %{buildroot}%{_mandir}/man3/
+find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
+%endif
+
+if [ -n "$FULLLPATH" ]; then
+  mkdir -p $FULLLPATH
+else
+  FULLLPATH=$FULLPATH
+fi
+
+find %{buildroot} -name \*.la | xargs rm -f
+%if %{build_java}
+find %{buildroot} -name libgcj.a -o -name libgtkpeer.a \
+		     -o -name libgjsmalsa.a -o -name libgcj-tools.a -o -name libjvm.a \
+		     -o -name libgij.a -o -name libgcj_bc.a -o -name libjavamath.a \
+  | xargs rm -f
+
+mv %{buildroot}%{_prefix}/lib/libgcj.spec $FULLPATH/
+sed -i -e 's/lib: /&%%{static:%%eJava programs cannot be linked statically}/' \
+  $FULLPATH/libgcj.spec
+%endif
+
+mkdir -p %{buildroot}/%{_lib}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
+chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
+ln -sf libgcc_s-%{gcc_version}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
+ln -sf /%{_lib}/libgcc_s.so.1 %{buildroot}/%{_libdir}/libgcc_s.so
+ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
+%ifarch %{multilib_64_archs}
+ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
+%endif
+
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
+
+%if %{build_ada}
+mv -f $FULLPATH/adalib/libgnarl-*.so %{buildroot}%{_prefix}/%{_lib}/
+mv -f $FULLPATH/adalib/libgnat-*.so %{buildroot}%{_prefix}/%{_lib}/
+rm -f $FULLPATH/adalib/libgnarl.so* $FULLPATH/adalib/libgnat.so*
+%endif
+
+mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
+  ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+else
+  ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+fi
+
+%if %{build_java}
+pushd ../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+make install DESTDIR=%{buildroot}
+popd
+
+if [ "%{_lib}" != "lib" ]; then
+  mkdir -p %{buildroot}%{_prefix}/%{_lib}/pkgconfig
+  sed '/^libdir/s/lib$/%{_lib}/' %{buildroot}%{_prefix}/lib/pkgconfig/libgcj-*.pc \
+    > %{buildroot}%{_prefix}/%{_lib}/pkgconfig/`basename %{buildroot}%{_prefix}/lib/pkgconfig/libgcj-*.pc`
+fi
+%endif
+
+pushd $FULLPATH
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../libobjc.so.2 libobjc.so
+#FIXME
+rm -fr ../../../libstdc++.so.6.*-gdb.py
+ln -sf ../../../libstdc++.so.6.* libstdc++.so
+ln -sf ../../../libgfortran.so.3.* libgfortran.so
+ln -sf ../../../libgomp.so.1.* libgomp.so
+ln -sf ../../../libmudflap.so.0.* libmudflap.so
+ln -sf ../../../libmudflapth.so.0.* libmudflapth.so
+%if %{build_java}
+ln -sf ../../../libgcj.so.10.* libgcj.so
+ln -sf ../../../libgcj-tools.so.10.* libgcj-tools.so
+ln -sf ../../../libgij.so.10.* libgij.so
+%endif
+else
+ln -sf ../../../../%{_lib}/libobjc.so.2 libobjc.so
+ln -sf ../../../../%{_lib}/libstdc++.so.6.* libstdc++.so
+ln -sf ../../../../%{_lib}/libgfortran.so.3.* libgfortran.so
+ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so
+ln -sf ../../../../%{_lib}/libmudflap.so.0.* libmudflap.so
+ln -sf ../../../../%{_lib}/libmudflapth.so.0.* libmudflapth.so
+%if %{build_java}
+ln -sf ../../../../%{_lib}/libgcj.so.10.* libgcj.so
+ln -sf ../../../../%{_lib}/libgcj-tools.so.10.* libgcj-tools.so
+ln -sf ../../../../%{_lib}/libgij.so.10.* libgij.so
+%endif
+fi
+%if %{build_java}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgcj_bc.so $FULLLPATH/
+%endif
+mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
+mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libobjc.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.*a $FULLLPATH/
+
+%if %{build_ada}
+%ifarch %{multilib_64_archs}
+rm -rf $FULLPATH/32/ada{include,lib}
+%endif
+if [ "$FULLPATH" != "$FULLLPATH" ]; then
+mv -f $FULLPATH/ada{include,lib} $FULLLPATH/
+pushd $FULLLPATH/adalib
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../../../libgnarl-*.so libgnarl.so
+ln -sf ../../../../../libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../libgnat-*.so libgnat.so
+ln -sf ../../../../../libgnat-*.so libgnat-4.4.so
+else
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-4.4.so
+fi
+popd
+else
+pushd $FULLPATH/adalib
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../../libgnarl-*.so libgnarl.so
+ln -sf ../../../../libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../libgnat-*.so libgnat.so
+ln -sf ../../../../libgnat-*.so libgnat-4.4.so
+else
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-4.4.so
+fi
+popd
+fi
+%endif
+
+%ifarch %{multilib_64_archs}
+mkdir -p 32
+ln -sf ../../../../libobjc.so.2 32/libobjc.so
+ln -sf ../`echo ../../../../lib64/libstdc++.so.6.* | sed s~/../lib64/~/~` 32/libstdc++.so
+ln -sf ../`echo ../../../../lib64/libgfortran.so.3.* | sed s~/../lib64/~/~` 32/libgfortran.so
+ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so
+rm -f libmudflap.so libmudflapth.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflap.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflapth.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflap.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflapth.so
+%if %{build_java}
+ln -sf ../`echo ../../../../lib64/libgcj.so.10.* | sed s~/../lib64/~/~` 32/libgcj.so
+ln -sf ../`echo ../../../../lib64/libgcj-tools.so.10.* | sed s~/../lib64/~/~` 32/libgcj-tools.so
+ln -sf ../`echo ../../../../lib64/libgij.so.10.* | sed s~/../lib64/~/~` 32/libgij.so
+%endif
+mv -f %{buildroot}%{_prefix}/lib/libsupc++.*a 32/
+mv -f %{buildroot}%{_prefix}/lib/libgfortran.*a 32/
+mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/
+mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libstdc++.a 32/libstdc++.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libmudflap.a 32/libmudflap.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libmudflapth.a 32/libmudflapth.a
+%if %{build_java}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgcj_bc.so 32/libgcj_bc.so
+%endif
+%if %{build_ada}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/adainclude 32/adainclude
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/adalib 32/adalib
+%endif
+%endif
+
+# Strip debug info from Fortran/ObjC/Java static libraries
+strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \
+		    -o -name libmudflap.a -o -name libmudflapth.a \
+		    -o -name libgcc.a -o -name libgcov.a \) -a -type f`
+popd
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.3.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.so.0.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.2.*
+
+%if %{build_ada}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnarl*so*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnat*so*
+%endif
+
+mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h
+mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h
+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
+
+cat > %{buildroot}%{_prefix}/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+  case "$opt" in
+    -ansi|-std=c89|-std=iso9899:1990) fl="";;
+    -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+	    exit 1;;
+  esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+cat > %{buildroot}%{_prefix}/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+  case "$opt" in
+    -std=c99|-std=iso9899:1999) fl="";;
+    -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+	    exit 1;;
+  esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+chmod 755 %{buildroot}%{_prefix}/bin/c?9
+
+mkdir -p %{buildroot}%{_prefix}/sbin
+%ifarch %{arm}
+patch %{SOURCE1} < %{PATCH41}
+%endif
+gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
+strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
+
+cd ..
+%find_lang %{name}
+%find_lang cpplib
+
+# Remove binaries we will not be including, so that they don't end up in
+# gcc-debuginfo
+rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
+rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
+rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a
+rm -f %{buildroot}%{_prefix}/%{_lib}/libssp*
+rm -f %{buildroot}%{_prefix}/bin/gnative2ascii
+
+%ifarch %{multilib_64_archs}
+# Remove libraries for the other arch on multilib arches
+rm -f %{buildroot}%{_prefix}/lib/lib*.so*
+rm -f %{buildroot}%{_prefix}/lib/lib*.a
+%endif
+
+%if %{build_java}
+mkdir -p %{buildroot}%{_prefix}/share/java/gcj-endorsed \
+	 %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+chmod 755 %{buildroot}%{_prefix}/share/java/gcj-endorsed \
+	  %{buildroot}%{_prefix}/%{_lib}/gcj-%{version} \
+	  %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+touch %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db
+%endif
+# /\/\/\
+# native
+%else
+# cross
+# \/\/\/
+# additional install for cross
+# remove some obsolete files
+%if !%{accelerator_crossbuild}
+#set -x
+rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
+rm -rRf %buildroot/%{_prefix}/share
+#set +x
+%endif
+# /\/\/\
+# cross
+%endif
+
+%if !%{crossbuild}
+# checking and split packaging for native ...
+# native
+# \/\/\/
+
+%check
+%if 0
+cd obj-%{gcc_target_platform}
+
+# run the tests.
+make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || :
+echo ====================TESTING=========================
+( LC_ALL=C ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}'
+echo ====================TESTING END=====================
+mkdir testlogs-%{_target_platform}-%{version}-%{release}
+for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats\|ada'`; do
+  ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
+done
+tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \
+  | uuencode testlogs-%{_target_platform}.tar.bz2 || :
+rm -rf testlogs-%{_target_platform}-%{version}-%{release}
+
+%endif
+
+%clean
+rm -rf %{buildroot}
+
+%post
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
+
+%preun
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
+fi
+
+%post -n cpp
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
+
+%preun -n cpp
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
+fi
+
+%post gfortran
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
+
+%preun gfortran
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
+fi
+
+%post java
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gcj.info.gz || :
+
+%preun java
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gcj.info.gz || :
+fi
+
+%post gnat
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat_ugn.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
+
+%preun gnat
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat_ugn.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
+fi
+
+%post -n libgcc -p %{_prefix}/sbin/libgcc_post_upgrade
+
+%postun -n libgcc -p /sbin/ldconfig
+
+%post -n libstdc++ -p /sbin/ldconfig
+
+%postun -n libstdc++ -p /sbin/ldconfig
+
+%post -n libobjc -p /sbin/ldconfig
+
+%postun -n libobjc -p /sbin/ldconfig
+
+%post -n libgcj
+/sbin/ldconfig
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/cp-tools.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz || :
+
+%preun -n libgcj
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/cp-tools.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz || :
+fi
+
+%postun -n libgcj -p /sbin/ldconfig
+
+%post -n libgfortran -p /sbin/ldconfig
+
+%postun -n libgfortran -p /sbin/ldconfig
+
+%post -n libgnat -p /sbin/ldconfig
+
+%postun -n libgnat -p /sbin/ldconfig
+
+%post -n libgomp
+/sbin/ldconfig
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
+
+%preun -n libgomp
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
+fi
+
+%postun -n libgomp -p /sbin/ldconfig
+
+%post -n libmudflap -p /sbin/ldconfig
+
+%postun -n libmudflap -p /sbin/ldconfig
+
+%files -f %{name}.lang
+%defattr(-,root,root,-)
+%{_prefix}/bin/cc
+%{_prefix}/bin/c89
+%{_prefix}/bin/c99
+%{_prefix}/bin/gcc
+%{_prefix}/bin/gcov
+%ifnarch %{arm}
+%{_prefix}/bin/%{gcc_target_platform}-*
+%endif
+%{_mandir}/man1/gcc.1*
+%{_mandir}/man1/gcov.1*
+%{_mandir}/man7/*
+%{_infodir}/gcc*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include/*
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/*
+
+%ifarch %{arm}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/ssp.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/stdio.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/string.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/unistd.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdfix.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/install-tools
+%endif
+
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.spec
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
+%endif
+%dir %{_prefix}/libexec/getconf
+%{_prefix}/libexec/getconf/default
+%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING*
+
+%files -n cpp -f cpplib.lang
+%defattr(-,root,root,-)
+/lib/cpp
+%{_prefix}/bin/cpp
+%{_mandir}/man1/cpp.1*
+%{_infodir}/cpp*
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+
+%files -n libgcc
+%defattr(-,root,root,-)
+/%{_lib}/libgcc_s-%{gcc_version}.so.1
+/%{_lib}/libgcc_s.*
+/%{_libdir}/libgcc_s.*
+%{_prefix}/sbin/libgcc_post_upgrade
+%doc gcc/COPYING.LIB
+
+%files c++
+%defattr(-,root,root,-)
+%ifnarch %{arm}
+%{_prefix}/bin/%{gcc_target_platform}-*++
+%endif
+%{_prefix}/bin/g++
+%{_prefix}/bin/c++
+%{_mandir}/man1/g++.1*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libsupc++.a
+%endif
+%ifarch %{multilib_64_archs}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
+%endif
+%doc rpm.doc/changelogs/gcc/cp/ChangeLog*
+
+%files -n libstdc++
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libstdc++.*
+#/usr/share/locale/de/LC_MESSAGES/libstdc++.mo
+#/usr/share/locale/fr/LC_MESSAGES/libstdc++.mo
+
+%files -n libstdc++-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/include/c++
+%dir %{_prefix}/include/c++/%{gcc_version}
+%{_prefix}/include/c++/%{gcc_version}/[^gjos]*
+%{_prefix}/include/c++/%{gcc_version}/os*
+%{_prefix}/include/c++/%{gcc_version}/s[^u]*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a  
+%ifnarch  %{multilib_64_archs}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
+%endif
+%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README*
+
+%if %{build_libstdcxx_docs}
+%files -n libstdc++-docs
+%defattr(-,root,root)
+%{_mandir}/man3/*
+%doc rpm.doc/libstdc++-v3/html
+%endif
+
+%files objc
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/objc
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1obj
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.so
+%endif
+%doc rpm.doc/objc/*
+%doc libobjc/THREADS* rpm.doc/changelogs/libobjc/ChangeLog*
+
+%files objc++
+%defattr(-,root,root,-)
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1objplus
+
+%files -n libobjc
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libobjc.*
+
+%files gfortran
+%defattr(-,root,root,-)
+%{_prefix}/bin/gfortran
+%{_prefix}/bin/f95
+%{_mandir}/man1/gfortran.1*
+%{_infodir}/gfortran*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.f90
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.mod
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib_kinds.mod
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/f951
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.so
+%endif
+%doc rpm.doc/gfortran/*
+
+%files -n libgfortran
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libgfortran.*
+
+%if %{build_java}
+%files java
+%defattr(-,root,root,-)
+%{_prefix}/bin/gcj
+%{_prefix}/bin/gjavah
+%{_prefix}/bin/gcjh
+%{_prefix}/bin/jcf-dump
+%{_mandir}/man1/gcj.1*
+%{_mandir}/man1/jcf-dump.1*
+%{_mandir}/man1/gjavah.1*
+%{_mandir}/man1/gcjh.1*
+%{_infodir}/gcj*
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jc1
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/ecj1
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jvgenmain
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj-tools.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgij.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj-tools.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj_bc.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgij.so
+%endif
+%doc rpm.doc/changelogs/gcc/java/ChangeLog*
+
+%files -n libgcj
+%defattr(-,root,root,-)
+%{_prefix}/bin/jv-convert
+%{_prefix}/bin/gij
+%{_prefix}/bin/gjar
+%{_prefix}/bin/fastjar
+%{_prefix}/bin/grepjar
+%{_prefix}/bin/grmic
+%{_prefix}/bin/grmid
+%{_prefix}/bin/grmiregistry
+%{_prefix}/bin/gtnameserv
+%{_prefix}/bin/gkeytool
+%{_prefix}/bin/gorbd
+%{_prefix}/bin/gserialver
+%{_prefix}/bin/gcj-dbtool
+%if %{include_gappletviewer}
+%{_prefix}/bin/gappletviewer
+%{_mandir}/man1/gappletviewer.1*
+%endif
+%{_prefix}/bin/gjarsigner
+%{_mandir}/man1/fastjar.1*
+%{_mandir}/man1/grepjar.1*
+%{_mandir}/man1/gjar.1*
+%{_mandir}/man1/gjarsigner.1*
+%{_mandir}/man1/jv-convert.1*
+%{_mandir}/man1/gij.1*
+%{_mandir}/man1/grmic.1*
+%{_mandir}/man1/grmiregistry.1*
+%{_mandir}/man1/gcj-dbtool.1*
+%{_mandir}/man1/gkeytool.1*
+%{_mandir}/man1/gorbd.1*
+%{_mandir}/man1/grmid.1*
+%{_mandir}/man1/gserialver.1*
+%{_mandir}/man1/gtnameserv.1*
+%{_infodir}/fastjar.info*
+%{_infodir}/cp-tools.info*
+%{_prefix}/%{_lib}/libgcj.so.*
+%{_prefix}/%{_lib}/libgcj-tools.so.*
+%{_prefix}/%{_lib}/libgcj_bc.so.*
+%{_prefix}/%{_lib}/libgij.so.*
+%dir %{_prefix}/%{_lib}/gcj-%{version}
+%{_prefix}/%{_lib}/gcj-%{version}/libgtkpeer.so
+%{_prefix}/%{_lib}/gcj-%{version}/libgjsmalsa.so
+%{_prefix}/%{_lib}/gcj-%{version}/libjawt.so
+%if %{include_gappletviewer}
+%{_prefix}/%{_lib}/gcj-%{version}/libgcjwebplugin.so
+%endif
+%{_prefix}/%{_lib}/gcj-%{version}/libjvm.so
+%{_prefix}/%{_lib}/gcj-%{version}/libjavamath.so
+%dir %{_prefix}/share/java
+%{_prefix}/share/java/[^sl]*
+%{_prefix}/share/java/libgcj-%{version}.jar
+%dir %{_prefix}/%{_lib}/security
+%config(noreplace) %{_prefix}/%{_lib}/security/classpath.security
+%{_prefix}/%{_lib}/logging.properties
+%dir %{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_prefix}/%{_lib}/gcj-%{version}/classmap.db
+%if %{include_gappletviewer}
+%doc rpm.doc/README.libgcjwebplugin.so
+%endif
+
+%files -n libgcj-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/gcj
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jawt.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jawt_md.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jni.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jni_md.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jvmpi.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.spec
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj_bc.so  
+%dir %{_prefix}/include/c++
+%dir %{_prefix}/include/c++/%{gcc_version}
+%{_prefix}/include/c++/%{gcc_version}/[gj]*
+%{_prefix}/include/c++/%{gcc_version}/org
+%{_prefix}/include/c++/%{gcc_version}/sun
+%{_prefix}/%{_lib}/pkgconfig/libgcj-*.pc
+%doc rpm.doc/boehm-gc/* rpm.doc/fastjar/* rpm.doc/libffi/*
+%doc rpm.doc/libjava/*
+
+%files -n libgcj-src
+%defattr(-,root,root,-)
+%dir %{_prefix}/share/java
+%{_prefix}/share/java/src*.zip
+%{_prefix}/share/java/libgcj-tools-%{version}.jar
+%endif
+
+%if %{build_ada}
+%files gnat
+%defattr(-,root,root,-)
+%{_prefix}/bin/gnat*
+%{_infodir}/gnat*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/adainclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/adalib
+%endif
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/gnat1
+%doc rpm.doc/changelogs/gcc/ada/ChangeLog*
+
+%files -n libgnat
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libgnat-*.so
+%{_prefix}/%{_lib}/libgnarl-*.so
+
+%files -n libgnat-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adainclude  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adalib  
+%endif
+
+%files -n libgomp
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libgomp.*
+%{_infodir}/libgomp.info*
+%doc rpm.doc/changelogs/libgomp/ChangeLog*
+
+%files -n libmudflap
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libmudflap.*
+%{_prefix}/%{_lib}/libmudflapth.*
+
+%files -n libmudflap-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mf-runtime.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.a  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.a  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.so  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.so  
+%doc rpm.doc/changelogs/libmudflap/ChangeLog*
+
+%if %{build_64bit_multilib}
+%files -n gcc-multilib
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortranbegin.a
+%dir %{_prefix}/lib64
+%{_prefix}/lib64/*
+%endif
+
+# /\/\/\
+# native
+%else
+# cross
+# \/\/\/
+%files
+%defattr(-,root,root,-)
+%{_prefix}
+# /\/\/\
+# cross
+%endif

++++++ new spec file:
--- cross-armv7l-gcc.spec
+++ cross-armv7l-gcc.spec
+# Combined gcc / cross-armv*-gcc(-accel) specfile
+Name: cross-armv7l-gcc
+# Keep Name on top !
+
+# crossbuild / accelerator section
+# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
+%define crossbuild 0
+%define accelerator_crossbuild 0
+%if "%{name}" != "gcc"
+# this is the ix86 -> arm cross compiler (cross-armv*-gcc)
+#
+# cross arch retrieval
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc/\\1/")
+# We set requires/provides by hand and disable post-build-checks.
+# Captain Trunk: Sledge, you cannot disarm that nuclear bomb!
+# Sledge Hammer: Trust me, I know what I'm doing. 
+AutoReqProv: 0
+AutoReq: false
+BuildRequires: -rpmlint-Moblin -rpmlint-mini -post-build-checks
+# cross platform
+%define cross_gcc_target_platform %{crossarch}-meego-linux-gnueabi
+# gcc_target_platform holds the host (executing the compiler)
+# cross_gcc_target_platform holds the target (for which the compiler is producing binaries)
+# prefix for cross compiler
+%define _prefix /opt/cross
+# strip of 'foreign arch' symbols fails
+%define __strip /bin/true
+# sysroot for cross-compiler
+%define crosssysroot %{_prefix}/%{cross_gcc_target_platform}/sys-root
+# flag
+%define crossbuild 1
+# macros in buildrequires is hard to expand for the scheduler (e.g. crossarch) which would make this easier.
+#BuildRequires: cross-%{crossarch}-glibc cross-%{crossarch}-glibc-devel cross-%{crossarch}-glibc-headers
+#BuildRequires: cross-%{crossarch}-kernel-headers cross-%{crossarch}-binutils
+# Fixme: find way to make this without listing every package
+%if "%{name}" == "cross-armv5tel-gcc"
+BuildRequires: cross-armv5tel-glibc cross-armv5tel-glibc-devel cross-armv5tel-glibc-headers
+BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
+%endif
+%if "%{name}" == "cross-armv7l-gcc"
+BuildRequires: cross-armv7l-glibc cross-armv7l-glibc-devel cross-armv7l-glibc-headers
+BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
+%endif
+# Fixme: see above
+%if "%{name}" == "cross-armv5tel-gcc-accel"
+BuildRequires: cross-armv5tel-glibc cross-armv5tel-glibc-devel cross-armv5tel-glibc-headers
+BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
+%endif
+%if "%{name}" == "cross-armv7l-gcc-accel"
+BuildRequires: cross-armv7l-glibc cross-armv7l-glibc-devel cross-armv7l-glibc-headers
+BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
+%endif
+# single target atm.
+ExclusiveArch: %ix86
+#
+# special handling for MeeGo ARM build acceleration
+# cross-armv*-gcc-accel
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+# cross architecture
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+# cross target platform
+%define cross_gcc_target_platform %{crossarch}-meego-linux-gnueabi
+# prefix - as it's going to "replace" the original compiler ...
+%define _prefix /usr
+# cross-build sets sysroot as default , we need to override this a bit
+%define crosssysroot /
+# where to find the libs during the build
+%define crossbuildsysroot /opt/cross/%{cross_gcc_target_platform}/sys-root
+# flags
+%define crossbuild 1
+%define accelerator_crossbuild 1
+# where to find the libs at runtime
+%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define _build_name_fmt    %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
+%endif
+# end special accel
+%endif
+# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
+# end crossbuild / accelerator section
+
+%global gcc_version 4.5.0
+%global gcc_release 1
+%global _unpackaged_files_terminate_build 0
+%global include_gappletviewer 0
+%global build_ada 0
+%global build_java 0
+%ifarch %{arm}
+%global build_cloog 0
+%else
+%if %{crossbuild}
+%global build_cloog 0
+%else
+%global build_cloog 1
+%endif
+%endif
+%global build_libstdcxx_docs 0
+%global bootstrap_java %{?_with_java_bootstrap:%{build_java}}%{!?_with_java_bootstrap:0}
+%global build_java_tar %{?_with_java_tar:%{build_java}}%{!?_with_java_tar:0}
+%global multilib_64_archs x86_64
+%ifarch x86_64
+%global multilib_32_arch i686
+%endif
+%global build_64bit_multilib 0
+
+Summary: Various compilers (C, C++, Objective-C, Java, ...)
+Version: %{gcc_version}
+Release: %{gcc_release}
+License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
+Group: Development/Languages
+URL: http://gcc.gnu.org
+Source0: gcc-%{version}.tar.bz2
+Source1: libgcc_post_upgrade.c
+Source2: README.libgcjwebplugin.so
+%global fastjar_ver 0.97
+Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz
+Source100: gcc-4.5.0-rpmlintrc
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: binutils >= 2.19.51.0.14
+BuildRequires: glibc-static
+BuildRequires: zlib-devel, gettext,  bison, flex, texinfo
+BuildRequires: mpc-devel
+BuildRequires: glibc-devel >= 2.4.90-13
+BuildRequires: elfutils-devel >= 0.72
+
+%if %{build_java}
+BuildRequires: /usr/share/java/eclipse-ecj.jar, zip, unzip
+%if %{bootstrap_java}
+Source10: libjava-classes-%{version}-%{release}.tar.bz2
+%else
+BuildRequires: gcc-java, libgcj
+%endif
+%endif
+
+%if %{build_ada}
+# Ada requires Ada to build
+BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1
+%endif
+
+%if %{build_cloog}
+BuildRequires: ppl >= 0.10, ppl-devel >= 0.10, cloog-ppl >= 0.15, cloog-ppl-devel >= 0.15
+%endif
+
+%if %{build_libstdcxx_docs}
+BuildRequires: doxygen
+BuildRequires: graphviz
+%endif
+
+Requires: cpp = %{version}-%{release}
+Requires: libgcc >= %{version}-%{release}
+Requires: libgomp = %{version}-%{release}
+Requires: glibc-devel
+
+%if !%{build_ada}
+Obsoletes: gcc-gnat < %{version}-%{release}
+Obsoletes: libgnat < %{version}-%{release}
+%endif
+
+%if %{build_cloog}
+Requires: cloog-ppl >= 0.15
+%endif
+
+%if %{build_64bit_multilib}
+Requires: glibc64bit-helper
+%endif
+
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: gcc < %{version}-%{release}
+Obsoletes: gcc43
+AutoReq: true
+
+Patch0: gcc44-hack.patch
+Patch1: gcc44-build-id.patch
+Patch2: gcc44-c++-builtin-redecl.patch
+Patch4: gcc44-java-nomulti.patch
+Patch9: gcc44-pr33763.patch
+Patch11: gcc44-rh341221.patch
+Patch12: gcc44-java-debug-iface-type.patch
+Patch13: gcc44-i386-libgomp.patch
+Patch16: gcc44-libgomp-omp_h-multilib.patch
+Patch20: gcc44-libtool-no-rpath.patch
+Patch29: gcc44-libstdc++-docs.patch
+Patch30: gcc45-pr43572.patch
+
+Patch40: gcc45-use-atom.patch
+Patch41: libgcc_post_upgrade.c.arm.patch
+
+#Patch42: var-tracking1.patch
+#Patch43: var-tracking2.patch
+#Patch44: var-tracking3.patch
+
+#Patch45: gcc44-max-vartrack-size.patch
+#Patch46: gcc44-max-vartrack-size-2.patch
+
+Patch1000: fastjar-0.97-segfault.patch
+Patch9999: gcc44-ARM-boehm-gc-stack-qemu.patch
+
+#We need -gnueabi indicator for ARM
+%ifnarch %{arm}
+%global _gnu %{nil}
+%endif
+%global gcc_target_platform %{_target_platform}
+
+%description
+The gcc package contains the GNU Compiler Collection version 4.5.0.
+You'll need this package in order to compile C code.
+
+%package -n libgcc
+Summary: GCC version 4.5.0 shared support library
+Group: System Environment/Libraries
+Obsoletes: libgcc < %{version}-%{release}
+Obsoletes: libgcc43
+Autoreq: false
+
+%description -n libgcc
+This package contains GCC shared support library which is needed
+e.g. for exception handling support.
+
+%package c++
+Summary: C++ support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libstdc++ = %{version}-%{release}
+Requires: libstdc++-devel = %{version}-%{release}
+Obsoletes: gcc-c++ < %{version}-%{release}
+Obsoletes: gcc43-c++
+Autoreq: true
+
+%description c++
+This package adds C++ support to the GNU Compiler Collection.
+It includes support for most of the current C++ specification,
+including templates and exception handling.
+
+%package -n libstdc++
+Summary: GNU Standard C++ Library
+Group: System Environment/Libraries
+Obsoletes: libstdc++ < %{version}-%{release}
+Obsoletes: libstdc++43
+Obsoletes: libstdc++6 < %{version}-%{release}
+Autoreq: true
+Requires: glibc 
+
+%description -n libstdc++
+The libstdc++ package contains a rewritten standard compliant GCC Standard
+C++ Library.
+
+%package -n libstdc++-devel
+Summary: Header files and libraries for C++ development
+Group: Development/Libraries
+Requires: libstdc++ = %{version}-%{release}
+Obsoletes: libstdc++-devel < %{version}-%{release}
+Obsoletes: libstdc++43-devel
+Autoreq: true
+
+%description -n libstdc++-devel
+This is the GNU implementation of the standard C++ libraries.  This
+package includes the header files and libraries needed for C++
+development. This includes rewritten implementation of STL.
+
+%package -n libstdc++-docs
+Summary: Documentation for the GNU standard C++ library
+Group: Development/Libraries
+Obsoletes: libstdc++-docs < %{version}-%{release}
+Obsoletes: libstdc++43-doc
+Autoreq: true
+
+%description -n libstdc++-docs
+Manual, doxygen generated API information and Frequently Asked Questions
+for the GNU standard C++ library.
+
+%package objc
+Summary: Objective-C support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libobjc = %{version}-%{release}
+Obsoletes: gcc-objc < %{version}-%{release}
+Obsoletes: gcc43-objc
+Autoreq: true
+
+%description objc
+gcc-objc provides Objective-C support for the GCC.
+Mainly used on systems running NeXTSTEP, Objective-C is an
+object-oriented derivative of the C language.
+
+%package objc++
+Summary: Objective-C++ support for GCC
+Group: Development/Languages
+Requires: gcc-c++ = %{version}-%{release}, gcc-objc = %{version}-%{release}
+Obsoletes: gcc-objc++ < %{version}-%{release}
+Obsoletes: gcc43-obj-c++ gcc43-objc++
+Autoreq: true
+
+%description objc++
+gcc-objc++ package provides Objective-C++ support for the GCC.
+
+%package -n libobjc
+Summary: Objective-C runtime
+Group: System Environment/Libraries
+Obsoletes: libobjc < %{version}-%{release}
+Obsoletes: libobjc43
+Autoreq: true
+
+%description -n libobjc
+This package contains Objective-C shared library which is needed to run
+Objective-C dynamically linked programs.
+
+%package gfortran
+Summary: Fortran support
+Group: Development/Languages
+BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1
+Requires: gcc = %{version}-%{release}
+Requires: libgfortran = %{version}-%{release}
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: gcc-fortran < %{version}-%{release}
+Obsoletes: gcc43-fortran
+Autoreq: true
+Provides: gcc-fortran
+
+%description gfortran
+The gcc-gfortran package provides support for compiling Fortran
+programs with the GNU Compiler Collection.
+
+%package -n libgfortran
+Summary: Fortran runtime
+Group: System Environment/Libraries
+Obsoletes: libgfortran < %{version}-%{release}
+Obsoletes: libgfortran43
+Autoreq: true
+
+%description -n libgfortran
+This package contains Fortran shared library which is needed to run
+Fortran dynamically linked programs.
+
+%package -n libgomp
+Summary: GCC OpenMP v3.0 shared support library
+Group: System Environment/Libraries
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: libgomp < %{version}-%{release}
+Obsoletes: libgomp43
+
+%description -n libgomp
+This package contains GCC shared support library which is needed
+for OpenMP v3.0 support.
+
+%package -n libmudflap
+Summary: GCC mudflap shared support library
+Group: System Environment/Libraries
+
+%description -n libmudflap
+This package contains GCC shared support library which is needed
+for mudflap support.
+
+%package -n libmudflap-devel
+Summary: GCC mudflap support
+Group: Development/Libraries
+Requires: libmudflap = %{version}-%{release}
+Requires: gcc = %{version}-%{release}
+
+%description -n libmudflap-devel
+This package contains headers and static libraries for building
+mudflap-instrumented programs.
+
+To instrument a non-threaded program, add -fmudflap
+option to GCC and when linking add -lmudflap, for threaded programs
+also add -fmudflapth and -lmudflapth.
+
+%package java
+Summary: Java support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libgcj = %{version}-%{release}
+Requires: libgcj-devel = %{version}-%{release}
+Requires: /usr/share/java/eclipse-ecj.jar
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Obsoletes: gcc-java < %{version}-%{release}
+Obsoletes: gcc43-java
+Autoreq: true
+
+%description java
+This package adds support for compiling Java(tm) programs and
+bytecode into native code.
+
+%package -n libgcj
+Summary: Java runtime library for gcc
+Group: System Environment/Libraries
+%if %{build_java}
+BuildRequires: gtk2-devel >= 2.4.0
+BuildRequires: glib2-devel >= 2.4.0
+BuildRequires: xulrunner-devel
+BuildRequires: libart_lgpl-devel >= 2.1.0
+BuildRequires: alsa-lib-devel
+BuildRequires: libXtst-devel
+BuildRequires: libXt-devel
+%endif
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Requires: zip >= 2.1
+Requires: gtk2 >= 2.4.0
+Requires: glib2 >= 2.4.0
+Requires: libart_lgpl >= 2.1.0
+Obsoletes: libgcj < %{version}-%{release}
+Obsoletes: libgcj43
+Autoreq: true
+
+%description -n libgcj
+The Java(tm) runtime library. You will need this package to run your Java
+programs compiled using the Java compiler from GNU Compiler Collection (gcj).
+
+%package -n libgcj-devel
+Summary: Libraries for Java development using GCC
+Group: Development/Languages
+Requires: libgcj = %{version}-%{release}, %{_prefix}/%{_lib}/libgcj.so.10
+Requires: zlib-devel, %{_prefix}/%{_lib}/libz.so
+Requires: /bin/awk
+Obsoletes: libgcj-devel < %{version}-%{release}
+Obsoletes: libgcj43-devel
+Autoreq: false
+Autoprov: false
+
+%description -n libgcj-devel
+The Java(tm) static libraries and C header files. You will need this
+package to compile your Java programs using the GCC Java compiler (gcj).
+
+%package -n libgcj-src
+Summary: Java library sources from GCC4 preview
+Group: System Environment/Libraries
+Requires: libgcj = %{version}-%{release}
+Autoreq: true
+
+%description -n libgcj-src
+The Java(tm) runtime library sources for use in Eclipse.
+
+%package -n cpp
+Summary: The C Preprocessor
+Group: Development/Languages
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Requires: mpc
+Obsoletes: cpp < %{version}-%{release}
+Obsoletes: cpp43
+Autoreq: true
+
+%description -n cpp
+Cpp is the GNU C-Compatible Compiler Preprocessor.
+Cpp is a macro processor which is used automatically
+by the C compiler to transform your program before actual
+compilation. It is called a macro processor because it allows
+you to define macros, abbreviations for longer
+constructs.
+
+The C preprocessor provides four separate functionalities: the
+inclusion of header files (files of declarations that can be
+substituted into your program); macro expansion (you can define macros,
+and the C preprocessor will replace the macros with their definitions
+throughout the program); conditional compilation (using special
+preprocessing directives, you can include or exclude parts of the
+program according to various conditions); and line control (if you use
+a program to combine or rearrange source files into an intermediate
+file which is then compiled, you can use line control to inform the
+compiler about where each source line originated).
+
+You should install this package if you are a C programmer and you use
+macros.
+
+%package gnat
+Summary: Ada 95 support for GCC
+Group: Development/Languages
+Requires: gcc = %{version}-%{release}
+Requires: libgnat = %{version}-%{release}, libgnat-devel = %{version}-%{release}
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Autoreq: true
+
+%description gnat
+GNAT is a GNU Ada 95 front-end to GCC. This package includes development tools,
+the documents and Ada 95 compiler.
+
+%package -n libgnat
+Summary: GNU Ada 95 runtime shared libraries
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libgnat
+GNAT is a GNU Ada 95 front-end to GCC. This package includes shared libraries,
+which are required to run programs compiled with the GNAT.
+
+%package -n libgnat-devel
+Summary: GNU Ada 95 libraries
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n libgnat-devel
+GNAT is a GNU Ada 95 front-end to GCC. This package includes libraries,
+which are required to compile with the GNAT.
+
+%package -n gcc-multilib
+Summary: for 64bit multilib support
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n gcc-multilib
+This is one set of libraries which support 64bit multilib on top of
+32bit enviroment from compiler side.
+
+%prep
+%setup -q -n gcc-%{version}
+%patch0 -p0 -b .hack~
+%patch1 -p0 -b .build-id~
+%patch2 -p0 -b .c++-builtin-redecl~
+%patch4 -p0 -b .java-nomulti~
+%patch9 -p0 -b .pr33763~
+%patch11 -p0 -b .rh341221~
+%patch12 -p0 -b .java-debug-iface-type~
+%patch13 -p0 -b .i386-libgomp~
+%patch16 -p0 -b .libgomp-omp_h-multilib~
+%patch20 -p0 -b .libtool-no-rpath~
+
+%if %{build_libstdcxx_docs}
+%patch29 -p0 -b .libstdc++-docs~
+%endif
+
+%patch30 -p1 -b .pr43572
+%patch40 -p1 -b .atom
+
+#%patch42 -p0 -b .var-track1~
+#%patch43 -p0 -b .var-track2~
+#%patch44 -p0 -b .var-track3~
+
+#%patch45 -p0 -b .max-vartrack-size~
+#%patch46 -p1 -b .max-vartrack-size-2~
+
+# This testcase doesn't compile.
+rm libjava/testsuite/libjava.lang/PR35020*
+
+tar xzf %{SOURCE4}
+
+%patch1000 -p0 -b .fastjar-0.97-segfault~
+%patch9999 -p1 -b .arm-boehm-gc~
+
+%if %{bootstrap_java}
+tar xjf %{SOURCE10}
+%endif
+
+echo 'MeeGo %{version}-%{gcc_release}' > gcc/DEV-PHASE
+
+# Default to -gdwarf-3 rather than -gdwarf-2
+sed -i '/UInteger Var(dwarf_version)/s/Init(2)/Init(3)/' gcc/common.opt
+sed -i 's/\(may be either 2 or 3; the default version is \)2\./\13./' gcc/doc/invoke.texi
+
+cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
+
+# Hack to avoid building multilib libjava
+perl -pi -e 's/^all: all-redirect/ifeq (\$(MULTISUBDIR),)\nall: all-redirect\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^install: install-redirect/ifeq (\$(MULTISUBDIR),)\ninstall: install-redirect\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^check: check-redirect/ifeq (\$(MULTISUBDIR),)\ncheck: check-redirect\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^all: all-recursive/ifeq (\$(MULTISUBDIR),)\nall: all-recursive\nelse\nall:\n\techo Multilib libjava build disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^install: install-recursive/ifeq (\$(MULTISUBDIR),)\ninstall: install-recursive\nelse\ninstall:\n\techo Multilib libjava install disabled\nendif/' libjava/Makefile.in
+perl -pi -e 's/^check: check-recursive/ifeq (\$(MULTISUBDIR),)\ncheck: check-recursive\nelse\ncheck:\n\techo Multilib libjava check disabled\nendif/' libjava/Makefile.in
+
+./contrib/gcc_update --touch
+
+LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
+
+%build
+
+%if %{build_java}
+mkdir fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+cd fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+../configure CFLAGS="%{optflags}" --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir}
+make %{?_smp_mflags}
+export PATH=`pwd`${PATH:+:$PATH}
+cd ../../
+%endif
+
+rm -fr obj-%{gcc_target_platform}
+mkdir obj-%{gcc_target_platform}
+cd obj-%{gcc_target_platform}
+
+%if %{build_java}
+%if !%{bootstrap_java}
+mkdir java_hacks
+cd java_hacks
+cp -a ../../libjava/classpath/tools/external external
+mkdir -p gnu/classpath/tools
+cp -a ../../libjava/classpath/tools/gnu/classpath/tools/{common,javah,getopt} gnu/classpath/tools/
+cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties gnu/classpath/tools/common
+cp -a ../../libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties gnu/classpath/tools/getopt
+cd external/asm; for i in `find . -name \*.java`; do gcj --encoding ISO-8859-1 -C $i -I.; done; cd ../..
+for i in `find gnu -name \*.java`; do gcj -C $i -I. -Iexternal/asm/; done
+gcj -findirect-dispatch -O2 -fmain=gnu.classpath.tools.javah.Main -I. -Iexternal/asm/ `find . -name \*.class` -o gjavah.real
+cat > gjavah <<EOF
+#!/bin/sh
+export CLASSPATH=`pwd`${CLASSPATH:+:$CLASSPATH}
+exec `pwd`/gjavah.real "\$@"
+EOF
+chmod +x `pwd`/gjavah
+cat > ecj1 <<EOF
+#!/bin/sh
+exec gij -cp /usr/share/java/eclipse-ecj.jar org.eclipse.jdt.internal.compiler.batch.GCCMain "\$@"
+EOF
+chmod +x `pwd`/ecj1
+export PATH=`pwd`${PATH:+:$PATH}
+cd ..
+%endif
+%endif
+
+CC=gcc
+OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//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/-march=i.86//g'`
+%endif
+OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
+case "$OPT_FLAGS" in
+  *-fasynchronous-unwind-tables*)
+    sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables/' \
+      ../gcc/Makefile.in
+    ;;
+esac
+%if %{crossbuild}
+# cross build
+export PATH=/opt/cross/bin:$PATH
+# strip all after -march . no arch specific options in cross-compiler build .
+# -march=core2 -mssse3 -mtune=atom -mfpmath=sse -fasynchronous-unwi
+export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
+%if %{accelerator_crossbuild}
+# adding -rpath to the special crosscompiler
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+%endif
+%endif
+
+CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
+	GCJFLAGS="$OPT_FLAGS" \
+	../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
+%ifarch %{arm}
+	--with-bugurl=http://bugzilla.meego.com/ --disable-bootstrap \
+	--enable-shared --enable-threads=posix --disable-checking \
+%else
+%if %{crossbuild}
+	--build=%{gcc_target_platform} \
+	--host=%{gcc_target_platform} \
+	--target=%{cross_gcc_target_platform} \
+	--with-bugurl=http://bugzilla.meego.com/ --disable-bootstrap \
+	--enable-shared --enable-threads=posix --disable-checking \
+%else
+	--with-bugurl=http://bugzilla.meego.com/ --enable-bootstrap \
+	--enable-shared --enable-threads=posix --enable-checking=release \
+%endif
+%if %{build_64bit_multilib}
+	--enable-targets=all \
+	--enable-multilib \
+%endif
+%endif
+	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
+	--enable-gnu-unique-object --enable-lto \
+%if !%{build_ada}
+%if !%{build_java}
+	--enable-languages=c,c++,objc,obj-c++,fortran \
+%else
+	--enable-languages=c,c++,objc,obj-c++,java,fortran \
+%endif
+%else
+%if !%{build_java}
+	--enable-languages=c,c++,objc,obj-c++,fortran,ada \
+%else
+	--enable-languages=c,c++,objc,obj-c++,java,fortran,ada \
+%endif
+%endif
+%if !%{build_java}
+	--disable-libgcj \
+%else
+	--enable-java-awt=gtk --disable-dssi --enable-plugin \
+	--with-java-home=%{_prefix}/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre \
+	--enable-libgcj-multifile \
+%if !%{bootstrap_java}
+	--enable-java-maintainer-mode \
+%endif
+	--with-ecj-jar=/usr/share/java/eclipse-ecj.jar \
+	--disable-libjava-multilib \
+%endif
+%if %{build_cloog}
+	--with-ppl --with-cloog \
+%endif
+%ifarch %{arm}
+	--disable-sjlj-exceptions \
+%endif
+%if !%{crossbuild}
+%ifarch %{ix86} x86_64
+	--with-tune=generic \
+%endif
+%ifarch %{ix86}
+	--with-arch=i686 \
+%endif
+%ifarch x86_64
+	--with-arch_32=i686 \
+%endif
+	--build=%{gcc_target_platform}
+#end for x86
+%else
+%if !%{accelerator_crossbuild}
+	--with-sysroot=%{crosssysroot}
+#end for cross-compiler
+%else
+	--program-transform-name='s/%{cross_gcc_target_platform}-//' \
+	--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_version} \
+	--with-build-sysroot=%{crossbuildsysroot} \
+	--with-sysroot=%{crosssysroot} 
+#end for special cross-compiler
+%endif
+%endif
+
+
+#GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
+%ifarch %{arm}
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS"
+# native ARM
+%else
+%if !%{crossbuild}
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
+# native x86
+%else
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS"
+# crosscompiler
+%endif
+%endif
+
+# Make
+make -C gcc CC="./xgcc -B ./ -O2" all
+
+# Make generated man pages even if Pod::Man is not new enough
+perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
+for i in ../gcc/doc/*.texi; do
+  cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
+done
+make -C gcc generated-manpages
+for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done
+
+# Make generated doxygen pages.
+%if %{build_libstdcxx_docs}
+cd %{gcc_target_platform}/libstdc++-v3
+make doc-html-doxygen
+make doc-man-doxygen
+cd ../..
+%endif
+
+# Copy various doc files here and there
+cd ..
+mkdir -p rpm.doc/gfortran rpm.doc/objc
+mkdir -p rpm.doc/boehm-gc rpm.doc/fastjar rpm.doc/libffi rpm.doc/libjava
+mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}
+sed -e 's, at VERSION@,%{gcc_version},' %{SOURCE2} > rpm.doc/README.libgcjwebplugin.so
+
+for i in {gcc,gcc/cp,gcc/java,gcc/ada,libstdc++-v3,libobjc,libmudflap,libgomp}/ChangeLog*; do
+	cp -p $i rpm.doc/changelogs/$i
+done
+
+(cd gcc/fortran; for i in ChangeLog*; do
+	cp -p $i ../../rpm.doc/gfortran/$i
+done)
+(cd libgfortran; for i in ChangeLog*; do
+	cp -p $i ../rpm.doc/gfortran/$i.libgfortran
+done)
+(cd gcc/objc; for i in README*; do
+	cp -p $i ../../rpm.doc/objc/$i.objc
+done)
+(cd libobjc; for i in README*; do
+	cp -p $i ../rpm.doc/objc/$i.libobjc
+done)
+(cd boehm-gc; for i in ChangeLog*; do
+	cp -p $i ../rpm.doc/boehm-gc/$i.gc
+done)
+(cd fastjar-%{fastjar_ver}; for i in ChangeLog* README*; do
+	cp -p $i ../rpm.doc/fastjar/$i.fastjar
+done)
+(cd libffi; for i in ChangeLog* README* LICENSE; do
+	cp -p $i ../rpm.doc/libffi/$i.libffi
+done)
+(cd libjava; for i in ChangeLog* README*; do
+	cp -p $i ../rpm.doc/libjava/$i.libjava
+done)
+cp -p libjava/LIBGCJ_LICENSE rpm.doc/libjava/
+
+rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
+find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
+
+%if %{build_java_tar}
+find libjava -name \*.h -type f | xargs grep -l '// DO NOT EDIT THIS FILE - it is machine generated' > libjava-classes.list
+find libjava -name \*.class -type f >> libjava-classes.list
+find libjava/testsuite -name \*.jar -type f >> libjava-classes.list
+tar cf - -T libjava-classes.list | bzip2 -9 > $RPM_SOURCE_DIR/libjava-classes-%{version}-%{release}.tar.bz2
+%endif
+
+
+%install
+rm -fr %{buildroot}
+
+cd obj-%{gcc_target_platform}
+
+%if %{build_java}
+export PATH=`pwd`/../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}${PATH:+:$PATH}
+%if !%{bootstrap_java}
+export PATH=`pwd`/java_hacks${PATH:+:$PATH}
+%endif
+%endif
+
+%if !%{crossbuild}
+# native
+TARGET_PLATFORM=%{gcc_target_platform}
+# There are some MP bugs in libstdc++ Makefiles
+make -C %{gcc_target_platform}/libstdc++-v3
+%else
+# cross build
+export PATH=/opt/cross/bin:$PATH
+# strip all after -march . no arch specific options in cross-compiler build .
+# -march=core2 -mssse3 -mtune=atom -mfpmath=sse -fasynchronous-unwi
+export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
+#echo "$OPT_FLAGS"
+#TARGET_PLATFORM=%{cross_gcc_target_platform}
+# There are some MP bugs in libstdc++ Makefiles
+#make -C %{cross_gcc_target_platform}/libstdc++-v3
+%endif
+
+make DESTDIR=%{buildroot} install
+#prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
+#  infodir=%{buildroot}%{_infodir} install
+
+%if !%{crossbuild}
+# native
+# \/\/\/
+%if %{build_java}
+make DESTDIR=%{buildroot} -C %{gcc_target_platform}/libjava install-src.zip
+%endif
+%if %{build_ada}
+chmod 644 %{buildroot}%{_infodir}/gnat*
+%endif
+
+FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+
+ln -sf gcc %{buildroot}%{_prefix}/bin/cc
+mkdir -p %{buildroot}/lib
+ln -sf ..%{_prefix}/bin/cpp %{buildroot}/lib/cpp
+ln -sf gfortran %{buildroot}%{_prefix}/bin/f95
+rm -f %{buildroot}%{_infodir}/dir
+gzip -9 %{buildroot}%{_infodir}/*.info*
+ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc
+
+cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`"
+for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do
+  if ! diff -up $cxxconfig $i; then
+    cat > %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/c++config.h <<EOF
+#ifndef _CPP_CPPCONFIG_WRAPPER
+#define _CPP_CPPCONFIG_WRAPPER 1
+#include <bits/wordsize.h>
+#if __WORDSIZE == 32
+%ifarch %{multilib_64_archs}
+`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)`
+%else
+`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
+%endif
+#else
+%ifarch %{multilib_64_archs}
+`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
+%else
+`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)`
+%endif
+#endif
+#endif
+EOF
+    break
+  fi
+done
+
+for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/ -name c++config.h`; do
+  for i in 1 2 4 8; do
+    sed -i -e 's/#define _GLIBCXX_ATOMIC_BUILTINS_'$i' 1/#ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_'$i'\
+&\
+#endif/' $f
+  done
+done
+
+# Nuke bits/stdc++.h.gch dirs
+# 1) there is no bits/stdc++.h header installed, so when gch file can't be
+#    used, compilation fails
+# 2) sometimes it is hard to match the exact options used for building
+#    libstdc++-v3 or they aren't desirable
+# 3) there are multilib issues, conflicts etc. with this
+# 4) it is huge
+# People can always precompile on their own whatever they want, but
+# shipping this for everybody is unnecessary.
+rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_version}/%{gcc_target_platform}/bits/stdc++.h.gch
+
+%if %{build_libstdcxx_docs}
+libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen
+mkdir -p ../rpm.doc/libstdc++-v3
+cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html
+mv $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api
+mkdir -p %{buildroot}%{_mandir}
+mv $libstdcxx_doc_builddir/man/man3 %{buildroot}%{_mandir}/man3/
+find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
+%endif
+
+if [ -n "$FULLLPATH" ]; then
+  mkdir -p $FULLLPATH
+else
+  FULLLPATH=$FULLPATH
+fi
+
+find %{buildroot} -name \*.la | xargs rm -f
+%if %{build_java}
+find %{buildroot} -name libgcj.a -o -name libgtkpeer.a \
+		     -o -name libgjsmalsa.a -o -name libgcj-tools.a -o -name libjvm.a \
+		     -o -name libgij.a -o -name libgcj_bc.a -o -name libjavamath.a \
+  | xargs rm -f
+
+mv %{buildroot}%{_prefix}/lib/libgcj.spec $FULLPATH/
+sed -i -e 's/lib: /&%%{static:%%eJava programs cannot be linked statically}/' \
+  $FULLPATH/libgcj.spec
+%endif
+
+mkdir -p %{buildroot}/%{_lib}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
+chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
+ln -sf libgcc_s-%{gcc_version}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
+ln -sf /%{_lib}/libgcc_s.so.1 %{buildroot}/%{_libdir}/libgcc_s.so
+ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
+%ifarch %{multilib_64_archs}
+ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
+%endif
+
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
+
+%if %{build_ada}
+mv -f $FULLPATH/adalib/libgnarl-*.so %{buildroot}%{_prefix}/%{_lib}/
+mv -f $FULLPATH/adalib/libgnat-*.so %{buildroot}%{_prefix}/%{_lib}/
+rm -f $FULLPATH/adalib/libgnarl.so* $FULLPATH/adalib/libgnat.so*
+%endif
+
+mkdir -p %{buildroot}%{_prefix}/libexec/getconf
+if gcc/xgcc -B gcc/ -E -dD -xc /dev/null | grep __LONG_MAX__.*2147483647; then
+  ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
+else
+  ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
+fi
+
+%if %{build_java}
+pushd ../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
+make install DESTDIR=%{buildroot}
+popd
+
+if [ "%{_lib}" != "lib" ]; then
+  mkdir -p %{buildroot}%{_prefix}/%{_lib}/pkgconfig
+  sed '/^libdir/s/lib$/%{_lib}/' %{buildroot}%{_prefix}/lib/pkgconfig/libgcj-*.pc \
+    > %{buildroot}%{_prefix}/%{_lib}/pkgconfig/`basename %{buildroot}%{_prefix}/lib/pkgconfig/libgcj-*.pc`
+fi
+%endif
+
+pushd $FULLPATH
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../libobjc.so.2 libobjc.so
+#FIXME
+rm -fr ../../../libstdc++.so.6.*-gdb.py
+ln -sf ../../../libstdc++.so.6.* libstdc++.so
+ln -sf ../../../libgfortran.so.3.* libgfortran.so
+ln -sf ../../../libgomp.so.1.* libgomp.so
+ln -sf ../../../libmudflap.so.0.* libmudflap.so
+ln -sf ../../../libmudflapth.so.0.* libmudflapth.so
+%if %{build_java}
+ln -sf ../../../libgcj.so.10.* libgcj.so
+ln -sf ../../../libgcj-tools.so.10.* libgcj-tools.so
+ln -sf ../../../libgij.so.10.* libgij.so
+%endif
+else
+ln -sf ../../../../%{_lib}/libobjc.so.2 libobjc.so
+ln -sf ../../../../%{_lib}/libstdc++.so.6.* libstdc++.so
+ln -sf ../../../../%{_lib}/libgfortran.so.3.* libgfortran.so
+ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so
+ln -sf ../../../../%{_lib}/libmudflap.so.0.* libmudflap.so
+ln -sf ../../../../%{_lib}/libmudflapth.so.0.* libmudflapth.so
+%if %{build_java}
+ln -sf ../../../../%{_lib}/libgcj.so.10.* libgcj.so
+ln -sf ../../../../%{_lib}/libgcj-tools.so.10.* libgcj-tools.so
+ln -sf ../../../../%{_lib}/libgij.so.10.* libgij.so
+%endif
+fi
+%if %{build_java}
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgcj_bc.so $FULLLPATH/
+%endif
+mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
+mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libobjc.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a .
+mv -f %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.*a $FULLLPATH/
+
+%if %{build_ada}
+%ifarch %{multilib_64_archs}
+rm -rf $FULLPATH/32/ada{include,lib}
+%endif
+if [ "$FULLPATH" != "$FULLLPATH" ]; then
+mv -f $FULLPATH/ada{include,lib} $FULLLPATH/
+pushd $FULLLPATH/adalib
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../../../libgnarl-*.so libgnarl.so
+ln -sf ../../../../../libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../libgnat-*.so libgnat.so
+ln -sf ../../../../../libgnat-*.so libgnat-4.4.so
+else
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so
+ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so
+ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-4.4.so
+fi
+popd
+else
+pushd $FULLPATH/adalib
+if [ "%{_lib}" = "lib" ]; then
+ln -sf ../../../../libgnarl-*.so libgnarl.so
+ln -sf ../../../../libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../libgnat-*.so libgnat.so
+ln -sf ../../../../libgnat-*.so libgnat-4.4.so
+else
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so
+ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-4.4.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so
+ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-4.4.so
+fi
+popd
+fi
+%endif
+
+%ifarch %{multilib_64_archs}
+mkdir -p 32
+ln -sf ../../../../libobjc.so.2 32/libobjc.so
+ln -sf ../`echo ../../../../lib64/libstdc++.so.6.* | sed s~/../lib64/~/~` 32/libstdc++.so
+ln -sf ../`echo ../../../../lib64/libgfortran.so.3.* | sed s~/../lib64/~/~` 32/libgfortran.so
+ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so
+rm -f libmudflap.so libmudflapth.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflap.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > libmudflapth.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflap.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflapth.so
+%if %{build_java}
+ln -sf ../`echo ../../../../lib64/libgcj.so.10.* | sed s~/../lib64/~/~` 32/libgcj.so
+ln -sf ../`echo ../../../../lib64/libgcj-tools.so.10.* | sed s~/../lib64/~/~` 32/libgcj-tools.so
+ln -sf ../`echo ../../../../lib64/libgij.so.10.* | sed s~/../lib64/~/~` 32/libgij.so
+%endif
+mv -f %{buildroot}%{_prefix}/lib/libsupc++.*a 32/
+mv -f %{buildroot}%{_prefix}/lib/libgfortran.*a 32/
+mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/
+mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libstdc++.a 32/libstdc++.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libmudflap.a 32/libmudflap.a
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libmudflapth.a 32/libmudflapth.a
+%if %{build_java}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/libgcj_bc.so 32/libgcj_bc.so
+%endif
+%if %{build_ada}
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/adainclude 32/adainclude
+ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_version}/adalib 32/adalib
+%endif
+%endif
+
+# Strip debug info from Fortran/ObjC/Java static libraries
+strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \
+		    -o -name libmudflap.a -o -name libmudflapth.a \
+		    -o -name libgcc.a -o -name libgcov.a \) -a -type f`
+popd
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.3.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libmudflap{,th}.so.0.*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.2.*
+
+%if %{build_ada}
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnarl*so*
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnat*so*
+%endif
+
+mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h
+mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h
+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
+
+cat > %{buildroot}%{_prefix}/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+  case "$opt" in
+    -ansi|-std=c89|-std=iso9899:1990) fl="";;
+    -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+	    exit 1;;
+  esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+cat > %{buildroot}%{_prefix}/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+  case "$opt" in
+    -std=c99|-std=iso9899:1999) fl="";;
+    -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+	    exit 1;;
+  esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+chmod 755 %{buildroot}%{_prefix}/bin/c?9
+
+mkdir -p %{buildroot}%{_prefix}/sbin
+%ifarch %{arm}
+patch %{SOURCE1} < %{PATCH41}
+%endif
+gcc -static -Os %{SOURCE1} -o %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
+strip %{buildroot}%{_prefix}/sbin/libgcc_post_upgrade
+
+cd ..
+%find_lang %{name}
+%find_lang cpplib
+
+# Remove binaries we will not be including, so that they don't end up in
+# gcc-debuginfo
+rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a}
+rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
+rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a
+rm -f %{buildroot}%{_prefix}/%{_lib}/libssp*
+rm -f %{buildroot}%{_prefix}/bin/gnative2ascii
+
+%ifarch %{multilib_64_archs}
+# Remove libraries for the other arch on multilib arches
+rm -f %{buildroot}%{_prefix}/lib/lib*.so*
+rm -f %{buildroot}%{_prefix}/lib/lib*.a
+%endif
+
+%if %{build_java}
+mkdir -p %{buildroot}%{_prefix}/share/java/gcj-endorsed \
+	 %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+chmod 755 %{buildroot}%{_prefix}/share/java/gcj-endorsed \
+	  %{buildroot}%{_prefix}/%{_lib}/gcj-%{version} \
+	  %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+touch %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db
+%endif
+# /\/\/\
+# native
+%else
+# cross
+# \/\/\/
+# additional install for cross
+# remove some obsolete files
+%if !%{accelerator_crossbuild}
+#set -x
+rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
+rm -rRf %buildroot/%{_prefix}/share
+#set +x
+%endif
+# /\/\/\
+# cross
+%endif
+
+%if !%{crossbuild}
+# checking and split packaging for native ...
+# native
+# \/\/\/
+
+%check
+%if 0
+cd obj-%{gcc_target_platform}
+
+# run the tests.
+make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || :
+echo ====================TESTING=========================
+( LC_ALL=C ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}'
+echo ====================TESTING END=====================
+mkdir testlogs-%{_target_platform}-%{version}-%{release}
+for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats\|ada'`; do
+  ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
+done
+tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \
+  | uuencode testlogs-%{_target_platform}.tar.bz2 || :
+rm -rf testlogs-%{_target_platform}-%{version}-%{release}
+
+%endif
+
+%clean
+rm -rf %{buildroot}
+
+%post
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
+
+%preun
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
+fi
+
+%post -n cpp
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
+
+%preun -n cpp
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
+fi
+
+%post gfortran
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
+
+%preun gfortran
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
+fi
+
+%post java
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gcj.info.gz || :
+
+%preun java
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gcj.info.gz || :
+fi
+
+%post gnat
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat_ugn.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
+
+%preun gnat
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat_ugn.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
+fi
+
+%post -n libgcc -p %{_prefix}/sbin/libgcc_post_upgrade
+
+%postun -n libgcc -p /sbin/ldconfig
+
+%post -n libstdc++ -p /sbin/ldconfig
+
+%postun -n libstdc++ -p /sbin/ldconfig
+
+%post -n libobjc -p /sbin/ldconfig
+
+%postun -n libobjc -p /sbin/ldconfig
+
+%post -n libgcj
+/sbin/ldconfig
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/cp-tools.info.gz || :
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz || :
+
+%preun -n libgcj
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/cp-tools.info.gz || :
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/fastjar.info.gz || :
+fi
+
+%postun -n libgcj -p /sbin/ldconfig
+
+%post -n libgfortran -p /sbin/ldconfig
+
+%postun -n libgfortran -p /sbin/ldconfig
+
+%post -n libgnat -p /sbin/ldconfig
+
+%postun -n libgnat -p /sbin/ldconfig
+
+%post -n libgomp
+/sbin/ldconfig
+/sbin/install-info \
+  --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
+
+%preun -n libgomp
+if [ $1 = 0 ]; then
+  /sbin/install-info --delete \
+    --info-dir=%{_infodir} %{_infodir}/libgomp.info.gz || :
+fi
+
+%postun -n libgomp -p /sbin/ldconfig
+
+%post -n libmudflap -p /sbin/ldconfig
+
+%postun -n libmudflap -p /sbin/ldconfig
+
+%files -f %{name}.lang
+%defattr(-,root,root,-)
+%{_prefix}/bin/cc
+%{_prefix}/bin/c89
+%{_prefix}/bin/c99
+%{_prefix}/bin/gcc
+%{_prefix}/bin/gcov
+%ifnarch %{arm}
+%{_prefix}/bin/%{gcc_target_platform}-*
+%endif
+%{_mandir}/man1/gcc.1*
+%{_mandir}/man1/gcov.1*
+%{_mandir}/man7/*
+%{_infodir}/gcc*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include/*
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/*
+
+%ifarch %{arm}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/README
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed/linux/a.out.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/arm_neon.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/ssp.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/stdio.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/string.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ssp/unistd.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdfix.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/install-tools
+%endif
+
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.spec
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgomp.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcc_s.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgomp.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflap.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libmudflapth.so
+%endif
+%dir %{_prefix}/libexec/getconf
+%{_prefix}/libexec/getconf/default
+%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING*
+
+%files -n cpp -f cpplib.lang
+%defattr(-,root,root,-)
+/lib/cpp
+%{_prefix}/bin/cpp
+%{_mandir}/man1/cpp.1*
+%{_infodir}/cpp*
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1
+
+%files -n libgcc
+%defattr(-,root,root,-)
+/%{_lib}/libgcc_s-%{gcc_version}.so.1
+/%{_lib}/libgcc_s.*
+/%{_libdir}/libgcc_s.*
+%{_prefix}/sbin/libgcc_post_upgrade
+%doc gcc/COPYING.LIB
+
+%files c++
+%defattr(-,root,root,-)
+%ifnarch %{arm}
+%{_prefix}/bin/%{gcc_target_platform}-*++
+%endif
+%{_prefix}/bin/g++
+%{_prefix}/bin/c++
+%{_mandir}/man1/g++.1*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1plus
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libstdc++.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libsupc++.a
+%endif
+%ifarch %{multilib_64_archs}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
+%endif
+%doc rpm.doc/changelogs/gcc/cp/ChangeLog*
+
+%files -n libstdc++
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libstdc++.*
+#/usr/share/locale/de/LC_MESSAGES/libstdc++.mo
+#/usr/share/locale/fr/LC_MESSAGES/libstdc++.mo
+
+%files -n libstdc++-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/include/c++
+%dir %{_prefix}/include/c++/%{gcc_version}
+%{_prefix}/include/c++/%{gcc_version}/[^gjos]*
+%{_prefix}/include/c++/%{gcc_version}/os*
+%{_prefix}/include/c++/%{gcc_version}/s[^u]*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.a  
+%ifnarch  %{multilib_64_archs}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libstdc++.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libsupc++.a
+%endif
+%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README*
+
+%if %{build_libstdcxx_docs}
+%files -n libstdc++-docs
+%defattr(-,root,root)
+%{_mandir}/man3/*
+%doc rpm.doc/libstdc++-v3/html
+%endif
+
+%files objc
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/objc
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1obj
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libobjc.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libobjc.so
+%endif
+%doc rpm.doc/objc/*
+%doc libobjc/THREADS* rpm.doc/changelogs/libobjc/ChangeLog*
+
+%files objc++
+%defattr(-,root,root,-)
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/cc1objplus
+
+%files -n libobjc
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libobjc.*
+
+%files gfortran
+%defattr(-,root,root,-)
+%{_prefix}/bin/gfortran
+%{_prefix}/bin/f95
+%{_mandir}/man1/gfortran.1*
+%{_infodir}/gfortran*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.f90
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib.mod
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/finclude/omp_lib_kinds.mod
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/f951
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgfortran.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortranbegin.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgfortran.so
+%endif
+%doc rpm.doc/gfortran/*
+
+%files -n libgfortran
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libgfortran.*
+
+%if %{build_java}
+%files java
+%defattr(-,root,root,-)
+%{_prefix}/bin/gcj
+%{_prefix}/bin/gjavah
+%{_prefix}/bin/gcjh
+%{_prefix}/bin/jcf-dump
+%{_mandir}/man1/gcj.1*
+%{_mandir}/man1/jcf-dump.1*
+%{_mandir}/man1/gjavah.1*
+%{_mandir}/man1/gcjh.1*
+%{_infodir}/gcj*
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jc1
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/ecj1
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/jvgenmain
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj-tools.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgij.so
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj-tools.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgcj_bc.so
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/libgij.so
+%endif
+%doc rpm.doc/changelogs/gcc/java/ChangeLog*
+
+%files -n libgcj
+%defattr(-,root,root,-)
+%{_prefix}/bin/jv-convert
+%{_prefix}/bin/gij
+%{_prefix}/bin/gjar
+%{_prefix}/bin/fastjar
+%{_prefix}/bin/grepjar
+%{_prefix}/bin/grmic
+%{_prefix}/bin/grmid
+%{_prefix}/bin/grmiregistry
+%{_prefix}/bin/gtnameserv
+%{_prefix}/bin/gkeytool
+%{_prefix}/bin/gorbd
+%{_prefix}/bin/gserialver
+%{_prefix}/bin/gcj-dbtool
+%if %{include_gappletviewer}
+%{_prefix}/bin/gappletviewer
+%{_mandir}/man1/gappletviewer.1*
+%endif
+%{_prefix}/bin/gjarsigner
+%{_mandir}/man1/fastjar.1*
+%{_mandir}/man1/grepjar.1*
+%{_mandir}/man1/gjar.1*
+%{_mandir}/man1/gjarsigner.1*
+%{_mandir}/man1/jv-convert.1*
+%{_mandir}/man1/gij.1*
+%{_mandir}/man1/grmic.1*
+%{_mandir}/man1/grmiregistry.1*
+%{_mandir}/man1/gcj-dbtool.1*
+%{_mandir}/man1/gkeytool.1*
+%{_mandir}/man1/gorbd.1*
+%{_mandir}/man1/grmid.1*
+%{_mandir}/man1/gserialver.1*
+%{_mandir}/man1/gtnameserv.1*
+%{_infodir}/fastjar.info*
+%{_infodir}/cp-tools.info*
+%{_prefix}/%{_lib}/libgcj.so.*
+%{_prefix}/%{_lib}/libgcj-tools.so.*
+%{_prefix}/%{_lib}/libgcj_bc.so.*
+%{_prefix}/%{_lib}/libgij.so.*
+%dir %{_prefix}/%{_lib}/gcj-%{version}
+%{_prefix}/%{_lib}/gcj-%{version}/libgtkpeer.so
+%{_prefix}/%{_lib}/gcj-%{version}/libgjsmalsa.so
+%{_prefix}/%{_lib}/gcj-%{version}/libjawt.so
+%if %{include_gappletviewer}
+%{_prefix}/%{_lib}/gcj-%{version}/libgcjwebplugin.so
+%endif
+%{_prefix}/%{_lib}/gcj-%{version}/libjvm.so
+%{_prefix}/%{_lib}/gcj-%{version}/libjavamath.so
+%dir %{_prefix}/share/java
+%{_prefix}/share/java/[^sl]*
+%{_prefix}/share/java/libgcj-%{version}.jar
+%dir %{_prefix}/%{_lib}/security
+%config(noreplace) %{_prefix}/%{_lib}/security/classpath.security
+%{_prefix}/%{_lib}/logging.properties
+%dir %{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
+%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{_prefix}/%{_lib}/gcj-%{version}/classmap.db
+%if %{include_gappletviewer}
+%doc rpm.doc/README.libgcjwebplugin.so
+%endif
+
+%files -n libgcj-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/gcj
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jawt.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jawt_md.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jni.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jni_md.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/jvmpi.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj.spec
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcj_bc.so  
+%dir %{_prefix}/include/c++
+%dir %{_prefix}/include/c++/%{gcc_version}
+%{_prefix}/include/c++/%{gcc_version}/[gj]*
+%{_prefix}/include/c++/%{gcc_version}/org
+%{_prefix}/include/c++/%{gcc_version}/sun
+%{_prefix}/%{_lib}/pkgconfig/libgcj-*.pc
+%doc rpm.doc/boehm-gc/* rpm.doc/fastjar/* rpm.doc/libffi/*
+%doc rpm.doc/libjava/*
+
+%files -n libgcj-src
+%defattr(-,root,root,-)
+%dir %{_prefix}/share/java
+%{_prefix}/share/java/src*.zip
+%{_prefix}/share/java/libgcj-tools-%{version}.jar
+%endif
+
+%if %{build_ada}
+%files gnat
+%defattr(-,root,root,-)
+%{_prefix}/bin/gnat*
+%{_infodir}/gnat*
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/libexec/gcc
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
+%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
+%ifarch %{multilib_64_archs}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/adainclude
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/32/adalib
+%endif
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/gnat1
+%doc rpm.doc/changelogs/gcc/ada/ChangeLog*
+
+%files -n libgnat
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libgnat-*.so
+%{_prefix}/%{_lib}/libgnarl-*.so
+
+%files -n libgnat-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adainclude  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/adalib  
+%endif
+
+%files -n libgomp
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libgomp.*
+%{_infodir}/libgomp.info*
+%doc rpm.doc/changelogs/libgomp/ChangeLog*
+
+%files -n libmudflap
+%defattr(-,root,root,-)
+%{_prefix}/%{_lib}/libmudflap.*
+%{_prefix}/%{_lib}/libmudflapth.*
+
+%files -n libmudflap-devel
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mf-runtime.h
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.a  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.a  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflap.so  
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.so  
+%doc rpm.doc/changelogs/libmudflap/ChangeLog*
+
+%if %{build_64bit_multilib}
+%files -n gcc-multilib
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortranbegin.a
+%dir %{_prefix}/lib64
+%{_prefix}/lib64/*
+%endif
+
+# /\/\/\
+# native
+%else
+# cross
+# \/\/\/
+%files
+%defattr(-,root,root,-)
+%{_prefix}
+# /\/\/\
+# cross
+%endif
--- gcc.spec
+++ gcc.spec
@@ -1,64 +1,128 @@
-%global DATE 20091027
-%global SVNREV 153611
-%global gcc_version 4.4.2
-# Note, gcc_release must be integer, if you want to add suffixes to
-# %{release}, append them after %{gcc_release} on Release: line.
-%global gcc_release 7
+# Combined gcc / cross-armv*-gcc(-accel) specfile
+Name: gcc
+# Keep Name on top !
+
+# crossbuild / accelerator section
+# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
+%define crossbuild 0
+%define accelerator_crossbuild 0
+%if "%{name}" != "gcc"
+# this is the ix86 -> arm cross compiler (cross-armv*-gcc)
+#
+# cross arch retrieval
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc/\\1/")
+# We set requires/provides by hand and disable post-build-checks.
+# Captain Trunk: Sledge, you cannot disarm that nuclear bomb!
+# Sledge Hammer: Trust me, I know what I'm doing. 
+AutoReqProv: 0
+AutoReq: false
+BuildRequires: -rpmlint-Moblin -rpmlint-mini -post-build-checks
+# cross platform
+%define cross_gcc_target_platform %{crossarch}-meego-linux-gnueabi
+# gcc_target_platform holds the host (executing the compiler)
+# cross_gcc_target_platform holds the target (for which the compiler is producing binaries)
+# prefix for cross compiler
+%define _prefix /opt/cross
+# strip of 'foreign arch' symbols fails
+%define __strip /bin/true
+# sysroot for cross-compiler
+%define crosssysroot %{_prefix}/%{cross_gcc_target_platform}/sys-root
+# flag
+%define crossbuild 1
+# macros in buildrequires is hard to expand for the scheduler (e.g. crossarch) which would make this easier.
+#BuildRequires: cross-%{crossarch}-glibc cross-%{crossarch}-glibc-devel cross-%{crossarch}-glibc-headers
+#BuildRequires: cross-%{crossarch}-kernel-headers cross-%{crossarch}-binutils
+# Fixme: find way to make this without listing every package
+%if "%{name}" == "cross-armv5tel-gcc"
+BuildRequires: cross-armv5tel-glibc cross-armv5tel-glibc-devel cross-armv5tel-glibc-headers
+BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
+%endif
+%if "%{name}" == "cross-armv7l-gcc"
+BuildRequires: cross-armv7l-glibc cross-armv7l-glibc-devel cross-armv7l-glibc-headers
+BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
+%endif
+# Fixme: see above
+%if "%{name}" == "cross-armv5tel-gcc-accel"
+BuildRequires: cross-armv5tel-glibc cross-armv5tel-glibc-devel cross-armv5tel-glibc-headers
+BuildRequires: cross-armv5tel-kernel-headers cross-armv5tel-binutils
+%endif
+%if "%{name}" == "cross-armv7l-gcc-accel"
+BuildRequires: cross-armv7l-glibc cross-armv7l-glibc-devel cross-armv7l-glibc-headers
+BuildRequires: cross-armv7l-kernel-headers cross-armv7l-binutils
+%endif
+# single target atm.
+ExclusiveArch: %ix86
+#
+# special handling for MeeGo ARM build acceleration
+# cross-armv*-gcc-accel
+%if "%(echo %{name} | sed -e "s/cross-.*-gcc-\\(.*\\)/\\1/")" == "accel"
+# cross architecture
+%define crossarch %(echo %{name} | sed -e "s/cross-\\(.*\\)-gcc-accel/\\1/")
+# cross target platform
+%define cross_gcc_target_platform %{crossarch}-meego-linux-gnueabi
+# prefix - as it's going to "replace" the original compiler ...
+%define _prefix /usr
+# cross-build sets sysroot as default , we need to override this a bit
+%define crosssysroot /
+# where to find the libs during the build
+%define crossbuildsysroot /opt/cross/%{cross_gcc_target_platform}/sys-root
+# flags
+%define crossbuild 1
+%define accelerator_crossbuild 1
+# where to find the libs at runtime
+%define newrpath /emul/ia32-linux/lib:/emul/ia32-linux/usr/lib
+%define _build_name_fmt    %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.dontuse.rpm
+%endif
+# end special accel
+%endif
+# /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
+# end crossbuild / accelerator section
+
+%global gcc_version 4.5.0
+%global gcc_release 1
 %global _unpackaged_files_terminate_build 0
-%global multilib_64_archs x86_64
 %global include_gappletviewer 0
 %global build_ada 0
 %global build_java 0
 %ifarch %{arm}
 %global build_cloog 0
 %else
+%if %{crossbuild}
+%global build_cloog 0
+%else
 %global build_cloog 1
 %endif
+%endif
 %global build_libstdcxx_docs 0
-# If you don't have already a usable gcc-java and libgcj for your arch,
-# do on some arch which has it rpmbuild -bc --with java_tar gcc41.spec
-# which creates libjava-classes-%{version}-%{release}.tar.bz2
-# With this then on the new arch do rpmbuild -ba -v --with java_bootstrap gcc41.spec
 %global bootstrap_java %{?_with_java_bootstrap:%{build_java}}%{!?_with_java_bootstrap:0}
 %global build_java_tar %{?_with_java_tar:%{build_java}}%{!?_with_java_tar:0}
+%global multilib_64_archs x86_64
 %ifarch x86_64
 %global multilib_32_arch i686
 %endif
+%global build_64bit_multilib 0
 
 Summary: Various compilers (C, C++, Objective-C, Java, ...)
-Name: gcc
 Version: %{gcc_version}
 Release: %{gcc_release}
-# libgcc, libgfortran, libmudflap, libgomp, libstdc++ and crtstuff have
-# GCC Runtime Exception.
 License: GPLv3+, GPLv3+ with exceptions and GPLv2+ with exceptions
 Group: Development/Languages
-# The source for this package was pulled from upstream's vcs.  Use the
-# following commands to generate the tarball:
-# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_4-branch@%{SVNREV} gcc-%{version}-%{DATE}
-# tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
-Source0: gcc-%{version}-%{DATE}.tar.bz2
+URL: http://gcc.gnu.org
+Source0: gcc-%{version}.tar.bz2
 Source1: libgcc_post_upgrade.c
 Source2: README.libgcjwebplugin.so
-Source3: protoize.1
 %global fastjar_ver 0.97
 Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz
-Source100: gcc-rpmlintrc
-URL: http://gcc.gnu.org
+Source100: gcc-4.5.0-rpmlintrc
+
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-# Need binutils with -pie support >= 2.14.90.0.4-4
-# Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4
-# Need binutils which handle -msecure-plt on ppc >= 2.16.91.0.2-2
-# Need binutils which support .weakref >= 2.16.91.0.3-1
-# Need binutils which support --hash-style=gnu >= 2.17.50.0.2-7
-# Need binutils which support mffgpr and mftgpr >= 2.17.50.0.2-8
-# Need binutils which support --build-id >= 2.17.50.0.17-3
-# Need binutils which support %gnu_unique_object >= 2.19.51.0.14
 BuildRequires: binutils >= 2.19.51.0.14
-# While gcc doesn't include statically linked binaries, during testing
-# -static is used several times.
 BuildRequires: glibc-static
 BuildRequires: zlib-devel, gettext,  bison, flex, texinfo
+BuildRequires: mpc-devel
+BuildRequires: glibc-devel >= 2.4.90-13
+BuildRequires: elfutils-devel >= 0.72
+
 %if %{build_java}
 BuildRequires: /usr/share/java/eclipse-ecj.jar, zip, unzip
 %if %{bootstrap_java}
@@ -67,48 +131,39 @@
 BuildRequires: gcc-java, libgcj
 %endif
 %endif
-# Make sure pthread.h doesn't contain __thread tokens
-# Make sure glibc supports stack protector
-# Make sure glibc supports DT_GNU_HASH
-BuildRequires: glibc-devel >= 2.4.90-13
-BuildRequires: elfutils-devel >= 0.72
 
 %if %{build_ada}
 # Ada requires Ada to build
 BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1
 %endif
+
 %if %{build_cloog}
 BuildRequires: ppl >= 0.10, ppl-devel >= 0.10, cloog-ppl >= 0.15, cloog-ppl-devel >= 0.15
 %endif
+
 %if %{build_libstdcxx_docs}
 BuildRequires: doxygen
 BuildRequires: graphviz
 %endif
+
 Requires: cpp = %{version}-%{release}
-# Need .eh_frame ld optimizations
-# Need proper visibility support
-# Need -pie support
-# Need --as-needed/--no-as-needed support
-# On ppc64, need omit dot symbols support and --non-overlapping-opd
-# Need binutils that owns /usr/bin/c++filt
-# Need binutils that support .weakref
-# Need binutils that supports --hash-style=gnu
-# Need binutils that support mffgpr/mftgpr
-# Need binutils that support --build-id
-# Need binutils which support %gnu_unique_object
-Requires: binutils >= 2.19.51.0.14
-# Make sure gdb will understand DW_FORM_strp
-Conflicts: gdb < 5.1-2
-Requires: glibc-devel >= 2.2.90-12
 Requires: libgcc >= %{version}-%{release}
 Requires: libgomp = %{version}-%{release}
+Requires: glibc-devel
+
 %if !%{build_ada}
 Obsoletes: gcc-gnat < %{version}-%{release}
 Obsoletes: libgnat < %{version}-%{release}
 %endif
+
 %if %{build_cloog}
 Requires: cloog-ppl >= 0.15
 %endif
+
+%if %{build_64bit_multilib}
+Requires: glibc64bit-helper
+%endif
+
 Requires(post): /sbin/install-info
 Requires(preun): /sbin/install-info
 Obsoletes: gcc < %{version}-%{release}
@@ -120,47 +175,40 @@
 Patch2: gcc44-c++-builtin-redecl.patch
 Patch4: gcc44-java-nomulti.patch
 Patch9: gcc44-pr33763.patch
-Patch10: gcc44-rh330771.patch
 Patch11: gcc44-rh341221.patch
 Patch12: gcc44-java-debug-iface-type.patch
 Patch13: gcc44-i386-libgomp.patch
 Patch16: gcc44-libgomp-omp_h-multilib.patch
 Patch20: gcc44-libtool-no-rpath.patch
-Patch21: gcc44-cloog-dl.patch
-Patch24: gcc44-unwind-debug-hook.patch
-Patch28: gcc44-pr38757.patch
-%if %{build_libstdcxx_docs}
 Patch29: gcc44-libstdc++-docs.patch
-%endif
+Patch30: gcc45-pr43572.patch
 
-Patch34: gcc44-pr41762.patch
-
-Patch40: gcc44-use-atom.patch
+Patch40: gcc45-use-atom.patch
 Patch41: libgcc_post_upgrade.c.arm.patch
 
-Patch42: var-tracking1.patch
-Patch43: var-tracking2.patch
-Patch44: var-tracking3.patch
+#Patch42: var-tracking1.patch
+#Patch43: var-tracking2.patch
+#Patch44: var-tracking3.patch
 
-Patch45: gcc44-max-vartrack-size.patch
-Patch46: gcc44-max-vartrack-size-2.patch
+#Patch45: gcc44-max-vartrack-size.patch
+#Patch46: gcc44-max-vartrack-size-2.patch
 
 Patch1000: fastjar-0.97-segfault.patch
+Patch9999: gcc44-ARM-boehm-gc-stack-qemu.patch
 
-# On ARM EABI systems, we do want -gnueabi to be part of the
-# target triple.
+#We need -gnueabi indicator for ARM
 %ifnarch %{arm}
 %global _gnu %{nil}
 %endif
 %global gcc_target_platform %{_target_platform}
 
 %description
-The gcc package contains the GNU Compiler Collection version 4.4.
+The gcc package contains the GNU Compiler Collection version 4.5.0.
 You'll need this package in order to compile C code.
 
 %package -n libgcc
-Summary: GCC version 4.4 shared support library
-Group: System/Libraries
+Summary: GCC version 4.5.0 shared support library
+Group: System Environment/Libraries
 Obsoletes: libgcc < %{version}-%{release}
 Obsoletes: libgcc43
 Autoreq: false
@@ -186,13 +234,12 @@
 
 %package -n libstdc++
 Summary: GNU Standard C++ Library
-Group: System/Libraries
+Group: System Environment/Libraries
 Obsoletes: libstdc++ < %{version}-%{release}
 Obsoletes: libstdc++43
 Obsoletes: libstdc++6 < %{version}-%{release}
 Autoreq: true
 Requires: glibc 
-# >= 2.10.90-7
 
 %description -n libstdc++
 The libstdc++ package contains a rewritten standard compliant GCC Standard
@@ -249,7 +296,7 @@
 
 %package -n libobjc
 Summary: Objective-C runtime
-Group: System/Libraries
+Group: System Environment/Libraries
 Obsoletes: libobjc < %{version}-%{release}
 Obsoletes: libobjc43
 Autoreq: true
@@ -261,9 +308,9 @@
 %package gfortran
 Summary: Fortran support
 Group: Development/Languages
+BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1
 Requires: gcc = %{version}-%{release}
 Requires: libgfortran = %{version}-%{release}
-BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1
 Requires(post): /sbin/install-info
 Requires(preun): /sbin/install-info
 Obsoletes: gcc-fortran < %{version}-%{release}
@@ -277,7 +324,7 @@
 
 %package -n libgfortran
 Summary: Fortran runtime
-Group: System/Libraries
+Group: System Environment/Libraries
 Obsoletes: libgfortran < %{version}-%{release}
 Obsoletes: libgfortran43
 Autoreq: true
@@ -288,7 +335,7 @@
 
 %package -n libgomp
 Summary: GCC OpenMP v3.0 shared support library
-Group: System/Libraries
+Group: System Environment/Libraries
 Requires(post): /sbin/install-info
 Requires(preun): /sbin/install-info
 Obsoletes: libgomp < %{version}-%{release}
@@ -300,7 +347,7 @@
 
 %package -n libmudflap
 Summary: GCC mudflap shared support library
-Group: System/Libraries
+Group: System Environment/Libraries
 
 %description -n libmudflap
 This package contains GCC shared support library which is needed
@@ -339,13 +386,7 @@
 
 %package -n libgcj
 Summary: Java runtime library for gcc
-Group: System/Libraries
-Requires(post): /sbin/install-info
-Requires(preun): /sbin/install-info
-Requires: zip >= 2.1
-Requires: gtk2 >= 2.4.0
-Requires: glib2 >= 2.4.0
-Requires: libart_lgpl >= 2.1.0
+Group: System Environment/Libraries
 %if %{build_java}
 BuildRequires: gtk2-devel >= 2.4.0
 BuildRequires: glib2-devel >= 2.4.0
@@ -355,6 +396,12 @@
 BuildRequires: libXtst-devel
 BuildRequires: libXt-devel
 %endif
+Requires(post): /sbin/install-info
+Requires(preun): /sbin/install-info
+Requires: zip >= 2.1
+Requires: gtk2 >= 2.4.0
+Requires: glib2 >= 2.4.0
+Requires: libart_lgpl >= 2.1.0
 Obsoletes: libgcj < %{version}-%{release}
 Obsoletes: libgcj43
 Autoreq: true
@@ -380,7 +427,7 @@
 
 %package -n libgcj-src
 Summary: Java library sources from GCC4 preview
-Group: System/Libraries
+Group: System Environment/Libraries
 Requires: libgcj = %{version}-%{release}
 Autoreq: true
 
@@ -392,6 +439,7 @@
 Group: Development/Languages
 Requires(post): /sbin/install-info
 Requires(preun): /sbin/install-info
+Requires: mpc
 Obsoletes: cpp < %{version}-%{release}
 Obsoletes: cpp43
 Autoreq: true
@@ -433,7 +481,7 @@
 
 %package -n libgnat
 Summary: GNU Ada 95 runtime shared libraries
-Group: System/Libraries
+Group: System Environment/Libraries
 Autoreq: true
 
 %description -n libgnat
@@ -442,45 +490,48 @@
 
 %package -n libgnat-devel
 Summary: GNU Ada 95 libraries
-Group: System/Libraries
+Group: System Environment/Libraries
 Autoreq: true
 
 %description -n libgnat-devel
 GNAT is a GNU Ada 95 front-end to GCC. This package includes libraries,
 which are required to compile with the GNAT.
 
+%package -n gcc-multilib
+Summary: for 64bit multilib support
+Group: System Environment/Libraries
+Autoreq: true
+
+%description -n gcc-multilib
+This is one set of libraries which support 64bit multilib on top of
+32bit enviroment from compiler side.
+
 %prep
-%setup -q -n gcc-%{version}-%{DATE}
+%setup -q -n gcc-%{version}
 %patch0 -p0 -b .hack~
 %patch1 -p0 -b .build-id~
 %patch2 -p0 -b .c++-builtin-redecl~
 %patch4 -p0 -b .java-nomulti~
 %patch9 -p0 -b .pr33763~
-%patch10 -p0 -b .rh330771~
 %patch11 -p0 -b .rh341221~
 %patch12 -p0 -b .java-debug-iface-type~
 %patch13 -p0 -b .i386-libgomp~
 %patch16 -p0 -b .libgomp-omp_h-multilib~
 %patch20 -p0 -b .libtool-no-rpath~
-%if %{build_cloog}
-%patch21 -p0 -b .cloog-dl~
-%endif
-%patch24 -p0 -b .unwind-debug-hook~
-%patch28 -p0 -b .pr38757~
+
 %if %{build_libstdcxx_docs}
 %patch29 -p0 -b .libstdc++-docs~
 %endif
 
-%patch34 -p0 -b .pr41762~
-
+%patch30 -p1 -b .pr43572
 %patch40 -p1 -b .atom
 
-%patch42 -p0 -b .var-track1~
-%patch43 -p0 -b .var-track2~
-%patch44 -p0 -b .var-track3~
+#%patch42 -p0 -b .var-track1~
+#%patch43 -p0 -b .var-track2~
+#%patch44 -p0 -b .var-track3~
 
-%patch45 -p0 -b .max-vartrack-size~
-%patch46 -p1 -b .max-vartrack-size-2~
+#%patch45 -p0 -b .max-vartrack-size~
+#%patch46 -p1 -b .max-vartrack-size-2~
 
 # This testcase doesn't compile.
 rm libjava/testsuite/libjava.lang/PR35020*
@@ -488,12 +539,12 @@
 tar xzf %{SOURCE4}
 
 %patch1000 -p0 -b .fastjar-0.97-segfault~
+%patch9999 -p1 -b .arm-boehm-gc~
 
 %if %{bootstrap_java}
 tar xjf %{SOURCE10}
 %endif
 
-sed -i -e 's/4\.4\.3/4.4.2/' gcc/BASE-VER
 echo 'MeeGo %{version}-%{gcc_release}' > gcc/DEV-PHASE
 
 # Default to -gdwarf-3 rather than -gdwarf-2
@@ -517,8 +568,6 @@
 %build
 
 %if %{build_java}
-# gjar isn't usable, so even when GCC source tree no longer includes
-# fastjar, build it anyway.
 mkdir fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
 cd fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}
 ../configure CFLAGS="%{optflags}" --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir}
@@ -533,7 +582,6 @@
 
 %if %{build_java}
 %if !%{bootstrap_java}
-# If we don't have gjavah in $PATH, try to build it with the old gij
 mkdir java_hacks
 cd java_hacks
 cp -a ../../libjava/classpath/tools/external external
@@ -573,6 +621,17 @@
       ../gcc/Makefile.in
     ;;
 esac
+%if %{crossbuild}
+# cross build
+export PATH=/opt/cross/bin:$PATH
+# strip all after -march . no arch specific options in cross-compiler build .
+# -march=core2 -mssse3 -mtune=atom -mfpmath=sse -fasynchronous-unwi
+export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
+%if %{accelerator_crossbuild}
+# adding -rpath to the special crosscompiler
+export OPT_FLAGS="$OPT_FLAGS -Wl,-rpath,/emul/ia32-linux/usr/lib:/emul/ia32-linux/lib:/usr/lib:/lib"
+%endif
+%endif
 
 CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="`echo $OPT_FLAGS | sed 's/ -Wall / /g'`" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
 	GCJFLAGS="$OPT_FLAGS" \
@@ -581,16 +640,36 @@
 	--with-bugurl=http://bugzilla.meego.com/ --disable-bootstrap \
 	--enable-shared --enable-threads=posix --disable-checking \
 %else
+%if %{crossbuild}
+	--build=%{gcc_target_platform} \
+	--host=%{gcc_target_platform} \
+	--target=%{cross_gcc_target_platform} \
+	--with-bugurl=http://bugzilla.meego.com/ --disable-bootstrap \
+	--enable-shared --enable-threads=posix --disable-checking \
+%else
 	--with-bugurl=http://bugzilla.meego.com/ --enable-bootstrap \
 	--enable-shared --enable-threads=posix --enable-checking=release \
 %endif
+%if %{build_64bit_multilib}
+	--enable-targets=all \
+	--enable-multilib \
+%endif
+%endif
 	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
-	--enable-gnu-unique-object \
+	--enable-gnu-unique-object --enable-lto \
 %if !%{build_ada}
+%if !%{build_java}
+	--enable-languages=c,c++,objc,obj-c++,fortran \
+%else
 	--enable-languages=c,c++,objc,obj-c++,java,fortran \
+%endif
+%else
+%if !%{build_java}
+	--enable-languages=c,c++,objc,obj-c++,fortran,ada \
 %else
 	--enable-languages=c,c++,objc,obj-c++,java,fortran,ada \
 %endif
+%endif
 %if !%{build_java}
 	--disable-libgcj \
 %else
@@ -609,6 +688,7 @@
 %ifarch %{arm}
 	--disable-sjlj-exceptions \
 %endif
+%if !%{crossbuild}
 %ifarch %{ix86} x86_64
 	--with-tune=generic \
 %endif
@@ -619,16 +699,37 @@
 	--with-arch_32=i686 \
 %endif
 	--build=%{gcc_target_platform}  
+#end for x86
+%else
+%if !%{accelerator_crossbuild}
+	--with-sysroot=%{crosssysroot}
+#end for cross-compiler
+%else
+	--program-transform-name='s/%{cross_gcc_target_platform}-//' \
+	--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_version} \
+	--with-build-sysroot=%{crossbuildsysroot} \
+	--with-sysroot=%{crosssysroot} 
+#end for special cross-compiler
+%endif
+%endif
+
 
 #GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
 %ifarch %{arm}
 GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS"
+# native ARM
 %else
+%if !%{crossbuild}
 GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
+# native x86
+%else
+GCJFLAGS="$OPT_FLAGS" make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS"
+# crosscompiler
+%endif
 %endif
 
-# Make protoize
-make -C gcc CC="./xgcc -B ./ -O2" proto
+# Make
+make -C gcc CC="./xgcc -B ./ -O2" all
 
 # Make generated man pages even if Pod::Man is not new enough
 perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
@@ -693,6 +794,7 @@
 tar cf - -T libjava-classes.list | bzip2 -9 > $RPM_SOURCE_DIR/libjava-classes-%{version}-%{release}.tar.bz2
 %endif
 
+
 %install
 rm -fr %{buildroot}
 
@@ -705,13 +807,30 @@
 %endif
 %endif
 
+%if !%{crossbuild}
+# native
 TARGET_PLATFORM=%{gcc_target_platform}
-
 # There are some MP bugs in libstdc++ Makefiles
 make -C %{gcc_target_platform}/libstdc++-v3
+%else
+# cross build
+export PATH=/opt/cross/bin:$PATH
+# strip all after -march . no arch specific options in cross-compiler build .
+# -march=core2 -mssse3 -mtune=atom -mfpmath=sse -fasynchronous-unwi
+export OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e "s#\-march=.*##g"`
+#echo "$OPT_FLAGS"
+#TARGET_PLATFORM=%{cross_gcc_target_platform}
+# There are some MP bugs in libstdc++ Makefiles
+#make -C %{cross_gcc_target_platform}/libstdc++-v3
+%endif
 
-make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
-  infodir=%{buildroot}%{_infodir} install
+make DESTDIR=%{buildroot} install
+#prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
+#  infodir=%{buildroot}%{_infodir} install
+
+%if !%{crossbuild}
+# native
+# \/\/\/
 %if %{build_java}
 make DESTDIR=%{buildroot} -C %{gcc_target_platform}/libjava install-src.zip
 %endif
@@ -722,7 +841,6 @@
 FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}
 FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
 
-# fix some things
 ln -sf gcc %{buildroot}%{_prefix}/bin/cc
 mkdir -p %{buildroot}/lib
 ln -sf ..%{_prefix}/bin/cpp %{buildroot}/lib/cpp
@@ -794,8 +912,6 @@
 
 find %{buildroot} -name \*.la | xargs rm -f
 %if %{build_java}
-# gcj -static doesn't work properly anyway, unless using --whole-archive
-# and saving 35MB is not bad.
 find %{buildroot} -name libgcj.a -o -name libgtkpeer.a \
 		     -o -name libgjsmalsa.a -o -name libgcj-tools.a -o -name libjvm.a \
 		     -o -name libgij.a -o -name libgcj_bc.a -o -name libjavamath.a \
@@ -807,9 +923,10 @@
 %endif
 
 mkdir -p %{buildroot}/%{_lib}
-mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
-chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
-ln -sf libgcc_s-%{gcc_version}-%{DATE}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
+mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
+chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}.so.1
+ln -sf libgcc_s-%{gcc_version}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
+ln -sf /%{_lib}/libgcc_s.so.1 %{buildroot}/%{_libdir}/libgcc_s.so
 ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
 %ifarch %{multilib_64_archs}
 ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
@@ -845,6 +962,8 @@
 pushd $FULLPATH
 if [ "%{_lib}" = "lib" ]; then
 ln -sf ../../../libobjc.so.2 libobjc.so
+#FIXME
+rm -fr ../../../libstdc++.so.6.*-gdb.py
 ln -sf ../../../libstdc++.so.6.* libstdc++.so
 ln -sf ../../../libgfortran.so.3.* libgfortran.so
 ln -sf ../../../libgomp.so.1.* libgomp.so
@@ -1030,10 +1149,27 @@
 	  %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db.d
 touch %{buildroot}%{_prefix}/%{_lib}/gcj-%{version}/classmap.db
 %endif
-
-install -m644 %{SOURCE3} %{buildroot}%{_mandir}/man1/protoize.1
-echo '.so man1/protoize.1' > %{buildroot}%{_mandir}/man1/unprotoize.1
-chmod 644 %{buildroot}%{_mandir}/man1/unprotoize.1
+# /\/\/\
+# native
+%else
+# cross
+# \/\/\/
+# additional install for cross
+# remove some obsolete files
+%if !%{accelerator_crossbuild}
+#set -x
+rm -rRf %buildroot/%{_prefix}/lib/libiberty.a
+rm -rRf %buildroot/%{_prefix}/share
+#set +x
+%endif
+# /\/\/\
+# cross
+%endif
+
+%if !%{crossbuild}
+# checking and split packaging for native ...
+# native
+# \/\/\/
 
 %check
 %if 0
@@ -1115,11 +1251,10 @@
     --info-dir=%{_infodir} %{_infodir}/gnat-style.info.gz || :
 fi
 
-# Because glibc Prereq's libgcc and /sbin/ldconfig
-# comes from glibc, it might not exist yet when
-# libgcc is installed
 %post -n libgcc -p %{_prefix}/sbin/libgcc_post_upgrade
 
+%postun -n libgcc -p /sbin/ldconfig
+
 %post -n libstdc++ -p /sbin/ldconfig
 
 %postun -n libstdc++ -p /sbin/ldconfig
@@ -1177,15 +1312,12 @@
 %{_prefix}/bin/c99
 %{_prefix}/bin/gcc
 %{_prefix}/bin/gcov
-%{_prefix}/bin/protoize
-%{_prefix}/bin/unprotoize
 %ifnarch %{arm}
-%{_prefix}/bin/%{gcc_target_platform}-gcc
+%{_prefix}/bin/%{gcc_target_platform}-*
 %endif
 %{_mandir}/man1/gcc.1*
 %{_mandir}/man1/gcov.1*
-%{_mandir}/man1/protoize.1*
-%{_mandir}/man1/unprotoize.1*
+%{_mandir}/man7/*
 %{_infodir}/gcc*
 %dir %{_prefix}/lib/gcc
 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
@@ -1194,38 +1326,11 @@
 %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
 %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}
 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/SYSCALLS.c.X
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stddef.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdarg.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdfix.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/varargs.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/float.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/limits.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/stdbool.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/iso646.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/syslimits.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/unwind.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/omp.h
-%ifarch %{ix86} x86_64
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/xmmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/emmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/pmmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/tmmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/ammintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/smmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/nmmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/bmmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/wmmintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/immintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/avxintrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/x86intrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/fma4intrin.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mm_malloc.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/mm3dnow.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cpuid.h
-%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cross-stdarg.h
-%endif
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include
+%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/*
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/plugin/include/*
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/*
 
 %ifarch %{arm}
 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include-fixed
@@ -1241,7 +1346,6 @@
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/install-tools
 %endif
 
-%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/collect2
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/crt*.o
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcc.a
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libgcov.a
@@ -1281,8 +1385,9 @@
 
 %files -n libgcc
 %defattr(-,root,root,-)
-/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
-/%{_lib}/libgcc_s.so.1
+/%{_lib}/libgcc_s-%{gcc_version}.so.1
+/%{_lib}/libgcc_s.*
+/%{_libdir}/libgcc_s.*
 %{_prefix}/sbin/libgcc_post_upgrade
 %doc gcc/COPYING.LIB
 
@@ -1315,7 +1420,9 @@
 
 %files -n libstdc++
 %defattr(-,root,root,-)
-%{_prefix}/%{_lib}/libstdc++.so.6*
+%{_prefix}/%{_lib}/libstdc++.*
+#/usr/share/locale/de/LC_MESSAGES/libstdc++.mo
+#/usr/share/locale/fr/LC_MESSAGES/libstdc++.mo
 
 %files -n libstdc++-devel
 %defattr(-,root,root,-)
@@ -1371,7 +1478,7 @@
 
 %files -n libobjc
 %defattr(-,root,root,-)
-%{_prefix}/%{_lib}/libobjc.so.2*
+%{_prefix}/%{_lib}/libobjc.*
 
 %files gfortran
 %defattr(-,root,root,-)
@@ -1404,7 +1511,7 @@
 
 %files -n libgfortran
 %defattr(-,root,root,-)
-%{_prefix}/%{_lib}/libgfortran.so.3*
+%{_prefix}/%{_lib}/libgfortran.*
 
 %if %{build_java}
 %files java
@@ -1565,14 +1672,14 @@
 
 %files -n libgomp
 %defattr(-,root,root,-)
-%{_prefix}/%{_lib}/libgomp.so.1*
+%{_prefix}/%{_lib}/libgomp.*
 %{_infodir}/libgomp.info*
 %doc rpm.doc/changelogs/libgomp/ChangeLog*
 
 %files -n libmudflap
 %defattr(-,root,root,-)
-%{_prefix}/%{_lib}/libmudflap.so.0*
-%{_prefix}/%{_lib}/libmudflapth.so.0*
+%{_prefix}/%{_lib}/libmudflap.*
+%{_prefix}/%{_lib}/libmudflapth.*
 
 %files -n libmudflap-devel
 %defattr(-,root,root,-)
@@ -1587,3 +1694,27 @@
 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libmudflapth.so  
 %doc rpm.doc/changelogs/libmudflap/ChangeLog*
 
+%if %{build_64bit_multilib}
+%files -n gcc-multilib
+%defattr(-,root,root,-)
+%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/crt*.o
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcov.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgcc_eh.a
+%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/64/libgfortranbegin.a
+%dir %{_prefix}/lib64
+%{_prefix}/lib64/*
+%endif
+
+# /\/\/\
+# native
+%else
+# cross
+# \/\/\/
+%files
+%defattr(-,root,root,-)
+%{_prefix}
+# /\/\/\
+# cross
+%endif

other changes:
--------------

++++++ aaa_README.PACKAGER (new)
--- aaa_README.PACKAGER
+++ aaa_README.PACKAGER
+All changes go to gcc.spec !
+############################
+
+Call sh precheckin.sh before check-in to create cross-*-gcc(-accel).spec.
+
+baselibs.conf is also generated by precheckin.sh.
+
+For questions contact jsmoeller at linuxfoundation.org.
++++++ baselibs.conf (new)
--- baselibs.conf
+++ baselibs.conf
+arch i586 targets armv5tel:armv5tel armv7l:armv7l 
+
+cross-armv5tel-gcc-accel
+  targettype x86 block!
+  targettype 32bit block!
+  targettype armv7l block!
+
+  targettype armv5tel autoreqprov off
+  targettype armv5tel provides "cross-arm-gcc-accel"
+  targettype armv5tel requires "glibc-x86-arm"
+  targettype armv5tel requires "gmp-x86-arm"
+  targettype armv5tel requires "libgcc-x86-arm"
+  targettype armv5tel requires "mpfr-x86-arm"
+  targettype armv5tel requires "mpc-x86-arm"
+  targettype armv5tel requires "gcc"
+  targettype armv5tel requires "gcc-c++"
+
+
+  targettype armv5tel prefix /emul/ia32-linux
+  targettype armv5tel extension -arm
+  targettype armv5tel +/
+  targettype armv5tel -/usr/lib/debug
+  targettype armv5tel -/usr/src/debug
+  targettype armv5tel -/usr/share/man
+  targettype armv5tel -/usr/share/doc
+  targettype armv5tel -/usr/share/locale
+  targettype armv5tel requires "meego-accelerator"
+  targettype armv5tel post "#set -x"
+  targettype armv5tel post " export GCCVER=$(LANG=C gcc --version | head -1 | cut -d" " -f3) "
+  targettype armv5tel post " export GCCVER_NEW=$(LANG=C <prefix>/usr/bin/gcc --version | head -1 | cut -d" " -f3) "
+  targettype armv5tel post " export GCCVER_MAJMIN=$(echo "$GCCVER" | cut -d"." -f1,2) "
+  targettype armv5tel post " export GCCVER_NEW_MAJMIN=$(echo "$GCCVER_NEW" | cut -d"." -f1,2) "
+  targettype armv5tel post " if test -z "$GCCVER" -o -z "$GCCVER_NEW" -o -z "$GCCVER_MAJMIN" -o -z "$GCCVER_NEW_MAJMIN" ; then echo "ERROR: Can't determine all gcc versions! Not using cross-compiler!" ; exit 0 ; fi "
+  targettype armv5tel post " if test "$GCCVER_MAJMIN" != "$GCCVER_NEW_MAJMIN" ; then echo "GCC version differ in major or minor - not using cross-compiler!" ; exit 0 ; fi "
+  targettype armv5tel post " if test "$GCC_VER" != "$GCC_VER_NEW"; then echo "Warning: GCC versions don't match on patch level ($GCCVER vs. $GCCVER_NEW). Continuing anyway." ; exit 0; fi"
+
+  targettype armv5tel post " for bin in gcc g++ ; do "
+  targettype armv5tel post "   binary="/usr/bin/${bin}" "
+  targettype armv5tel post "   if test -e ${binary} -a ! -e ${binary}.orig-arm ; then"
+  targettype armv5tel post "     mv ${binary} ${binary}.orig-arm && cp <prefix>${binary} ${binary}"
+  targettype armv5tel post "   else "
+  targettype armv5tel post "     echo "${binary} not installed or ${binary}.orig-arm already present !" "
+  targettype armv5tel post "   fi "
+  targettype armv5tel post " done "
+
+  targettype armv5tel post " for bin in cc1 cc1plus ; do "
+  targettype armv5tel post "   binary="/usr/libexec/gcc/armv5tel-meego-linux-gnueabi/$GCCVER/$bin" "
+  targettype armv5tel post "   if test -e ${binary} -a ! -e ${binary}.orig-arm ; then"
+  targettype armv5tel post "     mv ${binary} ${binary}.orig-arm && cp <prefix>/usr/libexec/gcc/armv5tel-meego-linux-gnueabi/$GCCVER_NEW/${bin} ${binary}"
+  targettype armv5tel post "   else "
+  targettype armv5tel post "     echo "${binary} not installed or ${binary}.orig-arm already present !" "
+  targettype armv5tel post "   fi "
+  targettype armv5tel post " done "
+
+  targettype armv5tel preun " export GCCVER=$(LANG=C gcc --version | head -1 | cut -d" " -f3) "
+  targettype armv5tel preun " for i in gcc g++ ; do if test -e /usr/bin/${i}.orig-arm ; then rm /usr/bin/${i} ; mv /usr/bin/${i}.orig-arm /usr/bin/${i}; fi ; done "
+  targettype armv5tel preun " for i in cc1 cc1plus ; do cd /usr/libexec/gcc/armv5tel-meego-linux-gnueabi/$GCCVER ; if test -e ${i}.orig-arm ; then rm ${i} ; mv ${i}.orig-arm ${i} ; fi ; done "
+
+
+
+cross-armv7l-gcc-accel
+  targettype x86 block!
+  targettype 32bit block!
+  targettype armv5tel block!
+
+  targettype armv7l autoreqprov off
+  targettype armv7l provides "cross-arm-gcc-accel"
+  targettype armv7l requires "glibc-x86-arm"
+  targettype armv7l requires "gmp-x86-arm"
+  targettype armv7l requires "libgcc-x86-arm"
+  targettype armv7l requires "mpfr-x86-arm"
+  targettype armv7l requires "mpc-x86-arm"
+  targettype armv7l requires "gcc"
+  targettype armv7l requires "gcc-c++"
+
+
+  targettype armv7l prefix /emul/ia32-linux
+  targettype armv7l extension -arm
+  targettype armv7l +/
+  targettype armv7l -/usr/lib/debug
+  targettype armv7l -/usr/src/debug
+  targettype armv7l -/usr/share/man
+  targettype armv7l -/usr/share/doc
+  targettype armv7l -/usr/share/locale
+  targettype armv7l requires "meego-accelerator"
+  targettype armv7l post "#set -x"
+  targettype armv7l post " export GCCVER=$(LANG=C gcc --version | head -1 | cut -d" " -f3) "
+  targettype armv7l post " export GCCVER_NEW=$(LANG=C <prefix>/usr/bin/gcc --version | head -1 | cut -d" " -f3) "
+  targettype armv7l post " export GCCVER_MAJMIN=$(echo "$GCCVER" | cut -d"." -f1,2) "
+  targettype armv7l post " export GCCVER_NEW_MAJMIN=$(echo "$GCCVER_NEW" | cut -d"." -f1,2) "
+  targettype armv7l post " if test -z "$GCCVER" -o -z "$GCCVER_NEW" -o -z "$GCCVER_MAJMIN" -o -z "$GCCVER_NEW_MAJMIN" ; then echo "ERROR: Can't determine all gcc versions! Not using cross-compiler!" ; exit 0 ; fi "
+  targettype armv7l post " if test "$GCCVER_MAJMIN" != "$GCCVER_NEW_MAJMIN" ; then echo "GCC version differ in major or minor - not using cross-compiler!" ; exit 0 ; fi "
+  targettype armv7l post " if test "$GCC_VER" != "$GCC_VER_NEW"; then echo "Warning: GCC versions don't match on patch level ($GCCVER vs. $GCCVER_NEW). Continuing anyway." ; exit 0; fi"
+
+  targettype armv7l post " for bin in gcc g++ ; do "
+  targettype armv7l post "   binary="/usr/bin/${bin}" "
+  targettype armv7l post "   if test -e ${binary} -a ! -e ${binary}.orig-arm ; then"
+  targettype armv7l post "     mv ${binary} ${binary}.orig-arm && cp <prefix>${binary} ${binary}"
+  targettype armv7l post "   else "
+  targettype armv7l post "     echo "${binary} not installed or ${binary}.orig-arm already present !" "
+  targettype armv7l post "   fi "
+  targettype armv7l post " done "
+
+  targettype armv7l post " for bin in cc1 cc1plus ; do "
+  targettype armv7l post "   binary="/usr/libexec/gcc/armv7l-meego-linux-gnueabi/$GCCVER/$bin" "
+  targettype armv7l post "   if test -e ${binary} -a ! -e ${binary}.orig-arm ; then"
+  targettype armv7l post "     mv ${binary} ${binary}.orig-arm && cp <prefix>/usr/libexec/gcc/armv7l-meego-linux-gnueabi/$GCCVER_NEW/${bin} ${binary}"
+  targettype armv7l post "   else "
+  targettype armv7l post "     echo "${binary} not installed or ${binary}.orig-arm already present !" "
+  targettype armv7l post "   fi "
+  targettype armv7l post " done "
+
+  targettype armv7l preun " export GCCVER=$(LANG=C gcc --version | head -1 | cut -d" " -f3) "
+  targettype armv7l preun " for i in gcc g++ ; do if test -e /usr/bin/${i}.orig-arm ; then rm /usr/bin/${i} ; mv /usr/bin/${i}.orig-arm /usr/bin/${i}; fi ; done "
+  targettype armv7l preun " for i in cc1 cc1plus ; do cd /usr/libexec/gcc/armv7l-meego-linux-gnueabi/$GCCVER ; if test -e ${i}.orig-arm ; then rm ${i} ; mv ${i}.orig-arm ${i} ; fi ; done "
+
+

++++++ gcc-4.5.0-rpmlintrc (new)
--- gcc-4.5.0-rpmlintrc
+++ gcc-4.5.0-rpmlintrc
+setBadness('devel-file-in-non-devel-package', 0)
+addFilter("gcc.* devel-file-in-non-devel-package")
+addFilter("gcc-objc.* devel-file-in-non-devel-package")
+addFilter("gcc-multilib.* devel-file-in-non-devel-package")
+

++++++ gcc-4.4.2-20091027.tar.bz2 -> gcc-4.5.0.tar.bz2
12336583 lines of diff (skipped)

++++++ gcc44-ARM-boehm-gc-stack-qemu.patch (new)
--- gcc44-ARM-boehm-gc-stack-qemu.patch
+++ gcc44-ARM-boehm-gc-stack-qemu.patch
+diff -Napur _/boehm-gc/include/private/gcconfig.h gcc-4.5.0/boehm-gc/include/private/gcconfig.h
+--- _/boehm-gc/include/private/gcconfig.h	2010-03-21 20:34:19.000000000 +0100
++++ gcc-4.5.0/boehm-gc/include/private/gcconfig.h	2010-06-25 12:24:23.000000000 +0200
+@@ -1860,7 +1860,7 @@
+ #   endif
+ #   ifdef LINUX
+ #       define OS_TYPE "LINUX"
+-#       define LINUX_STACKBOTTOM
++#       define HEURISTIC2
+ #       undef STACK_GRAN
+ #       define STACK_GRAN 0x10000000
+ #       define USE_GENERIC_PUSH_REGS

++++++ gcc44-pr38757.patch -> gcc45-pr43572.patch
--- gcc44-pr38757.patch
+++ gcc45-pr43572.patch
@@ -1,125 +1,82 @@
-2009-03-18  Jakub Jelinek  <jakub at redhat.com>
-
-	PR debug/38757
-	* langhooks.h (struct lang_hooks): Add source_language langhook.
-	* langhooks-def.h (LANG_HOOKS_SOURCE_LANGUAGE): Define to NULL.
-	(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_SOURCE_LANGUAGE.
-	* c-lang.c (c_source_language): New function.
-	(LANG_HOOKS_SOURCE_LANGUAGE): Define.
-	* dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
-	also for DW_LANG_{C,C99,ObjC}.
-	(gen_compile_unit_die): Use lang_hooks.source_language () to
-	determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
-
---- gcc/langhooks.h.jj	2009-03-02 09:45:47.000000000 +0100
-+++ gcc/langhooks.h	2009-03-18 12:53:24.000000000 +0100
-@@ -1,5 +1,5 @@
- /* The lang_hooks data structure.
--   Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+   Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-    Free Software Foundation, Inc.
- 
- This file is part of GCC.
-@@ -414,6 +414,10 @@ struct lang_hooks
-      if in the process TREE_CONSTANT or TREE_SIDE_EFFECTS need updating.  */
-   tree (*expr_to_decl) (tree expr, bool *tc, bool *se);
- 
-+  /* Return year of the source language standard version if the FE supports
-+     multiple versions of the standard.  */
-+  int (*source_language) (void);
-+
-   /* Whenever you add entries here, make sure you adjust langhooks-def.h
-      and langhooks.c accordingly.  */
- };
---- gcc/langhooks-def.h.jj	2009-03-02 09:45:47.000000000 +0100
-+++ gcc/langhooks-def.h	2009-03-18 12:53:45.000000000 +0100
-@@ -1,5 +1,5 @@
- /* Default macros to initialize the lang_hooks data structure.
--   Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-+   Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-    Free Software Foundation, Inc.
-    Contributed by Alexandre Oliva  <aoliva at redhat.com>
- 
-@@ -113,6 +113,7 @@ extern void lhd_omp_firstprivatize_type_
- #define LANG_HOOKS_EXPR_TO_DECL		lhd_expr_to_decl
- #define LANG_HOOKS_TO_TARGET_CHARSET	lhd_to_target_charset
- #define LANG_HOOKS_INIT_TS		lhd_do_nothing
-+#define LANG_HOOKS_SOURCE_LANGUAGE	NULL
- 
- /* Attribute hooks.  */
- #define LANG_HOOKS_ATTRIBUTE_TABLE		NULL
-@@ -270,6 +271,7 @@ extern tree lhd_make_node (enum tree_cod
-   LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE, \
-   LANG_HOOKS_INIT_TS,          \
-   LANG_HOOKS_EXPR_TO_DECL, \
-+  LANG_HOOKS_SOURCE_LANGUAGE, \
- }
- 
- #endif /* GCC_LANG_HOOKS_DEF_H */
---- gcc/c-lang.c.jj	2009-02-20 15:06:14.000000000 +0100
-+++ gcc/c-lang.c	2009-03-18 13:33:41.000000000 +0100
-@@ -1,6 +1,6 @@
- /* Language-specific hook definitions for C front end.
-    Copyright (C) 1991, 1995, 1997, 1998,
--   1999, 2000, 2001, 2003, 2004, 2005, 2007, 2008
-+   1999, 2000, 2001, 2003, 2004, 2005, 2007, 2008, 2009
-    Free Software Foundation, Inc.
- 
- This file is part of GCC.
-@@ -37,6 +37,12 @@ along with GCC; see the file COPYING3.  
- 
- enum c_language_kind c_language = clk_c;
- 
-+static int
-+c_source_language (void)
+diff -Naurp gcc-4.5.0-orig/gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c gcc-4.5.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c
+--- gcc-4.5.0-orig/gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c	1970-01-01 08:00:00.000000000 +0800
++++ gcc-4.5.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-5.c	2010-07-09 13:56:34.593063124 +0800
+@@ -0,0 +1,12 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -fdump-tree-tailc" } */
++
++void
++set_integer (void *dest, int value, int length)
 +{
-+  return flag_isoc99 ? 1999 : 1989;
++  int tmp = value;
++  __builtin_memcpy (dest, (void *) &tmp, length);
 +}
 +
- /* Lang hooks common to C and ObjC are declared in c-objc-common.h;
-    consequently, there should be very few hooks below.  */
- 
-@@ -44,6 +50,8 @@ enum c_language_kind c_language = clk_c;
- #define LANG_HOOKS_NAME "GNU C"
- #undef LANG_HOOKS_INIT
- #define LANG_HOOKS_INIT c_objc_common_init
-+#undef LANG_HOOKS_SOURCE_LANGUAGE
-+#define LANG_HOOKS_SOURCE_LANGUAGE c_source_language
- 
- /* Each front end provides its own lang hook initializer.  */
- const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
---- gcc/dwarf2out.c.jj	2009-03-17 13:06:29.000000000 +0100
-+++ gcc/dwarf2out.c	2009-03-18 12:55:36.000000000 +0100
-@@ -14286,9 +14286,18 @@ add_bit_size_attribute (dw_die_ref die, 
- static inline void
- add_prototyped_attribute (dw_die_ref die, tree func_type)
- {
--  if (get_AT_unsigned (comp_unit_die, DW_AT_language) == DW_LANG_C89
--      && TYPE_ARG_TYPES (func_type) != NULL)
--    add_AT_flag (die, DW_AT_prototyped, 1);
-+  switch (get_AT_unsigned (comp_unit_die, DW_AT_language))
-+    {
-+    case DW_LANG_C:
-+    case DW_LANG_C89:
-+    case DW_LANG_C99:
-+    case DW_LANG_ObjC:
-+      if (TYPE_ARG_TYPES (func_type) != NULL)
-+	add_AT_flag (die, DW_AT_prototyped, 1);
-+      break;
-+    default:
-+      break;
-+    }
- }
- 
- /* Add an 'abstract_origin' attribute below a given DIE.  The DIE is found
-@@ -16290,6 +16299,10 @@ gen_compile_unit_die (const char *filena
- 	language = DW_LANG_ObjC;
-       else if (strcmp (language_string, "GNU Objective-C++") == 0)
- 	language = DW_LANG_ObjC_plus_plus;
-+      else if (strcmp (language_string, "GNU C") == 0
-+	       && lang_hooks.source_language
-+	       && lang_hooks.source_language () >= 1999)
-+	language = DW_LANG_C99;
++/* { dg-final { scan-tree-dump-not "tail call" "tailc" } } */
++/* { dg-final { cleanup-tree-dump "tailc" } } */
+diff -Naurp gcc-4.5.0-orig/gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c gcc-4.5.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c
+--- gcc-4.5.0-orig/gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c	1970-01-01 08:00:00.000000000 +0800
++++ gcc-4.5.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-6.c	2010-07-09 13:56:34.619072316 +0800
+@@ -0,0 +1,33 @@
++/* PR tree-optimization/43904.  */
++/* { dg-do run } */
++/* { dg-options "-O1 -foptimize-sibling-calls" } */
++
++typedef __SIZE_TYPE__ size_t;
++extern void abort(void);
++
++void *memcpy(void *dest, const void *src, size_t n);
++
++void
++buggy_init(void *ptr, size_t size)
++{
++  const char *str = "Hello world!";
++  memcpy(ptr, &str, size);
++}
++
++void
++expose_bug(void *ptr, size_t size)
++{
++  const char *str;
++  memcpy(&str, ptr, size);
++  if (*str != 'H')
++    abort ();
++}
++
++int
++main()
++{
++  const char *ptr;
++  buggy_init(&ptr, sizeof(ptr));
++  expose_bug(&ptr, sizeof(ptr));
++  return 0;
++}
+diff -Naurp gcc-4.5.0-orig/gcc/tree-tailcall.c gcc-4.5.0/gcc/tree-tailcall.c
+--- gcc-4.5.0-orig/gcc/tree-tailcall.c	2010-07-09 13:46:12.430567142 +0800
++++ gcc-4.5.0/gcc/tree-tailcall.c	2010-07-09 13:50:35.371673436 +0800
+@@ -375,6 +375,8 @@ find_tail_calls (basic_block bb, struct 
+   tree m, a;
+   basic_block abb;
+   size_t idx;
++  tree var;
++  referenced_var_iterator rvi;
+ 
+   if (!single_succ_p (bb))
+     return;
+@@ -462,6 +464,16 @@ find_tail_calls (basic_block bb, struct 
+ 	tail_recursion = true;
      }
  
-   add_AT_unsigned (die, DW_AT_language, language);
++    /* Make sure the tail invocation of this function does not refer
++       to local variables.  */
++    FOR_EACH_REFERENCED_VAR (var, rvi)
++      {
++        if (TREE_CODE (var) != PARM_DECL
++           && auto_var_in_fn_p (var, cfun->decl)
++           && ref_maybe_used_by_stmt_p (call, var))
++         return;
(5 more lines skipped)

++++++ gcc45-use-atom.patch (new)
--- gcc45-use-atom.patch
+++ gcc45-use-atom.patch
+diff -Naurp gcc-4.5.0-orig/gcc/config/i386/i386.c gcc-4.5.0/gcc/config/i386/i386.c
+--- gcc-4.5.0-orig/gcc/config/i386/i386.c	2010-04-23 04:43:24.000000000 -0400
++++ gcc-4.5.0/gcc/config/i386/i386.c	2010-04-23 04:45:30.000000000 -0400
+@@ -1783,7 +1783,7 @@ enum asm_dialect ix86_asm_dialect = ASM_
+ enum tls_dialect ix86_tls_dialect = TLS_DIALECT_GNU;
+ 
+ /* Which unit we are generating floating point math for.  */
+-enum fpmath_unit ix86_fpmath;
++enum fpmath_unit ix86_fpmath = FPMATH_SSE;
+ 
+ /* Which cpu are we scheduling for.  */
+ enum attr_cpu ix86_schedule;
+@@ -1923,15 +1923,9 @@ static enum calling_abi ix86_function_ab
+ #endif
+ 
+ /* Whether -mtune= or -march= were specified */
+-static int ix86_tune_defaulted;
++static int ix86_tune_defaulted = 1;
+ static int ix86_arch_specified;
+ 
+-/* Bit flags that specify the ISA we are compiling for.  */
+-int ix86_isa_flags = TARGET_64BIT_DEFAULT | TARGET_SUBTARGET_ISA_DEFAULT;
+-
+-/* A mask of ix86_isa_flags that includes bit X if X
+-   was set or cleared on the command line.  */
+-static int ix86_isa_flags_explicit;
+ 
+ /* Define a set of ISAs which are available when a given ISA is
+    enabled.  MMX and SSE ISAs are handled separately.  */
+@@ -2034,6 +2028,14 @@ static int ix86_isa_flags_explicit;
+ #define OPTION_MASK_ISA_MOVBE_UNSET OPTION_MASK_ISA_MOVBE
+ #define OPTION_MASK_ISA_CRC32_UNSET OPTION_MASK_ISA_CRC32
+ 
++/* Bit flags that specify the ISA we are compiling for.  */
++int ix86_isa_flags = TARGET_64BIT_DEFAULT | TARGET_SUBTARGET_ISA_DEFAULT | OPTION_MASK_ISA_SSSE3_SET;
++
++/* A mask of ix86_isa_flags that includes bit X if X
++   was set or cleared on the command line.  */
++static int ix86_isa_flags_explicit = OPTION_MASK_ISA_SSSE3_SET;
++
++
+ /* Vectorization library interface and handlers.  */
+ tree (*ix86_veclib_handler)(enum built_in_function, tree, tree) = NULL;
+ static tree ix86_veclibabi_svml (enum built_in_function, tree, tree);
+@@ -2807,6 +2809,8 @@ override_options (bool main_args_p)
+ 	flag_pcc_struct_return = DEFAULT_PCC_STRUCT_RETURN;
+     }
+ 
++
++  ix86_tune_string = "atom";
+   /* Need to check -mtune=generic first.  */
+   if (ix86_tune_string)
+     {
+@@ -2882,6 +2886,7 @@ override_options (bool main_args_p)
+ 	       ix86_stringop_string, prefix, suffix, sw);
+     }
+ 
++  ix86_arch_string = "core2";
+   if (!ix86_arch_string)
+     ix86_arch_string = TARGET_64BIT ? "x86-64" : SUBTARGET32_DEFAULT_CPU;
+   else
+@@ -3311,7 +3316,7 @@ override_options (bool main_args_p)
+       && ! TARGET_SSE)
+     error ("%ssseregparm%s used without SSE enabled", prefix, suffix);
+ 
+-  ix86_fpmath = TARGET_FPMATH_DEFAULT;
++  ix86_fpmath = FPMATH_SSE;
+   if (ix86_fpmath_string != 0)
+     {
+       if (! strcmp (ix86_fpmath_string, "387"))

++++++ precheckin.sh (new)
--- precheckin.sh
+++ precheckin.sh
+#!/bin/bash
+
+NAME=gcc
+SPECNAME=${NAME}.spec
+ARCHES="armv5tel armv7l"
+TOBASELIBS=""
+TOBASELIBS_ARCH=""
+
+
+# baselibs.conf - part 1
+rm -f baselibs.conf baselibs.conf.old  2>&1 > /dev/null || true
+echo -n "arch i586 targets " > baselibs.conf
+
+
+for i in ${ARCHES} ; do
+# cross spec files
+    cat ./${SPECNAME} | sed -e "s#Name: .*#Name: cross-${i}-${NAME}#" > ./cross-${i}-${NAME}.spec
+    cat ./${SPECNAME} | sed -e "s#Name: .*#Name: cross-${i}-${NAME}-accel#" > ./cross-${i}-${NAME}-accel.spec
+# baselibs.conf - part 2
+    test ! x"$i" = x"" && echo -n "${i}:${i} " >> baselibs.conf
+done
+
+# baselibs.conf - part 3
+echo "" >> baselibs.conf
+for l in ${ARCHES} ; do
+echo "" >> baselibs.conf
+echo "cross-${l}-${NAME}-accel
+  targettype x86 block!
+  targettype 32bit block!" >> baselibs.conf
+for j in ${ARCHES//${l}} ; do
+  echo "  targettype $j block!" >> baselibs.conf
+done
+cat >> baselibs.conf << EOF
+
+  targettype ${l} autoreqprov off
+  targettype ${l} provides "cross-arm-gcc-accel"
+  targettype ${l} requires "glibc-x86-arm"
+  targettype ${l} requires "gmp-x86-arm"
+  targettype ${l} requires "libgcc-x86-arm"
+  targettype ${l} requires "mpfr-x86-arm"
+  targettype ${l} requires "mpc-x86-arm"
+  targettype ${l} requires "gcc"
+  targettype ${l} requires "gcc-c++"
+
+
+  targettype ${l} prefix /emul/ia32-linux
+  targettype ${l} extension -arm
+  targettype ${l} +/
+  targettype ${l} -/usr/lib/debug
+  targettype ${l} -/usr/src/debug
+  targettype ${l} -/usr/share/man
+  targettype ${l} -/usr/share/doc
+  targettype ${l} -/usr/share/locale
+  targettype ${l} requires "meego-accelerator"
+  targettype ${l} post "#set -x"
+  targettype ${l} post " export GCCVER=\$(LANG=C gcc --version | head -1 | cut -d" " -f3) "
+  targettype ${l} post " export GCCVER_NEW=\$(LANG=C <prefix>/usr/bin/gcc --version | head -1 | cut -d" " -f3) "
+  targettype ${l} post " export GCCVER_MAJMIN=\$(echo "\$GCCVER" | cut -d"." -f1,2) "
+  targettype ${l} post " export GCCVER_NEW_MAJMIN=\$(echo "\$GCCVER_NEW" | cut -d"." -f1,2) "
+  targettype ${l} post " if test -z "\$GCCVER" -o -z "\$GCCVER_NEW" -o -z "\$GCCVER_MAJMIN" -o -z "\$GCCVER_NEW_MAJMIN" ; then echo "ERROR: Can't determine all gcc versions! Not using cross-compiler!" ; exit 0 ; fi "
+  targettype ${l} post " if test "\$GCCVER_MAJMIN" != "\$GCCVER_NEW_MAJMIN" ; then echo "GCC version differ in major or minor - not using cross-compiler!" ; exit 0 ; fi "
+  targettype ${l} post " if test "\$GCC_VER" != "\$GCC_VER_NEW"; then echo "Warning: GCC versions don't match on patch level (\$GCCVER vs. \$GCCVER_NEW). Continuing anyway." ; exit 0; fi"
+
+  targettype ${l} post " for bin in gcc g++ ; do "
+  targettype ${l} post "   binary="/usr/bin/\${bin}" "
+  targettype ${l} post "   if test -e \${binary} -a ! -e \${binary}.orig-arm ; then"
+  targettype ${l} post "     mv \${binary} \${binary}.orig-arm && cp <prefix>\${binary} \${binary}"
+  targettype ${l} post "   else "
+  targettype ${l} post "     echo "\${binary} not installed or \${binary}.orig-arm already present !" "
+  targettype ${l} post "   fi "
+  targettype ${l} post " done "
+
+  targettype ${l} post " for bin in cc1 cc1plus ; do "
+  targettype ${l} post "   binary="/usr/libexec/gcc/${l}-meego-linux-gnueabi/\$GCCVER/\$bin" "
+  targettype ${l} post "   if test -e \${binary} -a ! -e \${binary}.orig-arm ; then"
+  targettype ${l} post "     mv \${binary} \${binary}.orig-arm && cp <prefix>/usr/libexec/gcc/${l}-meego-linux-gnueabi/\$GCCVER_NEW/\${bin} \${binary}"
+  targettype ${l} post "   else "
+  targettype ${l} post "     echo "\${binary} not installed or \${binary}.orig-arm already present !" "
+  targettype ${l} post "   fi "
+  targettype ${l} post " done "
+
+  targettype ${l} preun " export GCCVER=\$(LANG=C gcc --version | head -1 | cut -d" " -f3) "
+  targettype ${l} preun " for i in gcc g++ ; do if test -e /usr/bin/\${i}.orig-arm ; then rm /usr/bin/\${i} ; mv /usr/bin/\${i}.orig-arm /usr/bin/\${i}; fi ; done "
+  targettype ${l} preun " for i in cc1 cc1plus ; do cd /usr/libexec/gcc/${l}-meego-linux-gnueabi/\$GCCVER ; if test -e \${i}.orig-arm ; then rm \${i} ; mv \${i}.orig-arm \${i} ; fi ; done "
+
+
+EOF
+
+
+done
+
+
+exit 0

++++++ deleted files:
--- gcc-rpmlintrc
--- gcc44-cloog-dl.patch
--- gcc44-pr41762.patch
--- gcc44-rh330771.patch
--- gcc44-unwind-debug-hook.patch
--- gcc44-use-atom.patch


More information about the MeeGo-commits mailing list