]> TLD Linux GIT Repositories - packages/gcc.git/blobdiff - gcc.spec
- err... commit modifed files as well
[packages/gcc.git] / gcc.spec
index 71420f4143a14e30beb7c3e662bc12b6801a1451..187152b47cbc887c6015862584dde2b7182cc9c7 100644 (file)
--- a/gcc.spec
+++ b/gcc.spec
@@ -3,37 +3,38 @@
 # TODO:
 # - gconf peer? (but libgcj needs split anyway)
 # - package?
-#   /usr/bin/aot-compile
-#   /usr/bin/gjdoc
-#   /usr/share/man/man1/aot-compile.1.gz
+#   /usr/bin/gjdoc [BR: antlr.jar] (but see gjdoc package, there are some additional jars?)
 #   /usr/share/man/man1/gjdoc.1.gz
-#   /usr/share/python/aotcompile.py
-#   /usr/share/python/classfile.py
-# - missing libffi.pc required by some packages (eg. python-pygobject)
 #
 # Conditional build:
+# - languages:
 %bcond_without ada             # build without ADA support
 %bcond_without cxx             # build without C++ support
 %bcond_without fortran         # build without Fortran support
-%bcond_without gomp            # build without OpenMP support
+%bcond_without go              # build without Go support
 %bcond_without java            # build without Java support
-%bcond_without mudflap         # build without Mudflap pointer debugging support
 %bcond_without objc            # build without Objective-C support
 %bcond_without objcxx          # build without Objective-C++ support
+# - features:
+%bcond_without gomp            # build without OpenMP support
+%bcond_without mudflap         # build without Mudflap pointer debugging support
+%bcond_without multilib        # build without multilib support (it needs glibc[32&64]-devel)
+%bcond_with    profiling       # build with profiling
+%bcond_without python          # build without libstdc++ printers for gdb and aot-compile for java
+# - libgcj options:
 %bcond_without alsa            # don't build libgcj ALSA MIDI interface
 %bcond_without dssi            # don't build libgcj DSSI MIDI interface
 %bcond_without gtk             # don't build libgcj GTK peer
 %bcond_without apidocs         # do not build and package API docs
-%bcond_with    mozilla         # don't build libgcjwebplugin (needs fix for new xulrunner)
+%bcond_with    mozilla         # build libgcjwebplugin (needs fix for new xulrunner)
 %bcond_with    qt              # build libgcj Qt peer (currently doesn't build with libtool-2.x)
 %bcond_without x               # don't build libgcj Xlib-dependent AWTs (incl. GTK/Qt)
-%bcond_without multilib        # build without multilib support (it needs glibc[32&64]-devel)
-%bcond_with    profiling       # build with profiling
-%bcond_without python          # build without libstdc++ python pretty printers for gdb
+# - other:
 %bcond_without bootstrap       # omit 3-stage bootstrap
 %bcond_with    tests           # torture gcc
 
 %if %{without cxx}
+%undefine      with_go
 %undefine      with_java
 %undefine      with_objcxx
 %endif
 %undefine      with_multilib
 %endif
 
-%define                major_ver       4.5
+%ifarch i386 i486
+# __i686.get_pc_thunk.bx undefined in libgo (TODO: recheck on gcc updates)
+%undefine      with_go
+%endif
+
+%define                major_ver       4.6
 %define                minor_ver       3
 %define                major_ecj_ver   4.5
 # class data version seen with file(1) that this jvm is able to load
 %define                _classdataversion 50.0
-%define                gcj_soname_ver  11
+%define                gcj_soname_ver  12
 
 Summary:       GNU Compiler Collection: the C compiler and shared files
 Summary(es.UTF-8):     Colección de compiladores GNU: el compilador C y ficheros compartidos
@@ -68,34 +74,37 @@ Summary(pl.UTF-8):  Kolekcja kompilatorów GNU: kompilator C i pliki współdziel
 Summary(pt_BR.UTF-8):  Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
 Name:          gcc
 Version:       %{major_ver}.%{minor_ver}
-Release:       7
+Release:       4
 Epoch:         6
 License:       GPL v3+
 Group:         Development/Languages
 Source0:       ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5: 8e0b5c12212e185f3e4383106bfa9cc6
+# Source0-md5: 773092fe5194353b02bb0110052a972e
 Source1:       %{name}-optimize-la.pl
 Source2:       ftp://sourceware.org/pub/java/ecj-%{major_ecj_ver}.jar
 # Source2-md5: d7cd6a27c8801e66cbaa964a039ecfdb
-# svn diff -x --ignore-eol-style svn://gcc.gnu.org/svn/gcc/tags/gcc_4_5_3_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch > gcc-branch.diff
+# check libffi version with libffi/configure.ac
+Source3:       libffi.pc.in
+# svn diff -x --ignore-eol-style svn://gcc.gnu.org/svn/gcc/tags/gcc_4_6_3_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch > gcc-branch.diff
 Patch100:      %{name}-branch.diff
 Patch0:                %{name}-info.patch
-Patch1:                %{name}-nolocalefiles.patch
 Patch2:                %{name}-nodebug.patch
 Patch3:                %{name}-ada-link.patch
 Patch7:                %{name}-libjava-multilib.patch
 Patch8:                %{name}-enable-java-awt-qt.patch
-Patch9:                %{name}-hash-style-gnu.patch
-Patch11:       %{name}-build-id.patch
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41757
 Patch12:       %{name}-plugin-decl-hook.patch
+Patch13:       issue4664051.patch
+Patch14:       %{name}-extern-template-sed.patch
 URL:           http://gcc.gnu.org/
-BuildRequires: autoconf
+BuildRequires: autoconf >= 2.64
 %{?with_tests:BuildRequires:   autogen}
-BuildRequires: automake
+BuildRequires: automake >= 1:1.9.3
 # binutils 2.17.50.0.9 or newer are required for fixing PR middle-end/20218.
-BuildRequires: binutils >= 2:2.17.50.0.9-1
+BuildRequires: binutils >= 3:2.17.50.0.9-1
 BuildRequires: bison
 BuildRequires: chrpath >= 0.13-2
+BuildRequires: cloog-ppl-devel
 %{?with_tests:BuildRequires:   dejagnu}
 BuildRequires: elfutils-devel >= 0.145-1
 BuildRequires: fileutils >= 4.0.41
@@ -115,6 +124,7 @@ BuildRequires:      glibc-devel(i686)
 BuildRequires: gmp-devel >= 4.1
 BuildRequires: libmpc-devel
 BuildRequires: mpfr-devel >= 2.3.0
