]> TLD Linux GIT Repositories - packages/gcc.git/commitdiff
- merged 10.2.0 from PLD, rel 0.1 for bootstrap (multilib changes)
authorMarcin Krol <hawk@tld-linux.org>
Wed, 9 Dec 2020 00:37:55 +0000 (01:37 +0100)
committerMarcin Krol <hawk@tld-linux.org>
Wed, 9 Dec 2020 00:37:55 +0000 (01:37 +0100)
branch.sh
gcc-ada-x32.patch [new file with mode: 0644]
gcc-build-id.patch [deleted file]
gcc-info.patch
gcc-moresparcs.patch [new file with mode: 0644]
gcc.spec

index 11806e05816d46ef173d0a67582193e30e9f9f3e..c228596f82dbe6acb10e93c4f7960d8e566daab5 100755 (executable)
--- a/branch.sh
+++ b/branch.sh
@@ -2,8 +2,8 @@
 set -e
 url=git://gcc.gnu.org/git/gcc.git
 package=gcc
-tag=releases/gcc-9.3.0
-branch=releases/gcc-9
+tag=releases/gcc-10.2.0
+branch=releases/gcc-10
 out=$package-branch.diff
 repo=$package.git
 
diff --git a/gcc-ada-x32.patch b/gcc-ada-x32.patch
new file mode 100644 (file)
index 0000000..27e7e7d
--- /dev/null
@@ -0,0 +1,20 @@
+Based on patch from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56030
+Blocking bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54040 has been fixed
+
+--- gcc-4.9.2/gcc/ada/gcc-interface/Makefile.in~       2014-12-27 17:19:06.000000000 +0000
++++ gcc-4.9.2/gcc/ada/gcc-interface/Makefile.in        2014-12-27 18:11:33.908691021 +0000
+@@ -355,6 +355,14 @@
+   else
+     ifeq ($(strip $(MULTISUBDIR)),/x32)
+       target_cpu:=x32
++    else
++      ifeq ($(strip $(MULTISUBDIR)),/64)
++        target_cpu:=x86_64
++      else
++        ifneq ($(findstring gnux32,$(target_os)),)
++          target_cpu:=x32
++        endif
++      endif
+     endif
+   endif
+ endif
diff --git a/gcc-build-id.patch b/gcc-build-id.patch
deleted file mode 100644 (file)
index f76f939..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-2007-07-22  Roland McGrath  <roland@redhat.com>
-
-       * config/rs6000/sysv4.h (LINK_EH_SPEC): Add --build-id for
-       non-relocatable link.
-       * config/linux.h (LINK_EH_SPEC): Likewise.
-       * config/alpha/elf.h (LINK_EH_SPEC): Likewise.
-       * config/ia64/linux.h (LINK_EH_SPEC): Likewise.
-
---- gcc/config/rs6000/sysv4.h.~1~
-+++ gcc/config/rs6000/sysv4.h
-@@ -906,7 +906,7 @@ extern int fixuplabelno;
-   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
- #if defined(HAVE_LD_EH_FRAME_HDR)
--# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
- #endif
- #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
---- gcc/config/linux.h.~1~
-+++ gcc/config/linux.h
-@@ -85,7 +85,7 @@ Boston, MA 02110-1301, USA.  */
-     } while (0)
- #if defined(HAVE_LD_EH_FRAME_HDR)
--#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
- #endif
- /* Define this so we can compile MS code for use with WINE.  */
---- gcc/config/alpha/elf.h.~1~
-+++ gcc/config/alpha/elf.h
-@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu
-    I imagine that other systems will catch up.  In the meantime, it
-    doesn't harm to make sure that the data exists to be used later.  */
- #if defined(HAVE_LD_EH_FRAME_HDR)
--#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
- #endif
- /* A C statement (sans semicolon) to output to the stdio stream STREAM
---- gcc/config/ia64/linux.h.~1~
-+++ gcc/config/ia64/linux.h
-@@ -56,7 +56,7 @@ do {                                         \
-    Signalize that because we have fde-glibc, we don't need all C shared libs
-    linked against -lgcc_s.  */
- #undef LINK_EH_SPEC
--#define LINK_EH_SPEC ""
-+#define LINK_EH_SPEC "%{!r:--build-id} "
- #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
index 1536e1c6ae53b7e004177666022d8008eb779aa2..a363f06d07126f7cdefa48320409a8e725e29b8f 100644 (file)
@@ -28,7 +28,7 @@
  
 --- a/gcc/doc/gcc.texi 2004-07-22 22:12:20.000000000 +0200
 +++ b/gcc/doc/gcc.texi 2004-09-26 10:58:58.218713528 +0200
-@@ -61,13 +61,13 @@ Texts being (a) (see below), and with th
+@@ -61,15 +61,14 @@ Texts being (a) (see below), and with th
       funds for GNU development.
  @end copying
  @ifnottex
 -* gcov: (gcc) Gcov.            @command{gcov}---a test coverage program.
 -* gcov-tool: (gcc) Gcov-tool.  @command{gcov-tool}---an offline gcda profile processing program.
 -* gcov-dump: (gcc) Gcov-dump.  @command{gcov-dump}---an offline gcda and gcno profile dump tool.
+-* lto-dump: (gcc) lto-dump.    @command{lto-dump}---Tool for
+-dumping LTO object files.
 +* gcc: (gcc).                         The GNU Compiler Collection
 +* g++: (gcc).                         The GNU C++ compiler
 +* gcov: (gcc) Gcov.                   @command{gcov}---a test coverage program
 +* gcov-tool: (gcc) Gcov-tool.         @command{gcov-tool}---an offline gcda profile processing program
 +* gcov-dump: (gcc) Gcov-dump.         @command{gcov-dump}---an offline gcda and gcno profile dump tool
++* lto-dump: (gcc) lto-dump.            @command{lto-dump}---Tool for dumping LTO object files.
  @end direntry
  This file documents the use of the GNU compilers.
  @sp 1
diff --git a/gcc-moresparcs.patch b/gcc-moresparcs.patch
new file mode 100644 (file)
index 0000000..0a243b5
--- /dev/null
@@ -0,0 +1,40 @@
+--- gcc-4.7.1/gcc/config.gcc.orig      2012-07-10 17:33:40.596463050 +0200
++++ gcc-4.7.1/gcc/config.gcc   2012-07-12 18:39:03.475713361 +0200
+@@ -2401,7 +2401,7 @@
+       tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
+       tmake_file="sparc/t-sparc sparc/t-elf t-rtems"
+       ;;
+-sparc-*-linux*)
++sparc-*-linux* | sparcv[789]*-*-linux*)
+       tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
+       extra_options="${extra_options} sparc/long-double-switch.opt"
+       case ${target} in
+@@ -2878,7 +2878,7 @@ sparc64-*-rtems*)
+       extra_options="${extra_options}"
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
+       ;;
+-sparc64-*-linux*)
++sparc64*-*-linux*)
+       tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h"
+       extra_options="${extra_options} sparc/long-double-switch.opt"
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
+--- gcc-4.7.1/libgcc/config.host.orig  2012-04-30 19:39:57.000000000 +0200
++++ gcc-4.7.1/libgcc/config.host       2012-07-12 18:39:51.112378028 +0200
+@@ -1012,7 +1012,7 @@
+       tmake_file="${tmake_file} t-fdpbit t-crtfm"
+       extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
+       ;;
+-sparc-*-linux*)               # SPARC's running GNU/Linux, libc6
++sparc-*-linux* | sparcv[789]*-*-linux*)               # SPARC's running GNU/Linux, libc6
+       tmake_file="${tmake_file} t-crtfm"
+       if test "${host_address}" = 64; then
+               tmake_file="$tmake_file sparc/t-linux64"
+@@ -1060,7 +1060,7 @@
+       tmake_file="$tmake_file t-crtfm"
+       extra_parts="$extra_parts crtfastmath.o"
+       ;;
+-sparc64-*-linux*)             # 64-bit SPARC's running GNU/Linux
++sparc64*-*-linux*)            # 64-bit SPARC's running GNU/Linux
+       extra_parts="$extra_parts crtfastmath.o"
+       tmake_file="${tmake_file} t-crtfm sparc/t-linux"
+       if test "${host_address}" = 64; then
index cf2d4560209bf82a6e3ec054ba60ad49aa7cbdd4..18136301e5e4281b27af3b1e902f305f452f1635 100644 (file)
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,11 +1,11 @@
 # NOTE: despite lower soname, libffi is newer than standalone 3.0.10
-# 
+#
 # NOTE
 # - when adding new subpackages with external libraries (like libffi)
 #   or having own Version, do not use epoch 6 there, reset them to 0!
 #
-# Conditional build:
 #
+# Conditional build:
 # - languages:
 %bcond_without ada             # build without ADA support
 %bcond_without cxx             # build without C++ support
@@ -16,6 +16,7 @@
 # - features:
 %bcond_without gomp            # build without OpenMP support
 %bcond_without multilib        # build without multilib support (which needs glibc[32&64]-devel)
+%bcond_with    multilibx32     # build with x32 multilib support on x86_64 (needs x32 glibc-devel)
 %bcond_without profiling       # build without profiling
 %bcond_without python          # build without libstdc++ printers for gdb
 %bcond_with    gcc_libffi      # packaging gcc libffi for system usage
 %undefine      with_profiling
 %endif
 
-%ifnarch %{x8664}
+%ifarch sparc64 x32
+# used to be broken on sparc64 (to be verified if needed)
+# broken since 5.x on x32 (to be verified if needed)
+%undefine      with_ada
+%endif
+
+%ifnarch %{x8664} x32 aarch64 ppc64 s390x sparc64
 %undefine      with_multilib
 %endif
+%ifnarch %{x8664}
+%undefine      with_multilibx32
+%endif
 
 # setup internal semi-bconds based on bconds and architecture
 %if %{with multilib}
+%ifarch x32
+%define                with_multilib2  1
 %endif
-%ifarch %{ix86} %{x8664}
+%if %{with multilibx32}
+%define                with_multilib2  1
+%endif
+%endif
+%ifarch %{ix86} %{x8664} x32 alpha %{arm} ppc ppc64 sh sparc sparcv9 sparc64 aarch64
 # library for atomic operations not supported by hardware
 %define                with_atomic     1
 %endif
-%ifarch %{ix86} %{x8664}
+%ifarch %{ix86} %{x8664} x32 %{arm} ppc ppc64 sparc sparcv9 sparc64 aarch64
 # sanitizer feature (asan and ubsan are common for all supported archs)
 %define                with_Xsan       1
 %endif
-%ifarch %{x8664}
+%ifarch %{x8664} aarch64
 # lsan and tsan exist only for primary x86_64 ABI
 %define                with_lsan_m0    1
 %define                with_tsan_m0    1
 %endif
-%ifarch %{ix86} %{x8664}
+%ifarch x32
+# lsan and tsan exist only for x86_64 ABI (i.e. our multilib2)
+%define                with_lsan_m2    1
+%define                with_tsan_m2    1
+%endif
+%ifarch %{ix86} %{x8664} x32
 %define                with_vtv        1
 %endif
+%ifarch %{ix86} %{x8664} x32 ia64
+%define                with_quadmath   1
+%endif
 
 # Stable is: any major_ver and minor_ver >= 1.0
 # For TLD we usually use gcc when minor_ver >= 2.0 (first bugfix release or later)
-%define                major_ver       9
-%define                minor_ver       3.0
+%define                major_ver       10
+%define                minor_ver       2.0
 
 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
@@ -80,23 +104,25 @@ 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:       1
+Release:       0.1
 Epoch:         6
 License:       GPL v3+
 Group:         Development/Languages
-Source0:       https://ftp.gnu.org/pub/gnu/gcc/gcc-%{version}/%{name}-%{version}.tar.xz
-# Source0-md5: d00a144b771ddeb021b61aa205b7e345
+Source0:       https://gcc.gnu.org/pub/gcc/releases/%{name}-%{version}/%{name}-%{version}.tar.xz
+# Source0-md5: e9fd9b1789155ad09bcf3ae747596b50
 Source1:       %{name}-optimize-la.pl
 # check libffi version with libffi/configure.ac
 Source3:       libffi.pc.in
 Source4:       branch.sh
 # use branch.sh to update gcc-branch.diff
 Patch100:      %{name}-branch.diff
-# Patch100-md5:        bff200e336c5c7b6ac21b2266dffd18d
+# Patch100-md5:        3629b023e2dbf2ab7f0b49e1bf864f21
 Patch0:                %{name}-info.patch
 Patch2:                %{name}-nodebug.patch
 Patch3:                %{name}-ada-link.patch
+Patch4:                %{name}-ada-x32.patch
 
+Patch10:       %{name}-moresparcs.patch
 Patch11:       %{name}-install-libffi.patch
 URL:           http://gcc.gnu.org/
 BuildRequires: autoconf >= 2.64
@@ -120,14 +146,35 @@ BuildRequires:    glibc-devel >= 6:2.4-1
 # Formerly known as gcc(multilib)
 BuildRequires: gcc(multilib)
 %ifarch %{x8664}
+%if %{with multilibx32}
+BuildRequires: gcc(multilib-x32)
+BuildRequires: glibc-devel(x32)
+%endif
+#BuildRequires:        glibc-devel(ix86)
+%endif
+%ifarch x32
+BuildRequires: gcc(multilib-64)
 BuildRequires: glibc-devel(ix86)
+BuildRequires: glibc-devel(x86_64)
+%endif
+%ifarch aarch64
+BuildRequires: glibc-devel(arm)
+%endif
+%ifarch ppc64
+BuildRequires: glibc-devel(ppc)
+%endif
+%ifarch s390x
+BuildRequires: glibc-devel(s390)
+%endif
+%ifarch sparc64
+BuildRequires: glibc-devel(sparcv9)
 %endif
 %endif
 BuildRequires: gmp-c++-devel >= 4.3.2
 BuildRequires: gmp-devel >= 4.3.2
 BuildRequires: isl-devel >= 0.15
 BuildRequires: libmpc-devel >= 0.8.1
-BuildRequires: mpfr-devel >= 2.4.2
+BuildRequires: mpfr-devel >= 3.1.0
 %if %{with python}
 BuildRequires: python-devel
 BuildRequires: rpm-pythonprov
@@ -143,7 +190,7 @@ Requires:   gmp >= 4.3.2
 Requires:      isl >= 0.15
 Requires:      libgcc = %{epoch}:%{version}-%{release}
 Requires:      libmpc >= 0.8.1
-Requires:      mpfr >= 2.4.2
+Requires:      mpfr >= 3.1.0
 Provides:      cpp = %{epoch}:%{version}-%{release}
 %{?with_ada:Provides:  gcc(ada)}
 Obsoletes:     cpp
@@ -158,10 +205,28 @@ BuildRoot:        %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _slibdir        /%{_lib}
 %if %{with multilib}
-# 32-bit environment on x86-64
+# 32-bit environment on x86-64,aarch64,ppc64,s390x,sparc64
 %define                _slibdir32      /lib
 %define                _libdir32       /usr/lib
 %define                _pkgconfigdir32 %{_libdir32}/pkgconfig
+%if %{with multilib2}
+# x32 environment on x86-64
+%ifarch %{x8664}
+%define                multilib2       x32
+%define                m2_desc         ILP32
+%define                _slibdirm2      /libx32
+%define                _libdirm2       /usr/libx32
+%define                _pkgconfigdirm2 %{_libdirm2}/pkgconfig
+%endif
+# 64-bit environment on x32
+%ifarch x32
+%define                multilib2       64
+%define                m2_desc         LP64
+%define                _slibdirm2      /lib64
+%define                _libdirm2       /usr/lib64
+%define                _pkgconfigdirm2 %{_libdir64}/pkgconfig
+%endif
+%endif
 %endif
 %define                gcclibdir       %{_libdir}/gcc/%{_target_platform}/%{version}
 
@@ -172,7 +237,7 @@ BuildRoot:  %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 # receiving non constant format strings
 %define                Werror_cflags   %{nil}
 
