]> TLD Linux GIT Repositories - packages/gcc.git/blobdiff - gcc.spec
- isl 0.13 fix and branch diff update, release 2
[packages/gcc.git] / gcc.spec
index 10044ea7be1546fbd6d83267c0402f9621ee4310..d3e76dd17436d5ce1e28fcd26733250bf2870130 100644 (file)
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,4 +1,4 @@
-# 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)
 %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 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
 # - 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
 
-%ifarch i386 i486 i586
-# __i686.get_pc_thunk.bx undefined in libgo (TODO: recheck on gcc updates)
-%undefine      with_go
+%ifnarch %{ix86} %{x8664}
+%undefine      with_atomic
+%endif
+
+%ifnarch %{ix86} %{x8664}
+%undefine      with_asan
+%endif
+
+%ifnarch %{x8664}
+%undefine      with_tsan
 %endif
 
-%define                major_ver       4.6
+%define                major_ver       4.8
 %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  12
+%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
@@ -74,28 +94,28 @@ 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:       2
 Epoch:         6
 License:       GPL v3+
 Group:         Development/Languages
 Source0:       ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5: 773092fe5194353b02bb0110052a972e
+# Source0-md5: 7c60f24fab389f77af203d2516ee110f
 Source1:       %{name}-optimize-la.pl
 Source2:       ftp://sourceware.org/pub/java/ecj-%{major_ecj_ver}.jar
 # Source2-md5: d7cd6a27c8801e66cbaa964a039ecfdb
 # 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
+# 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}-cloog.patch
 Patch2:                %{name}-nodebug.patch
 Patch3:                %{name}-ada-link.patch
-Patch7:                %{name}-libjava-multilib.patch
-Patch8:                %{name}-enable-java-awt-qt.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
+Patch4:                %{name}-libjava-multilib.patch
+Patch5:                %{name}-enable-java-awt-qt.patch
+Patch6:                %{name}-install-libffi.patch
+Patch7:                gcc-4.9-isl-0.13-hack.patch
+Patch100:      %{name}-branch.diff
 URL:           http://gcc.gnu.org/
 BuildRequires: autoconf >= 2.64
 %{?with_tests:BuildRequires:   autogen}
@@ -104,7 +124,8 @@ BuildRequires:      automake >= 1:1.9.3
 BuildRequires: binutils >= 3:2.17.50.0.9-1
 BuildRequires: bison
 BuildRequires: chrpath >= 0.13-2
-BuildRequires: cloog-ppl-devel
+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
@@ -118,13 +139,16 @@ 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.10
+BuildRequires: isl-devel < 0.13
 BuildRequires: libmpc-devel
 BuildRequires: mpfr-devel >= 2.3.0
-BuildRequires: ppl-devel
+BuildRequires: ppl-devel >= 0.11
 %if %{with python}
 BuildRequires: python-devel
 BuildRequires: rpm-pythonprov
@@ -161,7 +185,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)}
@@ -188,7 +212,11 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 %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                skip_post_check_so      '.*(libgo|libmudflap|libmudflapth|libxmlj|lib-gnu-awt-xlib)\.so.*'
 
 %description
 A compiler aimed at integrating all the optimizations and features
@@ -230,7 +258,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
@@ -778,6 +806,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.
@@ -815,7 +846,7 @@ 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}
@@ -832,7 +863,7 @@ 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}
@@ -845,11 +876,11 @@ 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}
@@ -858,12 +889,12 @@ Requires: libquadmath-multilib = %{epoch}:%{version}-%{release}
 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}
@@ -876,11 +907,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}
@@ -889,7 +920,7 @@ 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
@@ -1439,20 +1470,218 @@ 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
-%patch12 -p1
-%patch13 -p0
-%patch14 -p1
+%if %{with gcc_libffi}
+%patch6 -p0
+%endif
+%patch7 -p1
+%patch100 -p0
 
 mv ChangeLog ChangeLog.general
 
@@ -1493,65 +1722,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 \
+%ifarch %{ix86} %{x8664}
+       --disable-cld \
+%endif
+       %{?with_fortran:--enable-cmath} \
+       --enable-decimal-float \
        --enable-gnu-unique-object \
-       --with-linker-hash-style=gnu \
-       --enable-shared \
-       --enable-threads=posix \
-       --enable-linker-build-id \
-       --enable-linux-futex \
+       --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
+       --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 \
-       --with-ppl \
-       --with-cloog-ppl \
 %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}