+BuildRequires: ppl-devel
 %if %{with python}
 BuildRequires: python-devel
 BuildRequires: rpm-pythonprov
@@ -133,6 +143,7 @@ BuildRequires:      libxslt-devel >= 1.1.11
 BuildRequires: perl-base
 BuildRequires: perl-tools-pod
 BuildRequires: pkgconfig
+BuildRequires: sed >= 4.0
 BuildRequires: unzip
 BuildRequires: zip
 %if %{with gtk}
@@ -169,7 +180,10 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 # 32-bit environment on x86-64
 %define                _slibdir32      /lib
 %define                _libdir32       /usr/lib
+%define                _pkgconfigdir32 %{_libdir32}/pkgconfig
 %endif
+%define                gcclibdir       %{_libdir}/gcc/%{_target_platform}/%{version}
+%define                gcjdbexecdir    gcj-%{version}-%{gcj_soname_ver}
 
 %define                filterout       -fwrapv -fno-strict-aliasing -fsigned-char
 %define                filterout_ld    -Wl,--as-needed
@@ -667,7 +681,6 @@ standardowej C++.
 Summary:       libstdc++ pretty printers for GDB
 Summary(pl.UTF-8):     Funkcje wypisujące dane libstdc++ dla GDB
 Group:         Development/Debuggers
-Requires:      python-gdb
 
 %description -n libstdc++-gdb
 This package contains Python scripts for GDB pretty printing of the
@@ -780,6 +793,7 @@ Summary(pt_BR.UTF-8):       Suporte Fortran 95 para o GCC
 Group:         Development/Languages/Fortran
 Requires:      %{name} = %{epoch}:%{version}-%{release}
 Requires:      libgfortran = %{epoch}:%{version}-%{release}
+Requires:      libquadmath-devel = %{epoch}:%{version}-%{release}
 Provides:      gcc-g77 = %{epoch}:%{version}-%{release}
 Obsoletes:     egcs-g77
 Obsoletes:     gcc-g77
@@ -805,6 +819,7 @@ Summary(pl.UTF-8):  Obsługa binariów 32-bitowych Fortrana 95 dla gcc
 Group:         Development/Languages/Fortran
 Requires:      %{name}-fortran = %{epoch}:%{version}-%{release}
 Requires:      libgfortran-multilib = %{epoch}:%{version}-%{release}
+Requires:      libquadmath-multilib-devel = %{epoch}:%{version}-%{release}
 
 %description fortran-multilib
 This package adds support for compiling 32-bit Fortran 95 programs
@@ -820,6 +835,7 @@ Summary(es.UTF-8):  Biblioteca de Fortran 95
 Summary(pl.UTF-8):     Biblioteka Fortrana 95
 License:       GPL v2+ with unlimited link permission
 Group:         Libraries
+Requires:      libquadmath = %{epoch}:%{version}-%{release}
 Obsoletes:     libg2c
 
 %description -n libgfortran
@@ -836,6 +852,7 @@ Summary:    Fortran 95 Library - 32-bit version
 Summary(pl.UTF-8):     Biblioteka Fortrana 95 - wersja 32-bitowa
 License:       GPL v2+ with unlimited link permission
 Group:         Libraries
+Requires:      libquadmath-multilib = %{epoch}:%{version}-%{release}
 
 %description -n libgfortran-multilib
 Fortran 95 Library - 32-bit version.
@@ -874,6 +891,97 @@ Static Fortran 95 Library - 32-bit version.
 %description -n libgfortran-multilib-static -l pl.UTF-8
 Statyczna biblioteka Fortrana 95 - wersja 32-bitowa.
 
+%package -n libquadmath
+Summary:       GCC __float128 shared support library
+Summary(pl.UTF-8):     Biblioteka współdzielona do obsługi typu __float128
+License:       GPL v2+ with linking exception
+Group:         Libraries
+
+%description -n libquadmath
+This package contains GCC shared support library which is needed for
+__float128 math support and for Fortran REAL*16 support.
+
+%description -n libquadmath -l pl.UTF-8
+Ten pakiet zawiera bibliotekę współdzieloną GCC do obsługi operacji
+matematycznych na zmiennych typu __float128 oraz typu REAL*16 w
+Fortranie.
+
+%package -n libquadmath-multilib
+Summary:       GCC __float128 shared support library - 32-bit version
+Summary(pl.UTF-8):     Biblioteka współdzielona GCC do obsługi typu __float128 - wersja 32-bitowa
+License:       GPL v2+ with linking exception
+Group:         Libraries
+
+%description -n libquadmath-multilib
+This package contains 32-bit version of GCC shared support library
+which is needed for __float128 math support and for Fortran REAL*16
+support.
+
+%description -n libquadmath-multilib -l pl.UTF-8
+Ten pakiet zawiera 32-bitową bibliotekę współdzieloną GCC do obsługi
+operacji matematycznych na zmiennych typu __float128 oraz typu REAL*16
+w Fortranie.
+
+%package -n libquadmath-devel
+Summary:       Header files for GCC __float128 support library
+Summary(pl.UTF-8):     Pliki nagłówkowe biblioteka GCC do obsługi typu __float128
+License:       GPL v2+ with linking exception
+Group:         Development/Libraries
+Requires:      libquadmath = %{epoch}:%{version}-%{release}
+
+%description -n libquadmath-devel
+This package contains header files for GCC support library which is
+needed for __float128 math support and for Fortran REAL*16 support.
+
+%description -n libquadmath-devel -l pl.UTF-8
+Ten pakiet zawiera pliki nagłówkowe biblioteki GCC do obsługi operacji
+matematycznych na zmiennych typu __float128 oraz typu REAL*16 w
+Fortranie.
+
+%package -n libquadmath-multilib-devel
+Summary:       Development files for 32-bit GCC __float128 support library
+Summary(pl.UTF-8):     Pliki programistyczne 32-bitowej biblioteki do obsługi typu __float128
+License:       GPL v2+ with linking exception
+Group:         Development/Libraries
+Requires:      libquadmath-devel = %{epoch}:%{version}-%{release}
+Requires:      libquadmath-multilib = %{epoch}:%{version}-%{release}
+
+%description -n libquadmath-multilib-devel
+This package contains development files for 32-bit GCC support library
+which is needed for __float128 math support and for Fortran REAL*16
+support.
+
+%description -n libquadmath-multilib-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne 32-bitowej biblioteki GCC do
+obsługi operacji matematycznych na zmiennych typu __float128 oraz typu
+REAL*16 w Fortranie.
+
+%package -n libquadmath-static
+Summary:       Static GCC __float128 support library
+Summary(pl.UTF-8):     Biblioteka statyczna GCC do obsługi typu __float128
+License:       GPL v2+ with linking exception
+Group:         Development/Libraries
+Requires:      libquadmath-devel = %{epoch}:%{version}-%{release}
+
+%description -n libquadmath-static
+Static GCC __float128 support library.
+
+%description -n libquadmath-static -l pl.UTF-8
+Biblioteka statyczna GCC do obsługi typu __float128.
+
+%package -n libquadmath-multilib-static
+Summary:       Static GCC __float128 support library - 32-bit version
+Summary(pl.UTF-8):     32-bitowa biblioteka statyczna GCC do obsługi typu __float128
+License:       GPL v2+ with linking exception
+Group:         Development/Libraries
+Requires:      libquadmath-multilib-devel = %{epoch}:%{version}-%{release}
+
+%description -n libquadmath-multilib-static
+Static GCC __float128 support library - 32-bit version.
+
+%description -n libquadmath-multilib-static -l pl.UTF-8
+32-bitowa biblioteka statyczna GCC do obsługi typu __float128.
+
 %package java
 Summary:       Java support for gcc
 Summary(es.UTF-8):     Soporte de Java para gcc