-%define                skip_post_check_so      '.*(libasan|libcc1plugin|libcp1plugin|libgo|libxmlj|libubsan|lib-gnu-awt-xlib)\.so.*'
+%define                skip_post_check_so      '.*(libasan|libcc1plugin|libcp1plugin|libgo|libitm|libxmlj|libubsan|lib-gnu-awt-xlib)\.so.*'
 # private symbols
 %define                _noautoreq              .*\(GLIBC_PRIVATE\)
 
@@ -206,33 +271,72 @@ z GCC, trzeba zainstalować odpowiedni podpakiet.
 Este pacote adiciona infraestrutura básica e suporte a linguagem C ao
 GNU Compiler Collection.
 
-%package multilib
+%package multilib-32
 Summary:       GNU Compiler Collection: the C compiler 32-bit support
 Summary(pl.UTF-8):     Kolekcja kompilatorów GNU: obsługa binariów 32-bitowych dla kompilatora C
 License:       GPL v3+
 Group:         Development/Languages
 Requires:      %{name} = %{epoch}:%{version}-%{release}
-Requires:      libgcc-multilib = %{epoch}:%{version}-%{release}
+Requires:      libgcc-multilib-32 = %{epoch}:%{version}-%{release}
 Obsoletes:     libgcc32
 %ifarch %{x8664}
 Requires:      glibc-devel(ix86)
 %endif
-Provides:      gcc(multilib)
+%ifarch ppc64
+Requires:      glibc-devel(ppc)
+%endif
+%ifarch s390x
+Requires:      glibc-devel(s390)
+%endif
+%ifarch sparc64
+Requires:      glibc-devel(sparcv9)
+%endif
+Provides:      gcc(multilib-32)
+Obsoletes:     gcc-multilib
 
-%description multilib
+%description multilib-32
 A compiler aimed at integrating all the optimizations and features
 necessary for a high-performance and stable development environment.
 
 This package contains the C compiler support for producing 32-bit
 programs on 64-bit host.
 
-%description multilib -l pl.UTF-8
+%description multilib-32 -l pl.UTF-8
 Kompilator, posiadający duże możliwości optymalizacyjne niezbędne do
 wyprodukowania szybkiego i stabilnego kodu wynikowego.
 
 Ten pakiet zawiera rozszerzenie kompilatora C o obsługę tworzenia
 programów 32-bitowych na maszynie 64-bitowej.
 
+%package multilib-%{multilib2}
+Summary:       GNU Compiler Collection: the C compiler %{m2_desc} binaries support
+Summary(pl.UTF-8):     Kolekcja kompilatorów GNU: obsługa binariów %{m2_desc} dla kompilatora C
+License:       GPL v3+
+Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      libgcc-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+%{?with_multilib:Provides:     gcc(multilib-%{multilib2})}
+%ifarch %{x8664}
+Requires:      glibc-devel(x32)
+%endif
+%ifarch x32
+Requires:      glibc-devel(x86_64)
+%endif
+
+%description multilib-%{multilib2}
+A compiler aimed at integrating all the optimizations and features
+necessary for a high-performance and stable development environment.
+
+This package contains the C compiler support for producing %{m2_desc}
+binaries.
+
+%description multilib-%{multilib2} -l pl.UTF-8
+Kompilator, posiadający duże możliwości optymalizacyjne niezbędne do
+wyprodukowania szybkiego i stabilnego kodu wynikowego.
+
+Ten pakiet zawiera rozszerzenie kompilatora C o obsługę tworzenia
+binariów %{m2_desc}.
+
 %package -n libgcc
 Summary:       Shared gcc library
 Summary(es.UTF-8):     Biblioteca compartida de gcc
@@ -255,18 +359,31 @@ Biblioteka dynamiczna gcc.
 %description -n libgcc -l pt_BR.UTF-8
 Biblioteca runtime para o GCC.
 
-%package -n libgcc-multilib
+%package -n libgcc-multilib-32
 Summary:       Shared gcc library - 32-bit version
 Summary(pl.UTF-8):     Biblioteka gcc - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Libraries
+Obsoletes:     libgcc-multilib
 
-%description -n libgcc-multilib
+%description -n libgcc-multilib-32
 Shared gcc library - 32-bit version.
 
-%description -n libgcc-multilib -l pl.UTF-8
+%description -n libgcc-multilib-32 -l pl.UTF-8
 Biblioteka dynamiczna gcc - wersja 32-bitowa.
 
+%package -n libgcc-multilib-%{multilib2}
+Summary:       Shared gcc library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka gcc - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Libraries
+
+%description -n libgcc-multilib-%{multilib2}
+Shared gcc library - %{m2_desc} version.
+
+%description -n libgcc-multilib-%{multilib2} -l pl.UTF-8
+Biblioteka dynamiczna gcc - wersja %{m2_desc}.
+
 %package -n libgomp
 Summary:       GNU OpenMP library
 Summary(pl.UTF-8):     Biblioteka GNU OpenMP
@@ -306,44 +423,85 @@ Static GNU OpenMP library.
 %description -n libgomp-static -l pl.UTF-8
 Statyczna biblioteka GNU OpenMP.
 
-%package -n libgomp-multilib
+%package -n libgomp-multilib-32
 Summary:       GNU OpenMP library - 32-bit version
 Summary(pl.UTF-8):     Biblioteka GNU OpenMP - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Libraries
+Obsoletes:     libgomp-multilib
 
-%description -n libgomp-multilib
+%description -n libgomp-multilib-32
 GNU OpenMP library - 32-bit version.
 
-%description -n libgomp-multilib -l pl.UTF-8
+%description -n libgomp-multilib-32 -l pl.UTF-8
 Biblioteka GNU OpenMP - wersja 32-bitowa.
 
-%package -n libgomp-multilib-devel
+%package -n libgomp-multilib-32-devel
 Summary:       Development files for 32-bit version of GNU OpenMP library
 Summary(pl.UTF-8):     Pliki programistyczne wersji 32-bitowej biblioteki GNU OpenMP
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Development/Libraries
 Requires:      libgomp-devel = %{epoch}:%{version}-%{release}
+Obsoletes:     libgomp-multilib-devel
 
-%description -n libgomp-multilib-devel
+%description -n libgomp-multilib-32-devel
 Development files for 32-bit version of GNU OpenMP library.
 
-%description -n libgomp-multilib-devel -l pl.UTF-8
+%description -n libgomp-multilib-32-devel -l pl.UTF-8
 Pliki programistyczne wersji 32-bitowej biblioteki GNU OpenMP.
 
-%package -n libgomp-multilib-static
+%package -n libgomp-multilib-32-static
 Summary:       Static GNU OpenMP library - 32-bit version
 Summary(pl.UTF-8):     Statyczna biblioteka GNU OpenMP - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Development/Libraries
-Requires:      libgomp-multilib-devel = %{epoch}:%{version}-%{release}
+Requires:      libgomp-multilib-32-devel = %{epoch}:%{version}-%{release}
+Obsoletes:     libgomp-multilib-static
 
-%description -n libgomp-multilib-static
+%description -n libgomp-multilib-32-static
 Static GNU OpenMP library - 32-bit version.
 
-%description -n libgomp-multilib-static -l pl.UTF-8
+%description -n libgomp-multilib-32-static -l pl.UTF-8
 Statyczna biblioteka GNU OpenMP - wersja 32-bitowa.
 
+%package -n libgomp-multilib-%{multilib2}
+Summary:       GNU OpenMP library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka GNU OpenMP - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Libraries
+
+%description -n libgomp-multilib-%{multilib2}
+GNU OpenMP library - %{m2_desc} version.
+
+%description -n libgomp-multilib-%{multilib2} -l pl.UTF-8
+Biblioteka GNU OpenMP - wersja %{m2_desc}.
+
+%package -n libgomp-multilib-%{multilib2}-devel
+Summary:       Development files for %{m2_desc} version of GNU OpenMP library
+Summary(pl.UTF-8):     Pliki programistyczne wersji %{m2_desc} biblioteki GNU OpenMP
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Development/Libraries
+Requires:      libgomp-devel = %{epoch}:%{version}-%{release}
+
+%description -n libgomp-multilib-%{multilib2}-devel
+Development files for %{m2_desc} version of GNU OpenMP library.
+
+%description -n libgomp-multilib-%{multilib2}-devel -l pl.UTF-8
+Pliki programistyczne wersji %{m2_desc}-bitowej biblioteki GNU OpenMP.
+
+%package -n libgomp-multilib-%{multilib2}-static
+Summary:       Static GNU OpenMP library - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczna biblioteka GNU OpenMP - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Development/Libraries
+Requires:      libgomp-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description -n libgomp-multilib-%{multilib2}-static
+Static GNU OpenMP library - %{m2_desc} version.
+
+%description -n libgomp-multilib-%{multilib2}-static -l pl.UTF-8
+Statyczna biblioteka GNU OpenMP - wersja %{m2_desc}.
+
 %package ada
 Summary:       Ada language support for GCC
 Summary(es.UTF-8):     Soporte de Ada para GCC
@@ -365,21 +523,37 @@ Ada.
 Ten pakiet dodaje eksperymentalne wsparcie dla kompilacji programów w
 Adzie.
 
-%package ada-multilib
+%package ada-multilib-32
 Summary:       Ada language 32-bit binaries support for GCC
 Summary(pl.UTF-8):     Obsługa 32-bitowych binariów w języku Ada dla GCC
 Group:         Development/Languages
 Requires:      %{name}-ada = %{epoch}:%{version}-%{release}
-Requires:      libgnat-multilib = %{epoch}:%{version}-%{release}
+Requires:      libgnat-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     gcc-ada-multilib
 
-%description ada-multilib
+%description ada-multilib-32
 This package adds experimental support for compiling 32-bit Ada
 programs on 64-bit host.
 
-%description ada-multilib -l pl.UTF-8
+%description ada-multilib-32 -l pl.UTF-8
 Ten pakiet dodaje eksperymentalną obsługę kompilacji programów
 32-bitowych w języku Ada na maszynie 64-bitowej.
 
+%package ada-multilib-%{multilib2}
+Summary:       Ada language %{m2_desc} binaries support for GCC
+Summary(pl.UTF-8):     Obsługa binariów %{m2_desc} w języku Ada dla GCC
+Group:         Development/Languages
+Requires:      %{name}-ada = %{epoch}:%{version}-%{release}
+Requires:      libgnat-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description ada-multilib-%{multilib2}
+This package adds experimental support for compiling Ada language to
+%{m2_desc} binaries.
+
+%description ada-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet dodaje eksperymentalną obsługę kompilacji programów w
+języku Ada do binariów %{m2_desc}.
+
 %package -n libgnat
 Summary:       Ada standard libraries
 Summary(es.UTF-8):     Bibliotecas estándares de Ada
@@ -416,35 +590,66 @@ This package contains static libraries for programs written in Ada.
 Ten pakiet zawiera biblioteki statyczne dla programów napisanych w
 Adzie.
 
-%package -n libgnat-multilib
+%package -n libgnat-multilib-32
 Summary:       Ada standard libraries - 32-bit version
 Summary(pl.UTF-8):     Biblioteki standardowe dla Ady - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Libraries
-Requires:      libgcc-multilib = %{epoch}:%{version}-%{release}
+Requires:      libgcc-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libgnat-multilib
 
-%description -n libgnat-multilib
+%description -n libgnat-multilib-32
 This package contains 32-bit version of shared libraries needed to run
 programs written in Ada.
 
-%description -n libgnat-multilib -l pl.UTF-8
+%description -n libgnat-multilib-32 -l pl.UTF-8
 Ten pakiet zawiera wersje 32-bitowe bibliotek potrzebnych do
 uruchamiania programów napisanych w języku Ada.
 
-%package -n libgnat-multilib-static
+%package -n libgnat-multilib-32-static
 Summary:       Static Ada standard libraries - 32-bit version
 Summary(pl.UTF-8):     Statyczne biblioteki standardowe dla Ady - wersje 32-bitowe
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Development/Libraries
+Obsoletes:     libgnat-multilib-static
 
-%description -n libgnat-multilib-static
+%description -n libgnat-multilib-32-static
 This package contains 32-bit version of static libraries for programs
 written in Ada.
 
-%description -n libgnat-multilib-static -l pl.UTF-8
+%description -n libgnat-multilib-32-static -l pl.UTF-8
 Ten pakiet zawiera 32-bitowe wersje bibliotek statycznych dla
 programów napisanych w Adzie.
 
+%package -n libgnat-multilib-%{multilib2}
+Summary:       Ada standard libraries - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteki standardowe dla Ady - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Libraries
+Requires:      libgcc-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libgnat-multilib-%{multilib2}
+This package contains %{m2_desc} version of shared libraries needed to run
+programs written in Ada.
+
+%description -n libgnat-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet zawiera wersje %{m32_desc} bibliotek potrzebnych do
+uruchamiania programów napisanych w Adzie.
+
+%package -n libgnat-multilib-%{multilib2}-static
+Summary:       Static Ada standard libraries - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczne biblioteki standardowe dla Ady - wersje %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Development/Libraries
+
+%description -n libgnat-multilib-%{multilib2}-static
+This package contains %{m2_desc} version of static libraries for programs
+written in Ada.
+
+%description -n libgnat-multilib-%{multilib2}-static -l pl.UTF-8
+Ten pakiet zawiera wersje %{m2_desc} bibliotek statycznych dla
+programów napisanych w Adzie.
+
 %package c++
 Summary:       C++ language support for GCC
 Summary(es.UTF-8):     Soporte de C++ para GCC
@@ -494,21 +699,37 @@ Bu paket, GNU C derleyicisine C++ desteği ekler. 'Template'ler ve
 aykırı durum işleme gibi çoğu güncel C++ tanımlarına uyar. Standart
 C++ kitaplığı bu pakette yer almaz.
 
-%package c++-multilib
+%package c++-multilib-32
 Summary:       C++ language 32-bit binaries support for GCC
 Summary(pl.UTF-8):     Obsługa 32-bitowych binariów w języku C++ dla GCC
 Group:         Development/Languages
 Requires:      %{name}-c++ = %{epoch}:%{version}-%{release}
-Requires:      %{name}-multilib = %{epoch}:%{version}-%{release}
+Requires:      %{name}-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     gcc-c++-multilib
 
-%description c++-multilib
+%description c++-multilib-32
 This package adds 32-bit binaries in C++ language support to the GNU
 Compiler Collection.
 
-%description c++-multilib -l pl.UTF-8
+%description c++-multilib-32 -l pl.UTF-8
 Ten pakiet dodaje obsługę 32-bitowych binariów w języku C++ do
 kompilatora GCC.
 
+%package c++-multilib-%{multilib2}
+Summary:       C++ language %{m2_desc} binaries support for GCC
+Summary(pl.UTF-8):     Obsługa %{multilib2}-bitowych binariów C++ dla GCC
+Group:         Development/Languages
+Requires:      %{name}-c++ = %{epoch}:%{version}-%{release}
+Requires:      %{name}-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description c++-multilib-%{multilib2}
+This package adds %{m2_desc} binaries in C++ language support to the GNU
+Compiler Collection.
+
+%description c++-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet dodaje obsługę binariów %{m2_desc} w języku C++ do kompilatora
+GCC.
+
 %package -n libstdc++
 Summary:       GNU C++ library
 Summary(es.UTF-8):     Biblioteca C++ de GNU
@@ -609,52 +830,101 @@ Biblioteca estándar estática de C++.
 %description -n libstdc++-static -l pl.UTF-8
 Statyczna biblioteka standardowa C++.
 
-%package -n libstdc++-multilib
+%package -n libstdc++-multilib-32
 Summary:       GNU C++ library - 32-bit version
 Summary(pl.UTF-8):     Biblioteka GNU C++ - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Libraries
 # >= instead of = to allow keeping older libstdc++ (with different soname)
-Requires:      libgcc-multilib >= %{epoch}:%{version}-%{release}
+Requires:      libgcc-multilib-32 >= %{epoch}:%{version}-%{release}
+Obsoletes:     libstdc++-multilib
 
-%description -n libstdc++-multilib
+%description -n libstdc++-multilib-32
 This is 32-bit version of the GNU implementation of the standard C++
 library.
 
-%description -n libstdc++-multilib -l pl.UTF-8
+%description -n libstdc++-multilib-32 -l pl.UTF-8
 Ten pakiet ten zawiera 32-bitową wersję implementacji GNU biblioteki
 standardowej C++.
 
