]> TLD Linux GIT Repositories - packages/gcc.git/blobdiff - gcc.spec
- updated to 4.8.5
[packages/gcc.git] / gcc.spec
index fed1b8be2806c88525b5cc85a411015a9a6a74b9..f9c89a9a267364b17ef95259a7eeafedd1bfae9b 100644 (file)
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,43 +1,57 @@
-# NOTE: despite lower soname, libffi is newer than standalone 3.0.9
+# NOTE: despite lower soname, libffi is newer than standalone 3.0.10
 #
 # 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_without profiling       # build without profiling
+%bcond_without python          # build without libstdc++ printers for gdb and aot-compile for java
+%bcond_without asan            # build without Address Sanitizer library
+%bcond_without tsan            # build without Thread Sanitizer library
+%bcond_without atomic          # build without library for atomic operations not supported by hardware
+%bcond_without gcc_libffi      # packaging gcc libffi for system usage
+                               # note: libgcj and libgo always have convenience gcc libffi linked in
+# - 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    gtk             # build libgcj GTK peer
+%bcond_with    apidocs         # build and package API docs
+%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
+%bcond_with    x               # build libgcj Xlib-dependent AWTs (incl. GTK/Qt)
+# - other:
 %bcond_without bootstrap       # omit 3-stage bootstrap
 %bcond_with    tests           # torture gcc
+%bcond_with    symvers         # enable versioned symbols in libstdc++ (WARNING: changes soname from .so.6 to so.7)
 
+%if %{with symvers}
+%define                cxx_sover       7
+%else
+%define                cxx_sover       6
+%endif
+
+# go, java and objcxx require C++
 %if %{without cxx}
+%undefine      with_go
 %undefine      with_java
 %undefine      with_objcxx
 %endif
-
+# objcxx requires objc
 %if %{without objc}
 %undefine      with_objcxx
 %endif
 %undefine      with_multilib
 %endif
 
-%define                major_ver       4.5
-%define                minor_ver       3
+%ifnarch %{ix86} %{x8664}
+%undefine      with_atomic
+%endif
+
+%ifnarch %{ix86} %{x8664}
+%undefine      with_asan
+%endif
+
+%ifnarch %{x8664}
+%undefine      with_tsan
+%endif
+
+%define                major_ver       4.8
+%define                minor_ver       5
 %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  14
 
 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 +94,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:       5
+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: 80d2c2982a3392bb0b89673ff136e223
 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
-Patch100:      %{name}-branch.diff
+# check libffi version with libffi/configure.ac
+Source3:       libffi.pc.in
+# For creating branch.diff please run:
+# svn diff -x --ignore-eol-style --force svn://gcc.gnu.org/svn/gcc/tags/gcc_4_8_3_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_8-branch > gcc-branch.diff
 Patch0:                %{name}-info.patch
-Patch1:                %{name}-nolocalefiles.patch
+Patch1:                %{name}-cloog.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
-Patch12:       %{name}-plugin-decl-hook.patch
+Patch4:                %{name}-libjava-multilib.patch
+Patch5:                %{name}-enable-java-awt-qt.patch
+Patch6:                %{name}-install-libffi.patch
+Patch100:      %{name}-branch.diff
 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-isl-devel >= 0.17.0
+BuildRequires: cloog-isl-devel < 0.19
 %{?with_tests:BuildRequires:   dejagnu}
 BuildRequires: elfutils-devel >= 0.145-1
 BuildRequires: fileutils >= 4.0.41
@@ -109,12 +138,15 @@ BuildRequires:    glibc-devel >= 6:2.4-1
 %if %{with multilib}
 BuildRequires: gcc(multilib)
 %ifarch %{x8664}
-BuildRequires: glibc-devel(i686)
+BuildRequires: glibc-devel(ix86)
 %endif
 %endif
+BuildRequires: gmp-c++-devel >= 4.1
 BuildRequires: gmp-devel >= 4.1
+BuildRequires: isl-devel >= 0.13
 BuildRequires: libmpc-devel
 BuildRequires: mpfr-devel >= 2.3.0
+BuildRequires: ppl-devel >= 0.11
 %if %{with python}
 BuildRequires: python-devel
 BuildRequires: rpm-pythonprov
@@ -133,6 +165,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}
@@ -150,7 +183,7 @@ BuildRequires:      qt4-build >= 4.0.1
 %{?with_mozilla:BuildRequires: xulrunner-devel >= 1.8.1.3-1.20070321.5}
 %endif
 BuildConflicts:        pdksh < 5.2.14-50
-Requires:      binutils >= 3:2.20.51.0.2
+Requires:      binutils >= 3:2.23
 Requires:      libgcc = %{epoch}:%{version}-%{release}
 Provides:      cpp = %{epoch}:%{version}-%{release}
 %{?with_ada:Provides:  gcc(ada)}