@@ -1566,7 +1805,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} \
@@ -1598,20 +1837,37 @@ 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}
@@ -1642,9 +1898,12 @@ cd ..
 install -d java-doc
 cp -f libjava/READ* java-doc
 ln -sf libgcj-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/libgcj.jar
+%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},
@@ -1665,13 +1924,17 @@ cp -f libobjc/README gcc/objc/README.libobjc
 
 # 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 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} \
@@ -1686,12 +1949,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 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
@@ -1704,6 +1969,11 @@ cp -p $RPM_BUILD_ROOT%{gcclibdir}/include-fixed/syslimits.h $RPM_BUILD_ROOT%{gcc
 %{__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
        LIBPATH="$RPM_BUILD_ROOT%{_datadir}/gdb/auto-load%{_prefix}/$LIB"
@@ -1718,8 +1988,8 @@ install -d $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
+%endif
 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
 %py_postclean
@@ -1786,6 +2056,18 @@ rm -rf $RPM_BUILD_ROOT
 %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
@@ -1820,18 +2102,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 -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
+%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)
@@ -1842,6 +2130,9 @@ 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}/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*
@@ -1853,9 +2144,14 @@ 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
@@ -1880,28 +2176,34 @@ rm -rf $RPM_BUILD_ROOT
 %{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}
-%{gcclibdir}/include/abmintrin.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
@@ -1915,6 +2217,14 @@ rm -rf $RPM_BUILD_ROOT
 %{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
@@ -1939,7 +2249,10 @@ rm -rf $RPM_BUILD_ROOT
 %{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
@@ -1949,28 +2262,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
@@ -2064,7 +2381,6 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/adainclude
 %dir %{gcclibdir}/adalib
 %{gcclibdir}/adalib/*.ali
-%{gcclibdir}/adalib/g-trasym.o
 %ifarch %{ix86} %{x8664}
 %{gcclibdir}/adalib/libgmem.a
 %endif
@@ -2082,7 +2398,6 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/32/adainclude
 %dir %{gcclibdir}/32/adalib
 %{gcclibdir}/32/adalib/*.ali
-%{gcclibdir}/32/adalib/g-trasym.o
 %ifarch %{ix86} %{x8664}
 %{gcclibdir}/32/adalib/libgmem.a
 %endif
@@ -2106,14 +2421,12 @@ rm -rf $RPM_BUILD_ROOT
 
 %files -n libgnat-static
 %defattr(644,root,root,755)
-%{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)
-%{gcclibdir}/32/adalib/libgnala.a
 %{gcclibdir}/32/adalib/libgnarl.a
 %{gcclibdir}/32/adalib/libgnat.a
 %endif
@@ -2143,13 +2456,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}
@@ -2159,7 +2472,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.16-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
@@ -2215,6 +2531,8 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/libgfortran.so
 %{_libdir}/libgfortran.spec
 %{_libdir}/libgfortran.la
+%{gcclibdir}/libcaf_single.a
+%{gcclibdir}/libcaf_single.la
 %{gcclibdir}/libgfortranbegin.la
 %{gcclibdir}/libgfortranbegin.a
 %{_infodir}/gfortran.info*
@@ -2227,6 +2545,8 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir32}/libgfortran.so
 %{_libdir32}/libgfortran.spec
 %{_libdir32}/libgfortran.la
+%{gcclibdir}/32/libcaf_single.a
+%{gcclibdir}/32/libcaf_single.la
 %{gcclibdir}/32/libgfortranbegin.la
 %{gcclibdir}/32/libgfortranbegin.a
 %endif
@@ -2427,7 +2747,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}
@@ -2449,6 +2771,7 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/include/ffitarget.h
 %{_pkgconfigdir}/libffi.pc
 %{_mandir}/man3/ffi*.3*
+%{_infodir}/libffi.info*
 
 %if %{with multilib}
 %files -n libffi-multilib-devel
@@ -2496,13 +2819,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.3
+%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.3
+%attr(755,root,root) %ghost %{_libdir32}/libobjc.so.4
 %endif
 
 %files -n libobjc-static
@@ -2538,13 +2861,13 @@ rm -rf $RPM_BUILD_ROOT
 %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
+%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.0
+%attr(755,root,root) %ghost %{_libdir32}/libgo.so.4
 %endif
 
 %files -n libgo-devel
@@ -2571,3 +2894,96 @@ rm -rf $RPM_BUILD_ROOT
 %{_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