@@ -902,6 +1010,23 @@ Ten pakiet dodaje możliwość kompilowania programów w języku Java(TM)
 oraz bajtkodu do kodu natywnego. Do używania go wymagany jest
 dodatkowo pakiet libgcj.
 
+%package java-aotcompile
+Summary:       Java AOT-compiler - compiling bytecode to native
+Summary(pl.UTF-8):     Kompilator AOT dla Javy - kompilacja bajtkodu do kodu natywnego
+License:       GPL v2+
+Group:         Development/Tools
+Requires:      %{name}-java = %{epoch}:%{version}-%{release}
+
+%description java-aotcompile
+aot-compile is a script that searches a directory for Java bytecode
+(as class files, or in jars) and uses gcj to compile it to native code
+and generate the databases from it.
+
+%description java-aotcompile -l pl.UTF-8
+aot-compile to skrypt wyszukujący w katalogu bajtkod Javy (w plikach
+class lub jarach) i kompilujący go przy użyciu gcj, a następnie
+generujący z niego bazy danych.
+
 %package -n libgcj
 Summary:       Java Class Libraries
 Summary(es.UTF-8):     Bibliotecas de clases de Java
@@ -1204,11 +1329,120 @@ Static Objective C Library - 32-bit version.
 %description -n libobjc-multilib-static -l pl.UTF-8
 Statyczna biblioteki Obiektowego C - wersja 32-bitowa.
 
+%package go
+Summary:       Go language support for gcc
+Summary(pl.UTF-8):     Obsługa języka Go dla kompilatora gcc
+License:       GPL v3+ (gcc), BSD (Go-specific part)
+Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libgo-devel = %{epoch}:%{version}-%{release}
+
+%description go
+This package adds Go language support to the GNU Compiler Collection.
+
+%description go -l pl.UTF-8
+Ten pakiet dodaje obsługę języka Go do kompilatora gcc.
+
+%package go-multilib
+Summary:       32-bit Go language support for gcc
+Summary(pl.UTF-8):     Obsługa 32-bitowych binariów języka Go dla kompilatora gcc
+License:       GPL v3+ (gcc), BSD (Go-specific part)
+Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libgo-multilib-devel = %{epoch}:%{version}-%{release}
+
+%description go-multilib
+This package adds 32-bit Go language support to the GNU Compiler
+Collection.
+
+%description go-multilib -l pl.UTF-8
+Ten pakiet dodaje obsługę 32-bitowych binariów języka Go do
+kompilatora gcc.
+
+%package -n libgo
+Summary:       Go language library
+Summary(pl.UTF-8):     Biblioteka języka Go
+License:       BSD
+Group:         Libraries
+Requires:      libgcc >= %{epoch}:%{version}-%{release}
+
+%description -n libgo
+Go language library.
+
+%description -n libgo -l pl.UTF-8
+Biblioteka języka Go.
+
+%package -n libgo-multilib
+Summary:       Go language library - 32-bit version
+Summary(pl.UTF-8):     Biblioteka języka Go - wersja 32-bitowa
+License:       BSD
+Group:         Libraries
+Requires:      libgcc-multilib >= %{epoch}:%{version}-%{release}
+
+%description -n libgo-multilib
+Go language library - 32-bit version.
+
+%description -n libgo-multilib -l pl.UTF-8
+Biblioteka języka Go - wersja 32-bitowa.
+
+%package -n libgo-devel
+Summary:       Development files for Go language library
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki języka Go
+License:       BSD
+Group:         Development/Libraries
+Requires:      glibc-devel
+Requires:      libgo = %{epoch}:%{version}-%{release}
+
+%description -n libgo-devel
+Development files for Go language library.
+
+%description -n libgo-devel -l pl.UTF-8
+Pliki programistyczne biblioteki języka Go.
+
+%package -n libgo-multilib-devel
+Summary:       Development files for Go language library - 32-bit version
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki języka Go - wersja 32-bitowa
+License:       BSD
+Group:         Development/Libraries
+Requires:      glibc-devel
+Requires:      libgo-multilib = %{epoch}:%{version}-%{release}
+
+%description -n libgo-multilib-devel
+Development files for Go language library - 32-bit version.
+
+%description -n libgo-multilib-devel -l pl.UTF-8
+Pliki programistyczne biblioteki języka Go - wersja 32-bitowa.
+
+%package -n libgo-static
+Summary:       Static Go language library
+Summary(pl.UTF-8):     Statyczna biblioteka języka Go
+License:       BSD
+Group:         Development/Libraries
+Requires:      libgo-devel = %{epoch}:%{version}-%{release}
+
+%description -n libgo-static
+Static Go language library.
+
+%description -n libgo-static -l pl.UTF-8
+Statyczna biblioteka języka Go.
+
+%package -n libgo-multilib-static
+Summary:       Static Go language library - 32-bit version
+Summary(pl.UTF-8):     Statyczna biblioteka języka Go - wersja 32-bitowa
+License:       BSD
+Group:         Development/Libraries
+Requires:      libgo-multilib-devel = %{epoch}:%{version}-%{release}
+
+%description -n libgo-multilib-static
+Static Go language library - 32-bit version.
+
+%description -n libgo-multilib-static -l pl.UTF-8
+Statyczna biblioteka języka Go - wersja 32-bitowa.
+
 %prep
 %setup -q
 %patch100 -p0
 %patch0 -p1