@@ -169,14 +202,19 @@ 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
 
-%define                skip_post_check_so      '.*(libmudflap|libmudflapth|libxmlj|lib-gnu-awt-xlib)\.so.*'
+# functions with printf format attribute but with special parser and also
+# receiving non constant format strings
+%define                Werror_cflags   %{nil}
 
-%define                _target_platform        %{_target_cpu}-tld-linux
+%define                skip_post_check_so      '.*(libgo|libmudflap|libmudflapth|libxmlj|lib-gnu-awt-xlib)\.so.*'
 
 %description
 A compiler aimed at integrating all the optimizations and features
@@ -218,7 +256,7 @@ Requires:   libgcc-multilib = %{epoch}:%{version}-%{release}
 %{?with_multilib:Provides:     gcc(multilib)}
 Obsoletes:     libgcc32
 %ifarch %{x8664}
-Requires:      glibc-devel(i686)
+Requires:      glibc-devel(ix86)
 %endif
 
 %description multilib
@@ -669,7 +707,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
@@ -767,6 +804,9 @@ Statyczna biblioteka standardowa C++ - wersja 32-bitowa.
 Summary:       C++ standard library API documentation
 Summary(pl.UTF-8):     Dokumentacja API biblioteki standardowej C++
 Group:         Documentation
+%if "%{_rpmversion}" >= "5"
+BuildArch:     noarch
+%endif
 
 %description -n libstdc++-apidocs
 API and internal documentation for C++ standard library.
@@ -782,6 +822,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
@@ -803,10 +844,11 @@ Suporte Fortran 95 para o GCC.
 
 %package fortran-multilib
 Summary:       Fortran 95 32-bit support for gcc
-Summary(pl.UTF-8):     Obsługa binariów 32-bitowych Fortrana 95 dla gcc
+Summary(pl.UTF-8):     Obsługa binariów 32-bitowych Fortranu 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
@@ -819,9 +861,10 @@ kompilatora gcc.
 %package -n libgfortran
 Summary:       Fortran 95 Library
 Summary(es.UTF-8):     Biblioteca de Fortran 95
-Summary(pl.UTF-8):     Biblioteka Fortrana 95
+Summary(pl.UTF-8):     Biblioteka Fortranu 95
 License:       GPL v2+ with unlimited link permission
 Group:         Libraries
+Requires:      libquadmath = %{epoch}:%{version}-%{release}
 Obsoletes:     libg2c
 
 %description -n libgfortran
@@ -831,24 +874,25 @@ Fortran 95 Library.
 Biblioteca de Fortran 95.
 
 %description -n libgfortran -l pl.UTF-8
-Biblioteka Fortrana 95.
+Biblioteka Fortranu 95.
 
 %package -n libgfortran-multilib
 Summary:       Fortran 95 Library - 32-bit version
-Summary(pl.UTF-8):     Biblioteka Fortrana 95 - wersja 32-bitowa
+Summary(pl.UTF-8):     Biblioteka Fortranu 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.
 
 %description -n libgfortran-multilib -l pl.UTF-8
-Biblioteka Fortrana 95 - wersja 32-bitowa.
+Biblioteka Fortranu 95 - wersja 32-bitowa.
 
 %package -n libgfortran-static
 Summary:       Static Fortran 95 Library
 Summary(es.UTF-8):     Bibliotecas estáticas de Fortran 95
-Summary(pl.UTF-8):     Statyczna Biblioteka Fortrana 95
+Summary(pl.UTF-8):     Statyczna Biblioteka Fortranu 95
 License:       GPL v2+ with unlimited link permission
 Group:         Development/Libraries
 Requires:      libgfortran = %{epoch}:%{version}-%{release}
@@ -861,11 +905,11 @@ Static Fortran 95 Library.
 Bibliotecas estáticas de Fortran 95.
 
 %description -n libgfortran-static -l pl.UTF-8
-Statyczna biblioteka Fortrana 95.
+Statyczna biblioteka Fortranu 95.
 
 %package -n libgfortran-multilib-static
 Summary:       Static Fortran 95 Library - 32-bit version
-Summary(pl.UTF-8):     Statyczna Biblioteka Fortrana 95 - wersja 32-bitowa
+Summary(pl.UTF-8):     Statyczna Biblioteka Fortranu 95 - wersja 32-bitowa
 License:       GPL v2+ with unlimited link permission
 Group:         Development/Libraries
 Requires:      libgfortran-multilib = %{epoch}:%{version}-%{release}
@@ -874,7 +918,98 @@ Requires:  libgfortran-multilib = %{epoch}:%{version}-%{release}
 Static Fortran 95 Library - 32-bit version.
 
 %description -n libgfortran-multilib-static -l pl.UTF-8
