-# TODO: missing info patch parts
# 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!
+#
# TODO:
-# - gconf peer? (but libgcj needs split anyway)
+# - gconf peer? (BR: GConf2-devel >= 2.6.0) (but libgcj needs split anyway)
+# - gstreamer peer? (BR: gstreamer-devel, gstreamer-plugins-base-devel >= 0.10.10)
+# - restore qt peer?
# - package?
# /usr/bin/gjdoc [BR: antlr.jar] (but see gjdoc package, there are some additional jars?)
# /usr/share/man/man1/gjdoc.1.gz
+# - revise obsoletes for new libmpx packages!
#
# Conditional build:
# - languages:
# - 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 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 and aot-compile for java
%bcond_with gcc_libffi # packaging gcc libffi for system usage
%undefine with_qt
%endif
-%ifarch sparc64
-# used to be broken (to be verified if needed)
+%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
%define with_vtv 1
%endif
-%define major_ver 4.9
-%define minor_ver 2
-%define major_ecj_ver 4.9
+%define major_ver 6
+%define minor_ver 4.0
+%define ecj_ver 4.9
# class data version seen with file(1) that this jvm is able to load
%define _classdataversion 50.0
-%define gcj_soname_ver 15
+%define gcj_soname_ver 17
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
Summary(pt_BR.UTF-8): Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
Name: gcc
Version: %{major_ver}.%{minor_ver}
-Release: 5
+Release: 1
Epoch: 6
License: GPL v3+
Group: Development/Languages
-Source0: https://ftp.gnu.org/pub/gnu/gcc/gcc-%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5: 4df8ee253b7f3863ad0b86359cd39c43
+Source0: https://ftp.gnu.org/pub/gnu/gcc/gcc-%{version}/%{name}-%{version}.tar.xz
+# Source0-md5: 11ba51a0cfb8471927f387c8895fe232
Source1: %{name}-optimize-la.pl
-Source2: ftp://sourceware.org/pub/java/ecj-%{major_ecj_ver}.jar
-# Source2-md5: 7339f199ba11c941890031fd9981d7be
# check libffi version with libffi/configure.ac
Source3: libffi.pc.in
-# svn diff -x --ignore-eol-style --force svn://gcc.gnu.org/svn/gcc/tags/gcc_4_9_2_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch > gcc-branch.diff
+Source4: branch.sh
+# use branch.sh to update glibc-branch.diff
Patch100: %{name}-branch.diff
-# Patch100-md5: 1f1a11566ddf413cca96fbb04fd790d4
+# Patch100-md5: 15e56f8d7ba9be17cd5d1595c5b3dde5
Patch0: %{name}-info.patch
-Patch1: %{name}-cloog.patch
Patch2: %{name}-nodebug.patch
Patch3: %{name}-ada-link.patch
Patch4: %{name}-ada-x32.patch
-Patch6: %{name}-pr61164.patch
Patch7: %{name}-libjava-multilib.patch
Patch8: %{name}-enable-java-awt-qt.patch
Patch10: %{name}-moresparcs.patch
Patch11: %{name}-install-libffi.patch
URL: http://gcc.gnu.org/
BuildRequires: autoconf >= 2.64
-%{?with_tests:BuildRequires: autogen}
-BuildRequires: automake >= 1:1.9.3
-# binutils 2.17.50.0.9 or newer are required for fixing PR middle-end/20218.
-BuildRequires: binutils >= 3:2.17.50.0.9-1
+%{?with_tests:BuildRequires: autogen >= 5.5.4}
+BuildRequires: automake >= 1:1.11.1
+BuildRequires: binutils >= 3:2.23
BuildRequires: bison
BuildRequires: chrpath >= 0.13-2
-BuildRequires: cloog-isl-devel >= 0.17.0
-BuildRequires: cloog-isl-devel < 0.19
-%{?with_tests:BuildRequires: dejagnu}
+%{?with_tests:BuildRequires: dejagnu >= 1.4.4}
BuildRequires: elfutils-devel >= 0.145-1
BuildRequires: fileutils >= 4.0.41
-BuildRequires: flex
+BuildRequires: flex >= 2.5.4
%if %{with ada}
BuildRequires: gcc(ada)
BuildRequires: gcc-ada
%endif
-BuildRequires: gettext-tools
+BuildRequires: gdb
+BuildRequires: gettext-tools >= 0.14.5
BuildRequires: glibc-devel >= 6:2.4-1
%if %{with multilib}
# Formerly known as gcc(multilib)
BuildRequires: glibc-devel(sparcv9)
%endif
%endif
-BuildRequires: gmp-c++-devel >= 4.1
-BuildRequires: gmp-devel >= 4.1
-BuildRequires: isl-devel >= 0.13
-BuildRequires: libmpc-devel
-BuildRequires: mpfr-devel >= 2.3.0
-BuildRequires: ppl-devel >= 0.11
+BuildRequires: gmp-c++-devel >= 4.3.2
+BuildRequires: gmp-devel >= 4.3.2
+BuildRequires: isl-devel >= 0.15
+BuildRequires: java-ecj >= %{ecj_ver}
+BuildRequires: libmpc-devel >= 0.8.1
+BuildRequires: mpfr-devel >= 2.4.2
%if %{with python}
BuildRequires: python-devel
BuildRequires: rpm-pythonprov
%endif
BuildRequires: rpmbuild(macros) >= 1.211
-BuildRequires: texinfo >= 4.1
+BuildRequires: texinfo >= 4.7
BuildRequires: zlib-devel
%if %{with java}
%{?with_alsa:BuildRequires: alsa-lib-devel}
BuildRequires: dssi-devel
BuildRequires: jack-audio-connection-kit-devel
%endif
+BuildRequires: libtool >= 2:2
BuildRequires: libxml2-devel >= 1:2.6.8
BuildRequires: libxslt-devel >= 1.1.11
BuildRequires: perl-base
BuildRequires: unzip
BuildRequires: zip
%if %{with gtk}
-BuildRequires: cairo-devel >= 0.5.0
-BuildRequires: gtk+2-devel >= 2:2.4.0
-BuildRequires: libart_lgpl-devel
+BuildRequires: cairo-devel >= 1.1.8
+BuildRequires: freetype-devel >= 2
+BuildRequires: gdk-pixbuf2-devel >= 2.0
+BuildRequires: gtk+2-devel >= 2:2.8
+BuildRequires: libart_lgpl-devel >= 2.1
BuildRequires: pango-devel
+BuildRequires: xorg-lib-libXrandr-devel
+BuildRequires: xorg-lib-libXrender-devel
BuildRequires: xorg-lib-libXt-devel
BuildRequires: xorg-lib-libXtst-devel
%endif
%if %{with qt}
-BuildRequires: QtGui-devel >= 4.0.1
-BuildRequires: qt4-build >= 4.0.1
+BuildRequires: QtCore-devel >= 4.1.0
+BuildRequires: QtGui-devel >= 4.1.0
+BuildRequires: qt4-build >= 4.1.0
%endif
%{?with_mozilla:BuildRequires: xulrunner-devel >= 1.8.1.3-1.20070321.5}
%endif
BuildConflicts: pdksh < 5.2.14-50
Requires: binutils >= 3:2.23
+Requires: gmp >= 4.3.2
+Requires: isl >= 0.15
Requires: libgcc = %{epoch}:%{version}-%{release}
+Requires: libmpc >= 0.8.1
+Requires: mpfr >= 2.4.2
Provides: cpp = %{epoch}:%{version}-%{release}
%{?with_ada:Provides: gcc(ada)}
Obsoletes: cpp
# receiving non constant format strings
%define Werror_cflags %{nil}
-%define skip_post_check_so '.*(libgo|libxmlj|lib-gnu-awt-xlib)\.so.*'
+%define skip_post_check_so '.*(libcc1plugin|libgo|libxmlj|lib-gnu-awt-xlib|libmpxwrappers)\.so.*'
+# private symbols
+%define _noautoreq .*\(GLIBC_PRIVATE\)
%description
A compiler aimed at integrating all the optimizations and features
Summary(pl.UTF-8): Biblioteka uruchomieniowa rozszerzeń Cilk Plus dla GCC
License: BSD
Group: Libraries
+Requires: libstdc++ = %{epoch}:%{version}-%{release}
%description -n libcilkrts
This package contains the Cilk Plus C/C++ language extensions runtime
Summary(pl.UTF-8): Biblioteka uruchomieniowa rozszerzeń Cilk Plus dla GCC - wersja 32-bitowa
License: BSD
Group: Libraries
+Requires: libstdc++-multilib-32 = %{epoch}:%{version}-%{release}
Obsoletes: libcilkrts-multilib
%description -n libcilkrts-multilib-32
Summary(pl.UTF-8): Biblioteka uruchomieniowa rozszerzeń Cilk Plus dla GCC - wersja %{m2_desc}
License: BSD
Group: Libraries
+Requires: libstdc++-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
%description -n libcilkrts-multilib-%{multilib2}
This package contains the Cilk Plus C/C++ language extensions runtime
Summary(pl.UTF-8): Biblioteki standardowe Ady
License: GPL v3+ with GCC Runtime Library Exception v3.1
Group: Libraries
+Requires: libgcc = %{epoch}:%{version}-%{release}
Obsoletes: gnat
Obsoletes: libgnat1
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-32 = %{epoch}:%{version}-%{release}
Obsoletes: libgnat-multilib
%description -n libgnat-multilib-32
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
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}
Obsoletes: libg2c
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-32 = %{epoch}:%{version}-%{release}
Requires: libquadmath-multilib-32 = %{epoch}:%{version}-%{release}
Obsoletes: libgfortran-multilib
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
Summary(pl.UTF-8): Obsługa języka Java dla GCC
Group: Development/Languages/Java
Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: java-ecj >= %{ecj_ver}
Requires: libgcj-devel = %{epoch}:%{version}-%{release}
Provides: gcc-java-tools
Provides: gcj = %{epoch}:%{version}-%{release}
-Obsoletes: eclipse-ecj
Obsoletes: gcc-java-tools
Obsoletes: java-gnu-classpath-tools
Group: Libraries
Requires: jpackage-utils
Requires: libstdc++ = %{epoch}:%{version}-%{release}
+Requires: libxml2 >= 1:2.6.8
+Requires: libxslt >= 1.1.11
+%if %{with gtk}
+Requires: cairo >= 1.1.8
+Requires: gtk+2 >= 2:2.8
+Requires: libart_lgpl >= 2.1
+%endif
+%if %{with qt}
+Requires: QtCore >= 4.1.0
+Requires: QtGui >= 4.1.0
+%endif
Provides: java(ClassDataVersion) = %{_classdataversion}
Obsoletes: libgcj3
Summary(pl.UTF-8): Biblioteka obiektowego C (Objective C)
License: GPL v3+ with GCC Runtime Library Exception v3.1
Group: Libraries
+Requires: libgcc = %{epoch}:%{version}-%{release}
Obsoletes: libobjc1
%description -n libobjc
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-32 = %{epoch}:%{version}-%{release}
Obsoletes: libobjc-multilib
%description -n libobjc-multilib-32
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.
Summary(pl.UTF-8): Biblioteka Address Sanitizer do kontroli adresów
License: BSD-like or MIT
Group: Libraries
+Requires: libstdc++ = %{epoch}:%{version}-%{release}
%description -n libasan
This package contains the Address Sanitizer library which is used for
Summary(pl.UTF-8): Biblioteka Address Sanitizer do kontroli adresów - wersja 32-bitowa
License: BSD-like or MIT
Group: Libraries
+Requires: libstdc++-multilib-32 = %{epoch}:%{version}-%{release}
Obsoletes: libasan-multilib
%description -n libasan-multilib-32
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-32 = %{epoch}:%{version}-%{release}
Obsoletes: libasan-multilib-devel
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
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
Summary(pl.UTF-8): Biblioteka Leak Sanitizer do kontroli wycieków
License: BSD-like or MIT
Group: Libraries
+Requires: libstdc++ = %{epoch}:%{version}-%{release}
%description -n liblsan
This package contains the Leak Sanitizer library which is used for
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
Summary(pl.UTF-8): Biblioteka Thread Sanitizer do kontroli wielowątkowości
License: BSD-like or MIT
Group: Libraries
+Requires: libstdc++ = %{epoch}:%{version}-%{release}
%description -n libtsan
This package contains the Thread Sanitizer library which is used for
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
Summary(pl.UTF-8): Biblioteka Undefined Behavior Sanitizer do kontroli nieokreślonych zachowań
License: BSD-like or MIT
Group: Libraries
+Requires: libstdc++ = %{epoch}:%{version}-%{release}
%description -n libubsan
This package contains the Undefined Behavior Sanitizer library which
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-32 = %{epoch}:%{version}-%{release}
Obsoletes: libubsan-multilib
%description -n libubsan-multilib-32
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
License: GPL v3+ with GCC Runtime Library Exception v3.1
Group: Libraries
URL: https://gcc.gnu.org/wiki/vtv
+Requires: libgcc = %{epoch}:%{version}-%{release}
%description -n libvtv
This package contains the Virtual Table Verification library which
License: GPL v3+ with GCC Runtime Library Exception v3.1
Group: Libraries
URL: https://gcc.gnu.org/wiki/vtv
+Requires: libgcc-multilib-32 = %{epoch}:%{version}-%{release}
%description -n libvtv-multilib-32
This package contains 32-bit version of the Virtual Table Verification
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
%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
+Group: Development/Debuggers
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description gdb-plugin
+This package contains GCC plugin for GDB C expression evaluation.
+
+%description gdb-plugin -l pl.UTF-8
+Ten pakiet zawiera wtyczkę GCC do obliczania wyrażeń języka C w GDB.
+
+%package plugin-devel
+Summary: Support for compiling GCC plugins
+Summary(pl.UTF-8): Obsługa kompilowania wtyczek GCC
+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
+
+%description plugin-devel
+This package contains header files and other support files for
+compiling GCC plugins. The GCC plugin ABI is currently not stable, so
+plugins must be rebuilt any time GCC is updated.
+
+%description plugin-devel -l pl.UTF-8
+Ten pakiet zawiera pliki nagłówkowe oraz inne pozwalające na
+kompilowanie wtyczek GCC. ABI wtyczek GCC nie jest obecnie stabilne,
+więc wtyczki muszą być przebudowywane przy każdej aktualizacji GCC.
+
+# Packages with epoch 0
+# DO NOT MOVE THESE PACKAGES AROUND
+
+%package -n libmpx
+Summary: GCC Memory Protection Extensions language extensions runtime library
+Summary(pl.UTF-8): Biblioteka uruchomieniowa rozszerzeń Memory Protection Extensions dla GCC
+Epoch: 0
+License: BSD
+Group: Libraries
+Requires: libstdc++ = 6:%{version}-%{release}
+
+%description -n libmpx
+This package contains the Memory Protection Extensions C language
+extensions runtime library.
+
+%description -n libmpx -l pl.UTF-8
+Ten pakiet zawiera bibliotekę uruchomieniową rozszerzeń Memory
+Protection Extensions dla języka C.
+
+%package -n libmpx-devel
+Summary: GCC development files for Memory Protection Extensions language extensions
+Summary(pl.UTF-8): Pliki programistyczne GCC dla rozszerzeń Memory Protection Extensions
+Epoch: 0
+License: BSD
+Group: Development/Libraries
+Requires: libmpx = %{version}-%{release}
+
+%description -n libmpx-devel
+This package contains development files for Memory Protection
+Extensions C language extensions.
+
+%description -n libmpx-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne rozszerzeń Memory Protection
+Extensions dla języka C.
+
+%package -n libmpx-static
+Summary: GCC Memory Protection Extensions language extensions static library
+Summary(pl.UTF-8): Biblioteka statyczna rozszerzeń Memory Protection Extensions dla GCC
+Epoch: 0
+License: BSD
+Group: Development/Libraries
+Requires: libmpx-devel = %{version}-%{release}
+
+%description -n libmpx-static
+This package contains Memory Protection Extensions C language
+extensions static library.
+
+%description -n libmpx-static -l pl.UTF-8
+Ten pakiet zawiera bibliotekę statyczną rozszerzeń Memory Protection
+Extensions dla języka C.
+
+%package -n libmpx-multilib-32
+Summary: GCC Memory Protection Extensions language extensions runtime library - 32-bit version
+Summary(pl.UTF-8): Biblioteka uruchomieniowa rozszerzeń Memory Protection Extensions dla GCC - wersja 32-bitowa
+Epoch: 0
+License: BSD
+Group: Libraries
+Requires: libstdc++-multilib-32 = %{version}-%{release}
+Obsoletes: libmpx-multilib
+
+%description -n libmpx-multilib-32
+This package contains the Memory Protection Extensions C language
+extensions runtime library in 32-bit version.
+
+%description -n libmpx-multilib-32 -l pl.UTF-8
+Ten pakiet zawiera bibliotekę uruchomieniową rozszerzeń Memory
+Protection Extensions dla języka C. W tym pakiecie znajduje się wersja
+32-bitowa.
+
+%package -n libmpx-multilib-32-devel
+Summary: GCC development files for Memory Protection Extensions language extensions - 32-bit version
+Summary(pl.UTF-8): Pliki programistyczne GCC dla rozszerzeń Memory Protection Extensions - wersja 32-bitowa
+Epoch: 0
+License: BSD
+Group: Development/Libraries
+Requires: libmpx-devel = %{version}-%{release}
+Requires: libmpx-multilib-32 = %{version}-%{release}
+Obsoletes: libmpx-multilib-devel
+
+%description -n libmpx-multilib-32-devel
+This package contains development files for Memory Protection
+Extensions C language extensions in 32-bit version.
+
+%description -n libmpx-multilib-32-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne rozszerzeń Memory Protection
+Extensions dla języka C. W tym pakiecie znajduje się wersja 32-bitowa.
+
+%package -n libmpx-multilib-32-static
+Summary: GCC Memory Protection Extensions language extensions static library - 32-bit version
+Summary(pl.UTF-8): Biblioteka statyczna rozszerzeń Memory Protection Extensions dla GCC - wersja 32-bitowa
+Epoch: 0
+License: BSD
+Group: Development/Libraries
+Requires: libmpx-multilib-32-devel = %{version}-%{release}
+Obsoletes: libmpx-multilib-static
+
+%description -n libmpx-multilib-32-static
+This package contains the Memory Protection Extensions C language
+extensions static library in 32-bit version.
+
+%description -n libmpx-multilib-32-static -l pl.UTF-8
+Ten pakiet zawiera bibliotekę statyczną rozszerzeń Memory Protection
+Extensions dla języka C. W tym pakiecie znajduje się wersja 32-bitowa.
+
+%package -n libmpx-multilib-%{multilib2}
+Summary: GCC Memory Protection Extensions language extensions runtime library
+Summary(pl.UTF-8): Biblioteka uruchomieniowa rozszerzeń Memory Protection Extensions dla GCC
+Epoch: 0
+License: BSD
+Group: Libraries
+Requires: libstdc++-multilib-%{multilib2} = 6:%{version}-%{release}
+
+%description -n libmpx-multilib-%{multilib2}
+This package contains the Memory Protection Extensions C language
+extensions runtime library.
+
+%description -n libmpx-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet zawiera bibliotekę uruchomieniową rozszerzeń Memory
+Protection Extensions dla języka C.
+
+%package -n libmpx-multilib-%{multilib2}-devel
+Summary: GCC development files for Memory Protection Extensions language extensions
+Summary(pl.UTF-8): Pliki programistyczne GCC dla rozszerzeń Memory Protection Extensions
+Epoch: 0
+License: BSD
+Group: Development/Libraries
+Requires: libmpx-devel = %{version}-%{release}
+Requires: libmpx-multilib-%{multilib2} = %{version}-%{release}
+
+%description -n libmpx-multilib-%{multilib2}-devel
+This package contains development files for Memory Protection
+Extensions C language extensions.
+
+%description -n libmpx-multilib-%{multilib2}-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne rozszerzeń Memory Protection
+Extensions dla języka C.
+
+%package -n libmpx-multilib-%{multilib2}-static
+Summary: GCC Memory Protection Extensions language extensions static library
+Summary(pl.UTF-8): Biblioteka statyczna rozszerzeń Memory Protection Extensions dla GCC
+Epoch: 0
+License: BSD
+Group: Development/Libraries
+Requires: libmpx-multilib-%{multilib2}-devel = %{version}-%{release}
+
+%description -n libmpx-multilib-%{multilib2}-static
+This package contains the Memory Protection Extensions C language
+extensions static library.
+
+%description -n libmpx-multilib-%{multilib2}-static -l pl.UTF-8
+Ten pakiet zawiera bibliotekę statyczną rozszerzeń Memory Protection
+Extensions dla języka C.
+
%prep
%setup -q
-%patch100 -p0
+#%patch100 -p0
%patch0 -p1
-%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
-%patch6 -p1
%patch7 -p0
%if %{with qt}
%patch8 -p1
%patch11 -p0
%endif
-mv ChangeLog ChangeLog.general
-
-%if %{with java}
-# see contrib/download_ecj
-cp -p %{SOURCE2} ecj.jar
-%endif
+%{__mv} ChangeLog ChangeLog.general
# override snapshot version.
echo %{version} > gcc/BASE-VER
%endif
%{?with_fortran:--enable-cmath} \
--enable-decimal-float \
- --enable-gnu-unique-object \
--enable-gnu-indirect-function \
+ --enable-gnu-unique-object \
--enable-initfini-array \
+ --disable-isl-version-check \
--enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,fortran}%{?with_objc:,objc}%{?with_objcxx:,obj-c++}%{?with_ada:,ada}%{?with_java:,java}%{?with_go:,go}" \
--%{?with_gomp:en}%{!?with_gomp:dis}able-libgomp \
--enable-libitm \
%ifarch %{x8664} x32
--with-arch-32=x86-64 \
%endif
- --with-cloog \
%ifarch sparc64
--with-cpu=ultrasparc \
%endif
--with-demangler-in-ld \
+ --with-ecj-jar=%{_javadir}/ecj.jar \
--with-gnu-as \
--with-gnu-ld \
--with-linker-hash-style=gnu \
--with-multilib-list=m32,m64,mx32 \
%endif
%endif
- --with-ppl \
- --disable-ppl-version-check \
--with-slibdir=%{_slibdir} \
%ifnarch ia64
--without-system-libunwind \
--enable-libstdcxx-visibility \
--enable-symvers=gnu%{?with_symvers:-versioned-namespace} \
--with-gxx-include-dir=%{_includedir}/c++/%{version} \
+ %{?with_vtv:--enable-vtable-verify} \
%endif
%if %{with java}
%{!?with_alsa:--disable-alsa} \
echo ".so man1/gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
libssp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libssp.so.*.*.*)
-mv $RPM_BUILD_ROOT%{_libdir}/libssp.so.* $RPM_BUILD_ROOT%{_slibdir}
+%{__mv} $RPM_BUILD_ROOT%{_libdir}/libssp.so.* $RPM_BUILD_ROOT%{_slibdir}
ln -sf %{_slibdir}/$libssp $RPM_BUILD_ROOT%{_libdir}/libssp.so
libitm=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libitm.so.*.*.*)
-mv $RPM_BUILD_ROOT%{_libdir}/libitm.so.* $RPM_BUILD_ROOT%{_slibdir}
+%{__mv} $RPM_BUILD_ROOT%{_libdir}/libitm.so.* $RPM_BUILD_ROOT%{_slibdir}
ln -sf %{_slibdir}/$libitm $RPM_BUILD_ROOT%{_libdir}/libitm.so
libgomp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libgomp.so.*.*.*)
-mv $RPM_BUILD_ROOT%{_libdir}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdir}
+%{__mv} $RPM_BUILD_ROOT%{_libdir}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdir}
ln -sf %{_slibdir}/$libgomp $RPM_BUILD_ROOT%{_libdir}/libgomp.so
%if %{with multilib}
libssp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libssp.so.*.*.*)
-mv $RPM_BUILD_ROOT%{_libdir32}/libssp.so.* $RPM_BUILD_ROOT%{_slibdir32}
+%{__mv} $RPM_BUILD_ROOT%{_libdir32}/libssp.so.* $RPM_BUILD_ROOT%{_slibdir32}
ln -sf %{_slibdir32}/$libssp $RPM_BUILD_ROOT%{_libdir32}/libssp.so
libitm=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libitm.so.*.*.*)
-mv $RPM_BUILD_ROOT%{_libdir32}/libitm.so.* $RPM_BUILD_ROOT%{_slibdir32}
+%{__mv} $RPM_BUILD_ROOT%{_libdir32}/libitm.so.* $RPM_BUILD_ROOT%{_slibdir32}
ln -sf %{_slibdir32}/$libitm $RPM_BUILD_ROOT%{_libdir32}/libitm.so
libgomp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libgomp.so.*.*.*)
-mv $RPM_BUILD_ROOT%{_libdir32}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdir32}
+%{__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}
+%{__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}
+%{__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}
+%{__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 ada}
# move ada shared libraries to proper place...
-mv -f $RPM_BUILD_ROOT%{gcclibdir}/adalib/*.so.1 \
+%{__mv} $RPM_BUILD_ROOT%{gcclibdir}/adalib/*.so.1 \
$RPM_BUILD_ROOT%{_libdir}
# check if symlink to be made is valid
test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-%{major_ver}.so.1
ln -sf libgnat-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
ln -sf libgnarl-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
%if %{with multilib}
-mv -f $RPM_BUILD_ROOT%{gcclibdir}/32/adalib/*.so.1 \
+%{__mv} $RPM_BUILD_ROOT%{gcclibdir}/32/adalib/*.so.1 \
$RPM_BUILD_ROOT%{_libdir32}
# check if symlink to be made is valid
test -f $RPM_BUILD_ROOT%{_libdir32}/libgnat-%{major_ver}.so.1
ln -sf libgnarl-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir32}/libgnarl.so
%if %{with multilib2}
-mv -f $RPM_BUILD_ROOT%{gcclibdir}/%{multilib2}/adalib/*.so.1 \
+%{__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
# avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/%{_target_platform}/%{version}
# normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
for f in libitm.la libssp.la libssp_nonshared.la \
- %{?with_cxx:libstdc++.la libsupc++.la} \
+ %{?with_cxx:libstdc++.la libstdc++fs.la libsupc++.la} \
%{?with_fortran:libgfortran.la libquadmath.la} \
%{?with_gomp:libgomp.la} \
%{?with_Xsan:libasan.la libubsan.la} \
%endif
%{?with_objc:libobjc.la};
do
- %{__perl} %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/$f %{_libdir} > $RPM_BUILD_ROOT%{_libdir}/$f.fixed
- mv $RPM_BUILD_ROOT%{_libdir}/$f{.fixed,}
+ file="$RPM_BUILD_ROOT%{_libdir}/$f"
+ %{__perl} %{SOURCE1} "$file" %{_libdir} >"${file}.fixed"
+ %{__mv} "${file}.fixed" "$file"
+
+ # normalize /lib/../lib/ path (libjawt.la)
+ sed -i -e 's#/%{_lib}/\.\./%{_lib}/#/%{_lib}/#g' "$file"
done
%if %{with multilib}
for f in libitm.la libssp.la libssp_nonshared.la \
- %{?with_cxx:libstdc++.la libsupc++.la} \
+ %{?with_cxx:libstdc++.la libstdc++fs.la libsupc++.la} \
%{?with_fortran:libgfortran.la libquadmath.la} \
%{?with_gomp:libgomp.la} \
%{?with_Xsan:libasan.la libubsan.la} \
%{?with_objc:libobjc.la};
do
%{__perl} %{SOURCE1} $RPM_BUILD_ROOT%{_libdir32}/$f %{_libdir32} > $RPM_BUILD_ROOT%{_libdir32}/$f.fixed
- mv $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 libsupc++.la} \
+ %{?with_cxx:libstdc++.la libstdc++fs.la libsupc++.la} \
%{?with_fortran:libgfortran.la libquadmath.la} \
%{?with_gomp:libgomp.la} \
%{?with_Xsan:libasan.la libubsan.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,}
+ %{__mv} $RPM_BUILD_ROOT%{_libdirm2}/$f{.fixed,}
done
%endif
%endif
%{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/install-tools
%{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/include-fixed
-# plugin, .la not needed
-%{__rm} $RPM_BUILD_ROOT%{gcclibdir}/liblto_plugin.la
+# plugins, .la not needed
+%{__rm} $RPM_BUILD_ROOT%{gcclibdir}/liblto_plugin.la \
+ $RPM_BUILD_ROOT%{_libdir}/libcc1.la
+
+%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}} %{?with_multilib2:%{_libdirm2}} ; do
> $LIBPATH/$(basename $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libstdc++.so.*.*.*)-gdb.py
done
install -d $RPM_BUILD_ROOT%{py_sitescriptdir}
-mv $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libstdcxx $RPM_BUILD_ROOT%{py_sitescriptdir}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libstdcxx $RPM_BUILD_ROOT%{py_sitescriptdir}
%if %{with java}
-mv $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libjava $RPM_BUILD_ROOT%{py_sitescriptdir}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libjava $RPM_BUILD_ROOT%{py_sitescriptdir}
%{__sed} -i -e '1s,#!/usr/bin/env python,#!/usr/bin/python,' $RPM_BUILD_ROOT%{_bindir}/aot-compile
%endif
%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
%postun -n libffi-devel -p /sbin/postshell
-/usr/sbin/fix-info-dir -c %{_infodir}
+%post -n libgomp-devel -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun -n libgomp-devel -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
%post -p /sbin/ldconfig -n libcilkrts
%postun -p /sbin/ldconfig -n libcilkrts
%post -p /sbin/ldconfig -n libcilkrts-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 libmpx
+%postun -p /sbin/ldconfig -n libmpx
+%post -p /sbin/ldconfig -n libmpx-multilib-32
+%postun -p /sbin/ldconfig -n libmpx-multilib-32
+%post -p /sbin/ldconfig -n libmpx-multilib-%{multilib2}
+%postun -p /sbin/ldconfig -n libmpx-multilib-%{multilib2}
%post -p /sbin/ldconfig -n libobjc
%postun -p /sbin/ldconfig -n libobjc
%post -p /sbin/ldconfig -n libobjc-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
%files -f gcc.lang
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/gcc-ranlib
#%attr(755,root,root) %{_bindir}/gccbug
%attr(755,root,root) %{_bindir}/gcov
+%attr(755,root,root) %{_bindir}/gcov-tool
%{_mandir}/man1/cc.1*
%{_mandir}/man1/cpp.1*
%{_mandir}/man1/gcc.1*
%{_libdir}/libssp.a
%{_libdir}/libssp_nonshared.la
%{_libdir}/libssp_nonshared.a
-%dir %{_libdir}/gcc
%dir %{_libdir}/gcc/%{_target_platform}
%dir %{gcclibdir}
%{gcclibdir}/libgcc.a
%{gcclibdir}/libgcov.a
%{gcclibdir}/specs
%{gcclibdir}/crt*.o
+%{?with_vtv:%{gcclibdir}/vtv_*.o}
%attr(755,root,root) %{gcclibdir}/cc1
%attr(755,root,root) %{gcclibdir}/collect2
%attr(755,root,root) %{gcclibdir}/lto-wrapper
%attr(755,root,root) %{gcclibdir}/lto1
%attr(755,root,root) %{gcclibdir}/liblto_plugin.so*
-%{gcclibdir}/plugin
%dir %{gcclibdir}/include
%dir %{gcclibdir}/include/sanitizer
%{gcclibdir}/include/sanitizer/common_interface_defs.h
%{gcclibdir}/include/adxintrin.h
%{gcclibdir}/include/ammintrin.h
%{gcclibdir}/include/avx2intrin.h
+%{gcclibdir}/include/avx512bwintrin.h
%{gcclibdir}/include/avx512cdintrin.h
+%{gcclibdir}/include/avx512dqintrin.h
%{gcclibdir}/include/avx512erintrin.h
%{gcclibdir}/include/avx512fintrin.h
+%{gcclibdir}/include/avx512ifmaintrin.h
+%{gcclibdir}/include/avx512ifmavlintrin.h
%{gcclibdir}/include/avx512pfintrin.h
+%{gcclibdir}/include/avx512vbmiintrin.h
+%{gcclibdir}/include/avx512vbmivlintrin.h
+%{gcclibdir}/include/avx512vlbwintrin.h
+%{gcclibdir}/include/avx512vldqintrin.h
+%{gcclibdir}/include/avx512vlintrin.h
%{gcclibdir}/include/avxintrin.h
%{gcclibdir}/include/bmi2intrin.h
%{gcclibdir}/include/bmiintrin.h
%{gcclibdir}/include/bmmintrin.h
+%{gcclibdir}/include/clflushoptintrin.h
+%{gcclibdir}/include/clwbintrin.h
+%{gcclibdir}/include/clzerointrin.h
%{gcclibdir}/include/cpuid.h
%{gcclibdir}/include/cross-stdarg.h
%{gcclibdir}/include/emmintrin.h
%{gcclibdir}/include/mmintrin.h
%{gcclibdir}/include/mm_malloc.h
%{gcclibdir}/include/nmmintrin.h
+%{gcclibdir}/include/mwaitxintrin.h
+%{gcclibdir}/include/pkuintrin.h
%{gcclibdir}/include/pmmintrin.h
%{gcclibdir}/include/popcntintrin.h
%{gcclibdir}/include/prfchwintrin.h
%{gcclibdir}/include/x86intrin.h
%{gcclibdir}/include/xmmintrin.h
%{gcclibdir}/include/xopintrin.h
+%{gcclibdir}/include/xsavecintrin.h
%{gcclibdir}/include/xsaveintrin.h
%{gcclibdir}/include/xsaveoptintrin.h
+%{gcclibdir}/include/xsavesintrin.h
%{gcclibdir}/include/xtestintrin.h
%endif
%ifarch arm
%{gcclibdir}/include/spu2vmx.h
%{gcclibdir}/include/vec_types.h
%endif
+%{?with_vtv:%{gcclibdir}/include/vtv_*.h}
%if %{with multilib}
%files multilib-32
%attr(755,root,root) %{_slibdir32}/libgcc_s.so
%dir %{gcclibdir}/32
%{gcclibdir}/32/crt*.o
+%{?with_vtv:%{gcclibdir}/32/vtv_*.o}
%{gcclibdir}/32/libgcc.a
%{gcclibdir}/32/libgcc_eh.a
%{gcclibdir}/32/libgcov.a
%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
%files -n libgcc
%defattr(644,root,root,755)
-%doc COPYING.RUNTIME ChangeLog
+%doc COPYING.RUNTIME libgcc/ChangeLog
%attr(755,root,root) %{_slibdir}/libgcc_s.so.1
%attr(755,root,root) %{_slibdir}/libitm.so.*.*.*
%attr(755,root,root) %{_slibdir}/libssp.so.*.*.*
%{_libdir}/libgomp.spec
%{gcclibdir}/finclude
%{gcclibdir}/include/omp.h
+%{gcclibdir}/include/openacc.h
%{_infodir}/libgomp.info*
%files -n libgomp-static
%attr(755,root,root) %{_libdir32}/libgomp.so
%{_libdir32}/libgomp.la
%{_libdir32}/libgomp.spec
+%{gcclibdir}/32/finclude
%files -n libgomp-multilib-32-static
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/libgomp.so
%{_libdirm2}/libgomp.la
%{_libdirm2}/libgomp.spec
+%{gcclibdir}/%{multilib2}/finclude
%files -n libgomp-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%endif
%endif
+# see libmpx/configure.tgt for supported architectures
+%ifarch %{x8664} %{ix86}
+%files -n libmpx
+%defattr(644,root,root,755)
+%doc libmpx/ChangeLog
+%attr(755,root,root) %{_libdir}/libmpx.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmpx.so.2
+%attr(755,root,root) %{_libdir}/libmpxwrappers.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmpxwrappers.so.2
+
+%files -n libmpx-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libmpx.so
+%attr(755,root,root) %{_libdir}/libmpxwrappers.so
+%{_libdir}/libmpx.la
+%{_libdir}/libmpxwrappers.la
+%{_libdir}/libmpx.spec
+
+%files -n libmpx-static
+%defattr(644,root,root,755)
+%{_libdir}/libmpx.a
+%{_libdir}/libmpxwrappers.a
+%endif
+
+%if %{with multilib}
+%files -n libmpx-multilib-32
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libmpx.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libmpx.so.2
+%attr(755,root,root) %{_libdir32}/libmpxwrappers.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libmpxwrappers.so.2
+
+%files -n libmpx-multilib-32-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libmpx.so
+%attr(755,root,root) %{_libdir32}/libmpxwrappers.so
+%{_libdir32}/libmpx.la
+%{_libdir32}/libmpxwrappers.la
+%{_libdir32}/libmpx.spec
+
+%files -n libmpx-multilib-32-static
+%defattr(644,root,root,755)
+%{_libdir32}/libmpx.a
+%{_libdir32}/libmpxwrappers.a
+%endif
+
+%if %{with multilib2}
+# see libmpx/configure.tgt for supported architectures;
+# no x32 there as of gcc 6.x
+%if "%{multilib2}" != "x32"
+%files -n libmpx-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libmpx.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libmpx.so.2
+%attr(755,root,root) %{_libdirm2}/libmpxwrappers.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libmpxwrappers.so.2
+
+%files -n libmpx-multilib-%{multilib2}-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libmpx.so
+%attr(755,root,root) %{_libdirm2}/libmpxwrappers.so
+%{_libdirm2}/libmpx.la
+%{_libdirm2}/libmpxwrappers.la
+%{_libdirm2}/libmpx.spec
+
+%files -n libmpx-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libmpx.a
+%{_libdirm2}/libmpxwrappers.a
+%endif
+%endif
+
%if %{with ada}
%files ada
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libstdc++.so
%{_libdir}/libstdc++.la
+%{_libdir}/libstdc++fs.a
+%{_libdir}/libstdc++fs.la
%dir %{_includedir}/c++
%{_includedir}/c++/%{version}
+%{_includedir}/expc++.h
%{_includedir}/extc++.h
%{_includedir}/stdc++.h
%{_includedir}/stdtr1c++.h
%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-32-static
%defattr(644,root,root,755)
%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)
%{_libdir}/libgfortran.la
%{gcclibdir}/libcaf_single.a
%{gcclibdir}/libcaf_single.la
-%{gcclibdir}/libgfortranbegin.la
-%{gcclibdir}/libgfortranbegin.a
+#%{gcclibdir}/libgfortranbegin.la
+#%{gcclibdir}/libgfortranbegin.a
%{_infodir}/gfortran.info*
%{_mandir}/man1/g95.1*
%{_mandir}/man1/gfortran.1*
%{_libdir32}/libgfortran.la
%{gcclibdir}/32/libcaf_single.a
%{gcclibdir}/32/libcaf_single.la
-%{gcclibdir}/32/libgfortranbegin.la
-%{gcclibdir}/32/libgfortranbegin.a
+#%{gcclibdir}/32/libgfortranbegin.la
+#%{gcclibdir}/32/libgfortranbegin.a
%endif
%if %{with multilib2}
%{_libdirm2}/libgfortran.la
%{gcclibdir}/%{multilib2}/libcaf_single.a
%{gcclibdir}/%{multilib2}/libcaf_single.la
-%{gcclibdir}/%{multilib2}/libgfortranbegin.la
-%{gcclibdir}/%{multilib2}/libgfortranbegin.a
+#%{gcclibdir}/%{multilib2}/libgfortranbegin.la
+#%{gcclibdir}/%{multilib2}/libgfortranbegin.a
%endif
%files -n libgfortran
%attr(755,root,root) %{_libdir}/%{gcjdbexecdir}/libxmlj.so*
%{_libdir}/logging.properties
%{_javadir}/libgcj*.jar
-%{_javadir}/ecj.jar
%{_mandir}/man1/gij.1*
%files -n libgcj-devel
%defattr(644,root,root,755)
%doc gcc/go/gofrontend/{LICENSE,PATENTS,README}
%attr(755,root,root) %{_bindir}/gccgo
+%attr(755,root,root) %{_bindir}/go
+%attr(755,root,root) %{_bindir}/gofmt
+%attr(755,root,root) %{gcclibdir}/cgo
%attr(755,root,root) %{gcclibdir}/go1
%dir %{_libdir}/go
%{_libdir}/go/%{version}
+%{_mandir}/man1/go.1*
+%{_mandir}/man1/gofmt.1*
%{_mandir}/man1/gccgo.1*
%{_infodir}/gccgo.info*
%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.5
+%attr(755,root,root) %ghost %{_libdir}/libgo.so.9
%files -n libgo-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libgo.so
%{_libdir}/libgo.la
%{_libdir}/libgobegin.a
+%{_libdir}/libgolibbegin.a
+%{_libdir}/libnetgo.a
%files -n libgo-static
%defattr(644,root,root,755)
%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.5
+%attr(755,root,root) %ghost %{_libdir32}/libgo.so.9
%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
+%{_libdir32}/libnetgo.a
%files -n libgo-multilib-32-static
%defattr(644,root,root,755)
%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.5
+%attr(755,root,root) %ghost %{_libdirm2}/libgo.so.9
%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
+%{_libdirm2}/libnetgo.a
%files -n libgo-multilib-%{multilib2}-static
%defattr(644,root,root,755)
%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.1
+%attr(755,root,root) %ghost %{_libdir}/libasan.so.3
%files -n libasan-devel
%defattr(644,root,root,755)
%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.1
+%attr(755,root,root) %ghost %{_libdir32}/libasan.so.3
%files -n libasan-multilib-32-devel
%defattr(644,root,root,755)
%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.1
+%attr(755,root,root) %ghost %{_libdirm2}/libasan.so.3
%files -n libasan-multilib-%{multilib2}-devel
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdirm2}/liblsan.so
%{_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
%{_libdirm2}/libatomic.a
%endif
%endif
+
+%files gdb-plugin
+%defattr(644,root,root,755)
+%doc libcc1/ChangeLog*
+%attr(755,root,root) %{_libdir}/libcc1.so
+%attr(755,root,root) %{_libdir}/libcc1.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libcc1.so.0
+%attr(755,root,root) %{gcclibdir}/plugin/libcc1plugin.so.*
+
+%files plugin-devel
+%defattr(644,root,root,755)
+%dir %{gcclibdir}/plugin
+%{gcclibdir}/plugin/gengtype
+%{gcclibdir}/plugin/gtype.state
+%{gcclibdir}/plugin/include
+%attr(755,root,root) %{gcclibdir}/plugin/libcc1plugin.la
+%attr(755,root,root) %{gcclibdir}/plugin/libcc1plugin.so