-%package -n libstdc++-multilib-devel
+%package -n libstdc++-multilib-32-devel
 Summary:       Development files for C++ development - 32-bit version
 Summary(pl.UTF-8):     Pliki programistyczne biblioteki standardowej C++ - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Development/Libraries
-Requires:      %{name}-c++-multilib = %{epoch}:%{version}-%{release}
+Requires:      %{name}-c++-multilib-32 = %{epoch}:%{version}-%{release}
 Requires:      libstdc++-devel = %{epoch}:%{version}-%{release}
-Requires:      libstdc++-multilib = %{epoch}:%{version}-%{release}
+Requires:      libstdc++-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libstdc++-multilib-devel
 
-%description -n libstdc++-multilib-devel
+%description -n libstdc++-multilib-32-devel
 This package contains the development files for 32-bit version of the
 GNU implementation of the standard C++ library.
 
-%description -n libstdc++-multilib-devel -l pl.UTF-8
+%description -n libstdc++-multilib-32-devel -l pl.UTF-8
 Ten pakiet zawiera pliki programistyczne 32-bitowej wersji
 implementacji GNU biblioteki standardowej C++.
 
-%package -n libstdc++-multilib-static
+%package -n libstdc++-multilib-32-static
 Summary:       Static C++ standard library - 32-bit version
 Summary(pl.UTF-8):     Statyczna biblioteka standardowa C++ - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Development/Libraries
-Requires:      libstdc++-multilib-devel = %{epoch}:%{version}-%{release}
+Requires:      libstdc++-multilib-32-devel = %{epoch}:%{version}-%{release}
+Obsoletes:     libstdc++-multilib-static
 
-%description -n libstdc++-multilib-static
+%description -n libstdc++-multilib-32-static
 Static C++ standard library - 32-bit version.
 
-%description -n libstdc++-multilib-static -l pl.UTF-8
+%description -n libstdc++-multilib-32-static -l pl.UTF-8
 Statyczna biblioteka standardowa C++ - wersja 32-bitowa.
 
+%package -n libstdc++-multilib-%{multilib2}
+Summary:       GNU C++ library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka GNU C++ - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Libraries
+# >= instead of = to allow keeping older libstdc++ (with different soname)
+Requires:      libgcc-multilib-%{multilib2} >= %{epoch}:%{version}-%{release}
+
+%description -n libstdc++-multilib-%{multilib2}
+This is %{m2_desc} version of the GNU implementation of the standard C++
+library.
+
+%description -n libstdc++-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet ten zawiera wersję %{m2_desc} implementacji GNU biblioteki
+standardowej C++.
+
+%package -n libstdc++-multilib-%{multilib2}-devel
+Summary:       Development files for C++ development - %{m2_desc} version
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki standardowej C++ - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Development/Libraries
+Requires:      %{name}-c++-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+Requires:      libstdc++-devel = %{epoch}:%{version}-%{release}
+Requires:      libstdc++-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libstdc++-multilib-%{multilib2}-devel
+This package contains the development files for %{m2_desc} version of the
+GNU implementation of the standard C++ library.
+
+%description -n libstdc++-multilib-%{multilib2}-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne wersji %{m2_desc}
+implementacji GNU biblioteki standardowej C++.
+
+%package -n libstdc++-multilib-%{multilib2}-static
+Summary:       Static C++ standard library - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczna biblioteka standardowa C++ - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Development/Libraries
+Requires:      libstdc++-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description -n libstdc++-multilib-%{multilib2}-static
+Static C++ standard library - %{m2_desc} version.
+
+%description -n libstdc++-multilib-%{multilib2}-static -l pl.UTF-8
+Statyczna biblioteka standardowa C++ - wersja %{m2_desc}.
+
 %package -n libstdc++-gdb
 Summary:       libstdc++ pretty printers for GDB
 Summary(pl.UTF-8):     Funkcje wypisujące dane libstdc++ dla GDB
@@ -691,7 +961,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}
+%{?with_quadmath:Requires:     libquadmath-devel = %{epoch}:%{version}-%{release}}
 Provides:      gcc-g77 = %{epoch}:%{version}-%{release}
 Obsoletes:     egcs-g77
 Obsoletes:     gcc-g77
@@ -710,22 +980,39 @@ Ten pakiet dodaje obsługę języka Fortran 95 do kompilatora GCC.
 %description fortran -l pt_BR.UTF-8
 Suporte Fortran 95 para o GCC.
 
-%package fortran-multilib
+%package fortran-multilib-32
 Summary:       Fortran 95 language 32-bit binaries support for GCC
 Summary(pl.UTF-8):     Obsługa binariów 32-bitowych w języku Fortran 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}
+Requires:      libgfortran-multilib-32 = %{epoch}:%{version}-%{release}
+%{?with_quadmath:Requires:     libquadmath-multilib-32-devel = %{epoch}:%{version}-%{release}}
+Obsoletes:     gcc-fortran-multilib
 
-%description fortran-multilib
+%description fortran-multilib-32
 This package adds support for compiling 32-bit Fortran 95 programs
 with the GNU compiler.
 
-%description fortran-multilib -l pl.UTF-8
+%description fortran-multilib-32 -l pl.UTF-8
 Ten pakiet dodaje obsługę 32-bitowych programów w Fortranie 95 do
 kompilatora gcc.
 
+%package fortran-multilib-%{multilib2}
+Summary:       Fortran 95 language %{m2_desc} binaries support for GCC
+Summary(pl.UTF-8):     Obsługa binariów %{m2_desc} w języku Fortran 95 dla GCC
+Group:         Development/Languages/Fortran
+Requires:      %{name}-fortran = %{epoch}:%{version}-%{release}
+Requires:      libgfortran-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+%{?with_quadmath:Requires:     libquadmath-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}}
+
+%description fortran-multilib-%{multilib2}
+This package adds support for compiling Fortran 95 programs to %{m2_desc}
+binaries with the GNU compiler.
+
+%description fortran-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet dodaje obsługę binariów %{m2_desc} w języku Fortran 95 do
+kompilatora GCC.
+
 %package -n libgfortran
 Summary:       Fortran 95 Library
 Summary(es.UTF-8):     Biblioteca de Fortran 95
@@ -733,7 +1020,7 @@ Summary(pl.UTF-8): Biblioteka Fortranu 95
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Libraries
 Requires:      libgcc = %{epoch}:%{version}-%{release}
-Requires:      libquadmath = %{epoch}:%{version}-%{release}
+%{?with_quadmath:Requires:     libquadmath = %{epoch}:%{version}-%{release}}
 Obsoletes:     libg2c
 
 %description -n libgfortran
@@ -763,33 +1050,62 @@ Bibliotecas estáticas de Fortran 95.
 %description -n libgfortran-static -l pl.UTF-8
 Statyczna biblioteka Fortranu 95.
 
-%package -n libgfortran-multilib
+%package -n libgfortran-multilib-32
 Summary:       Fortran 95 Library - 32-bit version
 Summary(pl.UTF-8):     Biblioteka Fortranu 95 - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Libraries
-Requires:      libgcc-multilib = %{epoch}:%{version}-%{release}
-Requires:      libquadmath-multilib = %{epoch}:%{version}-%{release}
+Requires:      libgcc-multilib-32 = %{epoch}:%{version}-%{release}
+%{?with_quadmath:Requires:     libquadmath-multilib-32 = %{epoch}:%{version}-%{release}}
+Obsoletes:     libgfortran-multilib
 
-%description -n libgfortran-multilib
+%description -n libgfortran-multilib-32
 Fortran 95 Library - 32-bit version.
 
-%description -n libgfortran-multilib -l pl.UTF-8
+%description -n libgfortran-multilib-32 -l pl.UTF-8
 Biblioteka Fortranu 95 - wersja 32-bitowa.
 
-%package -n libgfortran-multilib-static
+%package -n libgfortran-multilib-32-static
 Summary:       Static Fortran 95 Library - 32-bit version
 Summary(pl.UTF-8):     Statyczna Biblioteka Fortranu 95 - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Development/Libraries
-Requires:      libgfortran-multilib = %{epoch}:%{version}-%{release}
+Requires:      libgfortran-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libgfortran-multilib-static
 
-%description -n libgfortran-multilib-static
+%description -n libgfortran-multilib-32-static
 Static Fortran 95 Library - 32-bit version.
 
-%description -n libgfortran-multilib-static -l pl.UTF-8
+%description -n libgfortran-multilib-32-static -l pl.UTF-8
 Statyczna biblioteka Fortranu 95 - wersja 32-bitowa.
 
+%package -n libgfortran-multilib-%{multilib2}
+Summary:       Fortran 95 Library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka Fortranu 95 - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Libraries
+%{?with_quadmath:Requires:     libquadmath-multilib-%{multilib2} = %{epoch}:%{version}-%{release}}
+
+%description -n libgfortran-multilib-%{multilib2}
+Fortran 95 Library - %{m2_desc} version.
+
+%description -n libgfortran-multilib-%{multilib2} -l pl.UTF-8
+Biblioteka Fortranu 95 - wersja %{m2_desc}.
+
+%package -n libgfortran-multilib-%{multilib2}-static
+Summary:       Static Fortran 95 Library - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczna Biblioteka Fortranu 95 - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Development/Libraries
+Requires:      libgcc-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+Requires:      libgfortran-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libgfortran-multilib-%{multilib2}-static
+Static Fortran 95 Library - %{m2_desc} version.
+
+%description -n libgfortran-multilib-%{multilib2}-static -l pl.UTF-8
+Statyczna biblioteka Fortranu 95 - wersja %{m2_desc}.
+
 %package -n libquadmath
 Summary:       GCC __float128 shared support library
 Summary(pl.UTF-8):     Biblioteka współdzielona do obsługi typu __float128
@@ -834,53 +1150,103 @@ 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
+%package -n libquadmath-multilib-32
 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:       LGPL v2.1+
 Group:         Libraries
+Obsoletes:     libquadmath-multilib
 
-%description -n libquadmath-multilib
+%description -n libquadmath-multilib-32
 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
+%description -n libquadmath-multilib-32 -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-multilib-devel
+%package -n libquadmath-multilib-32-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:       LGPL v2.1+
 Group:         Development/Libraries
 Requires:      libquadmath-devel = %{epoch}:%{version}-%{release}
-Requires:      libquadmath-multilib = %{epoch}:%{version}-%{release}
+Requires:      libquadmath-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libquadmath-multilib-devel
 
-%description -n libquadmath-multilib-devel
+%description -n libquadmath-multilib-32-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
+%description -n libquadmath-multilib-32-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-multilib-static
+%package -n libquadmath-multilib-32-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:       LGPL v2.1+
 Group:         Development/Libraries
-Requires:      libquadmath-multilib-devel = %{epoch}:%{version}-%{release}
+Requires:      libquadmath-multilib-32-devel = %{epoch}:%{version}-%{release}
+Obsoletes:     libquadmath-multilib-static
 
-%description -n libquadmath-multilib-static
+%description -n libquadmath-multilib-32-static
 Static GCC __float128 support library - 32-bit version.
 
-%description -n libquadmath-multilib-static -l pl.UTF-8
+%description -n libquadmath-multilib-32-static -l pl.UTF-8
 32-bitowa biblioteka statyczna GCC do obsługi typu __float128.
 
+%package -n libquadmath-multilib-%{multilib2}
+Summary:       GCC __float128 shared support library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka współdzielona GCC do obsługi typu __float128 - wersja %{m2_desc}
+License:       LGPL v2.1+
+Group:         Libraries
+
+%description -n libquadmath-multilib-%{multilib2}
+This package contains %{m2_desc} version of GCC shared support library
+which is needed for __float128 math support and for Fortran REAL*16
+support.
+
+%description -n libquadmath-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet zawiera wersję %{m2_desc} biblioteki współdzielonej GCC do
+obsługi operacji matematycznych na zmiennych typu __float128 oraz typu
+REAL*16 w Fortranie.
+
+%package -n libquadmath-multilib-%{multilib2}-devel
+Summary:       Development files for %{m2_desc} version of GCC __float128 support library
+Summary(pl.UTF-8):     Pliki programistyczne wersji %{m2_desc} biblioteki do obsługi typu __float128
+License:       LGPL v2.1+
+Group:         Development/Libraries
+Requires:      libquadmath-devel = %{epoch}:%{version}-%{release}
+Requires:      libquadmath-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libquadmath-multilib-%{multilib2}-devel
+This package contains development files for %{m2_desc} version of GCC
+support library which is needed for __float128 math support and for
+Fortran REAL*16 support.
+
+%description -n libquadmath-multilib-%{multilib2}-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne wersji %{m2_desc} biblioteki GCC
+do obsługi operacji matematycznych na zmiennych typu __float128 oraz
+typu REAL*16 w Fortranie.
+
+%package -n libquadmath-multilib-%{multilib2}-static
+Summary:       Static GCC __float128 support library - %{m2_desc} version
+Summary(pl.UTF-8):     Wersja %{m2_desc} biblioteki statycznej GCC do obsługi typu __float128
+License:       LGPL v2.1+
+Group:         Development/Libraries
+Requires:      libquadmath-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description -n libquadmath-multilib-%{multilib2}-static
+Static GCC __float128 support library - %{m2_desc} version.
+
+%description -n libquadmath-multilib-%{multilib2}-static -l pl.UTF-8
+Wersja %{m2_desc} biblioteki statycznej GCC do obsługi typu __float128.
+
 %package -n libffi
 Summary:       Foreign Function Interface library
 Summary(es.UTF-8):     Biblioteca de interfaz de funciones ajenas
@@ -941,52 +1307,101 @@ Biblioteca libffi estática.
 %description -n libffi-static -l pl.UTF-8
 Statyczna biblioteka libffi.
 
-%package -n libffi-multilib
+%package -n libffi-multilib-32
 Summary:       Foreign Function Interface library - 32-bit version
 Summary(pl.UTF-8):     Biblioteka wywołań funkcji obcych - wersja 32-bitowa
 License:       BSD-like
 Group:         Libraries
+Obsoletes:     libffi-multilib
 
-%description -n libffi-multilib
+%description -n libffi-multilib-32
 The libffi library provides a portable, high level programming
 interface to various calling conventions. This allows a programmer to
 call any function specified by a call interface description at run
 time. This package contains 32-bit version of the library.
 
-%description -n libffi-multilib -l pl.UTF-8
+%description -n libffi-multilib-32 -l pl.UTF-8
 Biblioteka libffi dostarcza przenośny, wysokopoziomowy interfejs do
 różnych konwencji wywołań funkcji. Pozwala to programiście wywołać
 dowolną funkcję podaną przez opis interfejsu wywołania w czasie
 działania programu. Ten pakiet zawiera wersję 32-bitową biblioteki.
 
-%package -n libffi-multilib-devel
+%package -n libffi-multilib-32-devel
 Summary:       Development files for 32-bit version of Foreign Function Interface library
 Summary(pl.UTF-8):     Pliki programistyczne 32-bitowej wersji biblioteki libffi
 License:       BSD-like
 Group:         Development/Libraries
 Requires:      libffi-devel = %{epoch}:%{version}-%{release}
-Requires:      libffi-multilib = %{epoch}:%{version}-%{release}
+Requires:      libffi-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libffi-multilib-devel
 
-%description -n libffi-multilib-devel
+%description -n libffi-multilib-32-devel
 Development files for 32-bit version of Foreign Function Interface
 library.
 
-%description -n libffi-multilib-devel -l pl.UTF-8
+%description -n libffi-multilib-32-devel -l pl.UTF-8
 Pliki programistyczne 32-bitowej wersji biblioteki libffi.
 
-%package -n libffi-multilib-static
+%package -n libffi-multilib-32-static
 Summary:       Static Foreign Function Interface library - 32-bit version
 Summary(pl.UTF-8):     Statyczna biblioteka libffi - wersja 32-bitowa
 License:       BSD-like
 Group:         Development/Libraries
-Requires:      libffi-multilib-devel = %{epoch}:%{version}-%{release}
+Requires:      libffi-multilib-32-devel = %{epoch}:%{version}-%{release}
+Obsoletes:     libffi-multilib-static
 