-Statyczna biblioteka Fortrana 95 - wersja 32-bitowa.
+Statyczna biblioteka Fortranu 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
@@ -904,6 +1039,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
@@ -1206,27 +1358,333 @@ 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.
+
+%package -n libasan
+Summary:       The Address Sanitizer library
+Summary(pl.UTF-8):     Biblioteka Address Sanitizer do kontroli adresów
+Group:         Libraries
+
+%description -n libasan
+This package contains the Address Sanitizer library which is used for
+-fsanitize=address instrumented programs.
+
+%description -n libasan -l pl.UTF-8
+Ten pakiet zawiera bibliotekę Address Sanitizer, służącą do
+kontroli adresów w programach kompilowanych z opcją
+-fsanitize=address.
+
+%package -n libasan-multilib
+Summary:       The Address Sanitizer library - 32-bit version
+Summary(pl.UTF-8):     Biblioteka Address Sanitizer do kontroli adresów - wersja 32-bitowa
+Group:         Libraries
+
+%description -n libasan-multilib
+This package contains 32-bit version of the Address Sanitizer library
+which is used for -fsanitize=address instrumented programs.
+
+%description -n libasan-multilib -l pl.UTF-8
+Ten pakiet zawiera 32-bitową wersję biblioteki Address Sanitizer,
+służącej do kontroli adresów w programach kompilowanych z opcją
+-fsanitize=address.
+
+%package -n libasan-devel
+Summary:       Development files for the Address Sanitizer library
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki Address Sanitizer
+Group:         Development/Libraries
+Requires:      libasan = %{epoch}:%{version}-%{release}
+
+%description -n libasan-devel
+This package contains development files for the Address Sanitizer
+library.
+
+%description -n libasan-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne biblioteki Address Sanitizer.
+
+%package -n libasan-multilib-devel
+Summary:       Development files for the Address Sanitizer library - 32-bit version
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki Address Sanitizer - wersja 32-bitowa
+Group:         Development/Libraries
+Requires:      libasan-multilib = %{epoch}:%{version}-%{release}
+
+%description -n libasan-multilib-devel
+This package contains the development files for 32-bit version of the
+Address Sanitizer library.
+
+%description -n libasan-multilib-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne 32-bitowej wersji biblioteki
+Address Sanitizer.
+
+%package -n libasan-static
+Summary:       The Address Sanitizer static library
+Summary(pl.UTF-8):     Statyczna biblioteka Address Sanitizer
+Group:         Development/Libraries
+Requires:      libasan-devel = %{epoch}:%{version}-%{release}
+
+%description -n libasan-static
+This package contains Address Sanitizer static library.
+
+%description -n libasan-static -l pl.UTF-8
+Ten pakiet zawiera statyczną bibliotekę Address Sanitizer.
+
+%package -n libasan-multilib-static
+Summary:       The Address Sanitizer static library - 32-bit version
+Summary(pl.UTF-8):     Statyczna biblioteka Address Sanitizer - wersja 32-bitowa
+Group:         Development/Libraries
+Requires:      libasan-multilib-devel = %{epoch}:%{version}-%{release}
+
+%description -n libasan-multilib-static
+This package contains 32-bit version of the Address Sanitizer static
+library.
+
+%description -n libasan-multilib-static -l pl.UTF-8
+Ten pakiet zawiera 32-bitową wersję statycznej biblioteki Address
+Sanitizer.
+
+%package -n libtsan
+Summary:       The Thread Sanitizer library
+Summary(pl.UTF-8):     Biblioteka Thread Sanitizer do kontroli wielowątkowości
+Group:         Libraries
+
+%description -n libtsan
+This package contains the Thread Sanitizer library which is used for
+-fsanitize=thread instrumented programs.
+
+%description -n libtsan -l pl.UTF-8
+Ten pakiet zawiera bibliotekę Thread Sanitizer, służącą do kontroli
+wielowątkowości w programach kompilowanych z opcją -fsanitize=thread.
+
+%package -n libtsan-devel
+Summary:       Development files for the Thread Sanitizer library
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki Thread Sanitizer
+Group:         Development/Libraries
+Requires:      libtsan = %{epoch}:%{version}-%{release}
+
+%description -n libtsan-devel
+This package contains development files for Thread Sanitizer library.
+
+%description -n libtsan-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne biblioteki Address Sanitizer.
+
+%package -n libtsan-static
+Summary:       The Thread Sanitizer static library
+Summary(pl.UTF-8):     Statyczna biblioteka Thread Sanitizer
+Group:         Development/Libraries
+Requires:      libtsan-devel = %{epoch}:%{version}-%{release}
+
+%description -n libtsan-static
+This package contains Thread Sanitizer static library.
+
+%description -n libtsan-static -l pl.UTF-8
+Ten pakiet zawiera statyczną bibliotekę Thread Sanitizer.
+
+%package -n libatomic
+Summary:       The GNU Atomic library
+Summary(pl.UTF-8):     Biblioteka GNU Atomic
+Group:         Libraries
+
+%description -n libatomic
+This package contains the GNU Atomic library which is a GCC support
+library for atomic operations not supported by hardware.
+
+%description -n libatomic -l pl.UTF-8
+Ten pakiet zawiera bibliotekę GNU Atomic, będącą biblioteką GCC
+wspierającą operacje atomowe na sprzęcie ich nie obsługującym.
+
+%package -n libatomic-multilib
+Summary:       The GNU Atomic library - 32-bit version
+Summary(pl.UTF-8):     Biblioteka GNU Atomic - wersja 32-bitowa
+Group:         Libraries
+
+%description -n libatomic-multilib
+This package contains 32-bit version of the GNU Atomic library which
+is a GCC support library for atomic operations not supported by
+hardware.
+
+%description -n libatomic-multilib -l pl.UTF-8
+Ten pakiet zawiera 32-bitową wersję biblioteki GNU Atomic, będącej
+biblioteką GCC wspierającą operacje atomowe na sprzęcie ich nie
+obsługującym.
+
+%package -n libatomic-devel
+Summary:       Development files for the GNU Atomic library
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki GNU Atomic
+Group:         Development/Libraries
+Requires:      libatomic = %{epoch}:%{version}-%{release}
+
+%description -n libatomic-devel
+This package contains development files for the GNU Atomic library.
+
+%description -n libatomic-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne biblioteki GNU Atomic.
+
+%package -n libatomic-multilib-devel
+Summary:       Development files for the GNU Atomic static library - 32-bit version
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki GNU Atomic - wersja 32-bitowa
+Group:         Development/Libraries
+Requires:      libatomic-multilib = %{epoch}:%{version}-%{release}
+
+%description -n libatomic-multilib-devel
+This package contains the development files for 32-bit version of the
+GNU Atomic library.
+
+%description -n libatomic-multilib-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne 32-bitowej wersji biblioteki
+GNU Atomic.
+
+%package -n libatomic-static
+Summary:       The GNU Atomic static library
+Summary(pl.UTF-8):     Statyczna biblioteka GNU Atomic
+Group:         Development/Libraries
+Requires:      libatomic-devel = %{epoch}:%{version}-%{release}
+
+%description -n libatomic-static
+This package contains GNU Atomic static library.
+
+%description -n libatomic-static
+Ten pakiet zawiera statyczną bibliotekę GNU Atomic.
+
+%package -n libatomic-multilib-static
+Summary:       The GNU Atomic static library - 32-bit version
+Summary(pl.UTF-8):     Statyczna biblioteka GNU Atomic - wersja 32-bitowa
+Group:         Development/Libraries
+Requires:      libatomic-multilib-devel = %{epoch}:%{version}-%{release}
+
+%description -n libatomic-multilib-static
+This package contains 32-bit version of the GNU Atomic static
+library.
+
+%description -n libatomic-multilib-static -l pl.UTF-8
+Ten pakiet zawiera 32-bitową wersję statycznej biblioteki GNU Atomic.
+
 %prep
 %setup -q
