+# NOTE: despite lower soname, libffi is newer than standalone 3.0.9
#
# TODO:
# - gconf peer? (but libgcj needs split anyway)
# - package?
-# /usr/bin/aot-compile
-# /usr/bin/gjdoc
-# /usr/share/man/man1/aot-compile.1.gz
+# /usr/bin/gjdoc [BR: antlr.jar] (but see gjdoc package, there are some additional jars?)
# /usr/share/man/man1/gjdoc.1.gz
-# /usr/share/gcc-4.5.0/python/libstdcxx/__init__.py (gdb stuff?)
-# /usr/share/gcc-4.5.0/python/libstdcxx/v6/__init__.py
-# /usr/share/gcc-4.5.0/python/libstdcxx/v6/printers.py
-# /usr/share/python/aotcompile.py
-# /usr/share/python/classfile.py
-#
-# - thin about cooperate with (or drop some parts of) 'python-gdb' package which also contains:
-# /usr/lib{,64}/libstdc++.so.6.0.*-gdb.py
-# /usr/share/python2.6/site-packages/libstdcxx
-# ^--- our gdb.spec backported the stuff (like fc), so package here and rm in gdb package?
#
# Conditional build:
+# - languages:
%bcond_without ada # build without ADA support
%bcond_without cxx # build without C++ support
%bcond_without fortran # build without Fortran support
-%bcond_without gomp # build without OpenMP support
+%bcond_without go # build without Go support
%bcond_without java # build without Java support
-%bcond_without mudflap # build without Mudflap pointer debugging support
%bcond_without objc # build without Objective-C support
%bcond_without objcxx # build without Objective-C++ support
+# - features:
+%bcond_with cloogpplleg # use cloog-ppl-legacy (0.15.x) backend (instead of cloog-isl)
+%bcond_with cloogppl # use cloog-ppl 0.16.1 backend (instead of cloog-isl)
+%bcond_without gomp # build without OpenMP support
+%bcond_without mudflap # build without Mudflap pointer debugging support
+%bcond_without multilib # build without multilib support (it needs glibc[32&64]-devel)
+%bcond_with profiling # build with profiling
+%bcond_without python # build without libstdc++ printers for gdb and aot-compile for java
+# - libgcj options:
%bcond_without alsa # don't build libgcj ALSA MIDI interface
%bcond_without dssi # don't build libgcj DSSI MIDI interface
%bcond_without gtk # don't build libgcj GTK peer
-%bcond_with mozilla # don't build libgcjwebplugin (needs fix for new xulrunner)
+%bcond_without apidocs # do not build and package API docs
+%bcond_with mozilla # build libgcjwebplugin (needs fix for new xulrunner)
%bcond_with qt # build libgcj Qt peer (currently doesn't build with libtool-2.x)
%bcond_without x # don't build libgcj Xlib-dependent AWTs (incl. GTK/Qt)
-%bcond_without multilib # build without multilib support (it needs glibc[32&64]-devel)
-%bcond_with profiling # build with profiling
+# - other:
%bcond_without bootstrap # omit 3-stage bootstrap
+%bcond_with ppc64_nof # "nof" multilib target in ppc64 compiler
%bcond_with tests # torture gcc
+%bcond_with symvers # enable versioned symbols in libstdc++ (WARNING: changes soname from .so.6 to so.7)
+
+%if %{with symvers}
+%define cxx_sover 7
+%else
+%define cxx_sover 6
+%endif
%if %{without cxx}
+%undefine with_go
%undefine with_java
%undefine with_objcxx
%endif
%undefine with_ada
%endif
-%define major_ver 4.5
-%define minor_ver 1
+%if %{with cloogppl}
+%define cloog_backend ppl
+%else
+%if %{with cloogpplleg}
+%define cloog_backend ppl-legacy
+%else
+%define cloog_backend isl
+%endif
+%endif
+
+%define major_ver 4.7
+%define minor_ver 2
%define major_ecj_ver 4.5
# class data version seen with file(1) that this jvm is able to load
%define _classdataversion 50.0
-%define gcj_soname_ver 11
+%define gcj_soname_ver 13
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: 2
+Release: 6
Epoch: 6
License: GPL v3+
Group: Development/Languages
Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5: 48231a8e33ed6e058a341c53b819de1a
+# Source0-md5: cc308a0891e778cfda7a151ab8a6e762
Source1: %{name}-optimize-la.pl
Source2: ftp://sourceware.org/pub/java/ecj-%{major_ecj_ver}.jar
# Source2-md5: d7cd6a27c8801e66cbaa964a039ecfdb
-# svn diff -x --ignore-eol-style svn://gcc.gnu.org/svn/gcc/tags/gcc_4_5_1_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch > gcc-branch.diff
+# check libffi version with libffi/configure.ac
+Source3: libffi.pc.in
+# svn diff -x --ignore-eol-style --force svn://gcc.gnu.org/svn/gcc/tags/gcc_4_7_2_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch > gcc-branch.diff
Patch100: %{name}-branch.diff
+# Patch100-md5: 34d2f91a58f942cf98a15e73614625c9
Patch0: %{name}-info.patch
-Patch1: %{name}-nolocalefiles.patch
+Patch1: %{name}-cloog.patch
Patch2: %{name}-nodebug.patch
Patch3: %{name}-ada-link.patch
Patch4: %{name}-sparc64-ada_fix.patch
Patch6: %{name}-ppc64-m32-m64-multilib-only.patch
Patch7: %{name}-libjava-multilib.patch
Patch8: %{name}-enable-java-awt-qt.patch
-Patch9: %{name}-hash-style-gnu.patch
Patch10: %{name}-moresparcs.patch
-Patch11: %{name}-build-id.patch
-Patch12: %{name}-plugin-decl-hook.patch
+Patch11: libgo-werror.patch
+Patch13: issue4664051.patch
URL: http://gcc.gnu.org/
-BuildRequires: autoconf
+BuildRequires: autoconf >= 2.64
%{?with_tests:BuildRequires: autogen}
-BuildRequires: automake
+BuildRequires: automake >= 1:1.9.3
# binutils 2.17.50.0.9 or newer are required for fixing PR middle-end/20218.
-BuildRequires: binutils >= 2:2.17.50.0.9-1
+BuildRequires: binutils >= 3:2.17.50.0.9-1
BuildRequires: bison
BuildRequires: chrpath >= 0.13-2
+%if %{with cloogppl}
+BuildRequires: cloog-ppl-devel >= 0.16.1
+%else
+%if %{with cloogpplleg}
+BuildRequires: cloog-ppl-devel >= 0.15.9
+BuildRequires: cloog-ppl-devel < 0.16
+%else
+BuildRequires: cloog-isl-devel >= 0.16.1
+%endif
+%endif
%{?with_tests:BuildRequires: dejagnu}
BuildRequires: elfutils-devel >= 0.145-1
BuildRequires: fileutils >= 4.0.41
%endif
%endif
BuildRequires: gmp-devel >= 4.1
+BuildRequires: gmp-c++-devel >= 4.1
BuildRequires: libmpc-devel
BuildRequires: mpfr-devel >= 2.3.0
+BuildRequires: ppl-devel >= 0.11
+%if %{with python}
+BuildRequires: python-devel
+BuildRequires: rpm-pythonprov
+%endif
BuildRequires: rpmbuild(macros) >= 1.211
BuildRequires: texinfo >= 4.1
BuildRequires: zlib-devel
BuildRequires: perl-base
BuildRequires: perl-tools-pod
BuildRequires: pkgconfig
+BuildRequires: sed >= 4.0
BuildRequires: unzip
BuildRequires: zip
%if %{with gtk}
%endif
%{?with_mozilla:BuildRequires: xulrunner-devel >= 1.8.1.3-1.20070321.5}
%endif
+BuildConflicts: pdksh < 5.2.14-50
Requires: binutils >= 3:2.20.51.0.2
Requires: libgcc = %{epoch}:%{version}-%{release}
Provides: cpp = %{epoch}:%{version}-%{release}
# 32-bit environment on x86-64,ppc64,s390x,sparc64
%define _slibdir32 /lib
%define _libdir32 /usr/lib
+%define _pkgconfigdir32 %{_libdir32}/pkgconfig
%endif
+%define gcclibdir %{_libdir}/gcc/%{_target_platform}/%{version}
+%define gcjdbexecdir gcj-%{version}-%{gcj_soname_ver}
%define filterout -fwrapv -fno-strict-aliasing -fsigned-char
%define filterout_ld -Wl,--as-needed
+# functions with printf format attribute but with special parser and also
+# receiving non constant format strings
+%define Werror_cflags %{nil}
+
+%define skip_post_check_so '.*(libgo|libmudflap|libmudflapth|libxmlj|lib-gnu-awt-xlib)\.so.*'
+
%description
A compiler aimed at integrating all the optimizations and features
necessary for a high-performance and stable development environment.
written in Ada.
%description -n libgnat-multilib-static -l pl.UTF-8
-Ten pakiet zawiera 32-bitowe wersje bibliotek statycznych dla programów
-napisanych w Adzie.
+Ten pakiet zawiera 32-bitowe wersje bibliotek statycznych dla
+programów napisanych w Adzie.
%package c++
Summary: C++ support for gcc
Ten pakiet ten zawiera 32-bitową wersję implementacji GNU biblioteki
standardowej C++.
+%package -n libstdc++-gdb
+Summary: libstdc++ pretty printers for GDB
+Summary(pl.UTF-8): Funkcje wypisujące dane libstdc++ dla GDB
+Group: Development/Debuggers
+
+%description -n libstdc++-gdb
+This package contains Python scripts for GDB pretty printing of the
+libstdc++ types/containers.
+
+%description -n libstdc++-gdb -l pl.UTF-8
+Ten pakiet zawiera skrypty Pythona dla GDB służące do ładnego
+wypisywania typów i kontenerów libstdc++.
+
%package -n libstdc++-devel
Summary: Header files and documentation for C++ development
Summary(de.UTF-8): Header-Dateien zur Entwicklung mit C++
Requires: libstdc++-multilib = %{epoch}:%{version}-%{release}
%description -n libstdc++-multilib-devel
-This package contains the development files for 32-bit version of
-the GNU implementation of the standard C++ library.
+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
Ten pakiet zawiera pliki programistyczne 32-bitowej wersji
%description -n libstdc++-multilib-static -l pl.UTF-8
Statyczna biblioteka standardowa C++ - wersja 32-bitowa.
+%package -n libstdc++-apidocs
+Summary: C++ standard library API documentation
+Summary(pl.UTF-8): Dokumentacja API biblioteki standardowej C++
+Group: Documentation
+
+%description -n libstdc++-apidocs
+API and internal documentation for C++ standard library.
+
+%description -n libstdc++-apidocs -l pl.UTF-8
+Dokumentacja API i wewnętrzna biblioteki standardowej C++.
+
%package fortran
Summary: Fortran 95 support for gcc
Summary(es.UTF-8): Soporte de Fortran 95 para gcc
Group: Development/Languages/Fortran
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: libgfortran = %{epoch}:%{version}-%{release}
+Requires: libquadmath-devel = %{epoch}:%{version}-%{release}
Provides: gcc-g77 = %{epoch}:%{version}-%{release}
Obsoletes: egcs-g77
Obsoletes: gcc-g77
Group: Development/Languages/Fortran
Requires: %{name}-fortran = %{epoch}:%{version}-%{release}
Requires: libgfortran-multilib = %{epoch}:%{version}-%{release}
+Requires: libquadmath-multilib-devel = %{epoch}:%{version}-%{release}
%description fortran-multilib
This package adds support for compiling 32-bit Fortran 95 programs
Summary(pl.UTF-8): Biblioteka Fortrana 95
License: GPL v2+ with unlimited link permission
Group: Libraries
+Requires: libquadmath = %{epoch}:%{version}-%{release}
Obsoletes: libg2c
%description -n libgfortran
Summary(pl.UTF-8): Biblioteka Fortrana 95 - wersja 32-bitowa
License: GPL v2+ with unlimited link permission
Group: Libraries
+Requires: libquadmath-multilib = %{epoch}:%{version}-%{release}
%description -n libgfortran-multilib
Fortran 95 Library - 32-bit version.
%description -n libgfortran-multilib-static -l pl.UTF-8
Statyczna biblioteka Fortrana 95 - wersja 32-bitowa.
+%package -n libquadmath
+Summary: GCC __float128 shared support library
+Summary(pl.UTF-8): Biblioteka współdzielona do obsługi typu __float128
+License: GPL v2+ with linking exception
+Group: Libraries
+
+%description -n libquadmath
+This package contains GCC shared support library which is needed for
+__float128 math support and for Fortran REAL*16 support.
+
+%description -n libquadmath -l pl.UTF-8
+Ten pakiet zawiera bibliotekę współdzieloną GCC do obsługi operacji
+matematycznych na zmiennych typu __float128 oraz typu REAL*16 w
+Fortranie.
+
+%package -n libquadmath-multilib
+Summary: GCC __float128 shared support library - 32-bit version
+Summary(pl.UTF-8): Biblioteka współdzielona GCC do obsługi typu __float128 - wersja 32-bitowa
+License: GPL v2+ with linking exception
+Group: Libraries
+
+%description -n libquadmath-multilib
+This package contains 32-bit version of GCC shared support library
+which is needed for __float128 math support and for Fortran REAL*16
+support.
+
+%description -n libquadmath-multilib -l pl.UTF-8
+Ten pakiet zawiera 32-bitową bibliotekę współdzieloną GCC do obsługi
+operacji matematycznych na zmiennych typu __float128 oraz typu REAL*16
+w Fortranie.
+
+%package -n libquadmath-devel
+Summary: Header files for GCC __float128 support library
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteka GCC do obsługi typu __float128
+License: GPL v2+ with linking exception
+Group: Development/Libraries
+Requires: libquadmath = %{epoch}:%{version}-%{release}
+
+%description -n libquadmath-devel
+This package contains header files for GCC support library which is
+needed for __float128 math support and for Fortran REAL*16 support.
+
+%description -n libquadmath-devel -l pl.UTF-8
+Ten pakiet zawiera pliki nagłówkowe biblioteki GCC do obsługi operacji
+matematycznych na zmiennych typu __float128 oraz typu REAL*16 w
+Fortranie.
+
+%package -n libquadmath-multilib-devel
+Summary: Development files for 32-bit GCC __float128 support library
+Summary(pl.UTF-8): Pliki programistyczne 32-bitowej biblioteki do obsługi typu __float128
+License: GPL v2+ with linking exception
+Group: Development/Libraries
+Requires: libquadmath-devel = %{epoch}:%{version}-%{release}
+Requires: libquadmath-multilib = %{epoch}:%{version}-%{release}
+
+%description -n libquadmath-multilib-devel
+This package contains development files for 32-bit GCC support library
+which is needed for __float128 math support and for Fortran REAL*16
+support.
+
+%description -n libquadmath-multilib-devel -l pl.UTF-8
+Ten pakiet zawiera pliki programistyczne 32-bitowej biblioteki GCC do
+obsługi operacji matematycznych na zmiennych typu __float128 oraz typu
+REAL*16 w Fortranie.
+
+%package -n libquadmath-static
+Summary: Static GCC __float128 support library
+Summary(pl.UTF-8): Biblioteka statyczna GCC do obsługi typu __float128
+License: GPL v2+ with linking exception
+Group: Development/Libraries
+Requires: libquadmath-devel = %{epoch}:%{version}-%{release}
+
+%description -n libquadmath-static
+Static GCC __float128 support library.
+
+%description -n libquadmath-static -l pl.UTF-8
+Biblioteka statyczna GCC do obsługi typu __float128.
+
+%package -n libquadmath-multilib-static
+Summary: Static GCC __float128 support library - 32-bit version
+Summary(pl.UTF-8): 32-bitowa biblioteka statyczna GCC do obsługi typu __float128
+License: GPL v2+ with linking exception
+Group: Development/Libraries
+Requires: libquadmath-multilib-devel = %{epoch}:%{version}-%{release}
+
+%description -n libquadmath-multilib-static
+Static GCC __float128 support library - 32-bit version.
+
+%description -n libquadmath-multilib-static -l pl.UTF-8
+32-bitowa biblioteka statyczna GCC do obsługi typu __float128.
+
%package java
Summary: Java support for gcc
Summary(es.UTF-8): Soporte de Java para gcc
oraz bajtkodu do kodu natywnego. Do używania go wymagany jest
dodatkowo pakiet libgcj.
+%package java-aotcompile
+Summary: Java AOT-compiler - compiling bytecode to native
+Summary(pl.UTF-8): Kompilator AOT dla Javy - kompilacja bajtkodu do kodu natywnego
+License: GPL v2+
+Group: Development/Tools
+Requires: %{name}-java = %{epoch}:%{version}-%{release}
+
+%description java-aotcompile
+aot-compile is a script that searches a directory for Java bytecode
+(as class files, or in jars) and uses gcj to compile it to native code
+and generate the databases from it.
+
+%description java-aotcompile -l pl.UTF-8
+aot-compile to skrypt wyszukujący w katalogu bajtkod Javy (w plikach
+class lub jarach) i kompilujący go przy użyciu gcj, a następnie
+generujący z niego bazy danych.
+
%package -n libgcj
Summary: Java Class Libraries
Summary(es.UTF-8): Bibliotecas de clases de Java
%description -n libobjc-multilib-static -l pl.UTF-8
Statyczna biblioteki Obiektowego C - wersja 32-bitowa.
+%package go
+Summary: Go language support for gcc
+Summary(pl.UTF-8): Obsługa języka Go dla kompilatora gcc
+License: GPL v3+ (gcc), BSD (Go-specific part)
+Group: Development/Languages
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: libgo-devel = %{epoch}:%{version}-%{release}
+
+%description go
+This package adds Go language support to the GNU Compiler Collection.
+
+%description go -l pl.UTF-8
+Ten pakiet dodaje obsługę języka Go do kompilatora gcc.
+
+%package go-multilib
+Summary: 32-bit Go language support for gcc
+Summary(pl.UTF-8): Obsługa 32-bitowych binariów języka Go dla kompilatora gcc
+License: GPL v3+ (gcc), BSD (Go-specific part)
+Group: Development/Languages
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: libgo-multilib-devel = %{epoch}:%{version}-%{release}
+
+%description go-multilib
+This package adds 32-bit Go language support to the GNU Compiler
+Collection.
+
+%description go-multilib -l pl.UTF-8
+Ten pakiet dodaje obsługę 32-bitowych binariów języka Go do
+kompilatora gcc.
+
+%package -n libgo
+Summary: Go language library
+Summary(pl.UTF-8): Biblioteka języka Go
+License: BSD
+Group: Libraries
+Requires: libgcc >= %{epoch}:%{version}-%{release}
+
+%description -n libgo
+Go language library.
+
+%description -n libgo -l pl.UTF-8
+Biblioteka języka Go.
+
+%package -n libgo-multilib
+Summary: Go language library - 32-bit version
+Summary(pl.UTF-8): Biblioteka języka Go - wersja 32-bitowa
+License: BSD
+Group: Libraries
+Requires: libgcc-multilib >= %{epoch}:%{version}-%{release}
+
+%description -n libgo-multilib
+Go language library - 32-bit version.
+
+%description -n libgo-multilib -l pl.UTF-8
+Biblioteka języka Go - wersja 32-bitowa.
+
+%package -n libgo-devel
+Summary: Development files for Go language library
+Summary(pl.UTF-8): Pliki programistyczne biblioteki języka Go
+License: BSD
+Group: Development/Libraries
+Requires: glibc-devel
+Requires: libgo = %{epoch}:%{version}-%{release}
+
+%description -n libgo-devel
+Development files for Go language library.
+
+%description -n libgo-devel -l pl.UTF-8
+Pliki programistyczne biblioteki języka Go.
+
+%package -n libgo-multilib-devel
+Summary: Development files for Go language library - 32-bit version
+Summary(pl.UTF-8): Pliki programistyczne biblioteki języka Go - wersja 32-bitowa
+License: BSD
+Group: Development/Libraries
+Requires: glibc-devel
+Requires: libgo-multilib = %{epoch}:%{version}-%{release}
+
+%description -n libgo-multilib-devel
+Development files for Go language library - 32-bit version.
+
+%description -n libgo-multilib-devel -l pl.UTF-8
+Pliki programistyczne biblioteki języka Go - wersja 32-bitowa.
+
+%package -n libgo-static
+Summary: Static Go language library
+Summary(pl.UTF-8): Statyczna biblioteka języka Go
+License: BSD
+Group: Development/Libraries
+Requires: libgo-devel = %{epoch}:%{version}-%{release}
+
+%description -n libgo-static
+Static Go language library.
+
+%description -n libgo-static -l pl.UTF-8
+Statyczna biblioteka języka Go.
+
+%package -n libgo-multilib-static
+Summary: Static Go language library - 32-bit version
+Summary(pl.UTF-8): Statyczna biblioteka języka Go - wersja 32-bitowa
+License: BSD
+Group: Development/Libraries
+Requires: libgo-multilib-devel = %{epoch}:%{version}-%{release}
+
+%description -n libgo-multilib-static
+Static Go language library - 32-bit version.
+
+%description -n libgo-multilib-static -l pl.UTF-8
+Statyczna biblioteka języka Go - wersja 32-bitowa.
+
%prep
%setup -q
%patch100 -p0
%patch3 -p1
%patch4 -p1
-%patch6 -p1
+%{!?with_ppc64_nof:%patch6 -p1}
%patch7 -p0
%if %{with qt}
%patch8 -p1
%endif
-%patch9 -p1
-%patch10 -p0
-%patch11 -p0
-%patch12 -p0
+%patch10 -p1
+%patch11 -p1
+
+%patch13 -p0
mv ChangeLog ChangeLog.general
%if %{with java}
# see contrib/download_ecj
-install %{SOURCE2} ecj.jar
+cp -p %{SOURCE2} ecj.jar
%endif
# override snapshot version.
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--x-libraries=%{_libdir} \
+ --%{?with_bootstrap:en}%{!?with_bootstrap:dis}able-bootstrap \
+ --disable-build-with-cxx \
+ --disable-build-poststage1-with-cxx \
+ --enable-c99 \
--enable-checking=release \
- --enable-shared \
- --enable-threads=posix \
- --enable-linux-futex \
- --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,fortran}%{?with_objc:,objc}%{?with_objcxx:,obj-c++}%{?with_ada:,ada}%{?with_java:,java}" \
+%ifarch %{ix86} %{x8664}
+ --disable-cld \
+%endif
+ --enable-cloog-backend=%{cloog_backend} \
+ %{?with_fortran:--enable-cmath} \
+ --enable-decimal-float \
+ --enable-gnu-unique-object \
+ --enable-initfini-array \
+ --enable-languages="c%{?with_cxx:,c++}%{?with_fortran:,fortran}%{?with_objc:,objc}%{?with_objcxx:,obj-c++}%{?with_ada:,ada}%{?with_java:,java}%{?with_go:,go}" \
--%{?with_gomp:en}%{!?with_gomp:dis}able-libgomp \
+ --enable-libitm \
--%{?with_mudflap:en}%{!?with_mudflap:dis}able-libmudflap \
- --enable-c99 \
+ --enable-linker-build-id \
+ --enable-linux-futex \
--enable-long-long \
- --enable-decimal-float=yes \
%{!?with_multilib:--disable-multilib} \
--enable-nls \
- --disable-werror \
--enable-lto \
--enable-plugin \
-%ifarch %{ix86} %{x8664}
- --disable-cld \
+%ifarch ppc ppc64
+ --enable-secureplt \
%endif
+ --enable-shared \
+ --enable-threads=posix \
+ --disable-werror \
+ --with-cloog \
%ifarch sparc64
--with-cpu=ultrasparc \
%endif
+ --with-demangler-in-ld \
--with-gnu-as \
--with-gnu-ld \
- --with-demangler-in-ld \
- --with-system-zlib \
+ --with-linker-hash-style=gnu \
+ --with-long-double-128 \
+ --with-ppl \
--with-slibdir=%{_slibdir} \
%ifnarch ia64
--without-system-libunwind \
%else
--with-system-libunwind \
%endif
+ --with-system-zlib \
%{!?with_java:--without-x} \
- %{?with_fortran:--enable-cmath} \
- --with-long-double-128 \
-%ifarch ppc ppc64
- --enable-secureplt \
-%endif
%if %{with cxx}
- --with-gxx-include-dir=%{_includedir}/c++/%{version} \
- --disable-libstdcxx-pch \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
+ --disable-libstdcxx-pch \
+ --enable-libstdcxx-threads \
+ --enable-libstdcxx-time=rt \
+ --enable-libstdcxx-visibility \
+ --enable-symvers=gnu%{?with_symvers:-versioned-namespace} \
+ --with-gxx-include-dir=%{_includedir}/c++/%{version} \
%endif
%if %{with java}
- --enable-libjava-multilib=no \
%{!?with_alsa:--disable-alsa} \
%{!?with_dssi:--disable-dssi} \
--disable-gconf-peer \
+ %{?with_gtk:--enable-gtk-cairo} \
%if %{with x}
--enable-java-awt="xlib%{?with_gtk:,gtk}%{?with_qt:,qt}" \
%endif
- %{?with_mozilla:--enable-plugin} \
+ --enable-jni \
--enable-libgcj \
--enable-libgcj-multifile \
--enable-libgcj-database \
- %{?with_gtk:--enable-gtk-cairo} \
- --enable-jni \
+ --disable-libjava-multilib \
+ %{?with_mozilla:--enable-plugin} \
+ --enable-static-libjava \
--enable-xmlj \
%endif
- --%{?with_bootstrap:en}%{!?with_bootstrap:dis}able-bootstrap \
--with-pkgversion="PLD-Linux" \
--with-bugurl="http://bugs.pld-linux.org" \
%{_target_platform}
infodir=%{_infodir} \
DESTDIR=$RPM_BUILD_ROOT
-install gcc/specs $RPM_BUILD_ROOT%{_libdir}/gcc/%{_target_platform}/%{version}
+cp -p gcc/specs $RPM_BUILD_ROOT%{gcclibdir}
%if %{with multilib}
# create links
echo ".so gcc.1" > $RPM_BUILD_ROOT%{_mandir}/man1/cc.1
libssp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libssp.so.*.*.*)
-mv $RPM_BUILD_ROOT{%{_libdir}/$libssp,%{_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}
+ln -sf %{_slibdir}/$libitm $RPM_BUILD_ROOT%{_libdir}/libitm.so
+
+libgomp=$(cd $RPM_BUILD_ROOT%{_libdir}; echo libgomp.so.*.*.*)
+mv $RPM_BUILD_ROOT%{_libdir}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdir}
+ln -sf %{_slibdir}/$libgomp $RPM_BUILD_ROOT%{_libdir}/libgomp.so
+
%if %{with multilib}
libssp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libssp.so.*.*.*)
-mv $RPM_BUILD_ROOT{%{_libdir32}/$libssp,%{_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}
+ln -sf %{_slibdir32}/$libitm $RPM_BUILD_ROOT%{_libdir32}/libitm.so
+
+libgomp=$(cd $RPM_BUILD_ROOT%{_libdir32}; echo libgomp.so.*.*.*)
+mv $RPM_BUILD_ROOT%{_libdir32}/libgomp.so.* $RPM_BUILD_ROOT%{_slibdir32}
+ln -sf %{_slibdir32}/$libgomp $RPM_BUILD_ROOT%{_libdir32}/libgomp.so
%endif
%if %{with fortran}
%if %{with ada}
# move ada shared libraries to proper place...
-mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/adalib/*.so.1 \
+mv -f $RPM_BUILD_ROOT%{gcclibdir}/adalib/*.so.1 \
$RPM_BUILD_ROOT%{_libdir}
# check if symlink to be made is valid
test -f $RPM_BUILD_ROOT%{_libdir}/libgnat-%{major_ver}.so.1
ln -sf libgnat-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir}/libgnat.so
ln -sf libgnarl-%{major_ver}.so $RPM_BUILD_ROOT%{_libdir}/libgnarl.so
%if %{with multilib}
-mv -f $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/32/adalib/*.so.1 \
+mv -f $RPM_BUILD_ROOT%{gcclibdir}/32/adalib/*.so.1 \
$RPM_BUILD_ROOT%{_libdir32}
# check if symlink to be made is valid
test -f $RPM_BUILD_ROOT%{_libdir32}/libgnat-%{major_ver}.so.1
install -d java-doc
cp -f libjava/READ* java-doc
ln -sf libgcj-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/libgcj.jar
-rm -f $RPM_BUILD_ROOT%{_libdir}/classpath/libgjs*.la
-# tools.zip sources
-rm -rf $RPM_BUILD_ROOT%{_datadir}/classpath/tools/gnu
+
+# still not installed by gcc?
+[ ! -f $RPM_BUILD_ROOT%{_pkgconfigdir}/libffi.pc ] || exit 1
+sed -e 's,@prefix@,%{_prefix},
+ s,@exec_prefix@,%{_exec_prefix},
+ s,@libdir@,%{_libdir},
+ s,@gcclibdir@,%{gcclibdir},' %{SOURCE3} >$RPM_BUILD_ROOT%{_pkgconfigdir}/libffi.pc
+%if %{with multilib}
+[ ! -f $RPM_BUILD_ROOT%{_pkgconfigdir32}/libffi.pc ] || exit 1
+install -d $RPM_BUILD_ROOT%{_pkgconfigdir32}
+sed -e 's,@prefix@,%{_prefix},
+ s,@exec_prefix@,%{_exec_prefix},
+ s,@libdir@,%{_libdir32},
+ s,@gcclibdir@,%{gcclibdir},' %{SOURCE3} >$RPM_BUILD_ROOT%{_pkgconfigdir32}/libffi.pc
+%endif
%endif
+
%if %{with objc}
cp -f libobjc/README gcc/objc/README.libobjc
%endif
-%define gcjdbexecdir gcj-%{version}-%{gcj_soname_ver}
-
-# avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/*/%{version}
+# avoid -L poisoning in *.la - there should be only -L%{_libdir}/gcc/%{_target_platform}/%{version}
# normalize libdir, to avoid propagation of unnecessary RPATHs by libtool
-for f in libssp.la libssp_nonshared.la \
+for f in libitm.la libssp.la libssp_nonshared.la \
%{?with_cxx:libstdc++.la libsupc++.la} \
- %{?with_fortran:libgfortran.la} \
+ %{?with_fortran:libgfortran.la libquadmath.la} \
%{?with_gomp:libgomp.la} \
%{?with_mudflap:libmudflap.la libmudflapth.la} \
%if %{with java}
mv $RPM_BUILD_ROOT%{_libdir}/$f{.fixed,}
done
%if %{with multilib}
-for f in libssp.la libssp_nonshared.la \
+for f in libitm.la libssp.la libssp_nonshared.la \
%{?with_cxx:libstdc++.la libsupc++.la} \
- %{?with_fortran:libgfortran.la} \
+ %{?with_fortran:libgfortran.la libquadmath.la} \
%{?with_gomp:libgomp.la} \
%{?with_mudflap:libmudflap.la libmudflapth.la} \
%{?with_java:libffi.la} \
done
%endif
-gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*)
-cp $gccdir/install-tools/include/*.h $gccdir/include
-cp $gccdir/include-fixed/syslimits.h $gccdir/include
-rm -rf $gccdir/install-tools
-rm -rf $gccdir/include-fixed
+cp -p $RPM_BUILD_ROOT%{gcclibdir}/install-tools/include/*.h $RPM_BUILD_ROOT%{gcclibdir}/include
+cp -p $RPM_BUILD_ROOT%{gcclibdir}/include-fixed/syslimits.h $RPM_BUILD_ROOT%{gcclibdir}/include
+%{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/install-tools
+%{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/include-fixed
+
+# plugin, .la not needed
+%{__rm} $RPM_BUILD_ROOT%{gcclibdir}/liblto_plugin.la
+# already packaged in binutils-devel
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libiberty.a
+
+%if %{with python}
+for LIB in lib lib64; do
+ LIBPATH="$RPM_BUILD_ROOT%{_datadir}/gdb/auto-load%{_prefix}/$LIB"
+ install -d $LIBPATH
+ # basename is being run only for the native (non-biarch) file.
+ sed -e 's,@pythondir@,%{_datadir}/gdb,' \
+ -e 's,@toolexeclibdir@,%{_prefix}/'"$LIB," \
+ < libstdc++-v3/python/hook.in \
+ > $LIBPATH/$(basename $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libstdc++.so.*.*.*)-gdb.py
+done
+install -d $RPM_BUILD_ROOT%{py_sitescriptdir}
+mv $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libstdcxx $RPM_BUILD_ROOT%{py_sitescriptdir}
+%if %{with java}
+mv $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libjava $RPM_BUILD_ROOT%{py_sitescriptdir}
+%{__sed} -i -e '1s,#!/usr/bin/env python,#!/usr/bin/python,' $RPM_BUILD_ROOT%{_bindir}/aot-compile
+%endif
+%py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
+%py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
+%py_postclean
+%else
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libstdcxx
+%if %{with java}
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/gcc-%{version}/python/libjava
+%endif
+%endif
+# script(s) always installed; see above for builds with python; if no python, just don't package
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libstdc++.so.*-gdb.py
+%if %{with multilib}
+%{__rm} $RPM_BUILD_ROOT%{_libdir32}/libstdc++.so.*-gdb.py
+%endif
%find_lang gcc
%find_lang cpplib
%if %{with cxx}
%find_lang libstdc\+\+
-install libstdc++-v3/include/precompiled/* $RPM_BUILD_ROOT%{_includedir}
+cp -p libstdc++-v3/include/precompiled/* $RPM_BUILD_ROOT%{_includedir}
%endif
-# gdb stuff maybe?
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.py
-%if %{with multilib}
-%{__rm} $RPM_BUILD_ROOT%{_libdir32}/*.py
-%endif
+# always -f, as "dir" is created depending which texlive version is installed
+%{__rm} -f $RPM_BUILD_ROOT%{_infodir}/dir
# svn snap doesn't contain (release does) below files,
# so let's create dummy entries to satisfy %%files.
%postun java -p /sbin/postshell
-/usr/sbin/fix-info-dir -c %{_infodir}
+%post go -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun go -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
%post -p /sbin/ldconfig -n libgcc
%postun -p /sbin/ldconfig -n libgcc
%post -p /sbin/ldconfig -n libgcc-multilib
%postun -p /sbin/ldconfig -n libobjc
%post -p /sbin/ldconfig -n libobjc-multilib
%postun -p /sbin/ldconfig -n libobjc-multilib
+%post -n libquadmath
+/sbin/ldconfig
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%postun -n libquadmath
+/sbin/ldconfig
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%post -p /sbin/ldconfig -n libquadmath-multilib
+%postun -p /sbin/ldconfig -n libquadmath-multilib
+%post -p /sbin/ldconfig -n libgo
+%postun -p /sbin/ldconfig -n libgo
+%post -p /sbin/ldconfig -n libgo-multilib
+%postun -p /sbin/ldconfig -n libgo-multilib
%files -f gcc.lang
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/cc
%attr(755,root,root) %{_bindir}/cpp
%attr(755,root,root) %{_bindir}/gcc
-%attr(755,root,root) %{_bindir}/gccbug
+%attr(755,root,root) %{_bindir}/gcc-ar
+%attr(755,root,root) %{_bindir}/gcc-nm
+%attr(755,root,root) %{_bindir}/gcc-ranlib
+#%attr(755,root,root) %{_bindir}/gccbug
%attr(755,root,root) %{_bindir}/gcov
%{_mandir}/man1/cc.1*
%{_mandir}/man1/cpp.1*
%{_infodir}/gcc.info*
%{_infodir}/gccinstall.info*
%{_infodir}/gccint.info*
+%{_infodir}/libitm.info*
%attr(755,root,root) /lib/cpp
%attr(755,root,root) %{_slibdir}/libgcc_s.so
+%attr(755,root,root) %{_libdir}/libitm.so
%attr(755,root,root) %{_libdir}/libssp.so
+%{_libdir}/libitm.la
+%{_libdir}/libitm.a
+%{_libdir}/libitm.spec
%{_libdir}/libssp.la
%{_libdir}/libssp.a
%{_libdir}/libssp_nonshared.la
%{_libdir}/libssp_nonshared.a
%dir %{_libdir}/gcc
-%dir %{_libdir}/gcc/*
-%dir %{_libdir}/gcc/*/*
-%{_libdir}/gcc/*/*/libgcc.a
-%{_libdir}/gcc/*/*/libgcc_eh.a
-%{_libdir}/gcc/*/*/libgcov.a
-%{_libdir}/gcc/*/*/specs
-%{_libdir}/gcc/*/*/crt*.o
-%attr(755,root,root) %{_libdir}/gcc/*/*/cc1
-%attr(755,root,root) %{_libdir}/gcc/*/*/collect2
-%attr(755,root,root) %{_libdir}/gcc/*/*/lto-wrapper
-%attr(755,root,root) %{_libdir}/gcc/*/*/lto1
-%{_libdir}/gcc/*/*/plugin
-%dir %{_libdir}/gcc/*/*/include
-%dir %{_libdir}/gcc/*/*/include/ssp
-%{_libdir}/gcc/*/*/include/ssp/*.h
-%{_libdir}/gcc/*/*/include/float.h
-%{_libdir}/gcc/*/*/include/iso646.h
-%{_libdir}/gcc/*/*/include/limits.h
-%{_libdir}/gcc/*/*/include/stdarg.h
-%{_libdir}/gcc/*/*/include/stdbool.h
-%{_libdir}/gcc/*/*/include/stddef.h
-%{_libdir}/gcc/*/*/include/stdfix.h
-%{_libdir}/gcc/*/*/include/stdint.h
-%{_libdir}/gcc/*/*/include/stdint-gcc.h
-%{_libdir}/gcc/*/*/include/syslimits.h
-%{_libdir}/gcc/*/*/include/unwind.h
-%{_libdir}/gcc/*/*/include/varargs.h
+%dir %{_libdir}/gcc/%{_target_platform}
+%dir %{gcclibdir}
+%{gcclibdir}/libgcc.a
+%{gcclibdir}/libgcc_eh.a
+%{gcclibdir}/libgcov.a
+%{gcclibdir}/specs
+%{gcclibdir}/crt*.o
+%attr(755,root,root) %{gcclibdir}/cc1
+%attr(755,root,root) %{gcclibdir}/collect2
+%attr(755,root,root) %{gcclibdir}/lto-wrapper
+%attr(755,root,root) %{gcclibdir}/lto1
+%attr(755,root,root) %{gcclibdir}/liblto_plugin.so*
+%{gcclibdir}/plugin
+%dir %{gcclibdir}/include
+%dir %{gcclibdir}/include/ssp
+%{gcclibdir}/include/ssp/*.h
+%{gcclibdir}/include/float.h
+%{gcclibdir}/include/iso646.h
+%{gcclibdir}/include/limits.h
+%{gcclibdir}/include/stdalign.h
+%{gcclibdir}/include/stdarg.h
+%{gcclibdir}/include/stdbool.h
+%{gcclibdir}/include/stddef.h
+%{gcclibdir}/include/stdfix.h
+%{gcclibdir}/include/stdint.h
+%{gcclibdir}/include/stdint-gcc.h
+%{gcclibdir}/include/stdnoreturn.h
+%{gcclibdir}/include/syslimits.h
+%{gcclibdir}/include/unwind.h
+%{gcclibdir}/include/varargs.h
%ifarch %{ix86} %{x8664}
-%{_libdir}/gcc/*/*/include/abmintrin.h
-%{_libdir}/gcc/*/*/include/ammintrin.h
-%{_libdir}/gcc/*/*/include/avxintrin.h
-%{_libdir}/gcc/*/*/include/bmmintrin.h
-%{_libdir}/gcc/*/*/include/cpuid.h
-%{_libdir}/gcc/*/*/include/cross-stdarg.h
-%{_libdir}/gcc/*/*/include/emmintrin.h
-%{_libdir}/gcc/*/*/include/fma4intrin.h
-%{_libdir}/gcc/*/*/include/ia32intrin.h
-%{_libdir}/gcc/*/*/include/immintrin.h
-%{_libdir}/gcc/*/*/include/lwpintrin.h
-%{_libdir}/gcc/*/*/include/mm3dnow.h
-%{_libdir}/gcc/*/*/include/mm_malloc.h
-%{_libdir}/gcc/*/*/include/mmintrin.h
-%{_libdir}/gcc/*/*/include/nmmintrin.h
-%{_libdir}/gcc/*/*/include/popcntintrin.h
-%{_libdir}/gcc/*/*/include/pmmintrin.h
-%{_libdir}/gcc/*/*/include/smmintrin.h
-%{_libdir}/gcc/*/*/include/tmmintrin.h
-%{_libdir}/gcc/*/*/include/wmmintrin.h
-%{_libdir}/gcc/*/*/include/x86intrin.h
-%{_libdir}/gcc/*/*/include/xmmintrin.h
-%{_libdir}/gcc/*/*/include/xopintrin.h
+%{gcclibdir}/include/ammintrin.h
+%{gcclibdir}/include/avxintrin.h
+%{gcclibdir}/include/avx2intrin.h
+%{gcclibdir}/include/bmiintrin.h
+%{gcclibdir}/include/bmi2intrin.h
+%{gcclibdir}/include/bmmintrin.h
+%{gcclibdir}/include/cpuid.h
+%{gcclibdir}/include/cross-stdarg.h
+%{gcclibdir}/include/emmintrin.h
+%{gcclibdir}/include/f16cintrin.h
+%{gcclibdir}/include/fmaintrin.h
+%{gcclibdir}/include/fma4intrin.h
+%{gcclibdir}/include/ia32intrin.h
+%{gcclibdir}/include/immintrin.h
+%{gcclibdir}/include/lwpintrin.h
+%{gcclibdir}/include/lzcntintrin.h
+%{gcclibdir}/include/mm3dnow.h
+%{gcclibdir}/include/mm_malloc.h
+%{gcclibdir}/include/mmintrin.h
+%{gcclibdir}/include/nmmintrin.h
+%{gcclibdir}/include/popcntintrin.h
+%{gcclibdir}/include/pmmintrin.h
+%{gcclibdir}/include/smmintrin.h
+%{gcclibdir}/include/tbmintrin.h
+%{gcclibdir}/include/tmmintrin.h
+%{gcclibdir}/include/wmmintrin.h
+%{gcclibdir}/include/x86intrin.h
+%{gcclibdir}/include/xmmintrin.h
+%{gcclibdir}/include/xopintrin.h
+%endif
+%ifarch arm
+%{gcclibdir}/include/arm_neon.h
+%{gcclibdir}/include/mmintrin.h
+%endif
+%ifarch ia64
+%{gcclibdir}/include/ia64intrin.h
+%endif
+%ifarch m68k
+%{gcclibdir}/include/math-68881.h
+%endif
+%ifarch mips
+%{gcclibdir}/include/loongson.h
%endif
%ifarch powerpc ppc ppc64
-%{_libdir}/gcc/*/*/include/altivec.h
-%{_libdir}/gcc/*/*/include/paired.h
-%{_libdir}/gcc/*/*/include/ppc-asm.h
-%{_libdir}/gcc/*/*/include/ppu_intrinsics.h
-%{_libdir}/gcc/*/*/include/si2vmx.h
-%{_libdir}/gcc/*/*/include/spe.h
-%{_libdir}/gcc/*/*/include/spu2vmx.h
-%{_libdir}/gcc/*/*/include/vec_types.h
+%{gcclibdir}/include/altivec.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
%endif
%if %{with multilib}
%files multilib
%defattr(644,root,root,755)
%attr(755,root,root) %{_slibdir32}/libgcc_s.so
-%dir %{_libdir}/gcc/*/*/32
-%{_libdir}/gcc/*/*/32/crt*.o
-%{_libdir}/gcc/*/*/32/libgcc.a
-%{_libdir}/gcc/*/*/32/libgcc_eh.a
-%{_libdir}/gcc/*/*/32/libgcov.a
+%dir %{gcclibdir}/32
+%{gcclibdir}/32/crt*.o
+%{gcclibdir}/32/libgcc.a
+%{gcclibdir}/32/libgcc_eh.a
+%{gcclibdir}/32/libgcov.a
+%attr(755,root,root) %{_libdir32}/libitm.so
%attr(755,root,root) %{_libdir32}/libssp.so
+%{_libdir32}/libitm.la
+%{_libdir32}/libitm.a
%{_libdir32}/libssp.la
%{_libdir32}/libssp.a
%{_libdir32}/libssp_nonshared.la
%files -n libgcc
%defattr(644,root,root,755)
%attr(755,root,root) %{_slibdir}/libgcc_s.so.1
+%attr(755,root,root) %{_slibdir}/libitm.so.*.*.*
%attr(755,root,root) %{_slibdir}/libssp.so.*.*.*
-#%attr(755,root,root) %ghost %{_slibdir}/libssp.so.0
+%attr(755,root,root) %ghost %{_slibdir}/libitm.so.1
+%attr(755,root,root) %ghost %{_slibdir}/libssp.so.0
%if %{with multilib}
%files -n libgcc-multilib
%defattr(644,root,root,755)
%attr(755,root,root) %{_slibdir32}/libgcc_s.so.1
+%attr(755,root,root) %{_slibdir32}/libitm.so.*.*.*
%attr(755,root,root) %{_slibdir32}/libssp.so.*.*.*
-#%attr(755,root,root) %ghost %{_slibdir32}/libssp.so.0
+%attr(755,root,root) %ghost %{_slibdir32}/libssp.so.0
+%attr(755,root,root) %ghost %{_slibdir32}/libitm.so.1
%endif
%if %{with gomp}
%files -n libgomp
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libgomp.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir}/libgomp.so.1
+%attr(755,root,root) %{_slibdir}/libgomp.so.*.*.*
+%attr(755,root,root) %ghost %{_slibdir}/libgomp.so.1
%if %{with multilib}
%files -n libgomp-multilib
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir32}/libgomp.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir32}/libgomp.so.1
+%attr(755,root,root) %{_slibdir32}/libgomp.so.*.*.*
+%attr(755,root,root) %ghost %{_slibdir32}/libgomp.so.1
%endif
%files -n libgomp-devel
%attr(755,root,root) %{_libdir}/libgomp.so
%{_libdir}/libgomp.la
%{_libdir}/libgomp.spec
-%{_libdir}/gcc/*/*/finclude
-%{_libdir}/gcc/*/*/include/omp.h
+%{gcclibdir}/finclude
+%{gcclibdir}/include/omp.h
%{_infodir}/libgomp.info*
%if %{with multilib}
%files -n libmudflap
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libmudflap.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir}/libmudflap.so.0
+%attr(755,root,root) %ghost %{_libdir}/libmudflap.so.0
%attr(755,root,root) %{_libdir}/libmudflapth.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir}/libmudflapth.so.0
+%attr(755,root,root) %ghost %{_libdir}/libmudflapth.so.0
%if %{with multilib}
%files -n libmudflap-multilib
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libmudflap.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir32}/libmudflap.so.0
+%attr(755,root,root) %ghost %{_libdir32}/libmudflap.so.0
%attr(755,root,root) %{_libdir32}/libmudflapth.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir32}/libmudflapth.so.0
+%attr(755,root,root) %ghost %{_libdir32}/libmudflapth.so.0
%endif
%files -n libmudflap-devel
%attr(755,root,root) %{_libdir}/libmudflapth.so
%{_libdir}/libmudflap.la
%{_libdir}/libmudflapth.la
-%{_libdir}/gcc/*/*/include/mf-runtime.h
+%{gcclibdir}/include/mf-runtime.h
%if %{with multilib}
%files -n libmudflap-multilib-devel
%attr(755,root,root) %{_libdir}/libgnarl.so
%attr(755,root,root) %{_libdir}/libgnat-*.so
%attr(755,root,root) %{_libdir}/libgnat.so
-%attr(755,root,root) %{_libdir}/gcc/*/*/gnat1
-%{_libdir}/gcc/*/*/adainclude
-%dir %{_libdir}/gcc/*/*/adalib
-%{_libdir}/gcc/*/*/adalib/*.ali
-%{_libdir}/gcc/*/*/adalib/g-trasym.o
+%attr(755,root,root) %{gcclibdir}/gnat1
+%{gcclibdir}/adainclude
+%dir %{gcclibdir}/adalib
+%{gcclibdir}/adalib/*.ali
%ifarch %{ix86} %{x8664}
-%{_libdir}/gcc/*/*/adalib/libgmem.a
+%{gcclibdir}/adalib/libgmem.a
%endif
%{_infodir}/gnat-style.info*
%{_infodir}/gnat_rm.info*
%attr(755,root,root) %{_libdir32}/libgnarl.so
%attr(755,root,root) %{_libdir32}/libgnat-*.so
%attr(755,root,root) %{_libdir32}/libgnat.so
-%{_libdir}/gcc/*/*/32/adainclude
-%dir %{_libdir}/gcc/*/*/32/adalib
-%{_libdir}/gcc/*/*/32/adalib/*.ali
-%{_libdir}/gcc/*/*/32/adalib/g-trasym.o
+%{gcclibdir}/32/adainclude
+%dir %{gcclibdir}/32/adalib
+%{gcclibdir}/32/adalib/*.ali
%ifarch %{ix86} %{x8664}
-%{_libdir}/gcc/*/*/32/adalib/libgmem.a
+%{gcclibdir}/32/adalib/libgmem.a
%endif
%endif
%files -n libgnat-static
%defattr(644,root,root,755)
-%{_libdir}/gcc/*/*/adalib/libgnala.a
-%{_libdir}/gcc/*/*/adalib/libgnarl.a
-%{_libdir}/gcc/*/*/adalib/libgnat.a
+%{gcclibdir}/adalib/libgnarl.a
+%{gcclibdir}/adalib/libgnat.a
%if %{with multilib}
%files -n libgnat-multilib-static
%defattr(644,root,root,755)
-%{_libdir}/gcc/*/*/32/adalib/libgnala.a
-%{_libdir}/gcc/*/*/32/adalib/libgnarl.a
-%{_libdir}/gcc/*/*/32/adalib/libgnat.a
+%{gcclibdir}/32/adalib/libgnarl.a
+%{gcclibdir}/32/adalib/libgnat.a
%endif
%endif
%attr(755,root,root) %{_bindir}/*-g++
%attr(755,root,root) %{_bindir}/c++
%attr(755,root,root) %{_bindir}/*-c++
-%attr(755,root,root) %{_libdir}/gcc/*/*/cc1plus
+%attr(755,root,root) %{gcclibdir}/cc1plus
%{_libdir}/libsupc++.la
%{_libdir}/libsupc++.a
%{_mandir}/man1/g++.1*
%defattr(644,root,root,755)
%doc libstdc++-v3/{ChangeLog,README}
%attr(755,root,root) %{_libdir}/libstdc++.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libstdc++.so.6
+%attr(755,root,root) %ghost %{_libdir}/libstdc++.so.%{cxx_sover}
%if %{with multilib}
%files -n libstdc++-multilib
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libstdc++.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir32}/libstdc++.so.6
+%attr(755,root,root) %ghost %{_libdir32}/libstdc++.so.%{cxx_sover}
+%endif
+
+%if %{with python}
+%files -n libstdc++-gdb
+%defattr(644,root,root,755)
+%dir %{py_sitescriptdir}/libstdcxx
+%{py_sitescriptdir}/libstdcxx/*.py[co]
+%dir %{py_sitescriptdir}/libstdcxx/v6
+%{py_sitescriptdir}/libstdcxx/v6/*.py[co]
+%{_datadir}/gdb/auto-load/usr/%{_lib}/libstdc++.so.%{cxx_sover}.*.*-gdb.py
+%if %{with multilib}
+%{_datadir}/gdb/auto-load/usr/lib/libstdc++.so.%{cxx_sover}.*.*-gdb.py
+%endif
%endif
%files -n libstdc++-devel
%defattr(644,root,root,755)
-%doc libstdc++-v3/doc/html
%attr(755,root,root) %{_libdir}/libstdc++.so
%{_libdir}/libstdc++.la
%dir %{_includedir}/c++
%exclude %{_includedir}/c++/%{version}/sun
%endif
+%if %{with apidocs}
+%files -n libstdc++-apidocs
+%defattr(644,root,root,755)
+%doc libstdc++-v3/doc/html/*
+%endif
+
%if %{with multilib}
%files -n libstdc++-multilib-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/g95
%attr(755,root,root) %{_bindir}/gfortran
%attr(755,root,root) %{_bindir}/*-gfortran
-%attr(755,root,root) %{_libdir}/gcc/*/*/f951
+%attr(755,root,root) %{gcclibdir}/f951
%attr(755,root,root) %{_libdir}/libgfortran.so
+%{_libdir}/libgfortran.spec
%{_libdir}/libgfortran.la
-%{_libdir}/gcc/*/*/libgfortranbegin.la
-%{_libdir}/gcc/*/*/libgfortranbegin.a
+%{gcclibdir}/libcaf_single.a
+%{gcclibdir}/libcaf_single.la
+%{gcclibdir}/libgfortranbegin.la
+%{gcclibdir}/libgfortranbegin.a
%{_infodir}/gfortran.info*
%{_mandir}/man1/g95.1*
%{_mandir}/man1/gfortran.1*
%files fortran-multilib
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libgfortran.so
+%{_libdir32}/libgfortran.spec
%{_libdir32}/libgfortran.la
-%{_libdir}/gcc/*/*/32/libgfortranbegin.la
-%{_libdir}/gcc/*/*/32/libgfortranbegin.a
+%{gcclibdir}/32/libcaf_single.a
+%{gcclibdir}/32/libcaf_single.la
+%{gcclibdir}/32/libgfortranbegin.la
+%{gcclibdir}/32/libgfortranbegin.a
%endif
%files -n libgfortran
%defattr(644,root,root,755)
%doc libgfortran/{AUTHORS,README,ChangeLog}
%attr(755,root,root) %{_libdir}/libgfortran.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir}/libgfortran.so.3
+%attr(755,root,root) %ghost %{_libdir}/libgfortran.so.3
%if %{with multilib}
%files -n libgfortran-multilib
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libgfortran.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir32}/libgfortran.so.3
+%attr(755,root,root) %ghost %{_libdir32}/libgfortran.so.3
%endif
%files -n libgfortran-static
%defattr(644,root,root,755)
%{_libdir32}/libgfortran.a
%endif
+
+%files -n libquadmath
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libquadmath.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libquadmath.so.0
+
+%if %{with multilib}
+%files -n libquadmath-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libquadmath.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libquadmath.so.0
+%endif
+
+%files -n libquadmath-devel
+%defattr(644,root,root,755)
+%{gcclibdir}/include/quadmath.h
+%{gcclibdir}/include/quadmath_weak.h
+%attr(755,root,root) %{_libdir}/libquadmath.so
+%{_libdir}/libquadmath.la
+%{_infodir}/libquadmath.info*
+
+%if %{with multilib}
+%files -n libquadmath-multilib-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libquadmath.so
+%{_libdir32}/libquadmath.la
+%endif
+
+%files -n libquadmath-static
+%defattr(644,root,root,755)
+%{_libdir}/libquadmath.a
+
+%if %{with multilib}
+%files -n libquadmath-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libquadmath.a
+%endif
%endif
%if %{with java}
%attr(755,root,root) %{_bindir}/gappletviewer
%attr(755,root,root) %{_bindir}/gc-analyze
%attr(755,root,root) %{_bindir}/gcj
+%attr(755,root,root) %{_bindir}/gcj-dbtool
%attr(755,root,root) %{_bindir}/gcjh
%attr(755,root,root) %{_bindir}/gjar
%attr(755,root,root) %{_bindir}/gjarsigner
%attr(755,root,root) %{_bindir}/jv-convert
%attr(755,root,root) %{_bindir}/rebuild-gcj-db
%attr(755,root,root) %{_bindir}/*-gcj
-%attr(755,root,root) %{_libdir}/gcc/*/*/ecj1
-%attr(755,root,root) %{_libdir}/gcc/*/*/jc1
-%attr(755,root,root) %{_libdir}/gcc/*/*/jvgenmain
+%attr(755,root,root) %{gcclibdir}/ecj1
+%attr(755,root,root) %{gcclibdir}/jc1
+%attr(755,root,root) %{gcclibdir}/jvgenmain
%{_infodir}/cp-tools.info*
%{_infodir}/gcj.info*
%{_mandir}/man1/gappletviewer.1*
%{_mandir}/man1/gc-analyze.1*
%{_mandir}/man1/gcj.1*
+%{_mandir}/man1/gcj-dbtool.1*
%{_mandir}/man1/gcjh.1*
%{_mandir}/man1/gjar.1*
%{_mandir}/man1/gjarsigner.1*
%{_mandir}/man1/jv-convert.1*
%{_mandir}/man1/rebuild-gcj-db*
+%if %{with python}
+%files java-aotcompile
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/aot-compile
+%dir %{py_sitescriptdir}/libjava
+%{py_sitescriptdir}/libjava/*.py[co]
+%{_mandir}/man1/aot-compile.1*
+%endif
+
%files -n libgcj
%defattr(644,root,root,755)
%doc libjava/{ChangeLog,LIBGCJ_LICENSE,NEWS,README,THANKS}
%{?with_qt:%{_libdir}/%{gcjdbexecdir}/libqtpeer.la}
%{?with_mozilla:%{_libdir}/%{gcjdbexecdir}/libgcjwebplugin.la}
%{_libdir}/%{gcjdbexecdir}/libxmlj.la
-%{_libdir}/gcc/*/*/include/gcj
-%{_libdir}/gcc/*/*/include/jawt.h
-%{_libdir}/gcc/*/*/include/jawt_md.h
-%{_libdir}/gcc/*/*/include/jni.h
-%{_libdir}/gcc/*/*/include/jni_md.h
-%{_libdir}/gcc/*/*/include/jvmpi.h
+%{gcclibdir}/include/gcj
+%{gcclibdir}/include/jawt.h
+%{gcclibdir}/include/jawt_md.h
+%{gcclibdir}/include/jni.h
+%{gcclibdir}/include/jni_md.h
+%{gcclibdir}/include/jvmpi.h
%{_includedir}/c++/%{version}/java
%{_includedir}/c++/%{version}/javax
%{_includedir}/c++/%{version}/gcj
%defattr(644,root,root,755)
%doc libffi/{ChangeLog,ChangeLog.libgcj,LICENSE,README}
%attr(755,root,root) %{_libdir}/libffi.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir}/libffi.so.4
+%attr(755,root,root) %ghost %{_libdir}/libffi.so.4
%if %{with multilib}
%files -n libffi-multilib
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libffi.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir32}/libffi.so.4
+%attr(755,root,root) %ghost %{_libdir32}/libffi.so.4
%endif
%files -n libffi-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libffi.so
%{_libdir}/libffi.la
-%{_libdir}/gcc/*/*/include/ffi.h
-%{_libdir}/gcc/*/*/include/ffitarget.h
+%{gcclibdir}/include/ffi.h
+%{gcclibdir}/include/ffitarget.h
+%{_pkgconfigdir}/libffi.pc
%{_mandir}/man3/ffi*.3*
%if %{with multilib}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libffi.so
%{_libdir32}/libffi.la
+%{_pkgconfigdir32}/libffi.pc
%endif
%files -n libffi-static
%if %{with objc}
%files objc
%defattr(644,root,root,755)
-%doc gcc/objc/README
-%attr(755,root,root) %{_libdir}/gcc/*/*/cc1obj
+%doc gcc/objc/README.libobjc
+%attr(755,root,root) %{gcclibdir}/cc1obj
%attr(755,root,root) %{_libdir}/libobjc.so
%{_libdir}/libobjc.la
-%{_libdir}/gcc/*/*/include/objc
+%{gcclibdir}/include/objc
+
+%if %{with objcxx}
+%files objc++
+%defattr(644,root,root,755)
+%doc gcc/objcp/ChangeLog
+%attr(755,root,root) %{gcclibdir}/cc1objplus
+%endif
%if %{with multilib}
%files objc-multilib
%defattr(644,root,root,755)
%doc libobjc/{ChangeLog,README*}
%attr(755,root,root) %{_libdir}/libobjc.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir}/libobjc.so.2
+%attr(755,root,root) %ghost %{_libdir}/libobjc.so.4
%if %{with multilib}
%files -n libobjc-multilib
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir32}/libobjc.so.*.*.*
-#%attr(755,root,root) %ghost %{_libdir32}/libobjc.so.2
+%attr(755,root,root) %ghost %{_libdir32}/libobjc.so.4
%endif
%files -n libobjc-static
%endif
%endif
-%if %{with objcxx}
-%files objc++
+%if %{with go}
+%files go
%defattr(644,root,root,755)
-%doc gcc/objcp/ChangeLog
-%attr(755,root,root) %{_libdir}/gcc/*/*/cc1objplus
+%doc gcc/go/gofrontend/{LICENSE,PATENTS,README}
+%attr(755,root,root) %{_bindir}/gccgo
+%attr(755,root,root) %{gcclibdir}/go1
+%dir %{_libdir}/go
+%{_libdir}/go/%{version}
+%{_mandir}/man1/gccgo.1*
+%{_infodir}/gccgo.info*
+
+%if %{with multilib}
+%files go-multilib
+%defattr(644,root,root,755)
+%dir %{_libdir32}/go
+%{_libdir32}/go/%{version}
+%endif
+
+%files -n libgo
+%defattr(644,root,root,755)
+%doc libgo/{LICENSE,PATENTS,README}
+%attr(755,root,root) %{_libdir}/libgo.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgo.so.0
+
+%if %{with multilib}
+%files -n libgo-multilib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgo.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libgo.so.0
+%endif
+
+%files -n libgo-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgo.so
+%{_libdir}/libgo.la
+%{_libdir}/libgobegin.a
+
+%if %{with multilib}
+%files -n libgo-multilib-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgo.so
+%{_libdir32}/libgo.la
+%{_libdir32}/libgobegin.a
+%endif
+
+%files -n libgo-static
+%defattr(644,root,root,755)
+%{_libdir}/libgo.a
+
+%if %{with multilib}
+%files -n libgo-multilib-static
+%defattr(644,root,root,755)
+%{_libdir32}/libgo.a
+%endif
%endif