-%description -n libffi-multilib-static
+%description -n libffi-multilib-32-static
 Static Foreign Function Interface library - 32-bit version.
 
-%description -n libffi-multilib-static -l pl.UTF-8
+%description -n libffi-multilib-32-static -l pl.UTF-8
 Statyczna biblioteka libffi - wersja 32-bitowa.
 
+%package -n libffi-multilib-%{multilib2}
+Summary:       Foreign Function Interface library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka wywołań funkcji obcych - wersja %{m2_desc}
+License:       BSD-like
+Group:         Libraries
+
+%description -n libffi-multilib-%{multilib2}
+The libffi library provides a portable, high level programming
+interface to various calling conventions. This allows a programmer to
+call any function specified by a call interface description at run
+time. This package contains %{m2_desc} version of the library.
+
+%description -n libffi-multilib-%{multilib2} -l pl.UTF-8
+Biblioteka libffi dostarcza przenośny, wysokopoziomowy interfejs do
+różnych konwencji wywołań funkcji. Pozwala to programiście wywołać
+dowolną funkcję podaną przez opis interfejsu wywołania w czasie
+działania programu. Ten pakiet zawiera wersję %{m2_desc} biblioteki.
+
+%package -n libffi-multilib-%{multilib2}-devel
+Summary:       Development files for %{m2_desc} version of Foreign Function Interface library
+Summary(pl.UTF-8):     Pliki programistyczne wersji %{m2_desc} biblioteki libffi
+License:       BSD-like
+Group:         Development/Libraries
+Requires:      libffi-devel = %{epoch}:%{version}-%{release}
+Requires:      libffi-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libffi-multilib-%{multilib2}-devel
+Development files for %{m2_desc} version of Foreign Function Interface
+library.
+
+%description -n libffi-multilib-%{multilib2}-devel -l pl.UTF-8
+Pliki programistyczne wersji %{m2_desc} biblioteki libffi.
+
+%package -n libffi-multilib-%{multilib2}-static
+Summary:       Static Foreign Function Interface library - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczna biblioteka libffi - wersja %{m2_desc}
+License:       BSD-like
+Group:         Development/Libraries
+Requires:      libffi-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description -n libffi-multilib-%{multilib2}-static
+Static Foreign Function Interface library - %{m2_desc} version.
+
+%description -n libffi-multilib-%{multilib2}-static -l pl.UTF-8
+Statyczna biblioteka libffi - wersja %{m2_desc}.
+
 %package objc
 Summary:       Objective C language support for GCC
 Summary(de.UTF-8):     Objektive C-Unterstützung für GCC
@@ -1037,21 +1452,37 @@ C dilinin nesne yönelik bir türevidir ve NeXTSTEP altında çalışan
 sistemlerde yaygın olarak kullanılır. Standart Objective C nesne
 kitaplığı bu pakette yer almaz.
 
-%package objc-multilib
+%package objc-multilib-32
 Summary:       Objective C language 32-bit binaries support for GCC
 Summary(pl.UTF-8):     Obsługa 32-bitowych binariów w języku Objective C dla kompilatora GCC
 Group:         Development/Languages
-Requires:      %{name}-multilib = %{epoch}:%{version}-%{release}
-Requires:      libobjc-multilib = %{epoch}:%{version}-%{release}
+Requires:      %{name}-multilib-32 = %{epoch}:%{version}-%{release}
+Requires:      libobjc-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     gcc-objc-multilib
 
-%description objc-multilib
+%description objc-multilib-32
 This package adds 32-bit Objective C support to the GNU Compiler
 Collection.
 
-%description objc-multilib -l pl.UTF-8
+%description objc-multilib-32 -l pl.UTF-8
 Ten pakiet dodaje obsługę 32-bitowych binariów Objective C do
 kompilatora GCC.
 
+%package objc-multilib-%{multilib2}
+Summary:       Objective C language %{m2_desc} binaries support for GCC
+Summary(pl.UTF-8):     Obsługa binariów %{m2_desc} w języku Objective C dla kompilatora GCC
+Group:         Development/Languages
+Requires:      %{name}-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+Requires:      libobjc-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description objc-multilib-%{multilib2}
+This package adds %{m2_desc} binaries in Objective C language support to
+the GNU Compiler Collection.
+
+%description objc-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet dodaje obsługę binariów %{m2_desc} w języku Objective C do
+kompilatora GCC.
+
 %package objc++
 Summary:       Objective C++ support for GCC
 Summary(pl.UTF-8):     Obsługa języka Objective C++ dla GCC
@@ -1102,32 +1533,60 @@ Bibliotecas estáticas de Objective C.
 %description -n libobjc-static -l pl.UTF-8
 Statyczna biblioteka obiektowego C (Objective C).
 
-%package -n libobjc-multilib
+%package -n libobjc-multilib-32
 Summary:       Objective C Library - 32-bit version
 Summary(pl.UTF-8):     Biblioteka obiektowego C (Objective C) - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Libraries
-Requires:      libgcc-multilib = %{epoch}:%{version}-%{release}
+Requires:      libgcc-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libobjc-multilib
 
-%description -n libobjc-multilib
+%description -n libobjc-multilib-32
 Objective C Library - 32-bit version.
 
-%description -n libobjc-multilib -l pl.UTF-8
+%description -n libobjc-multilib-32 -l pl.UTF-8
 Biblioteka obiektowego C (Objective C) - wersja 32-bitowa.
 
-%package -n libobjc-multilib-static
+%package -n libobjc-multilib-32-static
 Summary:       Static Objective C Library - 32-bit version
 Summary(pl.UTF-8):     Statyczna biblioteka obiektowego C (Objective C) - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Development/Libraries
-Requires:      libobjc-multilib = %{epoch}:%{version}-%{release}
+Requires:      libobjc-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libobjc-multilib-static
 
-%description -n libobjc-multilib-static
+%description -n libobjc-multilib-32-static
 Static Objective C Library - 32-bit version.
 
-%description -n libobjc-multilib-static -l pl.UTF-8
+%description -n libobjc-multilib-32-static -l pl.UTF-8
 Statyczna biblioteka obiektowego C (Objective C) - wersja 32-bitowa.
 
+%package -n libobjc-multilib-%{multilib2}
+Summary:       Objective C Library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka obiektowego C (Objective C) - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Libraries
+Requires:      libgcc-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libobjc-multilib-%{multilib2}
+Objective C Library - %{m2_desc} version.
+
+%description -n libobjc-multilib-%{multilib2} -l pl.UTF-8
+Biblioteka obiektowego C (Objective C) - wersja %{m2_desc}.
+
+%package -n libobjc-multilib-%{multilib2}-static
+Summary:       Static Objective C Library - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczna biblioteka obiektowego C (Objective C) - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Development/Libraries
+Requires:      libobjc-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libobjc-multilib-%{multilib2}-static
+Static Objective C Library - %{m2_desc} version.
+
+%description -n libobjc-multilib-%{multilib2}-static -l pl.UTF-8
+Statyczna biblioteka obiektowego C (Objective C) - wersja %{m2_desc}.
+
 %package go
 Summary:       Go language support for GCC
 Summary(pl.UTF-8):     Obsługa języka Go dla kompilatora GCC
@@ -1142,22 +1601,39 @@ 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
+%package go-multilib-32
 Summary:       Go language 32-bit binaries 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}
+Requires:      libgo-multilib-32-devel = %{epoch}:%{version}-%{release}
+Obsoletes:     gcc-go-multilib
 
-%description go-multilib
+%description go-multilib-32
 This package adds 32-bit Go language support to the GNU Compiler
 Collection.
 
-%description go-multilib -l pl.UTF-8
+%description go-multilib-32 -l pl.UTF-8
 Ten pakiet dodaje obsługę 32-bitowych binariów języka Go do
 kompilatora GCC.
 
+%package go-multilib-%{multilib2}
+Summary:       Go language %{m2_desc} binaries support for GCC
+Summary(pl.UTF-8):     Obsługa binariów %{m2_desc} 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-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description go-multilib-%{multilib2}
+This package adds %{m2_desc} binaries in Go language support to the GNU
+Compiler Collection.
+
+%description go-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet dodaje obsługę binariów %{m2_desc} w języku Go do kompilatora
+GCC.
+
 %package -n libgo
 Summary:       Go language library
 Summary(pl.UTF-8):     Biblioteka języka Go
@@ -1198,46 +1674,89 @@ Static Go language library.
 %description -n libgo-static -l pl.UTF-8
 Statyczna biblioteka języka Go.
 
-%package -n libgo-multilib
+%package -n libgo-multilib-32
 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}
+Requires:      libgcc-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libgo-multilib
 
-%description -n libgo-multilib
+%description -n libgo-multilib-32
 Go language library - 32-bit version.
 
-%description -n libgo-multilib -l pl.UTF-8
+%description -n libgo-multilib-32 -l pl.UTF-8
 Biblioteka języka Go - wersja 32-bitowa.
 
-%package -n libgo-multilib-devel
+%package -n libgo-multilib-32-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}
+Requires:      libgo-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libgo-multilib-devel
 
-%description -n libgo-multilib-devel
+%description -n libgo-multilib-32-devel
 Development files for Go language library - 32-bit version.
 
-%description -n libgo-multilib-devel -l pl.UTF-8
+%description -n libgo-multilib-32-devel -l pl.UTF-8
 Pliki programistyczne biblioteki języka Go - wersja 32-bitowa.
 
-%package -n libgo-multilib-static
+%package -n libgo-multilib-32-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}
+Requires:      libgo-multilib-32-devel = %{epoch}:%{version}-%{release}
+Obsoletes:     libgo-multilib-static
 
-%description -n libgo-multilib-static
+%description -n libgo-multilib-32-static
 Static Go language library - 32-bit version.
 
-%description -n libgo-multilib-static -l pl.UTF-8
+%description -n libgo-multilib-32-static -l pl.UTF-8
 Statyczna biblioteka języka Go - wersja 32-bitowa.
 
+%package -n libgo-multilib-%{multilib2}
+Summary:       Go language library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka języka Go - wersja %{m2_desc}
+License:       BSD
+Group:         Libraries
+Requires:      libgcc-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libgo-multilib-%{multilib2}
+Go language library - %{m2_desc} version.
+
+%description -n libgo-multilib-%{multilib2} -l pl.UTF-8
+Biblioteka języka Go - wersja %{m2_desc}.
+
+%package -n libgo-multilib-%{multilib2}-devel
+Summary:       Development files for Go language library - %{m2_desc} version
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki języka Go - wersja %{m2_desc}
+License:       BSD
+Group:         Development/Libraries
+Requires:      glibc-devel
+Requires:      libgo-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libgo-multilib-%{multilib2}-devel
+Development files for Go language library - %{m2_desc} version.
+
+%description -n libgo-multilib-%{multilib2}-devel -l pl.UTF-8
+Pliki programistyczne biblioteki języka Go - wersja %{m2_desc}.
+
+%package -n libgo-multilib-%{multilib2}-static
+Summary:       Static Go language library - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczna biblioteka języka Go - wersja %{m2_desc}
+License:       BSD
+Group:         Development/Libraries
+Requires:      libgo-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description -n libgo-multilib-%{multilib2}-static
+Static Go language library - %{m2_desc} version.
+
+%description -n libgo-multilib-%{multilib2}-static -l pl.UTF-8
+Statyczna biblioteka języka Go - wersja %{m2_desc}.
+
 %package -n libasan
 Summary:       The Address Sanitizer library
 Summary(pl.UTF-8):     Biblioteka Address Sanitizer do kontroli adresów
@@ -1280,53 +1799,103 @@ 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
+%package -n libasan-multilib-32
 Summary:       The Address Sanitizer library - 32-bit version
 Summary(pl.UTF-8):     Biblioteka Address Sanitizer do kontroli adresów - wersja 32-bitowa
 License:       BSD-like or MIT
 Group:         Libraries
-Requires:      libstdc++-multilib = %{epoch}:%{version}-%{release}
+Requires:      libstdc++-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libasan-multilib
 
-%description -n libasan-multilib
+%description -n libasan-multilib-32
 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
+%description -n libasan-multilib-32 -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-multilib-devel
+%package -n libasan-multilib-32-devel
 Summary:       Development files for the Address Sanitizer library - 32-bit version
 Summary(pl.UTF-8):     Pliki programistyczne biblioteki Address Sanitizer - wersja 32-bitowa
 License:       BSD-like or MIT
 Group:         Development/Libraries
 Requires:      libasan-devel = %{epoch}:%{version}-%{release}
-Requires:      libasan-multilib = %{epoch}:%{version}-%{release}
+Requires:      libasan-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libasan-multilib-devel
 
-%description -n libasan-multilib-devel
+%description -n libasan-multilib-32-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
+%description -n libasan-multilib-32-devel -l pl.UTF-8
 Ten pakiet zawiera pliki programistyczne 32-bitowej wersji biblioteki
 Address Sanitizer.
 
-%package -n libasan-multilib-static
+%package -n libasan-multilib-32-static
 Summary:       The Address Sanitizer static library - 32-bit version
 Summary(pl.UTF-8):     Statyczna biblioteka Address Sanitizer - wersja 32-bitowa
 License:       BSD-like or MIT
 Group:         Development/Libraries
-Requires:      libasan-multilib-devel = %{epoch}:%{version}-%{release}
+Requires:      libasan-multilib-32-devel = %{epoch}:%{version}-%{release}
+Obsoletes:     libasan-multilib-static
 
-%description -n libasan-multilib-static
+%description -n libasan-multilib-32-static
 This package contains 32-bit version of the Address Sanitizer static
 library.
 
-%description -n libasan-multilib-static -l pl.UTF-8
+%description -n libasan-multilib-32-static -l pl.UTF-8
 Ten pakiet zawiera 32-bitową wersję statycznej biblioteki Address
 Sanitizer.
 
+%package -n libasan-multilib-%{multilib2}
+Summary:       The Address Sanitizer library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka Address Sanitizer do kontroli adresów - wersja %{m2_desc}
+License:       BSD-like or MIT
+Group:         Libraries
+Requires:      libstdc++-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libasan-multilib-%{multilib2}
+This package contains %{m2_desc} version of the Address Sanitizer library
+which is used for -fsanitize=address instrumented programs.
+
+%description -n libasan-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet zawiera wersję %{m2_desc} biblioteki Address Sanitizer,
+służącej do kontroli adresów w programach kompilowanych z opcją
+-fsanitize=address.
+
+%package -n libasan-multilib-%{multilib2}-devel
+Summary:       Development files for the Address Sanitizer library - %{m2_desc} version
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki Address Sanitizer - wersja %{m2_desc}
+License:       BSD-like or MIT
+Group:         Development/Libraries
+Requires:      libasan-devel = %{epoch}:%{version}-%{release}
+Requires:      libasan-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libasan-multilib-%{multilib2}-devel
+This package contains the development files for %{m2_desc} version of the
+Address Sanitizer library.
+
+%description -n libasan-multilib-%{multilib2}-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne wersji %{m2_desc} biblioteki
+Address Sanitizer.
+
+%package -n libasan-multilib-%{multilib2}-static
+Summary:       The Address Sanitizer static library - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczna biblioteka Address Sanitizer - wersja %{m2_desc}
+License:       BSD-like or MIT
+Group:         Development/Libraries
+Requires:      libasan-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description -n libasan-multilib-%{multilib2}-static
+This package contains %{m2_desc} version of the Address Sanitizer static
+library.
+
+%description -n libasan-multilib-%{multilib2}-static -l pl.UTF-8
+Ten pakiet zawiera wersję %{m2_desc} statycznej biblioteki Address
+Sanitizer.
+
 %package -n liblsan
 Summary:       The Leak Sanitizer library
 Summary(pl.UTF-8):     Biblioteka Leak Sanitizer do kontroli wycieków
@@ -1369,6 +1938,50 @@ This package contains Leak Sanitizer static library.
 %description -n liblsan-static -l pl.UTF-8
 Ten pakiet zawiera statyczną bibliotekę Leak Sanitizer.
 