-%patch100 -p0
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
-
-%patch7 -p0
+%patch4 -p0
 %if %{with qt}
-%patch8 -p1
+%patch5 -p1
+%endif
+%if %{with gcc_libffi}
+%patch6 -p0
 %endif
-%patch9 -p1
-%patch11 -p0
-%patch12 -p0
+%patch100 -p0
 
 mv ChangeLog ChangeLog.general
 
 %if %{with java}
 # see contrib/download_ecj
-install %{SOURCE2} ecj.jar
+cp -p %{SOURCE2} ecj.jar
 %endif
 
 # override snapshot version.
@@ -1261,66 +1719,75 @@ TEXCONFIG=false \
        --infodir=%{_infodir} \
        --mandir=%{_mandir} \
        --x-libraries=%{_libdir} \
+       --%{?with_bootstrap:en}%{!?with_bootstrap:dis}able-bootstrap \
+       --disable-build-with-cxx \
+       --disable-build-poststage1-with-cxx \
+       --enable-c99 \
        --enable-checking=release \
-       --enable-shared \
-       --enable-threads=posix \
-       --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}" \
+%ifarch %{ix86} %{x8664}
+       --disable-cld \
+%endif
+       %{?with_fortran:--enable-cmath} \
+       --enable-decimal-float \
+       --enable-gnu-unique-object \
+       --enable-initfini-array \
+       --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 \
+       --enable-libitm \
        --%{?with_mudflap:en}%{!?with_mudflap:dis}able-libmudflap \