-%patch1 -p1
 %patch2 -p1
 %patch3 -p1
 
@@ -1216,15 +1450,15 @@ Statyczna biblioteki Obiektowego C - wersja 32-bitowa.
 %if %{with qt}
 %patch8 -p1
 %endif
-%patch9 -p1
-%patch11 -p0
-%patch12 -p0
+%patch12 -p1
+%patch13 -p0
+%patch14 -p1
 
 mv ChangeLog ChangeLog.general
 
 %if %{with java}
 # see contrib/download_ecj
-install %{SOURCE2} ecj.jar
+cp -p %{SOURCE2} ecj.jar
 %endif
 
 # override snapshot version.
@@ -1260,10 +1494,13 @@ TEXCONFIG=false \
        --mandir=%{_mandir} \
        --x-libraries=%{_libdir} \
        --enable-checking=release \
+       --enable-gnu-unique-object \
+       --with-linker-hash-style=gnu \
        --enable-shared \
        --enable-threads=posix \
+       --enable-linker-build-id \
        --enable-linux-futex \
-       --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,fortran}%{?with_objc:,objc}%{?with_objcxx:,obj-c++}%{?with_ada:,ada}%{?with_java:,java}" \
+       --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,fortran}%{?with_objc:,objc}%{?with_objcxx:,obj-c++}%{?with_ada:,ada}%{?with_java:,java}%{?with_go:,go}" \
        --%{?with_gomp:en}%{!?with_gomp:dis}able-libgomp \
        --%{?with_mudflap:en}%{!?with_mudflap:dis}able-libmudflap \
        --enable-c99 \
@@ -1276,9 +1513,6 @@ TEXCONFIG=false \
        --enable-plugin \
 %ifarch %{ix86} %{x8664}
        --disable-cld \
-%endif
-%ifarch sparc64
-       --with-cpu=ultrasparc \
 %endif
        --with-gnu-as \
        --with-gnu-ld \
@@ -1293,9 +1527,8 @@ TEXCONFIG=false \
        %{!?with_java:--without-x} \
        %{?with_fortran:--enable-cmath} \
        --with-long-double-128 \
-%ifarch ppc ppc64
-       --enable-secureplt \
-%endif
+       --with-ppl \
+       --with-cloog-ppl \
 %if %{with cxx}
        --with-gxx-include-dir=%{_includedir}/c++/%{version} \
        --disable-libstdcxx-pch \
@@ -1361,7 +1594,7 @@ cd builddir
        infodir=%{_infodir} \
        DESTDIR=$RPM_BUILD_ROOT
 
-install gcc/specs $RPM_BUILD_ROOT%{_libdir}/gcc/%{_target_platform}/%{version}
+cp -p gcc/specs $RPM_BUILD_ROOT%{gcclibdir}
 
 ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
@@ -1383,7 +1616,7 @@ echo ".so gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1
 
 %if %{with ada}
 # move ada shared libraries to proper place...