+%package -n liblsan-multilib-%{multilib2}
+Summary:       The Leak Sanitizer library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka Leak Sanitizer do kontroli wycieków - wersja %{m2_desc}
+License:       BSD-like or MIT
+Group:         Libraries
+Requires:      libstdc++-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n liblsan-multilib-%{multilib2}
+This package contains %{m2_desc} version of the Leak Sanitizer library
+which is used for -fsanitize=leak instrumented programs.
+
+%description -n liblsan-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet zawiera wersję %{m2_desc} biblioteki Leak Sanitizer, służącej
+do kontroli wycieków w programach kompilowanych z opcją
+-fsanitize=leak.
+
+%package -n liblsan-multilib-%{multilib2}-devel
+Summary:       Development files for the Leak Sanitizer library - %{m2_desc} version
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki Leak Sanitizer - wersja %{m2_desc}
+License:       BSD-like or MIT
+Group:         Development/Libraries
+Requires:      liblsan-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n liblsan-multilib-%{multilib2}-devel
+This package contains development files for %{m2_desc} version of the
+Leak Sanitizer library.
+
+%description -n liblsan-multilib-%{multilib2}-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne wersji %{m2_desc} biblioteki
+Leak Sanitizer.
+
+%package -n liblsan-multilib-%{multilib2}-static
+Summary:       The Leak Sanitizer static library - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczna biblioteka Leak Sanitizer - wersja %{m2_desc}
+License:       BSD-like or MIT
+Group:         Development/Libraries
+Requires:      liblsan-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description -n liblsan-multilib-%{multilib2}-static
+This package contains Leak Sanitizer static library - %{m2_desc} version.
+
+%description -n liblsan-multilib-%{multilib2}-static -l pl.UTF-8
+Ten pakiet zawiera statyczną bibliotekę Leak Sanitizer - wersja %{m2_desc}.
+
 %package -n libtsan
 Summary:       The Thread Sanitizer library
 Summary(pl.UTF-8):     Biblioteka Thread Sanitizer do kontroli wielowątkowości
@@ -1410,6 +2023,52 @@ This package contains Thread Sanitizer static library.
 %description -n libtsan-static -l pl.UTF-8
 Ten pakiet zawiera statyczną bibliotekę Thread Sanitizer.
 
+%package -n libtsan-multilib-%{multilib2}
+Summary:       The Thread Sanitizer library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka Thread Sanitizer do kontroli wielowątkowości - wersja %{m2_desc}
+License:       BSD-like or MIT
+Group:         Libraries
+Requires:      libstdc++-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libtsan-multilib-%{multilib2}
+This package contains %{m2_desc} version of the Thread Sanitizer
+library which is used for -fsanitize=thread instrumented programs.
+
+%description -n libtsan-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet zawiera wersję %{m2_desc} bibliotekę Thread Sanitizer,
+służącej do kontroli wielowątkowości w programach kompilowanych
+z opcją -fsanitize=thread.
+
+%package -n libtsan-multilib-%{multilib2}-devel
+Summary:       Development files for the Thread Sanitizer library - %{m2_desc} version
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki Thread Sanitizer - wersja %{m2_desc}
+License:       BSD-like or MIT
+Group:         Development/Libraries
+Requires:      libtsan-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libtsan-multilib-%{multilib2}-devel
+This package contains development files for %{m2_desc} version of
+Thread Sanitizer library.
+
+%description -n libtsan-multilib-%{multilib2}-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne wersji %{m2_desc} biblioteki
+Thread Sanitizer.
+
+%package -n libtsan-multilib-%{multilib2}-static
+Summary:       The Thread Sanitizer static library - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczna biblioteka Thread Sanitizer - wersja %{m2_desc}
+License:       BSD-like or MIT
+Group:         Development/Libraries
+Requires:      libtsan-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description -n libtsan-multilib-%{multilib2}-static
+This package contains %{m2_desc} version of Thread Sanitizer static
+library.
+
+%description -n libtsan-multilib-%{multilib2}-static -l pl.UTF-8
+Ten pakiet zawiera wersję %{m2_desc} biblioteki statycznej Thread
+Sanitizer.
+
 %package -n libubsan
 Summary:       The Undefined Behavior Sanitizer library
 Summary(pl.UTF-8):     Biblioteka Undefined Behavior Sanitizer do kontroli nieokreślonych zachowań
@@ -1454,53 +2113,103 @@ This package contains Undefined Behavior Sanitizer static library.
 %description -n libubsan-static -l pl.UTF-8
 Ten pakiet zawiera statyczną bibliotekę Undefined Behavior Sanitizer.
 
-%package -n libubsan-multilib
+%package -n libubsan-multilib-32
 Summary:       The Undefined Behavior Sanitizer library - 32-bit version
 Summary(pl.UTF-8):     Biblioteka Undefined Behavior Sanitizer do kontroli nieokreślonych zachowań - wersja 32-bitowa
 License:       BSD-like or MIT
 Group:         Libraries
-Requires:      libstdc++-multilib = %{epoch}:%{version}-%{release}
+Requires:      libstdc++-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libubsan-multilib
 
-%description -n libubsan-multilib
+%description -n libubsan-multilib-32
 This package contains 32-bit version of the Undefined Behavior
 Sanitizer library which is used for -fsanitize=undefined instrumented
 programs.
 
-%description -n libubsan-multilib -l pl.UTF-8
+%description -n libubsan-multilib-32 -l pl.UTF-8
 Ten pakiet zawiera 32-bitową wersję biblioteki Undefined Behavior
 Sanitizer, służącej do kontroli nieokreślonych zachowań w programach
 kompilowanych z opcją -fsanitize=undefined.
 
-%package -n libubsan-multilib-devel
+%package -n libubsan-multilib-32-devel
 Summary:       Development files for the Undefined Behavior Sanitizer library - 32-bit version
 Summary(pl.UTF-8):     Pliki programistyczne biblioteki Undefined Behavior Sanitizer - wersja 32-bitowa
 License:       BSD-like or MIT
 Group:         Development/Libraries
-Requires:      libubsan-multilib = %{epoch}:%{version}-%{release}
+Requires:      libubsan-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libubsan-multilib-devel
 
-%description -n libubsan-multilib-devel
+%description -n libubsan-multilib-32-devel
 This package contains the development files for 32-bit version of the
 Undefined Behavior Sanitizer library.
 
-%description -n libubsan-multilib-devel -l pl.UTF-8
+%description -n libubsan-multilib-32-devel -l pl.UTF-8
 Ten pakiet zawiera pliki programistyczne 32-bitowej wersji biblioteki
 Undefined Behavior Sanitizer.
 
-%package -n libubsan-multilib-static
+%package -n libubsan-multilib-32-static
 Summary:       The Undefined Behavior Sanitizer static library - 32-bit version
 Summary(pl.UTF-8):     Statyczna biblioteka Undefined Behavior Sanitizer - wersja 32-bitowa
 License:       BSD-like or MIT
 Group:         Development/Libraries
-Requires:      libubsan-multilib-devel = %{epoch}:%{version}-%{release}
+Requires:      libubsan-multilib-32-devel = %{epoch}:%{version}-%{release}
+Obsoletes:     libubsan-multilib-static
 
-%description -n libubsan-multilib-static
+%description -n libubsan-multilib-32-static
 This package contains 32-bit version of the Undefined Behavior
 Sanitizer static library.
 
-%description -n libubsan-multilib-static -l pl.UTF-8
+%description -n libubsan-multilib-32-static -l pl.UTF-8
 Ten pakiet zawiera 32-bitową wersję statycznej biblioteki Undefined
 Behavior Sanitizer.
 
+%package -n libubsan-multilib-%{multilib2}
+Summary:       The Undefined Behavior Sanitizer library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka Undefined Behavior Sanitizer do kontroli nieokreślonych zachowań - wersja %{m2_desc}
+License:       BSD-like or MIT
+Group:         Libraries
+Requires:      libstdc++-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libubsan-multilib-%{multilib2}
+This package contains %{m2_desc} version of the Undefined Behavior
+Sanitizer library which is used for -fsanitize=undefined instrumented
+programs.
+
+%description -n libubsan-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet zawiera wersję %{m2_desc} biblioteki Undefined Behavior
+Sanitizer, służącej do kontroli nieokreślonych zachowań w programach
+kompilowanych z opcją -fsanitize=undefined.
+
+%package -n libubsan-multilib-%{multilib2}-devel
+Summary:       Development files for the Undefined Behavior Sanitizer library - %{m2_desc} version
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki Undefined Behavior Sanitizer - wersja %{m2_desc}
+License:       BSD-like or MIT
+Group:         Development/Libraries
+Requires:      libubsan-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libubsan-multilib-%{multilib2}-devel
+This package contains the development files for %{m2_desc} version of the
+Undefined Behavior Sanitizer library.
+
+%description -n libubsan-multilib-%{multilib2}-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne wersji %{m2_desc} biblioteki
+Undefined Behavior Sanitizer.
+
+%package -n libubsan-multilib-%{multilib2}-static
+Summary:       The Undefined Behavior Sanitizer static library - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczna biblioteka Undefined Behavior Sanitizer - wersja %{m2_desc}
+License:       BSD-like or MIT
+Group:         Development/Libraries
+Requires:      libubsan-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description -n libubsan-multilib-%{multilib2}-static
+This package contains %{m2_desc} version of the Undefined Behavior
+Sanitizer static library.
+
+%description -n libubsan-multilib-%{multilib2}-static -l pl.UTF-8
+Ten pakiet zawiera wersję %{m2_desc} statycznej biblioteki Undefined
+Behavior Sanitizer.
+
 %package -n libvtv
 Summary:       The Virtual Table Verification library
 Summary(pl.UTF-8):     Biblioteka Virtual Table Verification do weryfikacji tablicy wirtualnej
@@ -1548,55 +2257,104 @@ This package contains Virtual Table Verification static library.
 %description -n libvtv-static -l pl.UTF-8
 Ten pakiet zawiera statyczną bibliotekę Virtual Table Verification.
 
-%package -n libvtv-multilib
+%package -n libvtv-multilib-32
 Summary:       The Virtual Table Verification library - 32-bit version
 Summary(pl.UTF-8):     Biblioteka Virtual Table Verification do weryfikacji tablicy wirtualnej - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Libraries
 URL:           https://gcc.gnu.org/wiki/vtv
-Requires:      libgcc-multilib = %{epoch}:%{version}-%{release}
+Requires:      libgcc-multilib-32 = %{epoch}:%{version}-%{release}
 
-%description -n libvtv-multilib
+%description -n libvtv-multilib-32
 This package contains 32-bit version of the Virtual Table Verification
 library which is used for -fvtable-verify=... instrumented programs.
 
-%description -n libvtv-multilib -l pl.UTF-8
+%description -n libvtv-multilib-32 -l pl.UTF-8
 Ten pakiet zawiera 32-bitową wersję biblioteki Virtual Table
 Verification, służącej do weryfikacji tablicy wirtualnej w programach
 kompilowanych z opcją -fvtable-verify=....
 
-%package -n libvtv-multilib-devel
+%package -n libvtv-multilib-32-devel
 Summary:       Development files for the Virtual Table Verification library - 32-bit version
 Summary(pl.UTF-8):     Pliki programistyczne biblioteki Virtual Table Verification - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Development/Libraries
 URL:           https://gcc.gnu.org/wiki/vtv
-Requires:      libvtv-multilib = %{epoch}:%{version}-%{release}
+Requires:      libvtv-multilib-32 = %{epoch}:%{version}-%{release}
 
-%description -n libvtv-multilib-devel
+%description -n libvtv-multilib-32-devel
 This package contains the development files for 32-bit version of the
 Virtual Table Verification library.
 
-%description -n libvtv-multilib-devel -l pl.UTF-8
+%description -n libvtv-multilib-32-devel -l pl.UTF-8
 Ten pakiet zawiera pliki programistyczne 32-bitowej wersji biblioteki
 Virtual Table Verification.
 
-%package -n libvtv-multilib-static
+%package -n libvtv-multilib-32-static
 Summary:       The Virtual Table Verification static library - 32-bit version
 Summary(pl.UTF-8):     Statyczna biblioteka Virtual Table Verification - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Development/Libraries
 URL:           https://gcc.gnu.org/wiki/vtv
-Requires:      libvtv-multilib-devel = %{epoch}:%{version}-%{release}
+Requires:      libvtv-multilib-32-devel = %{epoch}:%{version}-%{release}
 
-%description -n libvtv-multilib-static
+%description -n libvtv-multilib-32-static
 This package contains 32-bit version of the Virtual Table Verification
 library.
 
-%description -n libvtv-multilib-static -l pl.UTF-8
+%description -n libvtv-multilib-32-static -l pl.UTF-8
 Ten pakiet zawiera 32-bitową wersję statycznej biblioteki Virtual
 Table Verification.
 
+%package -n libvtv-multilib-%{multilib2}
+Summary:       The Virtual Table Verification library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka Virtual Table Verification do weryfikacji tablicy wirtualnej - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Libraries
+URL:           https://gcc.gnu.org/wiki/vtv
+Requires:      libgcc-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libvtv-multilib-%{multilib2}
+This package contains %{m2_desc} version of the Virtual Table Verification
+library which is used for -fvtable-verify=... instrumented programs.
+
+%description -n libvtv-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet zawiera wersję %{m2_desc} biblioteki Virtual Table
+Verification, służącej do weryfikacji tablicy wirtualnej w programach
+kompilowanych z opcją -fvtable-verify=....
+
+%package -n libvtv-multilib-%{multilib2}-devel
+Summary:       Development files for the Virtual Table Verification library - %{m2_desc} version
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki Virtual Table Verification - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Development/Libraries
+URL:           https://gcc.gnu.org/wiki/vtv
+Requires:      libvtv-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libvtv-multilib-%{multilib2}-devel
+This package contains the development files for %{m2_desc} version of the
+Virtual Table Verification library.
+
+%description -n libvtv-multilib-%{multilib2}-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne wersji %{m2_desc} biblioteki
+Virtual Table Verification.
+
+%package -n libvtv-multilib-%{multilib2}-static
+Summary:       The Virtual Table Verification static library - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczna biblioteka Virtual Table Verification - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Development/Libraries
+URL:           https://gcc.gnu.org/wiki/vtv
+Requires:      libvtv-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description -n libvtv-multilib-%{multilib2}-static
+This package contains %{m2_desc} version of the Virtual Table
+Verification library.
+
+%description -n libvtv-multilib-%{multilib2}-static -l pl.UTF-8
+Ten pakiet zawiera wersję %{m2_desc} statycznej biblioteki Virtual
+Table Verification.
+
 %package -n libatomic
 Summary:       The GNU Atomic library
 Summary(pl.UTF-8):     Biblioteka GNU Atomic
@@ -1637,50 +2395,97 @@ This package contains GNU Atomic static library.
 %description -n libatomic-static
 Ten pakiet zawiera statyczną bibliotekę GNU Atomic.
 
-%package -n libatomic-multilib
+%package -n libatomic-multilib-32
 Summary:       The GNU Atomic library - 32-bit version
 Summary(pl.UTF-8):     Biblioteka GNU Atomic - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Libraries
+Obsoletes:     libatomic-multilib
 
-%description -n libatomic-multilib
+%description -n libatomic-multilib-32
 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
+%description -n libatomic-multilib-32 -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-multilib-devel
+%package -n libatomic-multilib-32-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
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Development/Libraries
-Requires:      libatomic-multilib = %{epoch}:%{version}-%{release}
+Requires:      libatomic-multilib-32 = %{epoch}:%{version}-%{release}
+Obsoletes:     libatomic-multilib-devel
 
-%description -n libatomic-multilib-devel
+%description -n libatomic-multilib-32-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
+%description -n libatomic-multilib-32-devel -l pl.UTF-8
 Ten pakiet zawiera pliki programistyczne 32-bitowej wersji biblioteki
 GNU Atomic.
 
-%package -n libatomic-multilib-static
+%package -n libatomic-multilib-32-static
 Summary:       The GNU Atomic static library - 32-bit version
 Summary(pl.UTF-8):     Statyczna biblioteka GNU Atomic - wersja 32-bitowa
 License:       GPL v3+ with GCC Runtime Library Exception v3.1
 Group:         Development/Libraries