-       --enable-c99 \
+       --enable-linker-build-id \
+       --enable-linux-futex \
        --enable-long-long \
-       --enable-decimal-float=yes \
        %{!?with_multilib:--disable-multilib} \
        --enable-nls \
-       --disable-werror \
        --enable-lto \
        --enable-plugin \
-%ifarch %{ix86} %{x8664}
-       --disable-cld \
-%endif
-%ifarch sparc64
-       --with-cpu=ultrasparc \
-%endif
+       --enable-shared \
+       --enable-threads=posix \
+       --disable-werror \
+       --with-cloog \
+       --with-demangler-in-ld \
        --with-gnu-as \
        --with-gnu-ld \
-       --with-demangler-in-ld \
-       --with-system-zlib \
+       --with-linker-hash-style=gnu \
+       --with-long-double-128 \
+       --with-ppl \
+       --disable-ppl-version-check \
        --with-slibdir=%{_slibdir} \
 %ifnarch ia64
        --without-system-libunwind \
 %else
        --with-system-libunwind \
 %endif
+       --with-system-zlib \
        %{!?with_java:--without-x} \
-       %{?with_fortran:--enable-cmath} \
-       --with-long-double-128 \
-%ifarch ppc ppc64
-       --enable-secureplt \
-%endif
 %if %{with cxx}
-       --with-gxx-include-dir=%{_includedir}/c++/%{version} \
-       --disable-libstdcxx-pch \
        --enable-__cxa_atexit \
        --enable-libstdcxx-allocator=new \
+       --disable-libstdcxx-pch \
+       --enable-libstdcxx-threads \
+       --enable-libstdcxx-time=rt \
+       --enable-libstdcxx-visibility \
+       --enable-symvers=gnu%{?with_symvers:-versioned-namespace} \
+       --with-gxx-include-dir=%{_includedir}/c++/%{version} \
 %endif
 %if %{with java}
-       --enable-libjava-multilib=no \
        %{!?with_alsa:--disable-alsa} \
        %{!?with_dssi:--disable-dssi} \
        --disable-gconf-peer \
+       %{?with_gtk:--enable-gtk-cairo} \
 %if %{with x}
        --enable-java-awt="xlib%{?with_gtk:,gtk}%{?with_qt:,qt}" \
 %endif
-       %{?with_mozilla:--enable-plugin} \
+       --enable-jni \
        --enable-libgcj \
        --enable-libgcj-multifile \
        --enable-libgcj-database \
-       %{?with_gtk:--enable-gtk-cairo} \
-       --enable-jni \
+       --disable-libjava-multilib \
+       %{?with_mozilla:--enable-plugin} \
+       --enable-static-libjava \
        --enable-xmlj \
 %endif
-       --%{?with_bootstrap:en}%{!?with_bootstrap:dis}able-bootstrap \
        --with-pkgversion="TLD-Linux" \
        --with-bugurl="http://www.tld-linux.org" \
        %{_target_platform}
@@ -1335,7 +1802,7 @@ all $(all):
                %{?with_bootstrap:%{?with_profiling:profiledbootstrap}} \
                GCJFLAGS="%{rpmcflags}" \
                BOOT_CFLAGS="%{rpmcflags}" \
-               STAGE1_CFLAGS="%{rpmcflags} -O0" \
+               STAGE1_CFLAGS="%{rpmcflags} -O1 -g0" \
                GNATLIBCFLAGS="%{rpmcflags}" \
                LDFLAGS_FOR_TARGET="%{rpmldflags}" \
                mandir=%{_mandir} \
@@ -1363,29 +1830,46 @@ 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
-echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
+echo ".so man1/gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
 
 libssp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libssp.so.*.*.*)
 mv $RPM_BUILD_ROOT%{_libdir}/libssp.so.* $RPM_BUILD_ROOT%{_slibdir}
 ln -sf %{_slibdir}/$libssp $RPM_BUILD_ROOT%{_libdir}/libssp.so
+
+libitm=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libitm.so.*.*.*)
+mv $RPM_BUILD_ROOT%{_libdir}/libitm.so.* $RPM_BUILD_ROOT%{_slibdir}
+ln -sf %{_slibdir}/$libitm $RPM_BUILD_ROOT%{_libdir}/libitm.so
+
+libgomp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libgomp.so.*.*.*)
+mv $RPM_BUILD_ROOT%{_libdir}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdir}
+ln -sf %{_slibdir}/$libgomp $RPM_BUILD_ROOT%{_libdir}/libgomp.so
+
 %if %{with multilib}
 libssp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libssp.so.*.*.*)
 mv $RPM_BUILD_ROOT%{_libdir32}/libssp.so.* $RPM_BUILD_ROOT%{_slibdir32}
 ln -sf %{_slibdir32}/$libssp $RPM_BUILD_ROOT%{_libdir32}/libssp.so