-mv -f  $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
+mv -f  $RPM_BUILD_ROOT%{gcclibdir}/adalib/*.so.1 \
        $RPM_BUILD_ROOT%{_libdir}
 # check if symlink to be made is valid
 test -f        $RPM_BUILD_ROOT%{_libdir}/libgnat-%{major_ver}.so.1
@@ -1392,7 +1625,7 @@ ln -sf    libgnarl-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdir}/libgnarl-%{major_ver
 ln -sf libgnat-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
 ln -sf libgnarl-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
 %if %{with multilib}
-mv -f  $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/32/adalib/*.so.1 \
+mv -f  $RPM_BUILD_ROOT%{gcclibdir}/32/adalib/*.so.1 \
        $RPM_BUILD_ROOT%{_libdir32}
 # check if symlink to be made is valid
 test -f        $RPM_BUILD_ROOT%{_libdir32}/libgnat-%{major_ver}.so.1
@@ -1409,21 +1642,32 @@ cd ..
 install -d java-doc
 cp -f libjava/READ* java-doc
 ln -sf libgcj-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/libgcj.jar
-rm -f $RPM_BUILD_ROOT%{_libdir}/classpath/libgjs*.la
-# tools.zip sources
-rm -rf $RPM_BUILD_ROOT%{_datadir}/classpath/tools/gnu
+
+# still not installed by gcc?
+[ ! -f $RPM_BUILD_ROOT%{_pkgconfigdir}/libffi.pc ] || exit 1
+sed -e 's,@prefix@,%{_prefix},
+       s,@exec_prefix@,%{_exec_prefix},
+       s,@libdir@,%{_libdir},
+       s,@gcclibdir@,%{gcclibdir},' %{SOURCE3} >$RPM_BUILD_ROOT%{_pkgconfigdir}/libffi.pc
+%if %{with multilib}
+[ ! -f $RPM_BUILD_ROOT%{_pkgconfigdir32}/libffi.pc ] || exit 1
+install -d $RPM_BUILD_ROOT%{_pkgconfigdir32}
+sed -e 's,@prefix@,%{_prefix},
+       s,@exec_prefix@,%{_exec_prefix},
+       s,@libdir@,%{_libdir32},
+       s,@gcclibdir@,%{gcclibdir},' %{SOURCE3} >$RPM_BUILD_ROOT%{_pkgconfigdir32}/libffi.pc
+%endif
 %endif
+
 %if %{with objc}
 cp -f libobjc/README gcc/objc/README.libobjc
 %endif
 
-%define        gcjdbexecdir    gcj-%{version}-%{gcj_soname_ver}
-
-# avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version}
+# avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/%{_target_platform}/%{version}
 # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
 for f in libssp.la libssp_nonshared.la \
        %{?with_cxx:libstdc++.la libsupc++.la} \
-       %{?with_fortran:libgfortran.la} \
+       %{?with_fortran:libgfortran.la libquadmath.la} \
        %{?with_gomp:libgomp.la} \
        %{?with_mudflap:libmudflap.la libmudflapth.la} \
 %if %{with java}
@@ -1444,7 +1688,7 @@ done
 %if %{with multilib}
 for f in libssp.la libssp_nonshared.la \
        %{?with_cxx:libstdc++.la libsupc++.la} \
-       %{?with_fortran:libgfortran.la} \
+       %{?with_fortran:libgfortran.la libquadmath.la} \
        %{?with_gomp:libgomp.la} \
        %{?with_mudflap:libmudflap.la libmudflapth.la} \
        %{?with_java:libffi.la} \
@@ -1455,11 +1699,10 @@ do
 done
 %endif
 
-gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*)
-cp $gccdir/install-tools/include/*.h $gccdir/include
-cp $gccdir/include-fixed/syslimits.h $gccdir/include
-rm -rf $gccdir/install-tools
-rm -rf $gccdir/include-fixed
+cp -p $RPM_BUILD_ROOT%{gcclibdir}/install-tools/include/*.h $RPM_BUILD_ROOT%{gcclibdir}/include
+cp -p $RPM_BUILD_ROOT%{gcclibdir}/include-fixed/syslimits.h $RPM_BUILD_ROOT%{gcclibdir}/include
+%{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/install-tools
+%{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/include-fixed
 
 %if %{with python}
 for LIB in lib lib64; do
@@ -1469,13 +1712,27 @@ for LIB in lib lib64; do
        sed -e 's,@pythondir@,%{_datadir}/gdb,' \
          -e 's,@toolexeclibdir@,%{_prefix}/'"$LIB," \
          < libstdc++-v3/python/hook.in \
-         > $LIBPATH/$(basename $RPM_BUILD_ROOT/%{_prefix}/%{_lib}/libstdc++.so.*.*.*)-gdb.py
+         > $LIBPATH/$(basename $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libstdc++.so.*.*.*)-gdb.py
 done
 install -d $RPM_BUILD_ROOT%{py_sitescriptdir}
-cp -a libstdc++-v3/python/libstdcxx $RPM_BUILD_ROOT%{py_sitescriptdir}
+mv $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libstdcxx $RPM_BUILD_ROOT%{py_sitescriptdir}
+%if %{with java}
+mv $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libjava $RPM_BUILD_ROOT%{py_sitescriptdir}
+%endif
+%{__sed} -i -e '1s,#!/usr/bin/env python,#!/usr/bin/python,' $RPM_BUILD_ROOT%{_bindir}/aot-compile
 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
 %py_postclean
+%else
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libstdcxx
+%if %{with java}
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libjava
+%endif
+%endif
+# script(s) always installed; see above for builds with python; if no python, just don't package
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libstdc++.so.*-gdb.py
+%if %{with multilib}
+%{__rm} $RPM_BUILD_ROOT%{_libdir32}/libstdc++.so.*-gdb.py
 %endif
 
 %find_lang gcc
@@ -1484,14 +1741,11 @@ cat cpplib.lang >> gcc.lang
 
 %if %{with cxx}
 %find_lang libstdc\+\+
-install libstdc++-v3/include/precompiled/* $RPM_BUILD_ROOT%{_includedir}
+cp -p libstdc++-v3/include/precompiled/* $RPM_BUILD_ROOT%{_includedir}
 %endif
 
-# gdb stuff maybe?
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.py
-%if %{with multilib}
-%{__rm} $RPM_BUILD_ROOT%{_libdir32}/*.py
-%endif
+# always -f, as "dir" is created depending which texlive version is installed
+%{__rm} -f $RPM_BUILD_ROOT%{_infodir}/dir
 
 # svn snap doesn't contain (release does) below files,
 # so let's create dummy entries to satisfy %%files.
@@ -1526,6 +1780,12 @@ rm -rf $RPM_BUILD_ROOT
 %postun        java -p /sbin/postshell
 -/usr/sbin/fix-info-dir -c %{_infodir}
 
+%post  go -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun        go -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
 %post  -p /sbin/ldconfig -n libgcc
 %postun        -p /sbin/ldconfig -n libgcc
 %post  -p /sbin/ldconfig -n libgcc-multilib
@@ -1560,6 +1820,18 @@ rm -rf $RPM_BUILD_ROOT
 %postun        -p /sbin/ldconfig -n libobjc
 %post  -p /sbin/ldconfig -n libobjc-multilib
 %postun        -p /sbin/ldconfig -n libobjc-multilib
+%post -n libquadmath
+/sbin/ldconfig
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%postun -n libquadmath
+/sbin/ldconfig
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%post  -p /sbin/ldconfig -n libquadmath-multilib
+%postun        -p /sbin/ldconfig -n libquadmath-multilib
+%post  -p /sbin/ldconfig -n libgo
+%postun        -p /sbin/ldconfig -n libgo
+%post  -p /sbin/ldconfig -n libgo-multilib
+%postun        -p /sbin/ldconfig -n libgo-multilib
 
 %files -f gcc.lang
 %defattr(644,root,root,755)
@@ -1570,7 +1842,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/cc
 %attr(755,root,root) %{_bindir}/cpp
 %attr(755,root,root) %{_bindir}/gcc
-%attr(755,root,root) %{_bindir}/gccbug
+#%attr(755,root,root) %{_bindir}/gccbug
 %attr(755,root,root) %{_bindir}/gcov
 %{_mandir}/man1/cc.1*
 %{_mandir}/man1/cpp.1*
@@ -1589,78 +1861,84 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libssp_nonshared.la
 %{_libdir}/libssp_nonshared.a
 %dir %{_libdir}/gcc
-%dir %{_libdir}/gcc/*
-%dir %{_libdir}/gcc/*/*
-%{_libdir}/gcc/*/*/libgcc.a
-%{_libdir}/gcc/*/*/libgcc_eh.a
-%{_libdir}/gcc/*/*/libgcov.a
-%{_libdir}/gcc/*/*/specs
-%{_libdir}/gcc/*/*/crt*.o
-%attr(755,root,root) %{_libdir}/gcc/*/*/cc1
-%attr(755,root,root) %{_libdir}/gcc/*/*/collect2
-%attr(755,root,root) %{_libdir}/gcc/*/*/lto-wrapper
-%attr(755,root,root) %{_libdir}/gcc/*/*/lto1
-%{_libdir}/gcc/*/*/plugin
-%dir %{_libdir}/gcc/*/*/include
-%dir %{_libdir}/gcc/*/*/include/ssp
-%{_libdir}/gcc/*/*/include/ssp/*.h
-%{_libdir}/gcc/*/*/include/float.h
-%{_libdir}/gcc/*/*/include/iso646.h
-%{_libdir}/gcc/*/*/include/limits.h
-%{_libdir}/gcc/*/*/include/stdarg.h
-%{_libdir}/gcc/*/*/include/stdbool.h
-%{_libdir}/gcc/*/*/include/stddef.h
-%{_libdir}/gcc/*/*/include/stdfix.h
-%{_libdir}/gcc/*/*/include/stdint.h
-%{_libdir}/gcc/*/*/include/stdint-gcc.h
-%{_libdir}/gcc/*/*/include/syslimits.h
-%{_libdir}/gcc/*/*/include/unwind.h
-%{_libdir}/gcc/*/*/include/varargs.h
+%dir %{_libdir}/gcc/%{_target_platform}
+%dir %{gcclibdir}
+%{gcclibdir}/libgcc.a
+%{gcclibdir}/libgcc_eh.a
+%{gcclibdir}/libgcov.a
+%{gcclibdir}/specs
+%{gcclibdir}/crt*.o
+%attr(755,root,root) %{gcclibdir}/cc1
+%attr(755,root,root) %{gcclibdir}/collect2
+%attr(755,root,root) %{gcclibdir}/lto-wrapper
+%attr(755,root,root) %{gcclibdir}/lto1
+%attr(755,root,root) %{gcclibdir}/liblto_plugin.so*
+%{gcclibdir}/plugin
+%dir %{gcclibdir}/include
+%dir %{gcclibdir}/include/ssp
+%{gcclibdir}/include/ssp/*.h
+%{gcclibdir}/include/float.h
+%{gcclibdir}/include/iso646.h
+%{gcclibdir}/include/limits.h
+%{gcclibdir}/include/stdarg.h
+%{gcclibdir}/include/stdbool.h
+%{gcclibdir}/include/stddef.h
+%{gcclibdir}/include/stdfix.h
+%{gcclibdir}/include/stdint.h
+%{gcclibdir}/include/stdint-gcc.h
+%{gcclibdir}/include/syslimits.h
+%{gcclibdir}/include/unwind.h
+%{gcclibdir}/include/varargs.h
 %ifarch %{ix86} %{x8664}
-%{_libdir}/gcc/*/*/include/abmintrin.h
-%{_libdir}/gcc/*/*/include/ammintrin.h
-%{_libdir}/gcc/*/*/include/avxintrin.h
-%{_libdir}/gcc/*/*/include/bmmintrin.h
-%{_libdir}/gcc/*/*/include/cpuid.h
-%{_libdir}/gcc/*/*/include/cross-stdarg.h
-%{_libdir}/gcc/*/*/include/emmintrin.h
-%{_libdir}/gcc/*/*/include/fma4intrin.h
-%{_libdir}/gcc/*/*/include/ia32intrin.h
-%{_libdir}/gcc/*/*/include/immintrin.h
-%{_libdir}/gcc/*/*/include/lwpintrin.h
-%{_libdir}/gcc/*/*/include/mm3dnow.h
-%{_libdir}/gcc/*/*/include/mm_malloc.h
-%{_libdir}/gcc/*/*/include/mmintrin.h
-%{_libdir}/gcc/*/*/include/nmmintrin.h
-%{_libdir}/gcc/*/*/include/popcntintrin.h
-%{_libdir}/gcc/*/*/include/pmmintrin.h
-%{_libdir}/gcc/*/*/include/smmintrin.h
-%{_libdir}/gcc/*/*/include/tmmintrin.h
-%{_libdir}/gcc/*/*/include/wmmintrin.h
-%{_libdir}/gcc/*/*/include/x86intrin.h
-%{_libdir}/gcc/*/*/include/xmmintrin.h
-%{_libdir}/gcc/*/*/include/xopintrin.h
-%endif
-%ifarch powerpc ppc ppc64
-%{_libdir}/gcc/*/*/include/altivec.h
-%{_libdir}/gcc/*/*/include/paired.h
-%{_libdir}/gcc/*/*/include/ppc-asm.h
-%{_libdir}/gcc/*/*/include/ppu_intrinsics.h
-%{_libdir}/gcc/*/*/include/si2vmx.h
-%{_libdir}/gcc/*/*/include/spe.h
-%{_libdir}/gcc/*/*/include/spu2vmx.h
-%{_libdir}/gcc/*/*/include/vec_types.h
+%{gcclibdir}/include/abmintrin.h
+%{gcclibdir}/include/ammintrin.h
+%{gcclibdir}/include/avxintrin.h
+%{gcclibdir}/include/bmiintrin.h
+%{gcclibdir}/include/bmmintrin.h
+%{gcclibdir}/include/cpuid.h
+%{gcclibdir}/include/cross-stdarg.h
+%{gcclibdir}/include/emmintrin.h
+%{gcclibdir}/include/fma4intrin.h
+%{gcclibdir}/include/ia32intrin.h
+%{gcclibdir}/include/immintrin.h
+%{gcclibdir}/include/lwpintrin.h
+%{gcclibdir}/include/mm3dnow.h
+%{gcclibdir}/include/mm_malloc.h
+%{gcclibdir}/include/mmintrin.h
+%{gcclibdir}/include/nmmintrin.h
+%{gcclibdir}/include/popcntintrin.h
+%{gcclibdir}/include/pmmintrin.h
+%{gcclibdir}/include/smmintrin.h
+%{gcclibdir}/include/tbmintrin.h
+%{gcclibdir}/include/tmmintrin.h
+%{gcclibdir}/include/wmmintrin.h
+%{gcclibdir}/include/x86intrin.h
+%{gcclibdir}/include/xmmintrin.h
+%{gcclibdir}/include/xopintrin.h
+%endif
+%ifarch arm
+%{gcclibdir}/include/arm_neon.h
+%{gcclibdir}/include/mmintrin.h
+%endif
+%ifarch ia64
+%{gcclibdir}/include/ia64intrin.h
+%endif
+%ifarch m68k
+%{gcclibdir}/include/math-68881.h
+%endif
+%ifarch mips
+%{gcclibdir}/include/loongson.h
 %endif
 
 %if %{with multilib}
 %files multilib
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_slibdir32}/libgcc_s.so
-%dir %{_libdir}/gcc/*/*/32
-%{_libdir}/gcc/*/*/32/crt*.o
-%{_libdir}/gcc/*/*/32/libgcc.a
-%{_libdir}/gcc/*/*/32/libgcc_eh.a
-%{_libdir}/gcc/*/*/32/libgcov.a
+%dir %{gcclibdir}/32
+%{gcclibdir}/32/crt*.o
+%{gcclibdir}/32/libgcc.a
+%{gcclibdir}/32/libgcc_eh.a
+%{gcclibdir}/32/libgcov.a
 %attr(755,root,root) %{_libdir32}/libssp.so
 %{_libdir32}/libssp.la
 %{_libdir32}/libssp.a