-Requires:      libatomic-multilib-devel = %{epoch}:%{version}-%{release}
+Requires:      libatomic-multilib-32-devel = %{epoch}:%{version}-%{release}
+Obsoletes:     libatomic-multilib-static
 
-%description -n libatomic-multilib-static
+%description -n libatomic-multilib-32-static
 This package contains 32-bit version of the GNU Atomic static library.
 
-%description -n libatomic-multilib-static -l pl.UTF-8
+%description -n libatomic-multilib-32-static -l pl.UTF-8
 Ten pakiet zawiera 32-bitową wersję statycznej biblioteki GNU Atomic.
 
+%package -n libatomic-multilib-%{multilib2}
+Summary:       The GNU Atomic library - %{m2_desc} version
+Summary(pl.UTF-8):     Biblioteka GNU Atomic - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Libraries
+
+%description -n libatomic-multilib-%{multilib2}
+This package contains %{m2_desc} version of the GNU Atomic library which
+is a GCC support library for atomic operations not supported by
+hardware.
+
+%description -n libatomic-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet zawiera wersję %{m2_desc} biblioteki GNU Atomic, będącej
+biblioteką GCC wspierającą operacje atomowe na sprzęcie ich nie
+obsługującym.
+
+%package -n libatomic-multilib-%{multilib2}-devel
+Summary:       Development files for the GNU Atomic static library - %{m2_desc} version
+Summary(pl.UTF-8):     Pliki programistyczne biblioteki GNU Atomic - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Development/Libraries
+Requires:      libatomic-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libatomic-multilib-%{multilib2}-devel
+This package contains the development files for %{m2_desc} version of the
+GNU Atomic library.
+
+%description -n libatomic-multilib-%{multilib2}-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne wersji %{m2_desc} biblioteki
+GNU Atomic.
+
+%package -n libatomic-multilib-%{multilib2}-static
+Summary:       The GNU Atomic static library - %{m2_desc} version
+Summary(pl.UTF-8):     Statyczna biblioteka GNU Atomic - wersja %{m2_desc}
+License:       GPL v3+ with GCC Runtime Library Exception v3.1
+Group:         Development/Libraries
+Requires:      libatomic-multilib-%{multilib2}-devel = %{epoch}:%{version}-%{release}
+
+%description -n libatomic-multilib-%{multilib2}-static
+This package contains %{m2_desc} version of the GNU Atomic static library.
+
+%description -n libatomic-multilib-%{multilib2}-static -l pl.UTF-8
+Ten pakiet zawiera wersję %{m2_desc} statycznej biblioteki GNU Atomic.
+
 %package gdb-plugin
 Summary:       GCC plugin for GDB
 Summary(pl.UTF-8):     Wtyczka GCC dla GDB
@@ -1700,7 +2505,7 @@ Group:            Development/Languages
 Requires:      %{name} = %{epoch}:%{version}-%{release}
 Requires:      gmp-devel >= 4.3.2
 Requires:      libmpc-devel >= 0.8.1
-Requires:      mpfr-devel >= 2.4.2
+Requires:      mpfr-devel >= 3.1.0
 
 %description plugin-devel
 This package contains header files and other support files for
@@ -1714,6 +2519,7 @@ więc wtyczki muszą być przebudowywane przy każdej aktualizacji GCC.
 
 # Packages with epoch 0
 # DO NOT MOVE THESE PACKAGES AROUND
+
 # PUT SUCH PACKAGES HERE
 
 %prep
@@ -1722,7 +2528,9 @@ więc wtyczki muszą być przebudowywane przy każdej aktualizacji GCC.
 %patch0 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
 
+%patch10 -p1
 %if %{with gcc_libffi}
 %patch11 -p0
 %endif
@@ -1737,7 +2545,6 @@ echo "release" > gcc/DEV-PHASE
 cd gcc
 #{__autoconf}
 cd ..
-cp -f /usr/share/automake/config.sub .
 
 rm -rf builddir && install -d builddir && cd builddir
 
@@ -1758,7 +2565,7 @@ TEXCONFIG=false \
        --disable-build-poststage1-with-cxx \
        --enable-c99 \
        --enable-checking=release \
-%ifarch %{ix86} %{x8664}
+%ifarch %{ix86} %{x8664} x32
        --disable-cld \
 %endif
        %{?with_fortran:--enable-cmath} \
@@ -1777,11 +2584,20 @@ TEXCONFIG=false \
        --enable-nls \
        --enable-lto \
        --enable-plugin \
+%ifarch ppc ppc64
+       --enable-secureplt \
+%endif
        --enable-shared \
        --enable-threads=posix \
        --disable-werror \
-%ifarch %{x8664}
+%ifarch x32
+       --with-abi=x32 \
+%endif
+%ifarch %{x8664} x32
        --with-arch-32=x86-64 \
+%endif
+%ifarch sparc64
+       --with-cpu=ultrasparc \
 %endif
        --with-demangler-in-ld \
        --with-gnu-as \
@@ -1790,7 +2606,10 @@ TEXCONFIG=false \
        --with-long-double-128 \
 %if %{with multilib}
 %ifarch %{x8664}
-       --with-multilib-list=m32,m64 \
+       --with-multilib-list=m32,m64%{?with_multilibx32:,mx32} \
+%endif
+%ifarch x32
+       --with-multilib-list=m32,m64,mx32 \
 %endif
 %endif
        --with-slibdir=%{_slibdir} \
@@ -1801,6 +2620,11 @@ TEXCONFIG=false \
 %endif
        --with-system-zlib \
        --without-x \
+%ifarch armv6hl
+       --with-arch=armv6 \
+       --with-float=hard \
+       --with-fpu=vfp \
+%endif
 %if %{with cxx}
        --enable-__cxa_atexit \
        --enable-libstdcxx-allocator=new \
@@ -1813,7 +2637,7 @@ TEXCONFIG=false \
        %{?with_vtv:--enable-vtable-verify} \
 %endif
        --with-pkgversion="TLD-Linux" \
-       --with-bugurl="http://www.tld-linux.org" \
+       --with-bugurl="https://tld-linux.org" \
        --host=%{_target_platform} \
        --build=%{_target_platform}
 
@@ -1856,6 +2680,22 @@ cd builddir
 
 cp -p gcc/specs $RPM_BUILD_ROOT%{gcclibdir}
 
+%if %{with multilib}
+# create links
+%ifarch sparc64
+ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-tld-linux-gcc \
+       $RPM_BUILD_ROOT%{_bindir}/sparc-tld-linux-gcc
+ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-tld-linux-gcc-%{version} \
+       $RPM_BUILD_ROOT%{_bindir}/sparc-tld-linux-gcc-%{version}
+%if %{with cxx}
+ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-tld-linux-c++ \
+       $RPM_BUILD_ROOT%{_bindir}/sparc-tld-linux-c++
+ln -f $RPM_BUILD_ROOT%{_bindir}/sparc64-tld-linux-g++ \
+       $RPM_BUILD_ROOT%{_bindir}/sparc-tld-linux-g++
+%endif
+%endif
+%endif
+
 ln -sf %{_bindir}/cpp $RPM_BUILD_ROOT/lib/cpp
 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
 echo ".so man1/gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
@@ -1884,6 +2724,20 @@ 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
+
+%if %{with multilib2}
+libssp=$(cd $RPM_BUILD_ROOT%{_libdirm2}; echo libssp.so.*.*.*)
+%{__mv} $RPM_BUILD_ROOT%{_libdirm2}/libssp.so.* $RPM_BUILD_ROOT%{_slibdirm2}
+ln -sf %{_slibdirm2}/$libssp $RPM_BUILD_ROOT%{_libdirm2}/libssp.so
+
+libitm=$(cd $RPM_BUILD_ROOT%{_libdirm2}; echo libitm.so.*.*.*)
+%{__mv} $RPM_BUILD_ROOT%{_libdirm2}/libitm.so.* $RPM_BUILD_ROOT%{_slibdirm2}
+ln -sf %{_slibdirm2}/$libitm $RPM_BUILD_ROOT%{_libdirm2}/libitm.so
+
+libgomp=$(cd $RPM_BUILD_ROOT%{_libdirm2}; echo libgomp.so.*.*.*)
+%{__mv} $RPM_BUILD_ROOT%{_libdirm2}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdirm2}
+ln -sf %{_slibdirm2}/$libgomp $RPM_BUILD_ROOT%{_libdirm2}/libgomp.so
+%endif
 %endif
 
 %if %{with fortran}
@@ -1910,6 +2764,17 @@ ln -sf   libgnat-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdir32}/libgnat-%{major_ver
 ln -sf libgnarl-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdir32}/libgnarl-%{major_ver}.so
 ln -sf libgnat-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir32}/libgnat.so
 ln -sf libgnarl-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir32}/libgnarl.so