+
+libitm=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libitm.so.*.*.*)
+mv $RPM_BUILD_ROOT%{_libdir32}/libitm.so.* $RPM_BUILD_ROOT%{_slibdir32}
+ln -sf %{_slibdir32}/$libitm $RPM_BUILD_ROOT%{_libdir32}/libitm.so
+
+libgomp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libgomp.so.*.*.*)
+mv $RPM_BUILD_ROOT%{_libdir32}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdir32}
+ln -sf %{_slibdir32}/$libgomp $RPM_BUILD_ROOT%{_libdir32}/libgomp.so
 %endif
 
 %if %{with fortran}
 ln -sf gfortran $RPM_BUILD_ROOT%{_bindir}/g95
-echo ".so gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1
+echo ".so man1/gfortran.1" > $RPM_BUILD_ROOT%{_mandir}/man1/g95.1
 %endif
 
 %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
@@ -1394,7 +1878,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
@@ -1411,25 +1895,43 @@ 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
 %endif
+
+%if %{with gcc_libffi}
+# still not installed by gcc?
+[ ! -f $RPM_BUILD_ROOT%{_pkgconfigdir}/libffi.pc ] || exit 1
+install -d $RPM_BUILD_ROOT%{_pkgconfigdir}
+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 \
+for f in libitm.la 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_asan:libasan.la} \
+       %{?with_tsan:libtsan.la} \
+       %{?with_atomic:libatomic.la} \
        %{?with_mudflap:libmudflap.la libmudflapth.la} \
 %if %{with java}
-       libffi.la libgcj.la libgcj-tools.la libgij.la \
+       %{?with_gcc_libffi:libffi.la} \
+       libgcj.la libgcj-tools.la libgij.la \
        %{gcjdbexecdir}/libjvm.la \
        %{gcjdbexecdir}/libxmlj.la \
        %{?with_x:lib-gnu-awt-xlib.la} \
@@ -1444,12 +1946,14 @@ do
        mv $RPM_BUILD_ROOT%{_libdir}/$f{.fixed,}
 done
 %if %{with multilib}
-for f in libssp.la libssp_nonshared.la \
+for f in libitm.la 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_asan:libasan.la} \
+       %{?with_atomic:libatomic.la} \
        %{?with_mudflap:libmudflap.la libmudflapth.la} \
-       %{?with_java:libffi.la} \
+       %{?with_java:%{?with_gcc_libffi:libffi.la}} \
        %{?with_objc:libobjc.la};
 do
        %{__perl} %{SOURCE1} $RPM_BUILD_ROOT%{_libdir32}/$f %{_libdir32} > $RPM_BUILD_ROOT%{_libdir32}/$f.fixed
@@ -1457,11 +1961,15 @@ 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
+
+# plugin, .la not needed
+%{__rm} $RPM_BUILD_ROOT%{gcclibdir}/liblto_plugin.la
+# already packaged in binutils-devel
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libiberty.a
 
 %if %{with python}
 for LIB in lib lib64; do
@@ -1471,13 +1979,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}
+%{__sed} -i -e '1s,#!/usr/bin/env python,#!/usr/bin/python,' $RPM_BUILD_ROOT%{_bindir}/aot-compile
+%endif
 %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
@@ -1486,14 +2008,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.
@@ -1528,6 +2047,24 @@ 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  -n libquadmath-devel -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun        -n libquadmath-devel -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%post  -n libffi-devel -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun        -n libffi-devel -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
@@ -1562,6 +2099,24 @@ 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  -p /sbin/ldconfig -n libquadmath
+%postun        -p /sbin/ldconfig -n libquadmath
+%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
+%post  -p /sbin/ldconfig -n libasan
+%postun        -p /sbin/ldconfig -n libasan
+%post  -p /sbin/ldconfig -n libasan-multilib
+%postun        -p /sbin/ldconfig -n libasan-multilib
+%post  -p /sbin/ldconfig -n libtsan
+%postun        -p /sbin/ldconfig -n libtsan
+%post  -p /sbin/ldconfig -n libatomic
+%postun        -p /sbin/ldconfig -n libatomic
+%post  -p /sbin/ldconfig -n libatomic-multilib
+%postun        -p /sbin/ldconfig -n libatomic-multilib
 
 %files -f gcc.lang
 %defattr(644,root,root,755)
@@ -1572,7 +2127,10 @@ 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}/gcc-ar
+%attr(755,root,root) %{_bindir}/gcc-nm
+%attr(755,root,root) %{_bindir}/gcc-ranlib
+#%attr(755,root,root) %{_bindir}/gccbug
 %attr(755,root,root) %{_bindir}/gcov
 %{_mandir}/man1/cc.1*
 %{_mandir}/man1/cpp.1*