@@ -1700,8 +1978,8 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/libgomp.so
 %{_libdir}/libgomp.la
 %{_libdir}/libgomp.spec
-%{_libdir}/gcc/*/*/finclude
-%{_libdir}/gcc/*/*/include/omp.h
+%{gcclibdir}/finclude
+%{gcclibdir}/include/omp.h
 %{_infodir}/libgomp.info*
 
 %if %{with multilib}
@@ -1746,7 +2024,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/libmudflapth.so
 %{_libdir}/libmudflap.la
 %{_libdir}/libmudflapth.la
-%{_libdir}/gcc/*/*/include/mf-runtime.h
+%{gcclibdir}/include/mf-runtime.h
 
 %if %{with multilib}
 %files -n libmudflap-multilib-devel
@@ -1782,13 +2060,13 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/libgnarl.so
 %attr(755,root,root) %{_libdir}/libgnat-*.so
 %attr(755,root,root) %{_libdir}/libgnat.so
-%attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
-%{_libdir}/gcc/*/*/adainclude
-%dir %{_libdir}/gcc/*/*/adalib
-%{_libdir}/gcc/*/*/adalib/*.ali
-%{_libdir}/gcc/*/*/adalib/g-trasym.o
+%attr(755,root,root) %{gcclibdir}/gnat1
+%{gcclibdir}/adainclude
+%dir %{gcclibdir}/adalib
+%{gcclibdir}/adalib/*.ali
+%{gcclibdir}/adalib/g-trasym.o
 %ifarch %{ix86} %{x8664}
-%{_libdir}/gcc/*/*/adalib/libgmem.a
+%{gcclibdir}/adalib/libgmem.a
 %endif
 %{_infodir}/gnat-style.info*
 %{_infodir}/gnat_rm.info*