+
+%if %{with multilib2}
+%{__mv}        $RPM_BUILD_ROOT%{gcclibdir}/%{multilib2}/adalib/*.so.1 \
+       $RPM_BUILD_ROOT%{_libdirm2}
+# check if symlink to be made is valid
+test -f        $RPM_BUILD_ROOT%{_libdirm2}/libgnat-%{major_ver}.so.1
+ln -sf libgnat-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdirm2}/libgnat-%{major_ver}.so
+ln -sf libgnarl-%{major_ver}.so.1 $RPM_BUILD_ROOT%{_libdirm2}/libgnarl-%{major_ver}.so
+ln -sf libgnat-%{major_ver}.so $RPM_BUILD_ROOT%{_libdirm2}/libgnat.so
+ln -sf libgnarl-%{major_ver}.so $RPM_BUILD_ROOT%{_libdirm2}/libgnarl.so
+%endif
 %endif
 %endif
 
@@ -1930,6 +2795,14 @@ sed -e 's,@prefix@,%{_prefix},
        s,@exec_prefix@,%{_exec_prefix},
        s,@libdir@,%{_libdir32},
        s,@gcclibdir@,%{gcclibdir},' %{SOURCE3} >$RPM_BUILD_ROOT%{_pkgconfigdir32}/libffi.pc
+%if %{with multilib2}
+[ ! -f $RPM_BUILD_ROOT%{_pkgconfigdirm2}/libffi.pc ] || exit 1
+install -d $RPM_BUILD_ROOT%{_pkgconfigdirm2}
+sed -e 's,@prefix@,%{_prefix},
+       s,@exec_prefix@,%{_exec_prefix},
+       s,@libdir@,%{_libdirm2},
+       s,@gcclibdir@,%{gcclibdir},' %{SOURCE3} >$RPM_BUILD_ROOT%{_pkgconfigdirm2}/libffi.pc
+%endif
 %endif
 %endif
 
@@ -1941,7 +2814,7 @@ cp -f libobjc/README gcc/objc/README.libobjc
 # normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
 for f in libitm.la libssp.la libssp_nonshared.la \
        %{?with_cxx:libstdc++.la libstdc++fs.la libsupc++.la} \
-       %{?with_fortran:libgfortran.la libquadmath.la} \
+       %{?with_fortran:libgfortran.la %{?with_quadmath:libquadmath.la}} \
        %{?with_gomp:libgomp.la} \
        %{?with_Xsan:libasan.la libubsan.la} \
        %{?with_lsan_m0:liblsan.la} \
@@ -1956,7 +2829,7 @@ done
 %if %{with multilib}
 for f in libitm.la libssp.la libssp_nonshared.la \
        %{?with_cxx:libstdc++.la libstdc++fs.la libsupc++.la} \
-       %{?with_fortran:libgfortran.la libquadmath.la} \
+       %{?with_fortran:libgfortran.la %{?with_quadmath:libquadmath.la}} \
        %{?with_gomp:libgomp.la} \
        %{?with_Xsan:libasan.la libubsan.la} \
        %{?with_lsan_m1:liblsan.la} \
@@ -1967,6 +2840,21 @@ do
        %{__perl} %{SOURCE1} $RPM_BUILD_ROOT%{_libdir32}/$f %{_libdir32} > $RPM_BUILD_ROOT%{_libdir32}/$f.fixed
        %{__mv} $RPM_BUILD_ROOT%{_libdir32}/$f{.fixed,}
 done
+%if %{with multilib2}
+for f in libitm.la libssp.la libssp_nonshared.la \
+       %{?with_cxx:libstdc++.la libstdc++fs.la libsupc++.la} \
+       %{?with_fortran:libgfortran.la %{?with_quadmath:libquadmath.la}} \
+       %{?with_gomp:libgomp.la} \
+       %{?with_Xsan:libasan.la libubsan.la} \
+       %{?with_lsan_m2:liblsan.la} \
+       %{?with_tsan_m2:libtsan.la} \
+       %{?with_atomic:libatomic.la} \
+       %{?with_objc:libobjc.la};
+do
+       %{__perl} %{SOURCE1} $RPM_BUILD_ROOT%{_libdirm2}/$f %{_libdirm2} > $RPM_BUILD_ROOT%{_libdirm2}/$f.fixed
+       %{__mv} $RPM_BUILD_ROOT%{_libdirm2}/$f{.fixed,}
+done
+%endif
 %endif
 
 cp -p $RPM_BUILD_ROOT%{gcclibdir}/install-tools/include/*.h $RPM_BUILD_ROOT%{gcclibdir}/include
@@ -1978,12 +2866,12 @@ cp -p $RPM_BUILD_ROOT%{gcclibdir}/include-fixed/syslimits.h $RPM_BUILD_ROOT%{gcc
 %{__rm} $RPM_BUILD_ROOT%{gcclibdir}/liblto_plugin.la \
        $RPM_BUILD_ROOT%{_libdir}/libcc1.la
 
-%if %{without lsan_m0} && %{without lsan_m2}
+%if %{without lsan_m0} && (%{without multilib2} || %{without lsan_m2})
 %{__rm} $RPM_BUILD_ROOT%{gcclibdir}/include/sanitizer/lsan_interface.h
 %endif
 
 %if %{with python}
-for LIBDIR in %{_libdir} %{?with_multilib:%{_libdir32}}; do
+for LIBDIR in %{_libdir} %{?with_multilib:%{_libdir32}} %{?with_multilib2:%{_libdirm2}} ; do
        LIBPATH="$RPM_BUILD_ROOT%{_datadir}/gdb/auto-load$LIBDIR"
        install -d $LIBPATH
        # basename is being run only for the native (non-biarch) file.
@@ -2004,6 +2892,9 @@ install -d $RPM_BUILD_ROOT%{py_sitescriptdir}
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libstdc++.so.*-gdb.py
 %if %{with multilib}
 %{__rm} $RPM_BUILD_ROOT%{_libdir32}/libstdc++.so.*-gdb.py
+%if %{with multilib2}
+%{__rm} $RPM_BUILD_ROOT%{_libdirm2}/libstdc++.so.*-gdb.py
+%endif
 %endif
 
 %find_lang gcc
@@ -2071,60 +2962,90 @@ rm -rf $RPM_BUILD_ROOT
 
 %post  -p /sbin/ldconfig -n libgcc
 %postun        -p /sbin/ldconfig -n libgcc
-%post  -p /sbin/ldconfig -n libgcc-multilib
-%postun        -p /sbin/ldconfig -n libgcc-multilib
+%post  -p /sbin/ldconfig -n libgcc-multilib-32
+%postun        -p /sbin/ldconfig -n libgcc-multilib-32
+%post  -p /sbin/ldconfig -n libgcc-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n libgcc-multilib-%{multilib2}
 %post  -p /sbin/ldconfig -n libgomp
 %postun        -p /sbin/ldconfig -n libgomp
-%post  -p /sbin/ldconfig -n libgomp-multilib
-%postun        -p /sbin/ldconfig -n libgomp-multilib
+%post  -p /sbin/ldconfig -n libgomp-multilib-32
+%postun        -p /sbin/ldconfig -n libgomp-multilib-32
+%post  -p /sbin/ldconfig -n libgomp-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n libgomp-multilib-%{multilib2}
 %post  -p /sbin/ldconfig -n libgnat
 %postun        -p /sbin/ldconfig -n libgnat
-%post  -p /sbin/ldconfig -n libgnat-multilib
-%postun        -p /sbin/ldconfig -n libgnat-multilib
+%post  -p /sbin/ldconfig -n libgnat-multilib-32
+%postun        -p /sbin/ldconfig -n libgnat-multilib-32
+%post  -p /sbin/ldconfig -n libgnat-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n libgnat-multilib-%{multilib2}
 %post  -p /sbin/ldconfig -n libstdc++
 %postun        -p /sbin/ldconfig -n libstdc++
-%post  -p /sbin/ldconfig -n libstdc++-multilib
-%postun        -p /sbin/ldconfig -n libstdc++-multilib
+%post  -p /sbin/ldconfig -n libstdc++-multilib-32
+%postun        -p /sbin/ldconfig -n libstdc++-multilib-32
+%post  -p /sbin/ldconfig -n libstdc++-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n libstdc++-multilib-%{multilib2}
 %post  -p /sbin/ldconfig -n libgfortran
 %postun        -p /sbin/ldconfig -n libgfortran
-%post  -p /sbin/ldconfig -n libgfortran-multilib
-%postun        -p /sbin/ldconfig -n libgfortran-multilib
+%post  -p /sbin/ldconfig -n libgfortran-multilib-32
+%postun        -p /sbin/ldconfig -n libgfortran-multilib-32
+%post  -p /sbin/ldconfig -n libgfortran-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n libgfortran-multilib-%{multilib2}
 %post  -p /sbin/ldconfig -n libffi
 %postun        -p /sbin/ldconfig -n libffi
-%post  -p /sbin/ldconfig -n libffi-multilib
-%postun        -p /sbin/ldconfig -n libffi-multilib
+%post  -p /sbin/ldconfig -n libffi-multilib-32
+%postun        -p /sbin/ldconfig -n libffi-multilib-32
+%post  -p /sbin/ldconfig -n libffi-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n libffi-multilib-%{multilib2}
 %post  -p /sbin/ldconfig -n libobjc
 %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 libobjc-multilib-32
+%postun        -p /sbin/ldconfig -n libobjc-multilib-32
+%post  -p /sbin/ldconfig -n libobjc-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n libobjc-multilib-%{multilib2}
 %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 libquadmath-multilib-32
+%postun        -p /sbin/ldconfig -n libquadmath-multilib-32
+%post  -p /sbin/ldconfig -n libquadmath-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n libquadmath-multilib-%{multilib2}
 %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 libgo-multilib-32
+%postun        -p /sbin/ldconfig -n libgo-multilib-32
+%post  -p /sbin/ldconfig -n libgo-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n libgo-multilib-%{multilib2}
 %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 libasan-multilib-32
+%postun        -p /sbin/ldconfig -n libasan-multilib-32
+%post  -p /sbin/ldconfig -n libasan-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n libasan-multilib-%{multilib2}
 %post  -p /sbin/ldconfig -n liblsan
 %postun        -p /sbin/ldconfig -n liblsan
+%post  -p /sbin/ldconfig -n liblsan-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n liblsan-multilib-%{multilib2}
 %post  -p /sbin/ldconfig -n libtsan
 %postun        -p /sbin/ldconfig -n libtsan
+%post  -p /sbin/ldconfig -n libtsan-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n libtsan-multilib-%{multilib2}
 %post   -p /sbin/ldconfig -n libubsan
 %postun -p /sbin/ldconfig -n libubsan
-%post   -p /sbin/ldconfig -n libubsan-multilib
-%postun -p /sbin/ldconfig -n libubsan-multilib
+%post   -p /sbin/ldconfig -n libubsan-multilib-32
+%postun -p /sbin/ldconfig -n libubsan-multilib-32
+%post   -p /sbin/ldconfig -n libubsan-multilib-%{multilib2}
+%postun -p /sbin/ldconfig -n libubsan-multilib-%{multilib2}
 %post   -p /sbin/ldconfig -n libvtv
 %postun -p /sbin/ldconfig -n libvtv
-%post   -p /sbin/ldconfig -n libvtv-multilib
-%postun -p /sbin/ldconfig -n libvtv-multilib
+%post   -p /sbin/ldconfig -n libvtv-multilib-32
+%postun -p /sbin/ldconfig -n libvtv-multilib-32
+%post   -p /sbin/ldconfig -n libvtv-multilib-%{multilib2}
+%postun -p /sbin/ldconfig -n libvtv-multilib-%{multilib2}
 %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
+%post  -p /sbin/ldconfig -n libatomic-multilib-32
+%postun        -p /sbin/ldconfig -n libatomic-multilib-32
+%post  -p /sbin/ldconfig -n libatomic-multilib-%{multilib2}
+%postun        -p /sbin/ldconfig -n libatomic-multilib-%{multilib2}
 %post  -p /sbin/ldconfig gdb-plugin
 %postun        -p /sbin/ldconfig gdb-plugin
 
@@ -2143,12 +3064,14 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_bindir}/gcov
 %attr(755,root,root) %{_bindir}/gcov-dump
 %attr(755,root,root) %{_bindir}/gcov-tool
+%attr(755,root,root) %{_bindir}/lto-dump
 %{_mandir}/man1/cc.1*
 %{_mandir}/man1/cpp.1*
 %{_mandir}/man1/gcc.1*
 %{_mandir}/man1/gcov.1*
 %{_mandir}/man1/gcov-dump.1*
 %{_mandir}/man1/gcov-tool.1*
+%{_mandir}/man1/lto-dump.1*
 %{_infodir}/cpp.info*
 %{_infodir}/cppinternals.info*
 %{_infodir}/gcc.info*
@@ -2201,12 +3124,14 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/include/syslimits.h
 %{gcclibdir}/include/unwind.h
 %{gcclibdir}/include/varargs.h
-%ifarch %{ix86} %{x8664}
+%ifarch %{ix86} %{x8664} x32
 %{gcclibdir}/include/adxintrin.h
 %{gcclibdir}/include/ammintrin.h
 %{gcclibdir}/include/avx2intrin.h
 %{gcclibdir}/include/avx5124fmapsintrin.h
 %{gcclibdir}/include/avx5124vnniwintrin.h
+%{gcclibdir}/include/avx512bf16intrin.h
+%{gcclibdir}/include/avx512bf16vlintrin.h
 %{gcclibdir}/include/avx512bitalgintrin.h
 %{gcclibdir}/include/avx512bwintrin.h
 %{gcclibdir}/include/avx512cdintrin.h
@@ -2225,6 +3150,8 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/include/avx512vlintrin.h
 %{gcclibdir}/include/avx512vnniintrin.h
 %{gcclibdir}/include/avx512vnnivlintrin.h
+%{gcclibdir}/include/avx512vp2intersectintrin.h
+%{gcclibdir}/include/avx512vp2intersectvlintrin.h
 %{gcclibdir}/include/avx512vpopcntdqintrin.h
 %{gcclibdir}/include/avx512vpopcntdqvlintrin.h
 %{gcclibdir}/include/avxintrin.h
@@ -2240,6 +3167,7 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/include/cpuid.h
 %{gcclibdir}/include/cross-stdarg.h
 %{gcclibdir}/include/emmintrin.h
+%{gcclibdir}/include/enqcmdintrin.h
 %{gcclibdir}/include/f16cintrin.h
 %{gcclibdir}/include/fma4intrin.h
 %{gcclibdir}/include/fmaintrin.h
@@ -2253,8 +3181,8 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/include/mmintrin.h
 %{gcclibdir}/include/mm_malloc.h
 %{gcclibdir}/include/movdirintrin.h
-%{gcclibdir}/include/nmmintrin.h
 %{gcclibdir}/include/mwaitxintrin.h
+%{gcclibdir}/include/nmmintrin.h
 %{gcclibdir}/include/pconfigintrin.h
 %{gcclibdir}/include/pkuintrin.h
 %{gcclibdir}/include/pmmintrin.h
@@ -2269,8 +3197,8 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/include/tmmintrin.h
 %{gcclibdir}/include/vaesintrin.h
 %{gcclibdir}/include/vpclmulqdqintrin.h
-%{gcclibdir}/include/wbnoinvdintrin.h
 %{gcclibdir}/include/waitpkgintrin.h
+%{gcclibdir}/include/wbnoinvdintrin.h
 %{gcclibdir}/include/wmmintrin.h
 %{gcclibdir}/include/x86intrin.h
 %{gcclibdir}/include/xmmintrin.h
@@ -2281,10 +3209,68 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/include/xsavesintrin.h
 %{gcclibdir}/include/xtestintrin.h
 %endif
+%ifarch %{arm}
+%{gcclibdir}/include/arm_acle.h
+%{gcclibdir}/include/arm_bf16.h
+%{gcclibdir}/include/arm_cde.h
+%{gcclibdir}/include/arm_cmse.h
+%{gcclibdir}/include/arm_fp16.h
+%{gcclibdir}/include/arm_mve.h
+%{gcclibdir}/include/arm_mve_types.h
+%{gcclibdir}/include/arm_neon.h
+%{gcclibdir}/include/mmintrin.h
+%{gcclibdir}/include/unwind-arm-common.h
+%endif
+%ifarch aarch64
+%{gcclibdir}/include/arm_acle.h
+%{gcclibdir}/include/arm_bf16.h
+%{gcclibdir}/include/arm_fp16.h
+%{gcclibdir}/include/arm_neon.h
+%{gcclibdir}/include/arm_sve.h
+%endif
+%ifarch ia64
+%{gcclibdir}/include/ia64intrin.h
+%endif
+%ifarch m68k
+%{gcclibdir}/include/math-68881.h
+%endif
+%ifarch mips
+%{gcclibdir}/include/loongson.h
+%{gcclibdir}/include/msa.h
+%endif
+%ifarch powerpc ppc ppc64
+%{gcclibdir}/include/altivec.h
+%{gcclibdir}/include/amo.h
+%{gcclibdir}/include/bmiintrin.h
+%{gcclibdir}/include/bmi2intrin.h
+%{gcclibdir}/include/emmintrin.h
+%{gcclibdir}/include/htmintrin.h
+%{gcclibdir}/include/htmxlintrin.h
+%{gcclibdir}/include/mm_malloc.h
+%{gcclibdir}/include/mmintrin.h
+%{gcclibdir}/include/paired.h
+%{gcclibdir}/include/ppc-asm.h
+%{gcclibdir}/include/ppu_intrinsics.h
+%{gcclibdir}/include/si2vmx.h
+%{gcclibdir}/include/spe.h
+%{gcclibdir}/include/spu2vmx.h
+%{gcclibdir}/include/vec_types.h
+%{gcclibdir}/include/x86intrin.h
+%{gcclibdir}/include/xmmintrin.h
+%endif
+%ifarch s390
+%{gcclibdir}/include/htmintrin.h
+%{gcclibdir}/include/htmxlintrin.h
+%{gcclibdir}/include/s390intrin.h
+%{gcclibdir}/include/vecintrin.h
+%endif
+%ifarch sparc sparcv9 sparc64
+%{gcclibdir}/include/visintrin.h
+%endif
 %{?with_vtv:%{gcclibdir}/include/vtv_*.h}
 
 %if %{with multilib}
-%files multilib
+%files multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_slibdir32}/libgcc_s.so
 %dir %{gcclibdir}/32
@@ -2305,6 +3291,28 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir32}/libssp_nonshared.a
 %endif
 
+%if %{with multilib2}
+%files multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_slibdirm2}/libgcc_s.so
+%dir %{gcclibdir}/%{multilib2}
+%{gcclibdir}/%{multilib2}/crt*.o
+%{?with_vtv:%{gcclibdir}/%{multilib2}/vtv_*.o}
+%{gcclibdir}/%{multilib2}/libgcc.a
+%{gcclibdir}/%{multilib2}/libgcc_eh.a
+%{gcclibdir}/%{multilib2}/libgcov.a
+%{_libdirm2}/libitm.spec
+%{_libdirm2}/libsanitizer.spec
+%attr(755,root,root) %{_libdirm2}/libitm.so
+%attr(755,root,root) %{_libdirm2}/libssp.so
+%{_libdirm2}/libitm.la
+%{_libdirm2}/libitm.a
+%{_libdirm2}/libssp.la
+%{_libdirm2}/libssp.a
+%{_libdirm2}/libssp_nonshared.la
+%{_libdirm2}/libssp_nonshared.a
+%endif
+
 %files -n libgcc
 %defattr(644,root,root,755)
 %doc COPYING.RUNTIME libgcc/ChangeLog
@@ -2315,7 +3323,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %ghost %{_slibdir}/libssp.so.0
 
 %if %{with multilib}
-%files -n libgcc-multilib
+%files -n libgcc-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_slibdir32}/libgcc_s.so.1
 %attr(755,root,root) %{_slibdir32}/libitm.so.*.*.*
@@ -2324,6 +3332,16 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %ghost %{_slibdir32}/libitm.so.1
 %endif
 
+%if %{with multilib2}
+%files -n libgcc-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_slibdirm2}/libgcc_s.so.1
+%attr(755,root,root) %{_slibdirm2}/libitm.so.*.*.*
+%attr(755,root,root) %{_slibdirm2}/libssp.so.*.*.*
+%attr(755,root,root) %ghost %{_slibdirm2}/libssp.so.0
+%attr(755,root,root) %ghost %{_slibdirm2}/libitm.so.1
+%endif
+
 %if %{with gomp}
 %files -n libgomp
 %defattr(644,root,root,755)
@@ -2335,7 +3353,8 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/libgomp.so
 %{_libdir}/libgomp.la
 %{_libdir}/libgomp.spec
-%{gcclibdir}/finclude
+%{?with_fortran:%{gcclibdir}/finclude}
+%{gcclibdir}/include/acc_prof.h
 %{gcclibdir}/include/omp.h
 %{gcclibdir}/include/openacc.h
 %{_infodir}/libgomp.info*
@@ -2345,22 +3364,40 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libgomp.a
 
 %if %{with multilib}
-%files -n libgomp-multilib
+%files -n libgomp-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_slibdir32}/libgomp.so.*.*.*
 %attr(755,root,root) %ghost %{_slibdir32}/libgomp.so.1
 
-%files -n libgomp-multilib-devel
+%files -n libgomp-multilib-32-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libgomp.so
 %{_libdir32}/libgomp.la
 %{_libdir32}/libgomp.spec
-%{gcclibdir}/32/finclude
+%{?with_fortran:%{gcclibdir}/32/finclude}
 
-%files -n libgomp-multilib-static
+%files -n libgomp-multilib-32-static
 %defattr(644,root,root,755)
 %{_libdir32}/libgomp.a
 %endif
+
+%if %{with multilib2}
+%files -n libgomp-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_slibdirm2}/libgomp.so.*.*.*
+%attr(755,root,root) %ghost %{_slibdirm2}/libgomp.so.1
+
+%files -n libgomp-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libgomp.so
+%{_libdirm2}/libgomp.la
+%{_libdirm2}/libgomp.spec
+%{?with_fortran:%{gcclibdir}/%{multilib2}/finclude}
+
+%files -n libgomp-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libgomp.a
+%endif
 %endif
 
 %if %{with ada}
@@ -2373,10 +3410,11 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/libgnat-*.so
 %attr(755,root,root) %{_libdir}/libgnat.so
 %attr(755,root,root) %{gcclibdir}/gnat1
+%{gcclibdir}/ada_target_properties
 %{gcclibdir}/adainclude
 %dir %{gcclibdir}/adalib
 %{gcclibdir}/adalib/*.ali
-%ifarch %{ix86} %{x8664}
+%ifarch %{ix86} %{x8664} x32
 %{gcclibdir}/adalib/libgmem.a
 %{gcclibdir}/adalib/libgnarl_pic.a
 %{gcclibdir}/adalib/libgnat_pic.a
@@ -2386,19 +3424,35 @@ rm -rf $RPM_BUILD_ROOT
 %{_infodir}/gnat_ugn.info*
 
 %if %{with multilib}
-%files ada-multilib
+%files ada-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libgnarl-*.so
 %attr(755,root,root) %{_libdir32}/libgnarl.so
 %attr(755,root,root) %{_libdir32}/libgnat-*.so
 %attr(755,root,root) %{_libdir32}/libgnat.so
+%{gcclibdir}/32/ada_target_properties
 %{gcclibdir}/32/adainclude
 %dir %{gcclibdir}/32/adalib
 %{gcclibdir}/32/adalib/*.ali
-%ifarch %{ix86} %{x8664}
+%ifarch %{ix86} %{x8664} x32
 %{gcclibdir}/32/adalib/libgmem.a
 %endif
 %endif
+
+%if %{with multilib2}
+%files ada-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libgnarl-*.so
+%attr(755,root,root) %{_libdirm2}/libgnarl.so
+%attr(755,root,root) %{_libdirm2}/libgnat-*.so
+%attr(755,root,root) %{_libdirm2}/libgnat.so
+%{gcclibdir}/%{multilib2}/ada_target_properties
+%{gcclibdir}/%{multilib2}/adainclude
+%dir %{gcclibdir}/%{multilib2}/adalib
+%{gcclibdir}/%{multilib2}/adalib/*.ali
+%ifarch %{ix86} %{x8664} x32
+%{gcclibdir}/%{multilib2}/adalib/libgmem.a
+%endif
 %endif
 
 %files -n libgnat
@@ -2414,14 +3468,14 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/adalib/libgnat.a
 
 %if %{with multilib}
-%files -n libgnat-multilib
+%files -n libgnat-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libgnarl-*.so.1
 %attr(755,root,root) %{_libdir32}/libgnarl.so.1
 %attr(755,root,root) %{_libdir32}/libgnat-*.so.1
 %attr(755,root,root) %{_libdir32}/libgnat.so.1
 
-%files -n libgnat-multilib-static
+%files -n libgnat-multilib-32-static
 %defattr(644,root,root,755)
 %{gcclibdir}/32/adalib/libgnarl.a
 %{gcclibdir}/32/adalib/libgnat.a
@@ -2432,6 +3486,26 @@ rm -rf $RPM_BUILD_ROOT
 %endif
 %endif
 
+%if %{with multilib2}
+%files -n libgnat-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libgnarl-*.so.1
+%attr(755,root,root) %{_libdirm2}/libgnarl.so.1
+%attr(755,root,root) %{_libdirm2}/libgnat-*.so.1
+%attr(755,root,root) %{_libdirm2}/libgnat.so.1
+
+%files -n libgnat-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{gcclibdir}/%{multilib2}/adalib/libgnarl.a
+%{gcclibdir}/%{multilib2}/adalib/libgnat.a
+%ifarch %{x8664}
+# these exist only when host is x86_64???
+%{gcclibdir}/%{multilib2}/adalib/libgnarl_pic.a
+%{gcclibdir}/%{multilib2}/adalib/libgnat_pic.a
+%endif
+%endif
+%endif
+
 %if %{with cxx}
 %files c++
 %defattr(644,root,root,755)
@@ -2446,12 +3520,19 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/g++.1*
 
 %if %{with multilib}
-%files c++-multilib
+%files c++-multilib-32
 %defattr(644,root,root,755)
 %{_libdir32}/libsupc++.la
 %{_libdir32}/libsupc++.a
 %endif
 
+%if %{with multilib2}
+%files c++-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%{_libdirm2}/libsupc++.la
+%{_libdirm2}/libsupc++.a
+%endif
+
 %files -n libstdc++ -f libstdc++.lang
 %defattr(644,root,root,755)
 %doc libstdc++-v3/{ChangeLog,README}
@@ -2476,23 +3557,41 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libstdc++.a
 
 %if %{with multilib}
-%files -n libstdc++-multilib
+%files -n libstdc++-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libstdc++.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir32}/libstdc++.so.%{cxx_sover}
 
-%files -n libstdc++-multilib-devel
+%files -n libstdc++-multilib-32-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libstdc++.so
 %{_libdir32}/libstdc++.la
 %{_libdir32}/libstdc++fs.a
 %{_libdir32}/libstdc++fs.la
 
-%files -n libstdc++-multilib-static
+%files -n libstdc++-multilib-32-static
 %defattr(644,root,root,755)
 %{_libdir32}/libstdc++.a
 %endif
 
+%if %{with multilib2}
+%files -n libstdc++-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libstdc++.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libstdc++.so.%{cxx_sover}
+
+%files -n libstdc++-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libstdc++.so
+%{_libdirm2}/libstdc++.la
+%{_libdirm2}/libstdc++fs.a
+%{_libdirm2}/libstdc++fs.la
+
+%files -n libstdc++-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libstdc++.a
+%endif
+
 %if %{with python}
 %files -n libstdc++-gdb
 %defattr(644,root,root,755)
@@ -2504,6 +3603,9 @@ rm -rf $RPM_BUILD_ROOT
 %if %{with multilib}
 %{_datadir}/gdb/auto-load%{_libdir32}/libstdc++.so.%{cxx_sover}.*.*-gdb.py
 %endif
+%if %{with multilib2}
+%{_datadir}/gdb/auto-load%{_libdirm2}/libstdc++.so.%{cxx_sover}.*.*-gdb.py
+%endif
 %endif
 
 %if %{with apidocs}
@@ -2534,7 +3636,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/gfortran.1*
 
 %if %{with multilib}
-%files fortran-multilib
+%files fortran-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libgfortran.so
 %{_libdir32}/libgfortran.spec
@@ -2545,6 +3647,18 @@ rm -rf $RPM_BUILD_ROOT
 #%{gcclibdir}/32/libgfortranbegin.a
 %endif
 
+%if %{with multilib2}
+%files fortran-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libgfortran.so
+%{_libdirm2}/libgfortran.spec
+%{_libdirm2}/libgfortran.la
+%{gcclibdir}/%{multilib2}/libcaf_single.a
+%{gcclibdir}/%{multilib2}/libcaf_single.la
+#%{gcclibdir}/%{multilib2}/libgfortranbegin.la
+#%{gcclibdir}/%{multilib2}/libgfortranbegin.a
+%endif
+
 %files -n libgfortran
 %defattr(644,root,root,755)
 %doc libgfortran/{AUTHORS,README,ChangeLog}
@@ -2556,16 +3670,28 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libgfortran.a
 
 %if %{with multilib}
-%files -n libgfortran-multilib
+%files -n libgfortran-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libgfortran.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir32}/libgfortran.so.5
 
-%files -n libgfortran-multilib-static
+%files -n libgfortran-multilib-32-static
 %defattr(644,root,root,755)
 %{_libdir32}/libgfortran.a
 %endif
 
+%if %{with multilib2}
+%files -n libgfortran-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libgfortran.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libgfortran.so.5
+
+%files -n libgfortran-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libgfortran.a
+%endif
+
+%if %{with quadmath}
 %files -n libquadmath
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/libquadmath.so.*.*.*
@@ -2584,20 +3710,37 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libquadmath.a
 
 %if %{with multilib}
-%files -n libquadmath-multilib
+%files -n libquadmath-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libquadmath.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir32}/libquadmath.so.0
 
-%files -n libquadmath-multilib-devel
+%files -n libquadmath-multilib-32-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libquadmath.so
 %{_libdir32}/libquadmath.la
 
-%files -n libquadmath-multilib-static
+%files -n libquadmath-multilib-32-static
 %defattr(644,root,root,755)
 %{_libdir32}/libquadmath.a
 %endif
+
+%if %{with multilib2}
+%files -n libquadmath-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libquadmath.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libquadmath.so.0
+
+%files -n libquadmath-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libquadmath.so
+%{_libdirm2}/libquadmath.la
+
+%files -n libquadmath-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libquadmath.a
+%endif
+%endif
 %endif
 
 %if %{with gcc_libffi}
@@ -2622,21 +3765,38 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libffi.a
 
 %if %{with multilib}
-%files -n libffi-multilib
+%files -n libffi-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libffi.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir32}/libffi.so.4
 
-%files -n libffi-multilib-devel
+%files -n libffi-multilib-32-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libffi.so
 %{_libdir32}/libffi.la
 %{_pkgconfigdir32}/libffi.pc
 
-%files -n libffi-multilib-static
+%files -n libffi-multilib-32-static
 %defattr(644,root,root,755)
 %{_libdir32}/libffi.a
 %endif
+
+%if %{with multilib2}
+%files -n libffi-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libffi.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libffi.so.4
+
+%files -n libffi-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libffi.so
+%{_libdirm2}/libffi.la
+%{_pkgconfigdirm2}/libffi.pc
+
+%files -n libffi-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libffi.a
+%endif
 %endif
 
 %if %{with objc}
@@ -2649,11 +3809,17 @@ rm -rf $RPM_BUILD_ROOT
 %{gcclibdir}/include/objc
 
 %if %{with multilib}
-%files objc-multilib
+%files objc-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libobjc.so
 %{_libdir32}/libobjc.la
 %endif
+
+%if %{with multilib2}
+%files objc-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libobjc.so
+%{_libdirm2}/libobjc.la
 %endif
 
 %if %{with objcxx}
@@ -2674,16 +3840,28 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libobjc.a
 
 %if %{with multilib}
-%files -n libobjc-multilib
+%files -n libobjc-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libobjc.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir32}/libobjc.so.4
 
-%files -n libobjc-multilib-static
+%files -n libobjc-multilib-32-static
 %defattr(644,root,root,755)
 %{_libdir32}/libobjc.a
 %endif
 
+%if %{with multilib2}
+%files -n libobjc-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libobjc.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libobjc.so.4
+
+%files -n libobjc-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libobjc.a
+%endif
+%endif
+
 %if %{with go}
 %files go
 %defattr(644,root,root,755)
@@ -2704,17 +3882,24 @@ rm -rf $RPM_BUILD_ROOT
 %{_infodir}/gccgo.info*
 
 %if %{with multilib}
-%files go-multilib
+%files go-multilib-32
 %defattr(644,root,root,755)
 %dir %{_libdir32}/go
 %{_libdir32}/go/%{version}
 %endif
 
+%if %{with multilib2}
+%files go-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%dir %{_libdirm2}/go
+%{_libdirm2}/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.14
+%attr(755,root,root) %ghost %{_libdir}/libgo.so.16
 
 %files -n libgo-devel
 %defattr(644,root,root,755)
@@ -2728,22 +3913,40 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libgo.a
 
 %if %{with multilib}
-%files -n libgo-multilib
+%files -n libgo-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libgo.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libgo.so.14
+%attr(755,root,root) %ghost %{_libdir32}/libgo.so.16
 
-%files -n libgo-multilib-devel
+%files -n libgo-multilib-32-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libgo.so
 %{_libdir32}/libgo.la
 %{_libdir32}/libgobegin.a
 %{_libdir32}/libgolibbegin.a
 
-%files -n libgo-multilib-static
+%files -n libgo-multilib-32-static
 %defattr(644,root,root,755)
 %{_libdir32}/libgo.a
 %endif
+
+%if %{with multilib2}
+%files -n libgo-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libgo.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libgo.so.16
+
+%files -n libgo-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libgo.so
+%{_libdirm2}/libgo.la
+%{_libdirm2}/libgobegin.a
+%{_libdirm2}/libgolibbegin.a
+
+%files -n libgo-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libgo.a
+%endif
 %endif
 
 %if %{with Xsan}
@@ -2751,7 +3954,7 @@ rm -rf $RPM_BUILD_ROOT
 %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.5
+%attr(755,root,root) %ghost %{_libdir}/libasan.so.6
 
 %files -n libasan-devel
 %defattr(644,root,root,755)
@@ -2765,21 +3968,38 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libasan.a
 
 %if %{with multilib}
-%files -n libasan-multilib
+%files -n libasan-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libasan.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libasan.so.5
+%attr(755,root,root) %ghost %{_libdir32}/libasan.so.6
 
-%files -n libasan-multilib-devel
+%files -n libasan-multilib-32-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libasan.so
 %{_libdir32}/libasan_preinit.o
 %{_libdir32}/libasan.la
 
-%files -n libasan-multilib-static
+%files -n libasan-multilib-32-static
 %defattr(644,root,root,755)
 %{_libdir32}/libasan.a
 %endif
+
+%if %{with multilib2}
+%files -n libasan-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libasan.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libasan.so.6
+
+%files -n libasan-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libasan.so
+%{_libdirm2}/libasan_preinit.o
+%{_libdirm2}/libasan.la
+
+%files -n libasan-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libasan.a
+%endif
 %endif
 
 %if %{with lsan_m0}
@@ -2800,6 +4020,27 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/liblsan.a
 %endif
 
+%if %{with multilib2} && %{with lsan_m2}
+%files -n liblsan-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/liblsan.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/liblsan.so.0
+
+%files -n liblsan-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/liblsan.so
+%{_libdirm2}/liblsan_preinit.o
+%{_libdirm2}/liblsan.la
+# it looks like duplicate of file from liblsan-devel, but actually it isn't:
+# these packages are mutually exclusive
+# (either liblsan-devel.x86_64 or liblsan-multilib-64.x32)
+%{gcclibdir}/include/sanitizer/lsan_interface.h
+
+%files -n liblsan-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/liblsan.a
+%endif
+
 %if %{with tsan_m0}
 %files -n libtsan
 %defattr(644,root,root,755)
@@ -2819,6 +4060,28 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libtsan.a
 %endif
 
+%if %{with multilib2} && %{with tsan_m2}
+%files -n libtsan-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%doc libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
+%attr(755,root,root) %{_libdirm2}/libtsan.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libtsan.so.0
+
+%files -n libtsan-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libtsan.so
+%{_libdirm2}/libtsan_preinit.o
+%{_libdirm2}/libtsan.la
+# it looks like duplicate of file from libtsan-devel, but actually it isn't:
+# these packages are mutually exclusive
+# (either liblsan-devel.x86_64 or liblsan-multilib-64.x32)
+%{gcclibdir}/include/sanitizer/tsan_interface.h
+
+%files -n libtsan-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libtsan.a
+%endif
+
 %if %{with Xsan}
 %files -n libubsan
 %defattr(644,root,root,755)
@@ -2835,20 +4098,36 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libubsan.a
 
 %if %{with multilib}
-%files -n libubsan-multilib
+%files -n libubsan-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libubsan.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir32}/libubsan.so.1
 
-%files -n libubsan-multilib-devel
+%files -n libubsan-multilib-32-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libubsan.so
 %{_libdir32}/libubsan.la
 
-%files -n libubsan-multilib-static
+%files -n libubsan-multilib-32-static
 %defattr(644,root,root,755)
 %{_libdir32}/libubsan.a
 %endif
+
+%if %{with multilib2}
+%files -n libubsan-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libubsan.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libubsan.so.1
+
+%files -n libubsan-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libubsan.so
+%{_libdirm2}/libubsan.la
+
+%files -n libubsan-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libubsan.a
+%endif
 %endif
 
 %if %{with vtv}
@@ -2868,20 +4147,36 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libvtv.a
 
 %if %{with multilib}
-%files -n libvtv-multilib
+%files -n libvtv-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libvtv.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir32}/libvtv.so.0
 
-%files -n libvtv-multilib-devel
+%files -n libvtv-multilib-32-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libvtv.so
 %{_libdir32}/libvtv.la
 
-%files -n libvtv-multilib-static
+%files -n libvtv-multilib-32-static
 %defattr(644,root,root,755)
 %{_libdir32}/libvtv.a
 %endif
+
+%if %{with multilib2}
+%files -n libvtv-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libvtv.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libvtv.so.0
+
+%files -n libvtv-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libvtv.so
+%{_libdirm2}/libvtv.la
+
+%files -n libvtv-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libvtv.a
+%endif
 %endif
 
 %if %{with atomic}
@@ -2901,20 +4196,36 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libatomic.a
 
 %if %{with multilib}
-%files -n libatomic-multilib
+%files -n libatomic-multilib-32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libatomic.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir32}/libatomic.so.1
 
-%files -n libatomic-multilib-devel
+%files -n libatomic-multilib-32-devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir32}/libatomic.so
 %{_libdir32}/libatomic.la
 
-%files -n libatomic-multilib-static
+%files -n libatomic-multilib-32-static
 %defattr(644,root,root,755)
 %{_libdir32}/libatomic.a
 %endif
+
+%if %{with multilib2}
+%files -n libatomic-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libatomic.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libatomic.so.1
+
+%files -n libatomic-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libatomic.so
+%{_libdirm2}/libatomic.la
+
+%files -n libatomic-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libatomic.a
+%endif
 %endif
 
 %files gdb-plugin