@@ -1583,87 +2141,115 @@ rm -rf $RPM_BUILD_ROOT
 %{_infodir}/gcc.info*
 %{_infodir}/gccinstall.info*
 %{_infodir}/gccint.info*
+%{_infodir}/libitm.info*
 %attr(755,root,root) /lib/cpp
 %attr(755,root,root) %{_slibdir}/libgcc_s.so
+%attr(755,root,root) %{_libdir}/libitm.so
 %attr(755,root,root) %{_libdir}/libssp.so
+%{_libdir}/libitm.la
+%{_libdir}/libitm.a
+%{_libdir}/libitm.spec
 %{_libdir}/libssp.la
 %{_libdir}/libssp.a
 %{_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/stdalign.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/stdnoreturn.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/ammintrin.h
+%{gcclibdir}/include/avxintrin.h
+%{gcclibdir}/include/avx2intrin.h
+%{gcclibdir}/include/bmiintrin.h
+%{gcclibdir}/include/bmi2intrin.h
+%{gcclibdir}/include/bmmintrin.h
+%{gcclibdir}/include/cpuid.h
+%{gcclibdir}/include/cross-stdarg.h
+%{gcclibdir}/include/emmintrin.h
+%{gcclibdir}/include/f16cintrin.h
+%{gcclibdir}/include/fmaintrin.h
+%{gcclibdir}/include/fma4intrin.h
+%{gcclibdir}/include/ia32intrin.h
+%{gcclibdir}/include/immintrin.h
+%{gcclibdir}/include/lwpintrin.h
+%{gcclibdir}/include/lzcntintrin.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
+%{gcclibdir}/include/adxintrin.h
+%{gcclibdir}/include/fxsrintrin.h
+%{gcclibdir}/include/prfchwintrin.h
+%{gcclibdir}/include/rdseedintrin.h
+%{gcclibdir}/include/rtmintrin.h
+%{gcclibdir}/include/xsaveintrin.h
+%{gcclibdir}/include/xsaveoptintrin.h
+%{gcclibdir}/include/xtestintrin.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}/libitm.so
 %attr(755,root,root) %{_libdir32}/libssp.so
+%{_libdir32}/libitm.la
+%{_libdir32}/libitm.a
 %{_libdir32}/libssp.la
 %{_libdir32}/libssp.a
 %{_libdir32}/libssp_nonshared.la
@@ -1673,28 +2259,32 @@ rm -rf $RPM_BUILD_ROOT
 %files -n libgcc
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_slibdir}/libgcc_s.so.1
+%attr(755,root,root) %{_slibdir}/libitm.so.*.*.*
 %attr(755,root,root) %{_slibdir}/libssp.so.*.*.*
+%attr(755,root,root) %ghost %{_slibdir}/libitm.so.1
 %attr(755,root,root) %ghost %{_slibdir}/libssp.so.0
 
 %if %{with multilib}
 %files -n libgcc-multilib
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_slibdir32}/libgcc_s.so.1
+%attr(755,root,root) %{_slibdir32}/libitm.so.*.*.*
 %attr(755,root,root) %{_slibdir32}/libssp.so.*.*.*
 %attr(755,root,root) %ghost %{_slibdir32}/libssp.so.0
+%attr(755,root,root) %ghost %{_slibdir32}/libitm.so.1
 %endif
 
 %if %{with gomp}
 %files -n libgomp
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libgomp.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libgomp.so.1
+%attr(755,root,root) %{_slibdir}/libgomp.so.*.*.*
+%attr(755,root,root) %ghost %{_slibdir}/libgomp.so.1
 
 %if %{with multilib}
 %files -n libgomp-multilib
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir32}/libgomp.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libgomp.so.1
+%attr(755,root,root) %{_slibdir32}/libgomp.so.*.*.*
+%attr(755,root,root) %ghost %{_slibdir32}/libgomp.so.1
 %endif
 
 %files -n libgomp-devel
@@ -1702,8 +2292,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}
@@ -1748,7 +2338,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
@@ -1784,13 +2374,12 @@ 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
 %ifarch %{ix86} %{x8664}
-%{_libdir}/gcc/*/*/adalib/libgmem.a
+%{gcclibdir}/adalib/libgmem.a
 %endif
 %{_infodir}/gnat-style.info*
 %{_infodir}/gnat_rm.info*
@@ -1803,12 +2392,11 @@ 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
 %ifarch %{ix86} %{x8664}
-%{_libdir}/gcc/*/*/32/adalib/libgmem.a
+%{gcclibdir}/32/adalib/libgmem.a
 %endif
 %endif
 