@@ -1801,12 +2079,12 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir32}/libgnarl.so
 %attr(755,root,root) %{_libdir32}/libgnat-*.so
 %attr(755,root,root) %{_libdir32}/libgnat.so
-%{_libdir}/gcc/*/*/32/adainclude
-%dir %{_libdir}/gcc/*/*/32/adalib
-%{_libdir}/gcc/*/*/32/adalib/*.ali
-%{_libdir}/gcc/*/*/32/adalib/g-trasym.o
+%{gcclibdir}/32/adainclude
+%dir %{gcclibdir}/32/adalib
+%{gcclibdir}/32/adalib/*.ali
+%{gcclibdir}/32/adalib/g-trasym.o
 %ifarch %{ix86} %{x8664}
-%{_libdir}/gcc/*/*/32/adalib/libgmem.a
+%{gcclibdir}/32/adalib/libgmem.a
 %endif
 %endif
 
@@ -1828,16 +2106,16 @@ rm -rf $RPM_BUILD_ROOT
 
 %files -n libgnat-static
 %defattr(644,root,root,755)
-%{_libdir}/gcc/*/*/adalib/libgnala.a
-%{_libdir}/gcc/*/*/adalib/libgnarl.a
-%{_libdir}/gcc/*/*/adalib/libgnat.a
+%{gcclibdir}/adalib/libgnala.a
+%{gcclibdir}/adalib/libgnarl.a
+%{gcclibdir}/adalib/libgnat.a
 
 %if %{with multilib}
 %files -n libgnat-multilib-static
 %defattr(644,root,root,755)
-%{_libdir}/gcc/*/*/32/adalib/libgnala.a
-%{_libdir}/gcc/*/*/32/adalib/libgnarl.a
-%{_libdir}/gcc/*/*/32/adalib/libgnat.a
+%{gcclibdir}/32/adalib/libgnala.a
+%{gcclibdir}/32/adalib/libgnarl.a
+%{gcclibdir}/32/adalib/libgnat.a
 %endif
 %endif
 
@@ -1849,7 +2127,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/*-g++
 %attr(755,root,root) %{_bindir}/c++
 %attr(755,root,root) %{_bindir}/*-c++
-%attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
+%attr(755,root,root) %{gcclibdir}/cc1plus
 %{_libdir}/libsupc++.la
 %{_libdir}/libsupc++.a
 %{_mandir}/man1/g++.1*
@@ -1881,7 +2159,7 @@ rm -rf $RPM_BUILD_ROOT
 %{py_sitescriptdir}/libstdcxx/*.py[co]
 %dir %{py_sitescriptdir}/libstdcxx/v6
 %{py_sitescriptdir}/libstdcxx/v6/*.py[co]
-%{_datadir}/gdb/auto-load/usr/lib*/libstdc++.so.6.0.14-gdb.py
+%{_datadir}/gdb/auto-load/usr/lib*/libstdc++.so.6.0.16-gdb.py
 %endif
 
 %files -n libstdc++-devel
@@ -1933,11 +2211,12 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/g95
 %attr(755,root,root) %{_bindir}/gfortran
 %attr(755,root,root) %{_bindir}/*-gfortran
-%attr(755,root,root) %{_libdir}/gcc/*/*/f951
+%attr(755,root,root) %{gcclibdir}/f951
 %attr(755,root,root) %{_libdir}/libgfortran.so
+%{_libdir}/libgfortran.spec
 %{_libdir}/libgfortran.la
-%{_libdir}/gcc/*/*/libgfortranbegin.la
-%{_libdir}/gcc/*/*/libgfortranbegin.a
+%{gcclibdir}/libgfortranbegin.la
+%{gcclibdir}/libgfortranbegin.a
 %{_infodir}/gfortran.info*
 %{_mandir}/man1/g95.1*
 %{_mandir}/man1/gfortran.1*
@@ -1946,9 +2225,10 @@ rm -rf $RPM_BUILD_ROOT
 %files fortran-multilib
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libgfortran.so
+%{_libdir32}/libgfortran.spec
 %{_libdir32}/libgfortran.la
-%{_libdir}/gcc/*/*/32/libgfortranbegin.la
-%{_libdir}/gcc/*/*/32/libgfortranbegin.a
+%{gcclibdir}/32/libgfortranbegin.la
+%{gcclibdir}/32/libgfortranbegin.a
 %endif
 
 %files -n libgfortran
@@ -1973,6 +2253,43 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %{_libdir32}/libgfortran.a
 %endif