@@ -1830,16 +2418,14 @@ 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/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/libgnarl.a
+%{gcclibdir}/32/adalib/libgnat.a
 %endif
 %endif
 
@@ -1851,7 +2437,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*
@@ -1867,13 +2453,13 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %doc libstdc++-v3/{ChangeLog,README}
 %attr(755,root,root) %{_libdir}/libstdc++.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libstdc++.so.6
+%attr(755,root,root) %ghost %{_libdir}/libstdc++.so.%{cxx_sover}
 
 %if %{with multilib}
 %files -n libstdc++-multilib
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libstdc++.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libstdc++.so.6
+%attr(755,root,root) %ghost %{_libdir32}/libstdc++.so.%{cxx_sover}
 %endif
 
 %if %{with python}
@@ -1883,7 +2469,10 @@ 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.%{cxx_sover}.*.*-gdb.py
+%if %{with multilib}
+%{_datadir}/gdb/auto-load/usr/lib/libstdc++.so.%{cxx_sover}.*.*-gdb.py
+%endif
 %endif
 
 %files -n libstdc++-devel
@@ -1935,11 +2524,14 @@ 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}/libcaf_single.a
+%{gcclibdir}/libcaf_single.la
+%{gcclibdir}/libgfortranbegin.la
+%{gcclibdir}/libgfortranbegin.a
 %{_infodir}/gfortran.info*
 %{_mandir}/man1/g95.1*
 %{_mandir}/man1/gfortran.1*
@@ -1948,9 +2540,12 @@ 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/libcaf_single.a
+%{gcclibdir}/32/libcaf_single.la
+%{gcclibdir}/32/libgfortranbegin.la
+%{gcclibdir}/32/libgfortranbegin.a
 %endif
 
 %files -n libgfortran
@@ -1975,6 +2570,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}
@@ -2001,9 +2633,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*
@@ -2026,6 +2658,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}
@@ -2081,12 +2722,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
@@ -2103,7 +2744,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libgij.a
 %{?with_x:%{_libdir}/lib-gnu-awt-xlib.a}
 %{_libdir}/%{gcjdbexecdir}/libjvm.a
+%endif
 
+%if %{with gcc_libffi}
 %files -n libffi
 %defattr(644,root,root,755)
 %doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
@@ -2121,15 +2764,18 @@ 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*
+%{_infodir}/libffi.info*
 
 %if %{with multilib}
 %files -n libffi-multilib-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libffi.so
 %{_libdir32}/libffi.la
+%{_pkgconfigdir32}/libffi.pc
 %endif
 
 %files -n libffi-static
@@ -2146,11 +2792,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
@@ -2163,13 +2816,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.4
 
 %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.4
 %endif
 
 %files -n libobjc-static
@@ -2183,9 +2836,151 @@ 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.4
+
+%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.4
+%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
+
+%if %{with asan}
+%files -n libasan
+%defattr(644,root,root,755)
+%doc libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
+%attr(755,root,root) %{_libdir}/libasan.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libasan.so.0
+
+%if %{with multilib}
+%files -n libasan-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libasan.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libasan.so.0
+%endif
+
+%files -n libasan-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libasan.so
+%{_libdir}/libasan_preinit.o
+%{_libdir}/libasan.la
+
+%if %{with multilib}
+%files -n libasan-multilib-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libasan.so
+%{_libdir32}/libasan_preinit.o
+%{_libdir32}/libasan.la
+%endif
+
+%files -n libasan-static
+%defattr(644,root,root,755)
+%{_libdir}/libasan.a
+
+%if %{with multilib}
+%files -n libasan-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libasan.a
+%endif
+%endif
+
+%if %{with tsan}
+%files -n libtsan
+%defattr(644,root,root,755)
+%doc libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
+%attr(755,root,root) %{_libdir}/libtsan.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libtsan.so.0
+
+%files -n libtsan-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libtsan.so
+%{_libdir}/libtsan.la
+
+%files -n libtsan-static
+%defattr(644,root,root,755)
+%{_libdir}/libtsan.a
+%endif
+
+%if %{with atomic}
+%files -n libatomic
+%defattr(644,root,root,755)
+%doc libatomic/ChangeLog*
+%attr(755,root,root) %{_libdir}/libatomic.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libatomic.so.1
+
+%if %{with multilib}
+%files -n libatomic-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libatomic.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libatomic.so.1
+%endif
+
+%files -n libatomic-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libatomic.so
+%{_libdir}/libatomic.la
+
+%if %{with multilib}
+%files -n libatomic-multilib-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libatomic.so
+%{_libdir32}/libatomic.la
+%endif
+
+%files -n libatomic-static
+%defattr(644,root,root,755)
+%{_libdir}/libatomic.a
+
+%if %{with multilib}
+%files -n libatomic-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libatomic.a
+%endif
 %endif