+
+%files -n libquadmath
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libquadmath.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libquadmath.so.0
+
+%if %{with multilib}
+%files -n libquadmath-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libquadmath.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libquadmath.so.0
+%endif
+
+%files -n libquadmath-devel
+%defattr(644,root,root,755)
+%{gcclibdir}/include/quadmath.h
+%{gcclibdir}/include/quadmath_weak.h
+%attr(755,root,root) %{_libdir}/libquadmath.so
+%{_libdir}/libquadmath.la
+%{_infodir}/libquadmath.info*
+
+%if %{with multilib}
+%files -n libquadmath-multilib-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libquadmath.so
+%{_libdir32}/libquadmath.la
+%endif
+
+%files -n libquadmath-static
+%defattr(644,root,root,755)
+%{_libdir}/libquadmath.a
+
+%if %{with multilib}
+%files -n libquadmath-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libquadmath.a
+%endif
 %endif
 
 %if %{with java}
@@ -1999,9 +2316,9 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/jv-convert
 %attr(755,root,root) %{_bindir}/rebuild-gcj-db
 %attr(755,root,root) %{_bindir}/*-gcj
-%attr(755,root,root) %{_libdir}/gcc/*/*/ecj1
-%attr(755,root,root) %{_libdir}/gcc/*/*/jc1
-%attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
+%attr(755,root,root) %{gcclibdir}/ecj1
+%attr(755,root,root) %{gcclibdir}/jc1
+%attr(755,root,root) %{gcclibdir}/jvgenmain
 %{_infodir}/cp-tools.info*
 %{_infodir}/gcj.info*
 %{_mandir}/man1/gappletviewer.1*
@@ -2024,6 +2341,15 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/jv-convert.1*
 %{_mandir}/man1/rebuild-gcj-db*
 
+%if %{with python}
+%files java-aotcompile
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/aot-compile
+%dir %{py_sitescriptdir}/libjava
+%{py_sitescriptdir}/libjava/*.py[co]
+%{_mandir}/man1/aot-compile.1*
+%endif
+
 %files -n libgcj
 %defattr(644,root,root,755)
 %doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
@@ -2079,12 +2405,12 @@ rm -rf $RPM_BUILD_ROOT
 %{?with_qt:%{_libdir}/%{gcjdbexecdir}/libqtpeer.la}
 %{?with_mozilla:%{_libdir}/%{gcjdbexecdir}/libgcjwebplugin.la}
 %{_libdir}/%{gcjdbexecdir}/libxmlj.la
-%{_libdir}/gcc/*/*/include/gcj
-%{_libdir}/gcc/*/*/include/jawt.h
-%{_libdir}/gcc/*/*/include/jawt_md.h
-%{_libdir}/gcc/*/*/include/jni.h
-%{_libdir}/gcc/*/*/include/jni_md.h
-%{_libdir}/gcc/*/*/include/jvmpi.h
+%{gcclibdir}/include/gcj
+%{gcclibdir}/include/jawt.h
+%{gcclibdir}/include/jawt_md.h
+%{gcclibdir}/include/jni.h
+%{gcclibdir}/include/jni_md.h
+%{gcclibdir}/include/jvmpi.h
 %{_includedir}/c++/%{version}/java
 %{_includedir}/c++/%{version}/javax
 %{_includedir}/c++/%{version}/gcj
@@ -2119,8 +2445,9 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libffi.so
 %{_libdir}/libffi.la
-%{_libdir}/gcc/*/*/include/ffi.h
-%{_libdir}/gcc/*/*/include/ffitarget.h
+%{gcclibdir}/include/ffi.h
+%{gcclibdir}/include/ffitarget.h
+%{_pkgconfigdir}/libffi.pc
 %{_mandir}/man3/ffi*.3*
 
 %if %{with multilib}
@@ -2128,6 +2455,7 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libffi.so
 %{_libdir32}/libffi.la
+%{_pkgconfigdir32}/libffi.pc
 %endif
 
 %files -n libffi-static
@@ -2144,11 +2472,18 @@ rm -rf $RPM_BUILD_ROOT
 %if %{with objc}
 %files objc
 %defattr(644,root,root,755)
-%doc gcc/objc/README
-%attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
+%doc gcc/objc/README.libobjc
+%attr(755,root,root) %{gcclibdir}/cc1obj
 %attr(755,root,root) %{_libdir}/libobjc.so
 %{_libdir}/libobjc.la
-%{_libdir}/gcc/*/*/include/objc
+%{gcclibdir}/include/objc
+
+%if %{with objcxx}
+%files objc++
+%defattr(644,root,root,755)
+%doc gcc/objcp/ChangeLog
+%attr(755,root,root) %{gcclibdir}/cc1objplus
+%endif
 
 %if %{with multilib}
 %files objc-multilib
@@ -2161,13 +2496,13 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %doc libobjc/{ChangeLog,README*}
 %attr(755,root,root) %{_libdir}/libobjc.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libobjc.so.2
+%attr(755,root,root) %ghost %{_libdir}/libobjc.so.3
 
 %if %{with multilib}
 %files -n libobjc-multilib
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libobjc.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libobjc.so.2
+%attr(755,root,root) %ghost %{_libdir32}/libobjc.so.3
 %endif
 
 %files -n libobjc-static
@@ -2181,9 +2516,58 @@ rm -rf $RPM_BUILD_ROOT
 %endif
 %endif
 
-%if %{with objcxx}
-%files objc++
+%if %{with go}
+%files go
 %defattr(644,root,root,755)
-%doc gcc/objcp/ChangeLog
-%attr(755,root,root) %{_libdir}/gcc/*/*/cc1objplus
+%doc gcc/go/gofrontend/{LICENSE,PATENTS,README}
+%attr(755,root,root) %{_bindir}/gccgo
+%attr(755,root,root) %{gcclibdir}/go1
+%dir %{_libdir}/go
+%{_libdir}/go/%{version}
+%{_mandir}/man1/gccgo.1*
+%{_infodir}/gccgo.info*
+
+%if %{with multilib}
+%files go-multilib
+%defattr(644,root,root,755)
+%dir %{_libdir32}/go
+%{_libdir32}/go/%{version}
+%endif
+
+%files -n libgo
+%defattr(644,root,root,755)
+%doc libgo/{LICENSE,PATENTS,README}
+%attr(755,root,root) %{_libdir}/libgo.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgo.so.0
+
+%if %{with multilib}
+%files -n libgo-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgo.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libgo.so.0
+%endif
+
+%files -n libgo-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgo.so
+%{_libdir}/libgo.la
+%{_libdir}/libgobegin.a
+
+%if %{with multilib}
+%files -n libgo-multilib-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgo.so
+%{_libdir32}/libgo.la
+%{_libdir32}/libgobegin.a
+%endif
+
+%files -n libgo-static
+%defattr(644,root,root,755)
+%{_libdir}/libgo.a
+
+%if %{with multilib}
+%files -n libgo-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libgo.a
+%endif
 %endif