Sophie

Sophie

distrib > Mageia > 5 > i586 > by-pkgid > b7b8b32bb04bd446e18064781a60a954 > files > 17

gcc-4.9.2-4.1.mga5.src.rpm

# used for easy branding
%define distro			mageia

%define branch			4.9
%define branch_minor		2
%define subrel			1
%define rel			4
%define branch_tag		%(perl -e 'printf "%%02d%%02d", split(/\\./,shift)' %{branch})
# NOTE! Dont forget to update mageia-files-gcc at the same time, or you will break the BS.
%define snapshot		%nil
%define nof_arches		noarch
%define lsb_arches		i386 x86_64
%define biarches		x86_64 mips64 mips64el

# Define libraries major versions
%define libgcc_major		1
%define libstdcxx_major		6
%define libstdcxx_micro		20
%define libgfortran_major	3
%define libgcj_major		15
%define libobjc_major		4
%define libgnat_major		1
%define libffi_major		4
%define libssp_major		0
%define libgomp_major		1
%define libgcj_bc_major		1
%define libquadmath_major	0
%define libitm_major		1
%define libasan_major		1
%define libatomic_major		1
%define libatomic_minor		1
%define liblsan_major		0
%define libtsan_major		0
%define libubsan_major		0
%define libcilkrts_major	5
%define libvtv_major		0

# Disable -Werror because there's a format string warning in gcc/cp/parser.c 
# around line 2300 that a comment says is intentional :( 
%define Werror_cflags %nil

# Package holding Java tools (gij, jv-convert, etc.)
%define GCJ_TOOLS		%{cross_prefix}gcj%{package_suffix}-tools

# libgcj-devel should not provide libgcj_bc.so.1
%define _exclude_files_from_autoprov %{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcj_bc.so

#-- JDK version
%define jdk_version		1.5.0
%define jdk_base		java-%{jdk_version}-gcj
%define jdk_home		%{_prefix}/lib/jvm/%{jdk_base}-%{jdk_version}.0/jre

# Define if building a cross compiler
# FIXME: assume user does not define both cross and cross_bootstrap variables
%define build_cross		0
%define build_cross_bootstrap	0
%{expand: %{?cross:		%%global build_cross 1}}
%{expand: %{?cross_bootstrap:	%%global build_cross_bootstrap 1}}

# System compiler in Mageia
%define system_compiler		1

%define target_cpu		%{_target_cpu}
%if %{build_cross}
%define system_compiler		0
%define target_cpu		%{cross}
%endif
%if %{build_cross_bootstrap}
%define build_cross		1
%define system_compiler		0
%define target_cpu		%{cross_bootstrap}
%endif
%if %{system_compiler}
%define alternative_priority	30%{branch_tag}
%define cross_prefix		%{nil}
%define cross_program_prefix	%{nil}
%define package_suffix		%{nil}
%define program_prefix		%{nil}
%define program_suffix		%{nil}
%define program_long_suffix     -%{version}
%else
%if %{build_cross}
%define alternative_priority	10%{branch_tag}
%define cross_prefix		cross-%{target_cpu}-
%define cross_program_prefix	%{target_cpu}-%{_real_vendor}-linux%{gnuext}-
%define package_suffix		%{nil}
%define program_prefix		%{cross_program_prefix}
%define program_suffix		%{nil}
%define program_long_suffix	-%{version}
%else
%define alternative_priority	20%{branch_tag}
%define cross_prefix		%{nil}
%define cross_program_prefix	%{nil}
%define package_suffix		%{branch}
%define program_prefix		%{nil}
%define program_suffix		%{branch}
%define program_long_suffix	%{branch}
%endif
%endif
%define _alternativesdir	/etc/alternatives
%if "%{package_suffix}" == "%{nil}"
%define _package_suffix		%{nil}
%else
%define _package_suffix		-%{package_suffix}
%endif
%define gcc42_as_system_compiler 0

%if "%snapshot" != ""
%define source_package		gcc-%{branch}-%{snapshot}
%define source_dir		gcc-%{branch}-%{snapshot}
%else
%define source_package		gcc-%{version}
%define source_dir		gcc-%{version}
%endif

# Define GCC target platform, and arch we built for
%if %{build_cross}
%define biarches		noarch
%define arch			%{target_cpu}
%define gcc_target_platform	%{target_cpu}-%{_real_vendor}-linux%{gnuext}
%define target_prefix		%{_prefix}/%{gcc_target_platform}
%define target_libdir		%{target_prefix}/%{target_lib}
%define target_slibdir		%{target_prefix}/%{target_lib}
%define target_slibdir32	%{target_prefix}/lib
%else
%define arch			%(echo %{_target_cpu}|sed -e "s/\\(i.86\\|athlon\\)/i386/" -e "s/amd64/x86_64/")
%define gcc_target_platform	%{_target_platform}
%define target_prefix		%{_prefix}
%define target_libdir		%{_libdir}
%define target_slibdir		/%{_lib}
%define target_slibdir32	/lib
%endif
%define isarch()		%(case " %* " in (*" %{arch} "*) echo 1;; (*) echo 0;; esac)
%define gcc_libdir		%{_prefix}/lib/gcc
%define gcj_libdir		%{target_libdir}/gcj-%{version}-%{libgcj_major}

%if %{build_cross}
%if %isarch %arm
%define gnuext			-gnueabi
%else
%define gnuext			-gnu
%endif
%endif

%define target_lib		lib
%if %isarch x86_64 mips64 mips64el
%define target_lib		lib64
%endif

%if %isarch x86_64
%define multilib_32_arch	i586
%endif
%if %isarch mips64
%define	multilib_32_arch	mips
%endif
%if %isarch mips64el
%define	multilib_32_arch	mipsel
%endif
%if %isarch %{biarches}
%define gcc32_target_platform	%{multilib_32_arch}-%{distro}-%{_target_os}%{?_gnu}
%endif

# Location of Java headers, don't let them in compiler specific
# directory as they are grabbed first
%define libjava_includedir	%{target_prefix}/include/libgcj-%{version}

# We now have versioned libstdcxx_includedir, that is c++/<VERSION>/
%define libstdcxx_includedir	%{target_prefix}/include/c++/%{version}

%define build_minimal		0
%define build_monolithic	0
%define build_doc		1
%define build_pdf_doc		1
%define build_libstdcxx_docs	1
%define build_check		1
%if %isarch %arm
%define build_ada		0
%else
%define build_ada		1
%endif
%define gpc_snapshot		20040516
%define build_pascal		0
%ifarch noarch
%define build_pascal		1
%endif
%define build_cxx		1
%define build_libstdcxx		%{build_cxx}
%define build_fortran		1
%if %isarch %arm
%define build_quadmath		0
%else
%define build_quadmath		1
%endif
%define build_objc		1
%define build_objcp		1
%define build_libgcj_bc		1
%define build_libffi		0
%define build_libgomp		1
%define build_java		1
%define build_debug		0
%define build_stdcxxheaders	1
%define build_libitm		1
%define build_libasan		1
%define build_libatomic		1
%define build_libubsan		1
%define build_libvtv		1
%if %isarch x86_64
%define build_liblsan		1
%define build_libtsan		1
%else
%define build_liblsan		0
%define build_libtsan		0
%endif
%ifarch %{ix86} x86_64
%define build_libcilkrts	1
%else
%define build_libcilkrts	0
%endif
%if %{gcc42_as_system_compiler}
%define build_libstdcxx		0
%endif
# use SSP support from glibc
%define use_ssp_glibc		1
%define build_libssp		0
%if !%{system_compiler}
%define build_objc		0
%define build_objcp		0
%define build_pascal		0
%define build_ada		0
%define build_libffi		0
%define build_libgomp		0
%endif
%define use_hash_style_gnu	0
%define build_cloog		1

%if %isarch %arm %mips
%define build_java		0
%endif

# Define C library to use
%define libc glibc
%define libc_shared 1
%if "%{libc}" == "glibc"
# Default to --hash-style=gnu
%define use_hash_style_gnu	1
%endif
%if !%{build_cross_bootstrap}
# Make sure pthread.h doesn't contain __thread keyword
%define libc_version 		2.2.5-14
%if %{use_ssp_glibc}
# Make sure glibc supports stack protector
%define libc_version 		2.4-1
%endif
%if %{use_hash_style_gnu}
# Make sure glibc supports DT_GNU_HASH
%define libc_version 		2.4-6
%endif
%endif

%if %isarch %mips
%define build_libssp		0
%define use_ssp_glibc		0
%endif

# Allow --with[out] <feature> at rpm command line build
%{expand: %{?_without_PDF:	%%global build_pdf_doc 0}}
%{expand: %{?_without_DEBUG:	%%global build_debug 0}}
%{expand: %{?_without_check:	%%global build_check 0}}
%{expand: %{?_without_CHECK:	%%global build_check 0}}
%{expand: %{?_without_MINIMAL:	%%global build_minimal 0}}
%{expand: %{?_with_PDF:		%%global build_pdf_doc 1}}
%{expand: %{?_with_DEBUG:	%%global build_debug 1}}
%{expand: %{?_with_CHECK:	%%global build_check 1}}
%{expand: %{?_with_MINIMAL:	%%global build_minimal 1}}

# Allow --without <front-end> at rpm command line build
%{expand: %{?_with_CXX:		%%global build_cxx 1}}
%{expand: %{?_with_ADA:		%%global build_ada 1}}
%{expand: %{?_with_FORTRAN:	%%global build_fortran 1}}
%{expand: %{?_with_JAVA:	%%global build_java 1}}
%{expand: %{?_with_OBJC:	%%global build_objc 1}}
%{expand: %{?_with_OBJCXX:	%%global build_objcp 1}}
%{expand: %{?_with_PASCAL:	%%global build_pascal 1}}

# Allow --with <front-end> at rpm command line build
%{expand: %{?_without_CXX:	%%global build_cxx 0}}
%{expand: %{?_without_ADA:	%%global build_ada 0}}
%{expand: %{?_without_FORTRAN:	%%global build_fortran 0}}
%{expand: %{?_without_JAVA:	%%global build_java 0}}
%{expand: %{?_without_OBJC:	%%global build_objc 0}}
%{expand: %{?_without_OBJCXX:	%%global build_objcp 0}}
%{expand: %{?_without_PASCAL:	%%global build_pascal 0}}

# A minimal build overrides all other options
%if %{build_cross_bootstrap}
%define build_minimal		1
%define libc_shared		0
%endif
%if %{build_minimal}
%define build_doc		0
%define build_pdf_doc		0
%define build_libstdcxx_docs	0
%define build_check		0
%define build_ada		0
%define build_cxx		0
%define build_fortran		0
%define build_quadmath		0
%define build_objc		0
%define build_objcp		0
%define build_java		0
%define build_debug		0
%define build_libffi		0
%define build_libitm		0
%define build_libasan		0
%define build_libatomic		0
%define build_liblsan		0
%define build_libtsan		0
%define build_libubsan		0
%define build_libcilkrts	0
%endif
%if %{build_cross}
%define build_monolithic	1
%define build_doc		0
%define build_pdf_doc		0
%define build_libstdcxx_docs	0
# Unsupported front-ends when cross-compiling for now
%define build_check		0
%define build_java		0
%define build_libgcj_bc		0
%define build_ada		0
%define build_libffi		0
%endif
%if !%{libc_shared}
%define build_java		0
%endif
%if !%{build_java}
%define build_libffi		0
%endif

# Define library packages names
%define libgcc_name_orig	%{cross_prefix}libgcc
%define libgcc_name		%{libgcc_name_orig}%{libgcc_major}
%define libstdcxx_name_orig	%{cross_prefix}libstdc++
%define libstdcxx_name		%{libstdcxx_name_orig}%{libstdcxx_major}
%define libgfortran_name_orig	%{cross_prefix}libgfortran
%define libgfortran_name	%{libgfortran_name_orig}%{libgfortran_major}
%define libgcj_name_orig	%{cross_prefix}libgcj
%define libgcj_name		%{cross_prefix}%{mklibname gcj %{libgcj_major}}
%define libgcj_devel_name	%{cross_prefix}%{mklibname gcj -d}
%define libgcj_static_devel_name %{cross_prefix}%{mklibname gcj -d -s}
%define libgcj_name_base	%{libgcj_name_orig}%{libgcj_major}
%define libgcj_bc_name		%{cross_prefix}%{mklibname gcj_bc %{libgcj_bc_major}}
%define libobjc_name_orig	%{cross_prefix}libobjc
%define libobjc_name		%{libobjc_name_orig}%{libobjc_major}
%define libgnat_name_orig	%{cross_prefix}libgnat
%define libgnat_name		%{libgnat_name_orig}%{libgnat_major}
%define libffi_name_orig	%{cross_prefix}libffi
%define libffi_name		%{libffi_name_orig}%{libffi_major}
%define libssp_name_orig	%{cross_prefix}libssp
%define libssp_name		%{libssp_name_orig}%{libssp_major}
%define libgomp_name_orig	%{cross_prefix}libgomp
%define libgomp_name		%{libgomp_name_orig}%{libgomp_major}
%define libquadmath_name_orig	%{cross_prefix}libquadmath
%define libquadmath_name	%{libquadmath_name_orig}%{libquadmath_major}
%define libitm_name_orig	%{cross_prefix}libitm
%define libitm_name		%{libitm_name_orig}%{libitm_major}
%define libasan_name_orig	%{cross_prefix}libasan
%define libasan_name		%{libasan_name_orig}%{libasan_major}
%define libatomic_name_orig	%{cross_prefix}libatomic
%define libatomic_name		%{libatomic_name_orig}%{libatomic_major}
%define liblsan_name_orig	%{cross_prefix}liblsan
%define liblsan_name		%{liblsan_name_orig}%{liblsan_major}
%define libtsan_name_orig	%{cross_prefix}libtsan
%define libtsan_name		%{libtsan_name_orig}%{libtsan_major}
%define libubsan_name_orig	%{cross_prefix}libubsan
%define libubsan_name		%{libubsan_name_orig}%{libubsan_major}
%define libcilkrts_name_orig	%{cross_prefix}libcilkrts
%define libcilkrts_name		%{libcilkrts_name_orig}%{libcilkrts_major}
%define libvtv_name_orig	%{cross_prefix}libvtv
%define libvtv_name		%{libvtv_name_orig}%{libvtv_major}

# Extract Mageia name and version
%define mga_distro_version_file	/etc/release
%define mga_distro_version	%(perl -ne '/^([.\\w\\s]+) \\(.+\\).+/ and print $1' < %{mga_distro_version_file})

Summary:	GNU Compiler Collection
Name:		%{cross_prefix}gcc%{package_suffix}
Version:	%{branch}.%{branch_minor}
Release:	%mkrel %{rel}
License:	GPLv3+
Group:		Development/C

# Main source:	(CVS)
URL:		http://gcc.gnu.org/
Source0:	%{source_package}.tar.bz2
Source1:	lsb-headers-3.1.1.tar.bz2
Source5:	gcc35-gpc-%{gpc_snapshot}.tar.bz2
# FIXME: unless we get proper help2man package
Source6:	gcc35-help2man.pl
Source8:	build_cross_gcc4.sh
# Minimal set of java.security classes from Apache Harmony
# necessary to get libgcj networking to function with
# bouncycastle 1.50. Fetched from:
# http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/security/src/main/java/common/
Source9:	harmony-java-security-ec.tar.bz2

# Mageia patches + backports from trunk
# LSB compliant headers (for cross compiling without (glibc?) headers)
Patch999:	lsb-headers-3.1.1-misc.patch
Patch1000:	lsb-headers-3.1.1-mips-support.patch
# slibdir is either /lib or /lib64
Patch101:	gcc33-pass-slibdir.patch
# pass libdir around
Patch107:	gcc-4.6.2-multi-do-libdir.patch

# testsuite
Patch1:		gcc33-pr11536-testcase.patch
Patch2:		gcc33-pr9929-testcase.patch
Patch102:	gcc32-pr7434-testcase.patch
Patch103:	gcc33-pr8213-testcase.patch
Patch113:	gcc33-pr11631.patch
# ada
Patch106: 	gcc-4.6.2-ada-makefile.patch

# gnu pascal
Patch111:	gcc34-gpc-fixes.patch
Patch112:	gcc33-gpc-serialize-build.patch

# build 32 bits code when running through linux32
Patch115:	gcc-4.8.2-linux32.patch

# revert build break
Patch126:	gcc-4.9-PR-bootstrap_56714.patch

# Load property.files from /usr/lib, not /usr/lib64, so that
# they can be shared with other classpath jvms (asked by dwalluck)
Patch130:	gcc43-no-multilib-propertydir.patch
Patch132: 	gcc-4.6.2-custom-libgcj_bc-rpath.patch
# Remove Apache Harmony specific error message code from Source9
Patch133:	harmony-java-security-ec-messages.patch

# Red Hat patches
# allow --disable-libjava-multilib to disable multilib for java
Patch201:	gcc-4.7.1-java-nomulti.patch

# fix libltdl with multilib?
Patch207:	gcc4-libltdl-multilib.patch

# use hash style gnu (faster dynamic linking, cf http://lwn.net/Articles/192624/)
Patch211:	gcc-4.8.2-hash-style-gnu.patch

# mips patches from the gdium tree
Patch301:	gcc-mips-libjava-interp.patch
Patch302:	gcc-4.7.1-mips_gcc_testsuite_fix_loop.patch

# (proyvind): set interpreter path used by our uclibc for use with -muclibc
Patch304:	gcc-4.7.1-uclibc-ldso-path.patch

Patch306:	gcc-4.5-mips64_multilib.patch

Patch501:	gcc-4.5-arm-unbreak-eabi-armv4t.dpatch
Patch502:	gcc-4.8.2-arm_format_fix.patch
# use gnu hash by default on arm
Patch507:	gcc-4.8.2-arm-gnuhash.patch

# CVE-2015-5276
Patch600:	libstdc-PR65142-random.cc-CVE-2015-5276.patch

# Want updated alternatives priorities
%if %{build_cross}
Conflicts:	gcc-cpp < 3.2.2-4
%endif
# TEMP FORCE NEW binutils
%define binutils_version 1:2.23.2
#if %{use_hash_style_gnu}
#define binutils_version 2.16.91.0.7-6
#endif

# libmudflap got dropped in upstream 4.9
Obsoletes:	libmudflap0
Obsoletes:	libmudflap-devel

Requires:	%{cross_prefix}binutils >= %{binutils_version}
BuildRequires:	%{cross_prefix}binutils >= %{binutils_version}
# Make sure gdb will understand DW_FORM_strp
Conflicts:	gdb < 5.1.1
BuildRequires:	zlib-devel
BuildRequires:	chrpath

%if %{gcc42_as_system_compiler}
# We need gcc4.2 + its libstdc++ headers
%define gcc42_version %(gcc4.2-version 2>/dev/null || echo 0)
%if !%{build_stdcxxheaders}
%define libstdcxx_includedir %{target_prefix}/include/c++/%{gcc42_version}
%endif
BuildRequires:	gcc4.2
BuildRequires:	gcc4.2-c++
%endif
%if %{build_ada}
# Ada requires Ada to build
BuildRequires:	%{name}-gnat >= 3.1, %{libgnat_name} >= 3.1
%endif
# cloog is used for Graphite support (optimizations)
# see http://gcc.gnu.org/wiki/Graphite
%if %{build_cloog}
BuildRequires:	ppl-devel >= 0.11.2
BuildRequires:	cloog-ppl-devel >= 0.15
#Requires: libcloog1 >= 0.15
%endif
#needed for lto support
BuildRequires:	elfutils-devel
Requires:	%{name}-cpp = %{version}-%{release}
# FIXME: We need a libgcc with 3.4 symbols
%if %{libc_shared} && !%{build_monolithic}
Requires:	%{libgcc_name_orig} >= 3.3.2-5
%endif
Requires(post): update-alternatives
Requires(postun): update-alternatives
BuildRequires:	gettext
BuildRequires:	flex
BuildRequires:	bison
BuildRequires:	texinfo >= 4.1
BuildRequires:	texinfo-tex
# XXX: Needs a GNU awk recent enough to correctly generate options.h
BuildRequires:	gawk >= 3.1.4
%if "%{?libc_version:%{libc_version}}" != ""
Requires:	%{cross_prefix}%{libc}-devel >= %{libc_version}
BuildRequires:	%{cross_prefix}%{libc}-devel >= %{libc_version}
%endif
%if %{build_check}
BuildRequires:	%{cross_prefix}glibc-static-devel
BuildRequires:	autogen
%endif
%if %{system_compiler}
Obsoletes:	gcc%{branch}
Provides:	gcc%{branch} = %{version}-%{release}
# see later warning about libgcc_so & ld script
# rpm has not way to find that ld script is ld script
%if %isarch %arm
%if !%build_cross
Provides:	devel(libgcc_s)
%endif
%endif
%else
Conflicts:	%{cross_prefix}gcc%{branch} < %{version}-%{release}
%endif
# for clean upgrade from manbo labs
Obsoletes:	manbo-mandriva-files-gcc
%if %{build_pdf_doc}
BuildRequires:	tetex
BuildRequires:	dvips
BuildRequires:	tetex-latex
%endif
%if %{build_libstdcxx_docs}
BuildRequires: doxygen
BuildRequires: graphviz
%endif
%if %{build_check}
BuildRequires:	dejagnu
%endif
%if %{build_cross}
AutoReq:	false
AutoProv:	false
%endif
BuildRequires:	libgmp-devel
BuildRequires:	libmpfr-devel
BuildRequires:	libmpc-devel

%description
A compiler aimed at integrating all the optimizations and features
necessary for a high-performance and stable development environment.
This package is required for all other GCC compilers, namely C++,
Fortran 95, Objective C, Java and Ada 95.

%package -n %{libgcc_name}
Summary:	GNU C library
Group:		System/Libraries
Provides:	%{libgcc_name_orig} = %{version}-%{release}
Obsoletes:	%{libgcc_name_orig}%{branch}
Provides:	%{libgcc_name_orig}%{branch} = %{version}-%{release}
Obsoletes:	%{libgcc_name_orig}3.0
Provides:	%{libgcc_name_orig}3.0 = %{version}-%{release}
Provides:	%{libgcc_name_orig}3.2 = %{version}-%{release}
%if %{build_cross}
AutoReq:	false
AutoProv:	false
%endif

%description -n %{libgcc_name}
The %{libgcc_name} package contains GCC shared libraries for gcc %{branch}

####################################################################
# C++ Compiler

%package c++
Summary:	C++ support for gcc
Group:		Development/C++
%if %{system_compiler}
Obsoletes:	gcc%{branch}-c++
Provides:	gcc%{branch}-c++ = %{version}-%{release}
%else
Conflicts:	%{cross_prefix}gcc%{branch}-c++ < %{version}-%{release}
%endif
Requires:	%{name} = %{version}-%{release}
# for easy upgrade from manbo labs
Obsoletes:	manbo-mandriva-files-gcc-c++
%if %{system_compiler}
# some day, rpm will be smart enough: %if (%{system_compiler} || %{build_cross}) && !%{build_monolithic}
%if %{libc_shared}
Requires:	%{libstdcxx_name} = %{version}
%endif
Requires:	%{libstdcxx_name_orig}-devel = %{version}
%else
%if %{gcc42_as_system_compiler}
%if %{libc_shared}
Requires:	%{libstdcxx_name} >= %{gcc42_version}
%endif
%if !%{build_stdcxxheaders}
Requires:	%{libstdcxx_name_orig}-devel >= %{gcc42_version}
%endif
%endif
%endif

%if %{build_cross}
AutoReq:	false
AutoProv:	false
%endif
Requires(post): update-alternatives
Requires(postun): update-alternatives

%description c++
This package adds C++ support to the GNU C compiler. It includes support
for most of the current C++ specification, including templates and
exception handling. It does include the static standard C++
library and C++ header files; the library for dynamically linking
programs is available separately.

####################################################################
# gcc Plugins
%package -n %{name}-plugins
Summary:	Headers to build gcc plugins
Group:		Development/C
%description -n %{name}-plugins
This package contains the headers needed to build gcc plugins.

####################################################################
# C++ Libraries

%package -n %{libstdcxx_name}
Summary:	GNU C++ library
Group:		System/Libraries
Obsoletes:	%{libstdcxx_name_orig}%{branch}
Provides:	%{libstdcxx_name_orig}%{branch} = %{version}-%{release}
Provides:	%{libstdcxx_name_orig} = %{version}-%{release}
%if "%{branch}" == "3.3"
# By default, the libstdc++ from gcc3.3 is ABI compatible with the one
# from gcc3.2. Just tell other packages about it if they relied on that.
Provides:	%{libstdcxx_name_orig}3.2 = %{version}-%{release}
%endif
%if %{build_cross}
AutoReq:	false
AutoProv:	false
%endif

%description -n %{libstdcxx_name}
This package contains the GCC Standard C++ Library v3, an ongoing
project to implement the ISO/IEC 14882:1998 Standard C++ library.

%package -n %{libstdcxx_name_orig}-devel
Summary:	Header files and libraries for C++ development
Group:		Development/C++
%if %{libc_shared}
Requires:	%{libstdcxx_name} = %{version}-%{release}
%endif
Obsoletes:	%{libstdcxx_name_orig}%{branch}-devel
Provides:	%{libstdcxx_name_orig}%{branch}-devel = %{version}-%{release}
Provides:	%{libstdcxx_name_orig}6-devel
Obsoletes:	%{libstdcxx_name_orig}6-devel
%if %{build_cross}
AutoReq:	false
AutoProv:	false
%endif

%description -n %{libstdcxx_name_orig}-devel
This is the GNU implementation of the standard C++ libraries.  This
package includes the header files and libraries needed for C++
development.

%package -n %{libstdcxx_name_orig}-static-devel
Summary:	Static libraries for C++ development
Group:		Development/C++
Requires:	%{libstdcxx_name_orig}-devel = %{version}-%{release}
Obsoletes:	%{libstdcxx_name_orig}%{branch}-static-devel
Provides:	%{libstdcxx_name_orig}%{branch}-static-devel = %{version}-%{release}
Provides:	%{libstdcxx_name_orig}6-static-devel
Obsoletes:	%{libstdcxx_name_orig}6-static-devel
%if %{build_cross}
AutoReq:	false
AutoProv:	false
%endif

%description -n %{libstdcxx_name_orig}-static-devel
This is the GNU implementation of the standard C++ libraries.  This
package includes the static libraries needed for C++ development.

####################################################################
# Objective C Compiler

%package objc
Summary:	Objective C support for gcc
Group:		Development/Other
%if %{system_compiler}
Obsoletes:	gcc%{branch}-objc
Provides:	gcc%{branch}-objc = %{version}-%{release}
%endif
Requires:	%{name} = %{version}-%{release}
%if %{libc_shared} && !%{build_monolithic}
Requires:	%{libobjc_name} = %{version}-%{release}
%endif
%if %{build_cross}
AutoReq:	false
AutoProv:	false
%endif

%description objc
This package adds Objective C support to the GNU C compiler. Objective
C is an object oriented derivative of the C language, mainly used on
systems running NeXTSTEP. This package does not include the standard
Objective C object library.

####################################################################
# Objective C++ Compiler

%package objc++
Summary:	Objective C++ support for gcc
Group:		Development/Other
%if %{system_compiler}
Obsoletes:	gcc%{branch}-objc++
Provides:	gcc%{branch}-objc++ = %{version}-%{release}
%endif
Requires:	%{name}-objc = %{version}-%{release}
Requires:	%{name}-c++ = %{version}-%{release}
%if %{build_cross}
AutoReq:	false
AutoProv:	false
%endif

%description objc++
This package adds Objective C++ support to the GNU C++ compiler.

####################################################################
# Objective C Libraries

%package -n %{libobjc_name}
Summary:	Objective C runtime libraries
Group:		System/Libraries
Obsoletes:	%{libobjc_name_orig}3.0, %{libobjc_name_orig}3.1
Provides:	%{libobjc_name_orig} = %{version}-%{release}
Provides:	%{libobjc_name_orig}3.0 = %{version}-%{release}
Provides:	%{libobjc_name_orig}3.1 = %{version}-%{release}
%if !%{system_compiler}
Conflicts:	%{name}-objc < %{branch}
%endif
%if %{build_cross}
AutoReq:	false
AutoProv:	false
%endif

%description -n %{libobjc_name}
Runtime libraries for the GNU Objective C Compiler.

####################################################################
# Pascal Compiler
%if %{build_pascal}

%package gpc
Summary:	Pascal support for gcc
Group:		Development/Other
%if %{system_compiler}
Obsoletes:	gcc%{branch}-gpc
Provides:	gcc%{branch}-gpc = %{version}-%{release}
%endif
Requires:	%{name} = %{version}-%{release}
%if %{build_cross}
AutoReq:	false
AutoProv:	false
%endif

%description gpc
The GNU Pascal Compiler (GPC) is, as the name says, the Pascal
compiler of the GNU family.  The compiler supports the following
language standards and quasi-standards:

  * ISO 7185 Pascal (see Resources),
  * most of ISO 10206 Extended Pascal,
  * Borland Pascal 7.0,
  * parts of Borland Delphi, Mac Pascal and Pascal-SC (PXSC). 
%endif

####################################################################
# Fortran 95 Compiler

%package gfortran
Summary:	Fortran 95 support for gcc
Group:		Development/Other
%if %{system_compiler}
Obsoletes:	gcc%{branch}-gfortran
Provides:	gcc%{branch}-gfortran = %{version}-%{release}
%endif
# for easy upgrade from manbo labs
Obsoletes:	manbo-mandriva-files-gcc-gfortran
Obsoletes:	gcc%{branch}-g77
Requires:	%{name} = %{version}-%{release}
%if %{build_quadmath}
Requires:	quadmath-devel = %{version}-%{release}
%endif
%if %{libc_shared} && !%{build_monolithic}
Requires:	%{libgfortran_name} = %{version}-%{release}
%endif
%if %{build_cross}
AutoReq:	false
AutoProv:	false
%endif

%description gfortran
This package adds support for compiling Fortran 95 programs with the GNU
compiler.

####################################################################
# Fortran 95 Libraries

%package -n %{libgfortran_name}
Summary:	Fortran 95 runtime libraries
Group:		System/Libraries
%if %{build_quadmath}
Requires:	%{libquadmath_name} = %{version}-%{release}
%endif
Provides:	%{libgfortran_name_orig} = %{version}
Obsoletes:	%{libgfortran_name_orig}%{branch}
Provides:	%{libgfortran_name_orig}%{branch} = %{version}-%{release}
Obsoletes:	libgfortran0
%if %{build_cross}
AutoReq:	false
AutoProv:	false
%endif

%description -n %{libgfortran_name}
This package contains Fortran 95 shared library which is needed to run
Fortran 95 dynamically linked programs.

####################################################################
# Quadmath Libraries

%if %{build_quadmath}
%package -n %{libquadmath_name}
Summary:	GCC __float128 shared support library
Group:		System/Libraries
Provides:	%{libquadmath_name_orig} = %{version}-%{release}

%description -n %{libquadmath_name}
This package contains GCC shared support library which is needed
for __float128 math support and for Fortran REAL*16 support.

%package -n %{libquadmath_name_orig}-devel
Summary:	GCC __float128 support
Group:		Development/C
Provides:	quadmath-devel = %{version}-%{release}

%description -n %{libquadmath_name_orig}-devel
This package contains support for building Fortran programs using
REAL*16 and programs using __float128 math.
%endif

####################################################################
# ITM Libraries

%if %{build_libitm}
%package -n %{libitm_name}
Summary:	The GNU Transactional Memory library
Group:		System/Libraries
Provides:	%{libitm_name_orig} = %{version}-%{release}

%description -n %{libitm_name}
This package contains the GNU Transactional Memory library
which is a GCC transactional memory support runtime library.

%package -n %{libitm_name_orig}-devel
Summary:	The GNU Transactional Memory library devel files
Group:		Development/C
Provides:	libitm-devel = %{version}-%{release}
Requires: 	%{libitm_name_orig} = %{version}-%{release}
Requires: 	gcc = %{version}-%{release}

%description -n %{libitm_name_orig}-devel
This package contains headers and support files for the
GNU Transactional Memory library.
%endif

####################################################################
# Address Sanitizer Libraries

%if %{build_libasan}
%package -n %{libasan_name}
Summary:	The Address Sanitizer runtime library
Group:		System/Libraries
Provides:	%{libasan_name_orig} = %{version}-%{release}

%description -n %{libasan_name}
This package contains the Address Sanitizer library
which is used for -fsanitize=address instrumented programs.

%package -n %{libasan_name_orig}-devel
Summary:	The Address Sanitizer runtime library devel files
Group:		Development/C
Provides:	libasan-devel = %{version}-%{release}
Requires:	%{libasan_name} = %{version}-%{release}

%description -n %{libasan_name_orig}-devel
This package contains the devel files for Address Sanitizer library
which is used for -fsanitize=address instrumented programs.
%endif


####################################################################
# Leak Sanitizer Libraries

%if %{build_liblsan}
%package -n %{liblsan_name}
Summary:	The Leak Sanitizer runtime library
Group:		System/Libraries
Provides:	%{liblsan_name_orig} = %{version}-%{release}

%description -n %{liblsan_name}
This package contains the Leak Sanitizer library
which is used for -fsanitize=leak instrumented programs.

%package -n %{liblsan_name_orig}-devel
Summary:	The Leak Sanitizer runtime library devel files
Group:		Development/C
Provides:	liblsan-devel = %{version}-%{release}
Requires:	%{liblsan_name} = %{version}-%{release}

%description -n %{liblsan_name_orig}-devel
This package contains the devel files for Leak Sanitizer library
which is used for -fsanitize=leak instrumented programs.
%endif

####################################################################
# Thread Sanitizer Libraries

%if %{build_libtsan}
%package -n %{libtsan_name}
Summary:	The Thread Sanitizer runtime library
Group:		System/Libraries
Provides:	%{libtsan_name_orig} = %{version}-%{release}

%description -n %{libtsan_name}
This package contains the Thread Sanitizer library
which is used for -fsanitize=thread instrumented programs.

%package -n %{libtsan_name_orig}-devel
Summary:	The Thread Sanitizer runtime library devel files
Group:		Development/C
Provides:	libtsan-devel = %{version}-%{release}
Requires:	%{libtsan_name} = %{version}-%{release}

%description -n %{libtsan_name_orig}-devel
This package contains the devel files for Thread Sanitizer library
which is used for -fsanitize=thread instrumented programs.
%endif

####################################################################
# Undefined Behaviour Sanitizer Libraries

%if %{build_libubsan}
%package -n %{libubsan_name}
Summary:	The Undefined Behaviour Sanitizer runtime library
Group:		System/Libraries
Provides:	%{libubsan_name_orig} = %{version}-%{release}

%description -n %{libubsan_name}
This package contains the Undefined Behaviour Sanitizer library
which is used for -fsanitize=undefined instrumented programs.

%package -n %{libubsan_name_orig}-devel
Summary:	The Undefined Behaviour Sanitizer runtime library devel files
Group:		Development/C
Provides:	libubsan-devel = %{version}-%{release}
Requires:	%{libubsan_name} = %{version}-%{release}

%description -n %{libubsan_name_orig}-devel
This package contains the devel files for Undefined Behaviour Sanitizer
library which is used for -fsanitize=undefined instrumented programs.
%endif

####################################################################
# The GNU Atomic Libraries

%if %{build_libatomic}
%package -n %{libatomic_name}
Summary:	The GNU Atomic library
Group:		System/Libraries
Provides:	%{libatomic_name_orig} = %{version}-%{release}

%description -n %{libatomic_name}
This package contains the GNU Atomic library which is a GCC support
runtime library for atomic operations not supported by hardware.

%package -n %{libatomic_name_orig}-devel
Summary:	The Thread Sanitizer runtime library devel files
Group:		Development/C
Provides:	libtsan-devel = %{version}-%{release}

%description -n %{libatomic_name_orig}-devel
This package contains the devel files for the GNU Atomic library
which is a GCC support runtime library for atomic operations not
supported by hardware.
%endif

####################################################################
# The Virtual Table Verification Libraries

%if %{build_libvtv}
%package -n %{libvtv_name}
Summary:	The Virtual Table Verification runtime libraries
Group:		System/Libraries
Provides:	%{libvtv_name_orig} = %{version}-%{release}

%description -n %{libvtv_name}
This package contains the Virtual Table Verification runtime libraries.

%package -n %{libvtv_name_orig}-devel
Summary:	The Virtual Table Verification runtime library devel files
Group:		Development/C
Provides:	libvtv-devel = %{version}-%{release}

%description -n %{libvtv_name_orig}-devel
This package contains the devel files for the Virtual Table Verification
runtime libraries.
%endif

####################################################################
# The Cilk+ Libraries

%if %{build_libcilkrts}
%package -n %{libcilkrts_name}
Summary:	The Cilk+ runtime libraries
Group:		System/Libraries
Provides:	%{libcilkrts_name_orig} = %{version}-%{release}

%description -n %{libcilkrts_name}
This package contains the Cilk+ runtime libraries.

%package -n %{libcilkrts_name_orig}-devel
Summary:	The Cilk+ runtime library devel files
Group:		Development/C
Provides:	libcilkrts-devel = %{version}-%{release}

%description -n %{libcilkrts_name_orig}-devel
This package contains the devel files for the Cilk+ runtime libraries.
%endif

####################################################################
# Ada 95 Compiler

%if %{build_ada}
%package gnat
Summary:	Ada 95 support for gcc
Group:		Development/Other
Requires:	%{libgnat_name} = %{version}-%{release}
%if %{system_compiler}
Obsoletes:	gcc%{branch}-gnat
Provides:	gcc%{branch}-gnat = %{version}-%{release}
%endif
Obsoletes:	%{cross_prefix}gnat
Provides:	%{cross_prefix}gnat = %{version}-%{release}
Requires:	%{name} = %{version}-%{release}

%description gnat
This package contains an Ada95 compiler and associated development
tools based on the GNU gcc technology. Ada95 is the object oriented
successor of the Ada83 language. To build this package from sources
you must have installed a binary version to bootstrap the compiler.

####################################################################
# Ada 95 Libraries

%package -n %{libgnat_name}
Summary:	Ada 95 runtime libraries
Group:		System/Libraries
Provides:	%{libgnat_name_orig} = %{version}-%{release}
Obsoletes:	%{cross_prefix}gnat-runtime
Provides:	%{cross_prefix}gnat-runtime = %{version}-%{release}

%description -n %{libgnat_name}
This package contains the shared libraries required to run programs
compiled with the GNU Ada compiler (GNAT) if they are compiled to use
shared libraries.  It also contains the shared libraries for the
Implementation of the Ada Semantic Interface Specification (ASIS), the
implementation of Distributed Systems Programming (GLADE) and the
Posix 1003.5 Binding (Florist).

%endif
####################################################################
# Java Compiler
%if %build_java
%package java
Summary:	Java support for gcc
Group:		Development/Java
%if %{system_compiler}
Obsoletes:	gcc%{branch}-java
Provides:	gcc%{branch}-java = %{version}-%{release}
%endif
# for easy upgrade from manbo labs
Obsoletes:	manbo-mandriva-files-gcc-java
Requires:	%{name} = %{version}-%{release}
Requires:	%{GCJ_TOOLS} = %{version}-%{release}
Requires:	%{libgcj_name} >= %{version}
Requires:	%{libgcj_devel_name} >= %{version}
Requires:	libecj-java

%description java
This package adds experimental support for compiling Java(tm) programs
and bytecode into native code. To use this you will also need the
libgcj package.

####################################################################
# Java Runtime Tools

%package -n %{GCJ_TOOLS}
Summary:	Java related tools from gcc %{version}
Group:		Development/Java
%if %{system_compiler}
Obsoletes:	%{cross_prefix}gcj%{branch}-tools
Provides:	%{cross_prefix}gcj%{branch}-tools = %{version}-%{release}
Requires:	%{libgcj_bc_name} >= %{version}
%endif
Provides:	%{cross_prefix}gcj-tools = %{version}-%{release}
Requires:	%{libgcj_name} >= %{version}
Conflicts:	kaffe < 1.0.7-3
Conflicts:	classpath < 0.97.1-2

%description -n %{GCJ_TOOLS}
This package includes Java related tools built from gcc %{version}:

   * gij: a Java ByteCode Interpreter
   * gcjh: generate header files from class files
   * jcf-dump: print information about class files
   * gcj-dbtool: tool for manipulating class file databases
   * grmic: generate stubs for Remote Method Invocation
   * grmiregistry: the remote object registry
   * aot-compile: ahead-of-time compiler
   * gappletviewer
   * gc-analyze
   * gjar
   * gjarsigner
   * gjavah
   * gkeytool
   * gnative2ascii
   * gorbd
   * grmid
   * gtnameserv
   * gserialver

####################################################################
# Java Libraries

%package -n %{libgcj_name}
Summary:	GNU Java runtime libraries
Group:		System/Libraries
Obsoletes:	%{cross_prefix}gcc-libgcj
Provides:	%{cross_prefix}gcc-libgcj = %{version}-%{release}
Obsoletes:	%{libgcj_name_orig}%{branch}
Provides:	%{libgcj_name_orig}%{branch} = %{version}-%{release}
%if %{build_java}
BuildRequires:	antlr
BuildRequires:	libxt-devel
BuildRequires:	libxtst-devel
BuildRequires:  jpackage-utils
# needed for cairo support (Graphics2D)
Requires:	gtk+2.0 >= 2.8.0
BuildRequires:	libgtk+2.0-devel >= 2.8.0
# for libgjsmdssi:
BuildRequires:	libjack-devel
BuildRequires:	dssi-devel
# for libgjsmalsa:
BuildRequires:	libalsa-devel
Requires:	libglib2.0 >= 2.4.0
BuildRequires:	libglib2.0-devel >= 2.4.0
BuildRequires:	libart_lgpl-devel >= 2.1.0
BuildRequires:	eclipse-ecj
BuildRequires:	zip
%endif
Obsoletes:	libgcj3, libgcj4
%if %{system_compiler}
Obsoletes:	libgcj5
Obsoletes:	%{mklibname gcj 6}
%endif
Requires:	%{libgcj_name_base}-base = %{version}
%if %isarch %{biarches}
Conflicts:	libgcj6 < 4.0.1-4, lib64gcj6 < 4.0.1-4
%endif

%description -n %{libgcj_name}
Runtime libraries for the GNU Java Compiler. The libgcj includes parts
of the Java Class Libraries, plus glue to connect the libraries to the
compiler and the underlying OS.

%package -n %{libgcj_devel_name}
Summary:	Header files and libraries for Java development
Group:		Development/Java
Requires:	zip >= 2.1
Requires:	zlib-devel
Requires:	%{libgcj_name} = %{version}-%{release}
Provides:	%{libgcj_name_orig}%{branch}-devel = %{version}-%{release}
Provides:	%{libgcj_name_orig}-devel = %{version}-%{release}
%if %{system_compiler}
Requires:	%{libgcj_bc_name} >= %{version}-%{release}
Obsoletes:	libgcj3-devel
Obsoletes:	libgcj4-devel
Obsoletes:	libgcj5-devel
Obsoletes:	%{mklibname gcj 6}-devel
Obsoletes:	%{mklibname gcj 7}-devel
Obsoletes:	%{mklibname gcj 9}-devel
%endif

%description -n %{libgcj_devel_name}
Development headers and libraries for the GNU Java Compiler. The
libgcj includes parts of the Java Class Libraries, plus glue to
connect the libraries to the compiler and the underlying OS.

%package -n %{libgcj_static_devel_name}
Summary:	Static libraries for Java development
Group:		Development/Java
Requires:	%{libgcj_devel_name} = %{version}-%{release}
Provides:	%{libgcj_name_orig}%{branch}-static-devel = %{version}-%{release}
Provides:	%{libgcj_name_orig}-static-devel = %{version}-%{release}
%if %{system_compiler}
Obsoletes:	libgcj3-static-devel
Obsoletes:	libgcj4-static-devel
Obsoletes:	libgcj5-static-devel
Obsoletes:	%{mklibname gcj 6}-static-devel
Obsoletes:	%{mklibname gcj 7}-static-devel
Obsoletes:	%{mklibname gcj 9}-static-devel
%endif

%description -n %{libgcj_static_devel_name}
Static libraries for the GNU Java Compiler.

%package -n %{libgcj_name_base}-base
Summary: Java library base classes
Group: Development/Java
# For /usr/lib/logging.properties and /usr/lib/security/classpath.security:
Requires: jpackage-utils
Conflicts: %{mklibname gcj 6} < 4.0.1-4
%if %{system_compiler}
Obsoletes: libgcj6-base
%endif

%description -n %{libgcj_name_base}-base
The Java(tm) runtime library classes.

%package -n %{libgcj_name_base}-src
Summary: Java library sources
Group: Development/Java
Requires: %{libgcj_name} = %{version}-%{release}
%if %{system_compiler}
Obsoletes: libgcj6-src
%endif

%description -n %{libgcj_name_base}-src
The Java(tm) runtime library sources.

%package -n %{libgcj_bc_name}
Summary:	GNU Java runtime bytecode wrapper library
Group:		System/Libraries
%if %{system_compiler}
Conflicts:	%{mklibname gcj 8}
Conflicts:	%{mklibname gcj 9} < 4.3.3
%endif
Requires:	%{libgcj_name}

%description -n %{libgcj_bc_name}
Runtime wrapper library for applications using the bytecode interpreter
API of libgcj.

%endif

####################################################################
# FFI headers and libraries
%if %{build_libffi}
%package -n %{libffi_name}
Summary:	GCC support library for FFI
Group:		System/Libraries

%description -n %{libffi_name}
This package contains GCC shared support library which is needed
for FFI support.

%package -n %{libffi_name}-devel
Summary:	Development headers and static library for FFI
Group:		Development/C
Requires:	%{libffi_name} = %{version}-%{release}
Provides:	%{libffi_name_orig}-devel = %{version}-%{release}
Obsoletes:	%{libffi_name_orig}-devel = 4.3.2
Obsoletes:	%{libffi_name_orig}-devel = 4.3.1
Obsoletes:	%{libffi_name_orig}-devel = 4.2.3
Obsoletes:	%{libffi_name_orig}-devel = 4.2.2
Provides:	ffi-devel = %{version}-%{release}

%description -n %{libffi_name}-devel
This package contains the development headers and the static library
for libffi. The libffi library provides a portable, high level
programming interface to various calling conventions. This allows a
programmer to call any function specified by a call interface
description at run time.

%endif

####################################################################
# SSP headers and libraries
%if %{build_libssp}

%package -n %{libssp_name}
Summary:	GCC SSP shared support library
Group:		System/Libraries

%description -n %{libssp_name}
This package contains GCC shared support library which is needed
for SSP support.

%package -n %{libssp_name_orig}-devel
Summary:	GCC SSP support
Group:		Development/C
Requires:	%{name} = %{version}-%{release}
%if %{libc_shared}
Requires:	%{libssp_name} = %{version}-%{release}
%endif

%description -n %{libssp_name_orig}-devel
This package contains headers and static libraries for building
SSP-instrumented programs.

Refer to the documentation for -fstack-protector.
%endif

####################################################################
# GCC OpenMP headers and library

%package -n %{libgomp_name}
Summary:	GCC OpenMP support library
Group:		System/Libraries

%description -n %{libgomp_name}
This package contains the GCC shared support library which is needed 
for OpenMP support.

%package -n %{libgomp_name_orig}-devel
Summary:	GCC OpenMP support
Group:		Development/C
Requires:	%{name} = %{version}-%{release}
%if %{libc_shared}
Requires:	%{libgomp_name} = %{version}-%{release}
%endif

%description -n %{libgomp_name_orig}-devel
This package contains headers and static libraries for building 
programs that use OpenMP.

####################################################################
# Preprocessor

%package cpp
Summary:	The C Preprocessor
Group:		Development/C
%if %{system_compiler}
Obsoletes:	gcc%{branch}-cpp
Provides:	gcc%{branch}-cpp = %{version}-%{release}
Conflicts:      gcc3.3-cpp < 3.3.6-8
%endif
Requires(post): update-alternatives
Requires(postun): update-alternatives

%description cpp
The C preprocessor is a 'macro processor' which is used automatically
by the C compiler to transform your program before actual
compilation. It is called a macro processor because it allows
you to define 'macros,' which are abbreviations for longer
constructs.

The C preprocessor provides four separate facilities that you can use as
you see fit:

* Inclusion of header files. These are files of declarations that can be
  substituted into your program.
* Macro expansion. You can define 'macros,' which are abbreviations for 
  arbitrary fragments of C code, and then the C preprocessor will replace
  the macros with their definitions throughout the program.
* Conditional compilation. Using special preprocessing directives,
  you can include or exclude parts of the program according to various
  conditions.
* Line control. If you use a program to combine or rearrange source files
  into an intermediate file which is then compiled, you can use line
  control to inform the compiler about where each source line originated.

You should install this package if you are a programmer who is searching for
such a macro processor.


####################################################################
# Documentation

%package doc
Summary:	GCC documentation
Group:		Development/Other
%if %{system_compiler}
Obsoletes:	gcc%{branch}-doc
Provides:	gcc%{branch}-doc = %{version}-%{release}
%endif
Requires(post): info-install
Requires(preun): info-install
BuildArch: noarch

%description doc
GCC is a compiler suite aimed at integrating all the optimizations and
features necessary for a high-performance and stable development
environment. This package contains the compiler documentation in INFO
pages.

%package doc-pdf
Summary:	GCC documentation
Group:		Development/Other
%if %{system_compiler}
Obsoletes:	gcc%{branch}-doc-pdf
Provides:	gcc%{branch}-doc-pdf = %{version}-%{release}
%endif
BuildArch: noarch

%description doc-pdf
GCC is a compiler suite aimed at integrating all the optimizations and
features necessary for a high-performance and stable development
environment. This package contains the compiler printable
documentation in PDF.

%package -n libstdc++-docs
Summary: Documentation for the GNU standard C++ library
Group: Development/Other
BuildArch: noarch

%description -n libstdc++-docs
Manual, doxygen generated API information and Frequently Asked Questions
for the GNU standard C++ library.

%prep
%setup -q -n %{source_dir} -a 5 -a 9
%patch1 -p1 -b .pr11536-testcase
%patch2 -p1 -b .pr9929-testcase

# Mageia patches
%patch101 -p1 -b .pass-slibdir
%patch102 -p1 -b .pr7434-testcase
%patch103 -p1 -b .pr8213-testcase

%patch106 -p1 -b .ada-makefile

%patch107 -p1 -b .multi-do-libdir
%patch113 -p1 -b .pr11631-testcase
%patch115 -p1 -b .linux32

# revert upstream commit that breaks build
%patch126 -p1 -R -b .p126

%patch130 -p1
perl -pi -e 's,\@PROPERTYFILES\@,"%{_prefix}/lib",' libjava/gnu/classpath/natSystemProperties.cc

%patch132 -p1
%if %build_libgcj_bc && !%system_compiler
perl -pi -e 's,\@ADDITIONAL_RPATH\@,-rpath %{target_libdir}/gcj_bc-%{libgcj_major},' libjava/Makefile.{am,in}
%else
perl -pi -e 's,\@ADDITIONAL_RPATH\@,,' libjava/Makefile.{am,in}
%endif
%patch133 -p0

# Red Hat patches
%patch201 -p1 -b .java-nomulti
%patch207 -p1 -b .libltdl-multilib

%if %{use_hash_style_gnu}
%patch211 -p1 -b .hash-style-gnu
%patch507 -p1 -b .arm-hash-style-gnu
%endif

# Integrate GNU Pascal compiler
%if %{build_pascal}
mv gpc-%{gpc_snapshot}/p gcc/p
rmdir gpc-%{gpc_snapshot}
patch -p1 < gcc/p/diffs/gcc-3.5.0.diff
%patch111 -p1 -b .gpc-fixes
%patch112 -p1 -b .gpc-serialize-build
%endif
%patch301 -p1 -b .mips_java
%patch302 -p1 -b .mips-testsuite-addr
%if %isarch mips mipsel
# needed only to get o32 by default on 64 bit multiarch systems.
# by default, gcc is using n32 on 64 bits multiarch systems
%patch306 -p1 -b .mips_multi
%endif
%patch501 -p1 -b .arm2
%patch502 -p1 -b .armformat

# CVE-2015-5276
%patch600 -p1 -b .p600-cve

# Setup files for cross-compilation
# XXX embed uClibc / dietlibc sources? [ia64 checks for __GLIBC__]
%if %{build_cross}
sysroot=%{_prefix}/%{gcc_target_platform}
%endif
if [[ -n "$sysroot" ]]; then
mkdir sysroot
cd sysroot
[[ -d $sysroot/bin ]] &&
ln -s $sysroot/bin bin
%if !%isarch %{lsb_arches}
[[ ! -d usr ]] &&
mkdir usr
%if %{build_cross_bootstrap}
[[ -f $sysroot/include/linux/version.h ]] &&
ln -s $sysroot/include usr/include
%else
[[ -f $sysroot/include/stdio.h ]] &&
ln -s $sysroot/include usr/include
%endif
%else
[[ -L usr/include ]] || {
mkdir -p usr/include
tar jxf %{SOURCE1} -C usr/include
pushd usr
%patch999 -p0
popd
}
%endif
[[ -f $sysroot/lib/crti.o ]] &&
ln -s $sysroot/lib lib
[[ -f $sysroot/lib64/crti.o ]] &&
ln -s $sysroot/lib64 lib64
[[ -f $sysroot/lib32/crti.o ]] &&
ln -s $sysroot/lib32 lib32
cd ../
fi

# We can actually link binaries at this stage
# XXX integrate into Patch104 (cross-build-fixes)?
%if %{build_cross}
perl -pi -e '/^DRIVER_DEFINES/ .. /^gcc/ and s/(\@TARGET_SYSTEM_ROOT_DEFINE\@)/-DSYSROOT_SPEC="\\"\\"" \1/' gcc/Makefile.in
#perl -ni -e '/^m4_define.+AC_LINK/ .. /^m4_defn.+AC_LINK/ or print' config/no-executables.m4
#perl -pi -e 's/^(.+GLIBCXX_IS_NATIVE)=false/\1=true/' libstdc++-v3/configure.ac
#for d in libiberty libgfortran libstdc++-v3; do
#cd $d
#autoconf
#cd ..
#done
%endif

%if !%build_libgcj_bc
perl -pi -e 's,use_libgcj_bc=yes,use_libgcj_bc=no,' libjava/configure.host
%endif

# Patch version for Mageia and bug reports
echo "%{version}" > gcc/BASE-VER
perl -pi -e '/^\#define VERSUFFIX/ and s/""/" (%{version}-%{release})"/' gcc/version.c

# Fix java-ext path
sed -i -e 's,\$(jardir)/ext,$(jardir)-ext,g' libjava/Makefile.{am,in}

%patch304 -p1 -b .uclibc~

# link source9 + patch133 into classpath source tree
HARMONY_SOURCES=$(find harmony -name '*.java')
for i in ${HARMONY_SOURCES}; do
  ln ${i} libjava/classpath/${i#harmony/}
done

# now compile them to class files (!)
pushd libjava/classpath
ecj -source 1.5 -target 1.5 -bootclasspath lib -d lib $(for i in ${HARMONY_SOURCES}; do echo ${i#harmony/}; done)

%build
# FIXME: extra tools needed
mkdir -p bin
install -m755 %{SOURCE6} bin/help2man
export PATH=$PATH:$PWD/bin

# Prepare OPT_FLAGS
OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-mcpu=pentiumpro//g'`
%if %{build_debug}
OPT_FLAGS=`echo "$OPT_FLAGS -g" | sed -e "s/-fomit-frame-pointer//g"`
%endif
%if %{build_cross}
OPT_FLAGS="-O2 -g -pipe"
%endif
%if %isarch %{biarches}
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/\(-m64\|-m32\)//g'`
%endif
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fomit-frame-pointer//g'`

# don't build crt files with -fasynchronous-unwind-tables
case " $OPT_FLAGS " in
*" -fasynchronous-unwind-tables "*)
  perl -pi -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables /' gcc/Makefile.in
  ;;
esac

# Force a seperate object dir
rm -fr obj-%{gcc_target_platform}
mkdir obj-%{gcc_target_platform}
cd obj-%{gcc_target_platform}

# Make bootstrap-lean
LANGUAGES="c"
%if %{build_cxx}
LANGUAGES="$LANGUAGES,c++"
%endif
%if %{build_ada}
LANGUAGES="$LANGUAGES,ada"
%endif
%if %{build_fortran}
LANGUAGES="$LANGUAGES,fortran"
%endif
%if %{build_objc}
LANGUAGES="$LANGUAGES,objc"
LIBOBJC_FLAGS="--enable-objc-gc"
%endif
%if %{build_objcp}
LANGUAGES="$LANGUAGES,obj-c++"
%endif
%if %{build_java}
LANGUAGES="$LANGUAGES,java"
%endif
%if %{build_pascal}
LANGUAGES="$LANGUAGES,pascal"
%endif
PROGRAM_SUFFIX=""
%if "%{program_suffix}" != ""
PROGRAM_SUFFIX="--program-suffix=%{program_suffix}"
%endif
PROGRAM_PREFIX=""
%if "%{program_prefix}" != ""
PROGRAM_PREFIX="--program-prefix=%{program_prefix}"
%endif
%if %{build_cxx}
LIBSTDCXX_FLAGS="--enable-long-long --enable-__cxa_atexit --disable-libunwind-exceptions"
case %{libc} in
glibc)		LIBSTDCXX_FLAGS="$LIBSTDCXX_FLAGS --enable-clocale=gnu";;
esac
%endif
%if %{build_java}
LIBJAVA_FLAGS="--enable-java-awt=gtk --with-java-home=%{jdk_home} --with-ecj-jar=%{_datadir}/java/eclipse-ecj.jar"
LIBJAVA_FLAGS="$LIBJAVA_FLAGS --enable-gtk-cairo"
LIBJAVA_FLAGS="$LIBJAVA_FLAGS --disable-libjava-multilib"
%if %isarch %arm
LIBJAVA_FLAGS="$LIBJAVA_FLAGS --disable-sjlj-exceptions"
%endif
%else
LIBJAVA_FLAGS="--disable-libgcj"
%endif
SSP_FLAGS="--disable-ssp --disable-libssp"
%if %{build_libssp}
SSP_FLAGS="--enable-ssp --enable-libssp"
%endif
%if %{use_ssp_glibc}
SSP_FLAGS="--enable-ssp --disable-libssp"
%endif
%if !%{build_quadmath}
QUADMATH_FLAGS="--disable-quadmath"
%endif
%if !%{build_libgomp}
LIBGOMP_FLAGS="--disable-libgomp"
%endif
%if %{build_cloog}
CLOOG_FLAGS="--with-ppl --with-cloog"
%endif
%if !%{build_libffi} && !%{build_java}
LIBFFI_FLAGS="--disable-libffi"
%endif
%if %{build_cross}
CROSS_FLAGS="--with-build-sysroot=$PWD/../sysroot --with-headers --disable-nls"
%endif
%if %{build_cross_bootstrap}
CROSS_FLAGS="--disable-threads"
%if %isarch %{lsb_arches}
# we have embedded the LSB 3.1 headers, so we can build the unwinding stuff too (ia64)
CROSS_FLAGS="$CROSS_FLAGS --with-build-sysroot=$PWD/../sysroot --with-headers"
%endif
%endif
%if !%{system_compiler} && !%{build_stdcxxheaders}
LIBSTDCXX_FLAGS="$LIBSTDCXX_FLAGS --with-gxx-include-dir=%{libstdcxx_includedir}"
%endif
[[ -n "$CROSS_FLAGS" ]] && CROSS_FLAGS="$CROSS_FLAGS --target=%{gcc_target_platform}"
case %{libc} in
%if %{build_cross_bootstrap}
glibc)		LIBC_FLAGS="";;
%else
glibc)		LIBC_FLAGS="--enable-threads=posix";;
%endif
newlib)		LIBC_FLAGS="--with-newlib --with-headers --disable-threads";;
*)		echo "ERROR: unsupported %{libc} C library"; exit 1;;
esac
%if %{libc_shared}
LIBC_FLAGS="$LIBC_FLAGS --enable-shared"
%else
LIBC_FLAGS="$LIBC_FLAGS --disable-shared"
%endif
# target specific flags (don't %ifarch for cross compilers)
case %{target_cpu} in
x86_64)		TARGET_FLAGS="--with-cpu=generic";;
i?86|athlon)	TARGET_FLAGS="--with-cpu=generic";;
mips64|mips64el) TARGET_FLAGS="--enable-long-long --with-abi=64 --enable-targets=all";;
mips32|mips32el) TARGET_FLAGS="--enable-long-long --with-abi=n32 --enable-targets=all";;
mips|mipsel) TARGET_FLAGS="--enable-long-long --enable-targets=all";;
esac

# (anssi) building with external jar fails
%define python_dir %(echo "%{py_puresitedir}" | sed 's!^%{_prefix}!!g')
export JAR="no"
export FASTJAR="no"
CC="%{__cc}" CFLAGS="$OPT_FLAGS" CXXFLAGS="$OPT_FLAGS" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
	../configure --prefix=%{_prefix} --libexecdir=%{_prefix}/lib --with-slibdir=%{target_slibdir} \
	--with-bugurl=http://bugs.mageia.org/ \
	--mandir=%{_mandir} --infodir=%{_infodir} --enable-checking=release \
	--enable-languages="$LANGUAGES" $PROGRAM_PREFIX $PROGRAM_SUFFIX --enable-linker-build-id \
	--build=%{_target_platform} --host=%{_target_platform} $CROSS_FLAGS $TARGET_FLAGS \
	--with-system-zlib $LIBC_FLAGS $LIBOBJC_FLAGS $LIBSTDCXX_FLAGS $LIBJAVA_FLAGS $SSP_FLAGS \
	$QUADMATH_FLAGS $LIBFFI_FLAGS --disable-werror $LIBGOMP_FLAGS \
	$CLOOG_FLAGS --with-python-dir=%{python_dir} --enable-lto
touch ../gcc/c-gperf.h
%if %{build_cross}
# (peryvind): xgcc seems to ignore --sysroot, so let's just workaround it for
# by adding a symlink to the headers since xgcc already passes -isystem ./include
#mkdir -p %{target_cpu}-linux/libgcc
#ln -sf $PWD/../sysroot/usr/include %{target_cpu}-linux/libgcc/include

%make
%else
# bootstrap-lean is similar to bootstrap except "object files from the stage1
# and stage2 of the 3-stage bootstrap of the compiler are deleted as soon as
# they are no longer needed."
%make bootstrap-lean BOOT_CFLAGS="$OPT_FLAGS"

%endif

cd ..

# Copy various doc files here and there
mkdir -p rpm.doc/gfortran
mkdir -p rpm.doc/objc
mkdir -p rpm.doc/objcp
mkdir -p rpm.doc/libjava
mkdir -p rpm.doc/libobjc
mkdir -p rpm.doc/boehm-gc
mkdir -p rpm.doc/gpc
mkdir -p rpm.doc/c++
mkdir -p rpm.doc/libstdc++

%if %{build_libstdcxx}
(cd libstdc++-v3; for i in ChangeLog*; do
	ln -f $i ../rpm.doc/libstdc++/$i
done)
%endif
%if %{build_cxx}
(cd gcc/cp; for i in ChangeLog*; do
	ln -f $i ../../rpm.doc/c++/$i
done)
%endif
%if %{build_pascal}
(cd gcc/p; for i in ChangeLog* README NEWS FAQ; do
	ln -f $i ../../rpm.doc/gpc/$i
done)
%endif
%if %{build_fortran}
(cd gcc/fortran; for i in ChangeLog*; do
	ln -f $i ../../rpm.doc/gfortran/$i
done)
(cd libgfortran; for i in ChangeLog*; do
	ln -f $i ../rpm.doc/gfortran/$i.libgfortran
done)
%endif
%if %{build_objc}
(cd gcc/objc; for i in ChangeLog*; do
	ln -f $i ../../rpm.doc/objc/$i.objc
done)
(cd libobjc; for i in ChangeLog*; do
	ln -f $i ../rpm.doc/libobjc/$i.libobjc
done)
%endif
%if %{build_objcp}
(cd gcc/objcp; for i in ChangeLog*; do
	ln -f $i ../../rpm.doc/objcp/$i.objcp
done)
%endif
%if %{build_java}
(cd boehm-gc; for i in ChangeLog*; do
        ln -f $i ../rpm.doc/boehm-gc/$i.gc
done)
(cd libjava; for i in README THANKS COPYING ChangeLog*; do
	ln -f $i ../rpm.doc/libjava/$i.libjava
done)
(cd libjava; ln -f LIBGCJ_LICENSE ../rpm.doc/libjava/LICENSE.libjava)

# we addded some apache harmony code, add a note
cat >rpm.doc/libjava/README.harmony <<EOF
This distribution of libgcj contains code from the Apache Harmony
project <http://harmony.apache.org/>. See the files NOTICE.harmony
and LICENSE.harmony for copyright and license information on the 
classes listed below.

EOF
for i in $(find harmony -name '*.java'); do j=${i#harmony/}; echo ${j%.java}|tr / .; done >>rpm.doc/libjava/README.harmony
(cd harmony; for i in LICENSE NOTICE; do
	ln -f $i ../rpm.doc/libjava/$i.harmony
done)
%endif

# [ghibo] - build printable documentation
%if %{build_pdf_doc}
export PDFTEX=pdftex
unset TEXINPUTS
(cd gcc/doc; for file in gcc.texi cpp.texi cppinternals.texi; do
  texi2dvi -p -t @afourpaper -t @finalout -I ./include -I ../../obj-%{gcc_target_platform}/gcc $file
done)
(cd gcc/fortran;
  texi2dvi -p -t @afourpaper -t @finalout -I ../doc/include -I ../../obj-%{gcc_target_platform}/gcc gfortran.texi)
%if %{build_ada}
(cd gcc/ada;
  texi2dvi -p -t @afourpaper -t @finalout -I ../doc/include -I ../../obj-%{gcc_target_platform}/gcc gnat_rm.texi)
(cd obj-%{gcc_target_platform}/gcc/doc;
  texi2dvi -p -t @afourpaper -t @finalout -I ../../../gcc/doc/include -I .. gnat_ugn.texi
  mv gnat_ugn.pdf ../../../gcc/ada/gnat_ugn.pdf)
%endif
%endif

# Make generated doxygen pages.
%if %{build_libstdcxx_docs}
cd obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3
make doc-html-doxygen
make doc-man-doxygen
cd ../..
%endif

%check
echo ====================TESTING=========================
%if %{build_check}
cd obj-%{gcc_target_platform}
time %make -k check || true
echo "XXX check time above XXX"
../contrib/test_summary > ../test_summary.log
cd ..
%endif
echo ====================TESTING END=====================
 
%install
# Create some directories, just to make sure (e.g. ColorGCC)
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_mandir}
mkdir -p %{buildroot}%{_infodir}
mkdir -p %{buildroot}%{_sysconfdir}

pushd obj-%{gcc_target_platform};
  %makeinstall_std
  %if %{build_java}
  %makeinstall_std -C %{gcc_target_platform}/libjava install-src.zip
  %endif
%if %{build_libstdcxx_docs}
  libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen
  mkdir -p ../rpm.doc/libstdc++-v3
  cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html
  cp -r -p $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api
  mkdir -p %{buildroot}%{_mandir}/man3
  cp -r -p $libstdcxx_doc_builddir/man/man3/* %{buildroot}%{_mandir}/man3/
%endif
popd

FULLVER=`%{buildroot}%{_bindir}/%{gcc_target_platform}-gcc%{program_suffix} --version | head -n 1 | cut -d' ' -f3`
FULLPATH=$(dirname %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/cc1)

# Create /usr/bin/%{program_prefix}gcc%{branch}-version that contains the full version of gcc
cat >%{buildroot}%{_bindir}/%{program_prefix}gcc%{branch}-version <<EOF
#!/bin/sh
echo "$FULLVER"
EOF
chmod 0755 %{buildroot}%{_bindir}/%{program_prefix}gcc%{branch}-version

%if "%{program_suffix}" == ""
mv %{buildroot}%{_bindir}/%{program_prefix}cpp %{buildroot}%{_bindir}/%{program_prefix}cpp-%{version}
mv %{buildroot}%{_bindir}/%{program_prefix}gcc %{buildroot}%{_bindir}/%{program_prefix}gcc-%{version}
mv %{buildroot}%{_bindir}/%{program_prefix}gcc-ar %{buildroot}%{_bindir}/%{program_prefix}gcc-ar-%{version}
mv %{buildroot}%{_bindir}/%{program_prefix}gcc-nm %{buildroot}%{_bindir}/%{program_prefix}gcc-nm-%{version}
mv %{buildroot}%{_bindir}/%{program_prefix}gcc-ranlib %{buildroot}%{_bindir}/%{program_prefix}gcc-ranlib-%{version}
%if %{build_cxx}
mv %{buildroot}%{_bindir}/%{program_prefix}g++ %{buildroot}%{_bindir}/%{program_prefix}g++-%{version}
mv %{buildroot}%{_bindir}/%{program_prefix}c++ %{buildroot}%{_bindir}/%{program_prefix}c++-%{version}
%endif
%endif

# replacing hardlinks with symlinks
ln -sf %{program_prefix}gcc%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gcc%{program_suffix}
ln -sf %{program_prefix}gcc-ar%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gcc-ar%{program_suffix}
ln -sf %{program_prefix}gcc-nm%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gcc-nm%{program_suffix}
ln -sf %{program_prefix}gcc-ranlib%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gcc-ranlib%{program_suffix}
ln -sf %{program_prefix}gcc-ar%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-ar%{program_suffix}
ln -sf %{program_prefix}gcc-nm%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-nm%{program_suffix}
ln -sf %{program_prefix}gcc-ranlib%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-ranlib%{program_suffix}
# TODO: cleanups?
%if "%{program_prefix}" != "%{gcc_target_platform}-"
ln -sf %{program_prefix}gcc%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gcc-%{version}
ln -sf %{program_prefix}gcc-ar%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-ar-%{version}
ln -sf %{program_prefix}gcc-nm%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-nm-%{version}
ln -sf %{program_prefix}gcc-ranlib%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-ranlib-%{version}
%endif
%if %{build_cxx}
%if !%{build_cross}
ln -sf %{program_prefix}g++%{program_long_suffix} %{buildroot}%{_bindir}/c++%{program_long_suffix}
%endif
ln -sf %{program_prefix}g++%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-c++%{program_suffix}
ln -sf %{program_prefix}g++%{program_long_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-g++%{program_suffix}
%endif
%if %{build_fortran}
ln -sf %{program_prefix}gfortran%{program_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gfortran%{program_suffix}
%endif
%if %{build_java}
ln -sf %{program_prefix}gcj%{program_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gcj%{program_suffix}
ln -sf %{program_prefix}gcjh%{program_suffix} %{buildroot}%{_bindir}/%{gcc_target_platform}-gcjh%{program_suffix}
%endif

%if %{system_compiler}
ln -s gcc %{buildroot}%{_bindir}/cc
%endif

%if %{build_cross_bootstrap}
# libgcc_eh.a is needed for glibc _but_ it is not built at this stage
# (disabled-shared)
# workaround by symlinking to libgcc. The other possibility would be to
# workaround at glibc level but it would be more painfull.
ln -sf %{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcc.a \
	%{buildroot}/%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcc_eh.a
%if %isarch mips mipsel
ln -sf %{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libgcc.a \
	%{buildroot}/%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libgcc_eh.a
ln -sf %{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libgcc.a \
	%{buildroot}/%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libgcc_eh.a
%endif
%endif
rm -f %{buildroot}%{_infodir}/dir

%if %{build_ada} && %{libc_shared}
%if %isarch x86_64 mips64 mips64el
rm -rf $FULLPATH/32/ada{include,lib}
%endif
# Dispatch Ada 95 libraries (special case)
pushd $FULLPATH/adalib
  rm -f libgnarl.so* libgnat.so*
  mv -f libgnarl-*.so.* %{buildroot}%{_libdir}/
  ln -s %{_libdir}/libgnat-%{branch}.so.1 %{buildroot}%{_libdir}/libgnat-%{branch}.so
  ln -s ../../../../../%{_lib}/libgnarl-*.so.* libgnarl-%{branch}.so
  ln -s libgnarl-%{branch}.so libgnarl.so
  mv -f libgnat-*.so.* %{buildroot}%{_libdir}/
  ln -s ../../../../../%{_lib}/libgnat-*.so.* libgnat-%{branch}.so
  ln -s libgnat-%{branch}.so libgnat.so
popd
%endif

# Strip debug info from libraries
STRIP_DEBUG=/bin/true
%if !%{build_debug}
if [[ "%{_enable_debug_packages}" != "1" ]]; then
  STRIP_DEBUG="strip -g"
  if [[ "%{_target_cpu}" != "%{target_cpu}" ]]; then
    STRIP_DEBUG="%{target_cpu}-linux-$STRIP_DEBUG"
  fi
fi
%endif

# Dispatch libraries to the right directories
DispatchLibs() {
	libname=$1 libversion=$2
	[[ -f ../../../../..%{target_libdir}/$libname.so.$libversion ]] && {
	$STRIP_DEBUG ../../../../..%{target_libdir}/$libname.so.$libversion
	rm -f $libname.so
	ln -s ../../../../..%{target_libdir}/$libname.so.$libversion $libname.so
	rm -f ../../../../..%{target_libdir}/$libname.so
	} || :
	[[ -f ../../../../..%{target_libdir}/$libname.a ]] && {
	$STRIP_DEBUG ../../../../..%{target_libdir}/$libname.a
	rm -f $libname.a
	cp -f ../../../../..%{target_libdir}/$libname.a $libname.a
	rm -f ../../../../..%{target_libdir}/$libname.a
	} || :
	%if %isarch %{biarches}
	[ -d 32 ] || mkdir 32
	pushd 32
	mkdir -p %{buildroot}%{_prefix}/lib
	skip32=
	[[ -z "$skip32" ]] && [[ -f ../../../../$libname.so.$libversion ]] && {
	$STRIP_DEBUG ../../../../$libname.so.$libversion
	ln -s ../../../../$libname.so.$libversion $libname.so
	rm -f ../../../../$libname.so
	[[ -f ../../../../$libname.a ]] && {
	$STRIP_DEBUG ../../../../$libname.a
	cp -f ../../../../$libname.a $libname.a
	rm -f ../../../../$libname.a
	} || :
	} || :
	popd
	%endif
	%if %isarch mips mipsel
	[ -d n32 ] || mkdir n32
	pushd n32
	[[ -f ../../../../../..%{target_libdir}32/$libname.so.$libversion ]] && {
	$STRIP_DEBUG ../../../../../..%{target_libdir}32/$libname.so.$libversion
	ln -s ../../../../../..%{target_libdir}32/$libname.so.$libversion $libname.so
	rm -f ../../../../../..%{target_libdir}32/$libname.so
	[[ -f ../../../../../..%{target_libdir}32/$libname.a ]] && {
	$STRIP_DEBUG ../../../../../..%{target_libdir}32/$libname.a
	cp -f ../../../../../..%{target_libdir}32/$libname.a $libname.a
	rm -f ../../../../../..%{target_libdir}32/$libname.a
	} || :
	} || :
	popd
	[ -d 64 ] || mkdir 64
	pushd 64
	[[ -f ../../../../../..%{target_libdir}64/$libname.so.$libversion ]] && {
	$STRIP_DEBUG ../../../../../..%{target_libdir}64/$libname.so.$libversion
	ln -s ../../../../../..%{target_libdir}64/$libname.so.$libversion $libname.so
	rm -f ../../../../../..%{target_libdir}64/$libname.so
	[[ -f ../../../../../..%{target_libdir}64/$libname.a ]] && {
	$STRIP_DEBUG ../../../../../..%{target_libdir}64/$libname.a
	cp -f ../../../../../..%{target_libdir}64/$libname.a $libname.a
	rm -f ../../../../../..%{target_libdir}64/$libname.a
	} || :
	} || :
	popd
	%endif
	%if %isarch %{nof_arches}
	[ -d nof ] || mkdir nof
	pushd nof
	$STRIP_DEBUG ../../../../nof/$libname.so.$libversion
	ln -s ../../../../nof/$libname.so.$libversion $libname.so
	rm -f ../../../../nof/$libname.so
	[[ -f ../../../../nof/$libname.a ]] && {
	$STRIP_DEBUG ../../../../nof/$libname.a
	cp -f ../../../../nof/$libname.a $libname.a
	rm -f ../../../../nof/$libname.a
	} || :
	popd
	%endif
}
pushd $FULLPATH
	%if %{build_libssp}
	DispatchLibs libssp		%{libssp_major}.0.0
	mv ../../../../..%{target_libdir}/libssp_nonshared.a libssp_nonshared.a
	%if %isarch %{biarches}
	mv ../../../libssp_nonshared.a 32/libssp_nonshared.a
	%endif
	%endif
        %if %{build_libgomp}
	DispatchLibs libgomp		%{libgomp_major}.0.0
        %endif
	%if %{build_cxx}
	DispatchLibs libstdc++	%{libstdcxx_major}.0.%{libstdcxx_micro}
	mv ../../../../..%{target_libdir}/libsupc++.a libsupc++.a
	%if %isarch %{biarches}
	mv -f ../../../libsupc++.a 32/libsupc++.a
	%endif
	%if %isarch mips mipsel
	mv -f ../../../../..%{target_libdir}32/libsupc++.a n32/libsupc++.a
	mv -f ../../../../..%{target_libdir}64/libsupc++.a 64/libsupc++.a
	%endif
	%if %isarch %{nof_arches}
	mv -f ../../../nof/libsupc++.a nof/libsupc++.a
	%endif
	%endif
	# Make it less hard dependent on libstdc++ 3.4 minor changes
	%if !%{system_compiler}
	[[ -f  ../../../../..%{target_libdir}/libstdc++.so.%{libstdcxx_major} ]] &&
	ln -sf ../../../../..%{target_libdir}/libstdc++.so.%{libstdcxx_major} libstdc++.so || :
	%if %isarch %{biarches}
	[[ -f  ../../../libstdc++.so.%{libstdcxx_major} ]] &&
	ln -sf ../../../../libstdc++.so.%{libstdcxx_major} 32/libstdc++.so || :
	%endif
	%if %isarch mips mipsel
	[[ -f  ../../../../../..%{target_libdir}32/libstdc++.so.%{libstdcxx_major} ]] &&
	ln -sf ../../../../../..%{target_libdir}32/libstdc++.so.%{libstdcxx_major} n32/libstdc++.so || :
	[[ -f  ../../../../../..%{target_libdir}64/libstdc++.so.%{libstdcxx_major} ]] &&
	ln -sf ../../../../../..%{target_libdir}64/libstdc++.so.%{libstdcxx_major} 64/libstdc++.so || :
	%endif
	%endif
	%if %{build_java}
	DispatchLibs libgcj			%{libgcj_major}.0.0
	DispatchLibs libgij			%{libgcj_major}.0.0
	DispatchLibs libgcj-tools		%{libgcj_major}.0.0
	%if %build_libgcj_bc
	# Do not dispatch libgcj_bc, libgcj_bc.so and libgcj_bc.so.1.0.0
	# are different libraries intentionally. We move it manually:
	mv ../../../../..%{target_libdir}/libgcj_bc.so .
	%endif
	%endif
	%if %{build_objc}
	DispatchLibs libobjc	%{libobjc_major}.0.0
	DispatchLibs libobjc_gc	%{libobjc_major}.0.0
	%endif
	%if %{build_fortran}
	DispatchLibs libgfortran	%{libgfortran_major}.0.0
	[[ -f ../../../libgfortranbegin.a ]] &&
	mv -f ../../../libgfortranbegin.a 32/libgfortranbegin.a || :
	%if %isarch %{nof_arches}
	[[ -f ../../../nof/libgfortranbegin.a ]] &&
	mv -f ../../../nof/libgfortranbegin.a nof/libgfortranbegin.a || :
	%endif
	%endif
popd

# Move Java headers to /usr/include/libgcj-<version>
%if %{build_java}
if [ "%{libjava_includedir}" != "%{_includedir}" ]; then
  mkdir -p %{buildroot}%{libjava_includedir}
  for dir in gcj gnu java javax org; do
    mkdir -p %{buildroot}%{libjava_includedir}/$dir
    mv %{buildroot}%{libstdcxx_includedir}/$dir/* %{buildroot}%{libjava_includedir}/$dir/
    rmdir %{buildroot}%{libstdcxx_includedir}/$dir
  done

  # include <libgcj/XXX.h> should lead to <libgcj-VERSION/XXX.h>
  ln -s %{libjava_includedir} %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/libgcj

  # fix pkgconfig files
  perl -pi -e 's,^(includedir=).+,\1%{libjava_includedir},' %{buildroot}%{_libdir}/pkgconfig/libgcj-%{branch}.pc
  perl -pi -e '/^libdir=/ and s,/lib,/%{target_lib},' %{buildroot}%{_libdir}/pkgconfig/libgcj-%{branch}.pc
fi
# In java-1.5.0-gcj(-devel):
rm -rf %{buildroot}%{_bindir}/rebuild-gcj-db%{program_suffix}
rm -rf %{buildroot}%{_bindir}/aot-compile%{program_suffix}
rm -rf %{buildroot}%{_mandir}/man1/aot-compile*.1*
rm -rf %{buildroot}%{_mandir}/man1/rebuild-gcj-db*.1*
rm -f %{buildroot}%{py_puresitedir}/{aotcompile,classfile}.py
%endif

# Move libgcj.spec to compiler-specific directories
%if %{build_java}
mv %{buildroot}%{_prefix}/lib/libgcj.spec $FULLPATH/libgcj.spec
%endif

# Copy <cxxabi.h> to compiler-specific directories to keep backward compatibility
%if %{build_cxx}
mkdir -p $FULLPATH/include/bits/
cp %{buildroot}%{libstdcxx_includedir}/cxxabi.h $FULLPATH/include/
cp %{buildroot}%{libstdcxx_includedir}/%{gcc_target_platform}/bits/cxxabi_tweaks.h $FULLPATH/include/bits/
%endif

# Ship with biarch c++config.h headers
%if %{build_cxx}
pushd obj-%{gcc_target_platform}
cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`"
for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do
  if ! diff -up $cxxconfig $i; then
    file_32=x file_64=x
    case $i in
      %{gcc_target_platform}/32/*) file_32=$i; file_64=$cxxconfig ;;
      %{gcc_target_platform}/64/*) file_32=$cxxconfig; file_64=$i ;;
    esac
    { [[ -f "$file_32" ]] && [[ -f "$file_64" ]]; } ||
      { echo "c++config.h dispatch error"; exit 1; }

    cat > %{buildroot}%{libstdcxx_includedir}/%{gcc_target_platform}/bits/c++config.h <<EOF
#ifndef _CPP_CPPCONFIG_WRAPPER
#define _CPP_CPPCONFIG_WRAPPER 1
#include <bits/wordsize.h>
#if __WORDSIZE == 32
`cat $file_32`
#else
`cat $file_64`
#endif
#endif
EOF
    break
  fi
done
popd
%endif

# Link gnatgcc to gcc
%if %{build_ada}
ln -sf gcc %{buildroot}%{_bindir}/gnatgcc
%endif

# Create an empty file with perms 0755
FakeAlternatives() {
  for file in ${1+"$@"}; do
    rm -f %{cross_program_prefix}$file
    touch %{cross_program_prefix}$file
    chmod 0755 %{cross_program_prefix}$file
  done
}

# Alternatives provide /lib/cpp and %{_bindir}/cpp
(cd %{buildroot}%{_bindir}; FakeAlternatives cpp)
%if !%{build_cross} && %{system_compiler}
(mkdir -p %{buildroot}/lib; cd %{buildroot}/lib; ln -sf %{_bindir}/cpp cpp)
%endif

# Alternatives provide /usr/bin/c++
%if %{build_cxx}
(cd %{buildroot}%{_bindir}; FakeAlternatives c++)
%endif

if [[ -z "%{?cross_bootstrap:1}" ]] && [[ "%{libc_shared}" = "1" ]]; then
# Move libgcc_s.so* to /%{_lib}
pushd %{buildroot}%{_prefix}/%{target_lib}
  chmod 0755 libgcc_s.so.%{libgcc_major}
  mkdir -p %{buildroot}%{target_slibdir}
  mv -f  libgcc_s.so.%{libgcc_major} %{buildroot}%{target_slibdir}/libgcc_s-%{version}.so.%{libgcc_major}
  ln -sf libgcc_s-%{version}.so.%{libgcc_major} %{buildroot}%{target_slibdir}/libgcc_s.so.%{libgcc_major}
  # WARNING:
  # if there's a libgcc_s.so, it's a linker script. should be used instead of libgcc_s.so.*
  # to avoid build errors. At least ARM need this kind of specific care.
  if [ -f %{buildroot}/usr/%{target_lib}/libgcc_s.so ]; then
    mkdir -p %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}
    mv -f %{buildroot}/usr/%{target_lib}/libgcc_s.so %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/
  else
    ln -sf %{target_slibdir}/libgcc_s.so.%{libgcc_major} %{buildroot}%{target_libdir}/libgcc_s.so
  fi
%if %isarch %{nof_arches}
  chmod 0755 nof/libgcc_s.so.%{libgcc_major}
  mkdir -p %{buildroot}%{target_slibdir}/nof
  mv -f  nof/libgcc_s.so.%{libgcc_major} %{buildroot}%{target_slibdir}/nof/libgcc_s-%{version}.so.%{libgcc_major}
  ln -sf libgcc_s-%{version}.so.%{libgcc_major} %{buildroot}%{target_slibdir}/nof/libgcc_s.so.%{libgcc_major}
  ln -sf %{target_slibdir}/nof/libgcc_s.so.%{libgcc_major} %{buildroot}%{target_libdir}/nof/libgcc_s.so
%endif
popd
%if %isarch %{biarches}
pushd %{buildroot}%{_prefix}/lib
  chmod 0755 libgcc_s.so.%{libgcc_major}
  mkdir -p %{buildroot}/lib
  mv -f  libgcc_s.so.%{libgcc_major} %{buildroot}/lib/libgcc_s-%{version}.so.%{libgcc_major}
  ln -sf libgcc_s-%{version}.so.%{libgcc_major} %{buildroot}/lib/libgcc_s.so.%{libgcc_major}
  ln -sf ../../lib/libgcc_s.so.%{libgcc_major} %{buildroot}%{_prefix}/lib/libgcc_s.so
  ln -sf ../../lib/libgcc_s.so.%{libgcc_major} %{buildroot}%{_prefix}/lib/libgcc_s_32.so
popd
%if %build_java
libs="libgcj libgij libgcj-tools"
%if %build_libgcj_bc
libs="$libs libgcj_bc"
%endif
for lib in $libs; do
  ln -sf ../../../%{gcc32_target_platform}/%{version}/$lib.a  $FULLPATH/32/$lib.a
  ln -sf ../../../%{gcc32_target_platform}/%{version}/$lib.so $FULLPATH/32/$lib.so
done
%endif
%endif
%if %isarch mips mipsel
pushd %{buildroot}%{_prefix}/lib32
  chmod 0755 libgcc_s.so.%{libgcc_major}
  mkdir -p %{buildroot}/%{target_slibdir}32
  mv -f  libgcc_s.so.%{libgcc_major} %{buildroot}/%{target_slibdir}32/libgcc_s-%{version}.so.%{libgcc_major}
  ln -sf libgcc_s-%{version}.so.%{libgcc_major} %{buildroot}/%{target_slibdir}32/libgcc_s.so.%{libgcc_major}
  ln -sf %{target_slibdir}32/libgcc_s.so.%{libgcc_major} %{buildroot}%{target_libdir}32/libgcc_s.so
popd
pushd %{buildroot}%{_prefix}/lib64
  chmod 0755 libgcc_s.so.%{libgcc_major}
  mkdir -p %{buildroot}/%{target_slibdir}64
  mv -f  libgcc_s.so.%{libgcc_major} %{buildroot}/%{target_slibdir}64/libgcc_s-%{version}.so.%{libgcc_major}
  ln -sf libgcc_s-%{version}.so.%{libgcc_major} %{buildroot}/%{target_slibdir}64/libgcc_s.so.%{libgcc_major}
  ln -sf %{target_slibdir}64/libgcc_s.so.%{libgcc_major} %{buildroot}%{target_libdir}64/libgcc_s.so
popd
%endif
fi

# Create c89 and c99 wrappers
%if %{system_compiler}
cat > %{buildroot}%{_prefix}/bin/c89 <<"EOF"
#!/bin/sh
fl="-std=c89"
for opt; do
  case "$opt" in
    -ansi|-std=c89|-std=iso9899:1990) fl="";;
    -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
	    exit 1;;
  esac
done
exec %{_bindir}/gcc-%{version} $fl ${1+"$@"}
EOF
cat > %{buildroot}%{_prefix}/bin/c99 <<"EOF"
#!/bin/sh
fl="-std=c99"
for opt; do
  case "$opt" in
    -std=c99|-std=iso9899:1999) fl="";;
    -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
	    exit 1;;
  esac
done
exec %{_bindir}/gcc-%{version} $fl ${1+"$@"}
EOF
chmod 755 %{buildroot}%{_prefix}/bin/c?9
%endif

# FIXME: cpp, gcov manpages names
pushd %{buildroot}%{_mandir}/man1;
  if [[ -n "%{program_prefix}%{program_suffix}" ]]; then
    for f in gcov cpp gcc g++ gfortran gpc; do
      [[ -f "$f.1" ]] && mv $f.1 %{program_prefix}$f%{program_suffix}.1 || :
    done
  fi
popd

# Fix info pages
if [[ "%{name}" = "gcc%{branch}" ]]; then
  pushd %{buildroot}%{_infodir}/
  for f in cpp cppinternals gcc gpc gpcs gfortran gnat-style gnat_rm gnat_ugn gcj; do
    if [[ -f "$f.info" ]]; then
      perl -pe "/^START-INFO-DIR-ENTRY/ .. /^END-INFO-DIR-ENTRY/ and s/($f)/\${1}-%{branch}/ig" $f.info > ${f}-%{branch}.info
      rm -f $f.info
    fi
  done
  popd
fi

# Sanitize rpath
for bin in %{buildroot}%{_bindir}/* $FULLPATH/*.so $FULLPATH/ecj1; do
  if [[ ! -f $bin ]]; then
    continue
  fi
  oldrpath=$(chrpath -l $bin | awk -F= '{ print $2 }')
  newrpath=
  for rpathdir in ${oldrpath//:/ }; do
    rpathdir=${rpathdir/lib\/..\/lib64/lib64}
    [[ "$rpathdir" != "%{_libdir}" ]] || continue
    newrpath=$newrpath:$rpathdir
  done
  newrpath=${newrpath#:}
  [[ "$newrpath" != "$oldrpath" ]] || continue
  if [[ "$newrpath" == "" ]]; then
    chrpath -d $bin
  else
    chrpath -r $newrpath $bin
  fi
done

%if %{system_compiler}
%define find_lang /usr/lib/rpm/find-lang.sh %buildroot
%find_lang %{name}
%find_lang cpplib
%if %{build_cxx}
%find_lang libstdc++
%endif
%else
touch %{name}.lang cpplib.lang libstdc++.lang
%endif

# Remove unpackaged files
rm  -f %{buildroot}%{_bindir}/jar
rm  -f %{buildroot}%{_bindir}/addr2name.awk
rm -rf %{buildroot}%{_prefix}/doc
rm -rf %{buildroot}%{_mandir}/man7
rm  -f %{buildroot}%{target_libdir}/*.la
rm  -f %{buildroot}%{gcj_libdir}/*.la
rm  -f %{buildroot}%{_prefix}/lib/libiberty.a
rm  -f %{buildroot}%{_prefix}/lib64/libiberty.a
rm  -f %{buildroot}%{target_libdir}*/libiberty.a
%if %isarch %{biarches}
rm  -f %{buildroot}%{_prefix}/lib/*.la
rm  -f %{buildroot}%{_prefix}/lib/32/libiberty.a
%endif
%if %isarch mips mipsel
rm  -f %{buildroot}%{target_libdir}32/*.la
rm  -f %{buildroot}%{target_libdir}32/libiberty.a
rm  -f %{buildroot}%{target_libdir}64/*.la
rm  -f %{buildroot}%{target_libdir}64/libiberty.a
%endif
rm -rf %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/install-tools
%if !%{build_doc}
rm -fr %{buildroot}/%{_datadir}/info/
%endif
%if !%{build_quadmath}
rm -f %{buildroot}/%{_datadir}/info/libquadmath*
%endif

%if %{build_cross}
rm %{buildroot}%{_mandir}/man1/%{program_prefix}gcov%{program_suffix}.1*
rm %{buildroot}%{_bindir}/%{program_prefix}gcov%{program_suffix}
%endif


%if !%system_compiler && !%build_cross && %libc_shared
rm %{buildroot}%{target_slibdir}/libgcc_s-%{version}.so.%{libgcc_major}
rm %{buildroot}%{target_slibdir}/libgcc_s.so.%{libgcc_major}
rm %{buildroot}%{target_libdir}/libgcc_s.so
%if %isarch %{biarches}
rm %{buildroot}%{target_slibdir32}/libgcc_s-%{version}.so.%{libgcc_major}
rm %{buildroot}%{target_slibdir32}/libgcc_s.so.%{libgcc_major}
rm %{buildroot}%{target_libdir}/../lib/libgcc_s.so
rm %{buildroot}%{target_libdir}/../lib/libgcc_s_32.so
%endif
%endif
%if %build_cross && !%{build_cross_bootstrap}
rm -f %{buildroot}/usr/%{target_lib}/libgcc_s.so
%if %isarch mips mipsel
rm %{buildroot}/usr/%{target_lib}32/libgcc_s.so
rm %{buildroot}/usr/%{target_lib}64/libgcc_s.so
%endif
%endif

# lsan is only available on x86_64, no need to expose header on other arches
%ifnarch x86_64
rm -f %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/sanitizer/lsan_interface.h
%endif

# limits.h and syslimits.h are needed in includedir
mv %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/include-fixed/{sys,}limits.h \
	%{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/include
rm -r %{buildroot}%{gcc_libdir}/%{gcc_target_platform}/%{version}/include-fixed

%if %build_libgcj_bc && !%system_compiler
# moved away, otherwise conflicts with system compiler libgcj
mkdir -p %{buildroot}%{target_libdir}/gcj_bc-%{libgcj_major}
mv %{buildroot}%{target_libdir}/libgcj_bc.so.%{libgcj_bc_major}.0.0 %{buildroot}%{target_libdir}/gcj_bc-%{libgcj_major}
mv %{buildroot}%{target_libdir}/libgcj_bc.so.%{libgcj_bc_major} %{buildroot}%{target_libdir}/gcj_bc-%{libgcj_major}
%endif

%if %build_java
# Handled by jpackage-utils, see #23693
rm  -f %{buildroot}%{target_libdir}/security/classpath.security
rm  -f %{buildroot}%{target_libdir}/logging.properties
%endif

#%if %build_java && !%build_libffi
#rm %{buildroot}%{target_libdir}/libffi.*
#%if %isarch %biarches
#rm %{buildroot}%{target_libdir}/../lib/libffi.*
#%endif
#rm %{buildroot}%{_mandir}/man3/ffi*.3
#%endif

%if !%{system_compiler}
rm -f %{buildroot}%{_infodir}/gccinstall.info*
rm -f %{buildroot}%{_infodir}/gccint.info*
rm -rf %{buildroot}%{_datadir}/locale
%endif
rm -f %{buildroot}%{_infodir}/cp-tools.info

# In case we are cross-compiling, don't bother to remake symlinks and
# don't let spec-helper when stripping files either
%if %build_cross
export DONT_SYMLINK_LIBS=1
export DONT_STRIP=1
%endif

%if %{build_debug}
# Don't strip in debug mode
export DONT_STRIP=1
%endif

%if %{build_java}
mkdir -p %{buildroot}%{_datadir}/java/gcj-endorsed \
         %{buildroot}%{gcj_libdir}/classmap.db.d
chmod 755 %{buildroot}%{_datadir}/java/gcj-endorsed \
          %{buildroot}%{gcj_libdir} \
          %{buildroot}%{gcj_libdir}/classmap.db.d
touch %{buildroot}%{gcj_libdir}/classmap.db

# check if gcj-dbtool hasn't been incorrectly relinked.  rh#165781
classmap_db=`LD_LIBRARY_PATH=%{buildroot}%{_libdir}:%{buildroot}/%{_lib} \
             %{buildroot}%{_bindir}/gcj-dbtool%{program_suffix} -p`
case "$classmap_db" in
  # XXX: grmpf, make sure it's at a unique location!?
  %{gcj_libdir}/classmap.db) ;;
  %{_prefix}/lib/../%{_lib}/gcj-%{version}-%{libgcj_major}/classmap.db) ;;
  *) echo Unexpected gcj-dbtool%{program_suffix} -p output; exit 1 ;;
esac
%endif

%if %{build_libstdcxx}
%if %build_cross && !%{build_cross_bootstrap}
rm -f %{buildroot}%{target_libdir}/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py
%if %isarch mips mipsel
rm -f %{buildroot}%{target_libdir}32/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py
rm -f %{buildroot}%{target_libdir}64/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py
%endif
%else
mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_libdir}
mv -f %{buildroot}%{_libdir}/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py \
      %{buildroot}%{_datadir}/gdb/auto-load/%{_libdir}/
%if %isarch %{biarches}
mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/lib
mv -f %{buildroot}%{_prefix}/lib/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py \
      %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/lib/
%endif
%endif
%endif

# fix links broken by /usr move
rm -f %{buildroot}/lib/cpp
ln -sf %{_bindir}/cpp %{buildroot}%{_prefix}/lib/cpp

%post
/usr/sbin/update-alternatives --install %{_bindir}/%{cross_program_prefix}gcc %{cross_program_prefix}gcc %{_bindir}/%{program_prefix}gcc-%{version} %{alternative_priority}
[ -e %{_bindir}/%{cross_program_prefix}gcc ] || /usr/sbin/update-alternatives --auto %{cross_program_prefix}gcc
/usr/sbin/update-alternatives --install %{_bindir}/%{cross_program_prefix}gcc-ar %{cross_program_prefix}gcc-ar %{_bindir}/%{program_prefix}gcc-ar-%{version} %{alternative_priority}
[ -e %{_bindir}/%{cross_program_prefix}gcc-ar ] || /usr/sbin/update-alternatives --auto %{cross_program_prefix}gcc-ar
/usr/sbin/update-alternatives --install %{_bindir}/%{cross_program_prefix}gcc-nm %{cross_program_prefix}gcc-nm %{_bindir}/%{program_prefix}gcc-nm-%{version} %{alternative_priority}
[ -e %{_bindir}/%{cross_program_prefix}gcc-nm ] || /usr/sbin/update-alternatives --auto %{cross_program_prefix}gcc-nm
/usr/sbin/update-alternatives --install %{_bindir}/%{cross_program_prefix}gcc-ranlib %{cross_program_prefix}gcc-ranlib %{_bindir}/%{program_prefix}gcc-ranlib-%{version} %{alternative_priority}
[ -e %{_bindir}/%{cross_program_prefix}gcc-ranlib ] || /usr/sbin/update-alternatives --auto %{cross_program_prefix}gcc-ranlib

%postun
if [ ! -f %{_bindir}/%{cross_program_prefix}gcc-%{version} ]; then
  /usr/sbin/update-alternatives --remove %{cross_program_prefix}gcc %{_bindir}/%{program_prefix}gcc-%{version}
fi
if [ ! -f %{_bindir}/%{cross_program_prefix}gcc-ar-%{version} ]; then
  /usr/sbin/update-alternatives --remove %{cross_program_prefix}gcc-ar %{_bindir}/%{program_prefix}gcc-ar-%{version}
fi
if [ ! -f %{_bindir}/%{cross_program_prefix}gcc-nm-%{version} ]; then
  /usr/sbin/update-alternatives --remove %{cross_program_prefix}gcc-nm %{_bindir}/%{program_prefix}gcc-nm-%{version}
fi
if [ ! -f %{_bindir}/%{cross_program_prefix}gcc-ranlib-%{version} ]; then
  /usr/sbin/update-alternatives --remove %{cross_program_prefix}gcc-ranlib %{_bindir}/%{program_prefix}gcc-ranlib-%{version}
fi

%if %{build_cxx}
%post c++
/usr/sbin/update-alternatives --install %{_bindir}/%{cross_program_prefix}g++ %{cross_program_prefix}g++ %{_bindir}/%{program_prefix}g++-%{version} %{alternative_priority} --slave %{_bindir}/%{cross_program_prefix}c++ %{cross_program_prefix}c++ %{_bindir}/%{program_prefix}g++-%{version}
[ -e %{_bindir}/%{cross_program_prefix}g++ ] || /usr/sbin/update-alternatives --auto %{cross_program_prefix}g++

%postun c++
if [ ! -f %{_bindir}/%{cross_program_prefix}g++-%{version} ]; then
  /usr/sbin/update-alternatives --remove %{cross_program_prefix}g++ %{_bindir}/%{program_prefix}g++-%{version}
fi
%endif

%post cpp
/usr/sbin/update-alternatives --install %{_bindir}/%{cross_program_prefix}cpp %{cross_program_prefix}cpp %{_bindir}/%{program_prefix}cpp-%{version} %{alternative_priority} --slave /lib/%{cross_program_prefix}cpp %{cross_program_prefix}lib_cpp %{_bindir}/%{program_prefix}cpp-%{version}
[ -e %{_bindir}/%{cross_program_prefix}cpp ] || /usr/sbin/update-alternatives --auto %{cross_program_prefix}cpp

%postun cpp
if [ ! -f %{_bindir}/%{cross_program_prefix}cpp-%{version} ]; then
  /usr/sbin/update-alternatives --remove %{cross_program_prefix}cpp %{_bindir}/%{program_prefix}cpp-%{version}
fi

%post doc
%_install_info gcc%{_package_suffix}.info
%_install_info cpp%{_package_suffix}.info
%if %{build_pascal}
%_install_info gpc%{_package_suffix}.info
%_install_info gpcs%{_package_suffix}.info
%endif
%if %{build_fortran}
%_install_info gfortran%{_package_suffix}.info
%endif
%if %{build_quadmath}
%_install_info libquadmath%{_package_suffix}.info
%endif
%if %{build_libitm}
%_install_info libitm%{_package_suffix}.info
%endif
%if %{build_ada}
%_install_info gnat-style%{_package_suffix}.info
%_install_info gnat_rm%{_package_suffix}.info
%_install_info gnat_ugn%{_package_suffix}.info
%endif
%if %{build_java}
%_install_info gcj%{_package_suffix}_ug.info
%endif

%preun doc
if [ "$1" = "0" ];then /sbin/install-info %{_infodir}/gcc%{_package_suffix}.info.bz2 --dir=%{_infodir}/dir --remove;fi;
%_remove_install_info cpp%{_package_suffix}.info
%if %{build_pascal}
%_remove_install_info gpc%{_package_suffix}.info
%_remove_install_info gpcs%{_package_suffix}.info
%endif
%if %{build_fortran}
%_remove_install_info gfortran%{_package_suffix}.info
%endif
%if %{build_quadmath}
%_remove_install_info libquadmath%{_package_suffix}.info
%endif
%if %{build_libitm}
%_remove_install_info libitm%{_package_suffix}.info
%endif
%if %{build_ada}
%_remove_install_info gnat-style%{_package_suffix}.info
%_remove_install_info gnat_rm%{_package_suffix}.info
%_remove_install_info gnat_ugn%{_package_suffix}.info
%endif
%if %{build_java}
%_remove_install_info gcj%{_package_suffix}.info
%endif

%files -f %{name}.lang
#
%doc gcc/README*
%{_mandir}/man1/%{program_prefix}gcc%{program_suffix}.1*
%if "%{name}" == "gcc%{package_suffix}"
%{_mandir}/man1/gcov%{program_suffix}.1*
%endif
#
%{_bindir}/%{program_prefix}gcc%{branch}-version
%{_bindir}/%{program_prefix}gcc%{program_long_suffix}
%{_bindir}/%{gcc_target_platform}-gcc%{program_suffix}
%{_bindir}/%{gcc_target_platform}-gcc-%{version}
%{_bindir}/%{program_prefix}gcc-ar%{program_long_suffix}
%{_bindir}/%{gcc_target_platform}-gcc-ar%{program_suffix}
%{_bindir}/%{gcc_target_platform}-ar%{program_suffix}
%{_bindir}/%{gcc_target_platform}-ar-%{version}
%{_bindir}/%{program_prefix}gcc-nm%{program_long_suffix}
%{_bindir}/%{gcc_target_platform}-gcc-nm%{program_suffix}
%{_bindir}/%{gcc_target_platform}-nm%{program_suffix}
%{_bindir}/%{gcc_target_platform}-nm-%{version}
%{_bindir}/%{program_prefix}gcc-ranlib%{program_long_suffix}
%{_bindir}/%{gcc_target_platform}-gcc-ranlib%{program_suffix}
%{_bindir}/%{gcc_target_platform}-ranlib%{program_suffix}
%{_bindir}/%{gcc_target_platform}-ranlib-%{version}
%if "%{name}" == "gcc%{package_suffix}"
%{_bindir}/gcov%{program_suffix}
%endif
%if %{system_compiler}
%{_bindir}/cc
%{_bindir}/c89
%{_bindir}/c99
%endif
#
%if %{libc_shared} && %{build_cross} || %{system_compiler}
%if !%{build_cross_bootstrap}
%if %isarch %arm
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcc_s.so
%else
%{target_libdir}/libgcc_s.so
%endif
%if %isarch mips mipsel
%{target_libdir}32/libgcc_s.so
%{target_libdir}64/libgcc_s.so
%endif
%endif
%if "%{name}" == "gcc%{package_suffix}"
%if %isarch %{nof_arches}
%{_libdir}/nof/libgcc_s.so
%endif
%if %isarch %{biarches}
%{_prefix}/lib/libgcc_s.so
%{_prefix}/lib/libgcc_s_32.so
%endif
%endif
%endif
#
%dir %{gcc_libdir}/%{gcc_target_platform}
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}
#
%{gcc_libdir}/%{gcc_target_platform}/%{version}/collect2
%{gcc_libdir}/%{gcc_target_platform}/%{version}/crt*.o
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcc.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcov.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/lto-wrapper
%{gcc_libdir}/%{gcc_target_platform}/%{version}/lto1
# TODO: split out?
%{gcc_libdir}/%{gcc_target_platform}/%{version}/liblto_plugin*

%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcc_eh.a
%if "%{name}" == "gcc%{package_suffix}"
%if %isarch %{biarches}
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/32
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/crt*.o
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgcc.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgcc_eh.a
%endif
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgcov.a
%endif
%if %isarch %{nof_arches}
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/nof
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/crt*.o
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/ecrt*.o
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libgcc.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libgcc_eh.a
%endif
%endif
%endif
%if "%{target_cpu}" == "mipsel"
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/64
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/crt*.o
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libgcc.a
%if %{libc_shared} || %{build_cross_bootstrap}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libgcc_eh.a
%endif
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libgcov.a
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/n32
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/crt*.o
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libgcc.a
%if %{libc_shared} || %{build_cross_bootstrap}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libgcc_eh.a
%endif
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libgcov.a
%endif
#
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/include
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/float.h
%if %isarch %{ix86} x86_64
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/adxintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/ammintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avxintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx2intrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512cdintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512erintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512fintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/avx512pfintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/bmiintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/bmi2intrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/bmmintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/emmintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/f16cintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/fma4intrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/fmaintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/fxsrintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/ia32intrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/immintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/lwpintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/lzcntintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/mm_malloc.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/mm3dnow.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/mmintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/nmmintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/pmmintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/popcntintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/prfchwintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/rdseedintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/rtmintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/shaintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/smmintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdalign.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdatomic.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdnoreturn.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/tbmintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/tmmintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/wmmintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/x86intrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/xmmintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/xopintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/xsaveintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/xsaveoptintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/xtestintrin.h
%endif
%if %isarch %arm
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/mmintrin.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/arm_neon.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdalign.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdnoreturn.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/unwind-arm-common.h
%endif
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/iso646.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/limits.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdarg.h
%if %isarch %{ix86} x86_64
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cross-stdarg.h
%endif
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdbool.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stddef.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdint-gcc.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdint.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/syslimits.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/unwind.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/varargs.h
%if %isarch i386 x86_64
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cpuid.h
%endif
%if %isarch %mips
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/loongson.h
%endif
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/stdfix.h
%if %{build_libcilkrts}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/cilk_api.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/cilk_api_linux.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/cilk.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/cilk_stub.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/cilk_undocumented.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/common.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/holder.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/hyperobject_base.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/metaprogramming.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer_file.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer_list.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer_max.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer_min.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer_min_max.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer_opadd.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer_opand.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer_opmul.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer_opor.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer_opxor.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer_ostream.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cilk/reducer_string.h
%endif
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/sanitizer/common_interface_defs.h

#%if !%build_libffi && %build_java
#%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/ffi*.h
#%endif

%if "%{name}" == "%{cross_prefix}gcc" && %{libc_shared}
%if !%{build_monolithic}
%files -n %{libgcc_name}
%endif
%{target_slibdir}/libgcc_s-%{version}.so.%{libgcc_major}
%{target_slibdir}/libgcc_s.so.%{libgcc_major}
%if %isarch %{biarches}
%{target_slibdir32}/libgcc_s-%{version}.so.%{libgcc_major}
%{target_slibdir32}/libgcc_s.so.%{libgcc_major}
# (cg) Excluded for usrmerge
# Note: This file will be recreated when running ldconfig so it will likely
# return almost immediately on installed systems but due to a file name conflict
# when the usrmerge happens it *must* be excluded from the package.
# In the fullness of time we can remove any /lib vs /usr/lib hacks in this package.
%exclude %{_prefix}/lib/libgcc_s.so.%{libgcc_major}
%endif
%if %isarch %{nof_arches}
%{target_slibdir}/nof/libgcc_s-%{version}.so.%{libgcc_major}
%{target_slibdir}/nof/libgcc_s.so.%{libgcc_major}
%endif
%if %isarch mips mipsel
%{target_slibdir}32/libgcc_s-%{version}.so.%{libgcc_major}
%{target_slibdir}32/libgcc_s.so.%{libgcc_major}
%{target_slibdir}64/libgcc_s-%{version}.so.%{libgcc_major}
%{target_slibdir}64/libgcc_s.so.%{libgcc_major}
%endif
%endif

%if %{build_libssp} && %{libc_shared}
%if !%{build_monolithic}
%files -n %{libssp_name}
%endif
%{target_libdir}/libssp.so.%{libssp_major}
%{target_libdir}/libssp.so.%{libssp_major}.0.0
%if %isarch %{biarches}
%{_prefix}/lib/libssp.so.%{libssp_major}
%{_prefix}/lib/libssp.so.%{libssp_major}.0.0
%endif
%endif

%if %{build_libssp}
%if !%{build_monolithic}
%files -n %{libssp_name_orig}-devel
%endif
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/ssp
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/ssp/*.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libssp.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libssp_nonshared.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libssp.so
%endif
%if %isarch %{biarches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libssp.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libssp_nonshared.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libssp.so
%endif
%endif
%endif

%if %{build_libgomp}
%files -n %{libgomp_name}
%{target_libdir}/libgomp.so.%{libgomp_major}
%{target_libdir}/libgomp.so.%{libgomp_major}.0.0
%if %isarch %{biarches}
%{_prefix}/lib/libgomp.so.%{libgomp_major}
%{_prefix}/lib/libgomp.so.%{libgomp_major}.0.0
%endif
%if %isarch mips mipsel
%{_prefix}/lib32/libgomp.so.%{libgomp_major}
%{_prefix}/lib32/libgomp.so.%{libgomp_major}.0.0
%{_prefix}/lib64/libgomp.so.%{libgomp_major}
%{_prefix}/lib64/libgomp.so.%{libgomp_major}.0.0
%endif

%files -n %{libgomp_name_orig}-devel
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgomp.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgomp.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/omp.h
%if %isarch %{biarches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgomp.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgomp.so
%endif
%{target_libdir}/libgomp.spec
%if %isarch %{biarches}
%{_prefix}/lib/libgomp.spec
%endif
%if %isarch mips mipsel
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libgomp.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libgomp.so
%{_prefix}/lib32/libgomp.spec
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libgomp.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libgomp.so
%{_prefix}/lib64/libgomp.spec
%endif
%endif

%if %{build_quadmath}
%files -n %{libquadmath_name}
%{target_libdir}/libquadmath.so.%{libquadmath_major}
%{target_libdir}/libquadmath.so.%{libquadmath_major}.0.0
%if %isarch %{biarches}
%{_prefix}/lib/libquadmath.so.%{libquadmath_major}
%{_prefix}/lib/libquadmath.so.%{libquadmath_major}.0.0
%endif

%files -n %{libquadmath_name_orig}-devel
%{target_libdir}/libquadmath.a
%{target_libdir}/libquadmath.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/quadmath.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/quadmath_weak.h
%if %isarch %{biarches}
%{_prefix}/lib/libquadmath.a
%{_prefix}/lib/libquadmath.so
%endif
%endif

%if %{build_libitm}
%files -n %{libitm_name}
%{target_libdir}/libitm.so.%{libitm_major}
%{target_libdir}/libitm.so.%{libitm_major}.0.0
%{target_libdir}/libitm.spec
%if %isarch %{biarches}
%{_prefix}/lib/libitm.so.%{libitm_major}
%{_prefix}/lib/libitm.so.%{libitm_major}.0.0
%{_prefix}/lib/libitm.spec
%endif

%files -n %{libitm_name_orig}-devel
%{target_libdir}/libitm.a
%{target_libdir}/libitm.so
%if %isarch %{biarches}
%{_prefix}/lib/libitm.a
%{_prefix}/lib/libitm.so
%endif
%endif

%if %{build_libasan}
%files -n %{libasan_name}
%{target_libdir}/libasan.so.%{libasan_major}
%{target_libdir}/libasan.so.%{libasan_major}.0.0
%{target_libdir}/libasan_preinit.o
%if %isarch %{biarches}
%{_prefix}/lib/libasan.so.%{libasan_major}
%{_prefix}/lib/libasan.so.%{libasan_major}.0.0
%{_prefix}/lib/libasan_preinit.o
%endif

%files -n %{libasan_name_orig}-devel
%{target_libdir}/libasan.a
%{target_libdir}/libasan.so
%{target_libdir}/libsanitizer.spec
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/sanitizer/asan_interface.h
%if %isarch %{biarches}
%{_prefix}/lib/libasan.a
%{_prefix}/lib/libasan.so
%{_prefix}/lib/libsanitizer.spec
%endif
%endif

%if %{build_libatomic}
%files -n %{libatomic_name}
%{target_libdir}/libatomic.so.%{libatomic_major}
%{target_libdir}/libatomic.so.%{libatomic_major}.%{libatomic_minor}.0
%if %isarch %{biarches}
%{_prefix}/lib/libatomic.so.%{libatomic_major}
%{_prefix}/lib/libatomic.so.%{libatomic_major}.%{libatomic_minor}.0
%endif

%files -n %{libatomic_name_orig}-devel
%{target_libdir}/libatomic.a
%{target_libdir}/libatomic.so
%if %isarch %{biarches}
%{_prefix}/lib/libatomic.a
%{_prefix}/lib/libatomic.so
%endif
%endif

%if %{build_liblsan}
%files -n %{liblsan_name}
%{target_libdir}/liblsan.so.%{liblsan_major}
%{target_libdir}/liblsan.so.%{liblsan_major}.0.0

%files -n %{liblsan_name_orig}-devel
%{target_libdir}/liblsan.a
%{target_libdir}/liblsan.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/sanitizer/lsan_interface.h
%endif

%if %{build_libtsan}
%files -n %{libtsan_name}
%{target_libdir}/libtsan.so.%{libtsan_major}
%{target_libdir}/libtsan.so.%{libtsan_major}.0.0

%files -n %{libtsan_name_orig}-devel
%{target_libdir}/libtsan.a
%{target_libdir}/libtsan.so
%endif

%if %{build_libubsan}
%files -n %{libubsan_name}
%{target_libdir}/libubsan.so.%{libubsan_major}
%{target_libdir}/libubsan.so.%{libubsan_major}.0.0
%if %isarch %{biarches}
%{_prefix}/lib/libubsan.so.%{libubsan_major}
%{_prefix}/lib/libubsan.so.%{libubsan_major}.0.0
%endif

%files -n %{libubsan_name_orig}-devel
%{target_libdir}/libubsan.a
%{target_libdir}/libubsan.so
%if %isarch %{biarches}
%{_prefix}/lib/libubsan.a
%{_prefix}/lib/libubsan.so
%endif
%endif

%if %{build_libcilkrts}
%files -n %{libcilkrts_name}
%{target_libdir}/libcilkrts.so.%{libcilkrts_major}
%{target_libdir}/libcilkrts.so.%{libcilkrts_major}.0.0
%if %isarch %{biarches}
%{_prefix}/lib/libcilkrts.so.%{libcilkrts_major}
%{_prefix}/lib/libcilkrts.so.%{libcilkrts_major}.0.0
%endif

%files -n %{libcilkrts_name_orig}-devel
%{target_libdir}/libcilkrts.a
%{target_libdir}/libcilkrts.so
%{target_libdir}/libcilkrts.spec
%if %isarch %{biarches}
%{_prefix}/lib/libcilkrts.a
%{_prefix}/lib/libcilkrts.so
%{_prefix}/lib/libcilkrts.spec
%endif
%endif

%if %{build_libvtv}
%files -n %{libvtv_name}
%{target_libdir}/libvtv.so.%{libvtv_major}
%{target_libdir}/libvtv.so.%{libvtv_major}.0.0
%if %isarch %{biarches}
%{_prefix}/lib/libvtv.so.%{libvtv_major}
%{_prefix}/lib/libvtv.so.%{libvtv_major}.0.0
%endif

%files -n %{libvtv_name_orig}-devel
%{target_libdir}/libvtv.a
%{target_libdir}/libvtv.so
%if %isarch %{biarches}
%{_prefix}/lib/libvtv.a
%{_prefix}/lib/libvtv.so
%endif
%endif

%files cpp -f cpplib.lang
%{_mandir}/man1/%{program_prefix}cpp%{program_suffix}.1*
%if !%{build_cross} && %{system_compiler}
%{_prefix}/lib/%{cross_program_prefix}cpp
%endif
%ghost %{_bindir}/%{cross_program_prefix}cpp
%{_bindir}/%{program_prefix}cpp%{program_long_suffix}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/cc1

%if %{build_cxx}
%files c++ -f libstdc++.lang
%{_mandir}/man1/%{program_prefix}g++%{program_suffix}.1*
%ghost %{_bindir}/%{cross_program_prefix}c++
%{_bindir}/%{program_prefix}g++%{program_long_suffix}
%{_bindir}/%{program_prefix}c++%{program_long_suffix}
%{_bindir}/%{gcc_target_platform}-g++%{program_suffix}
%{_bindir}/%{gcc_target_platform}-c++%{program_suffix}
#
%{gcc_libdir}/%{gcc_target_platform}/%{version}/cc1plus
# symlinks to gcc3.4 stuff
%if !%{system_compiler}
#
%if %{build_stdcxxheaders}
%dir %{target_prefix}/include/c++
%{libstdcxx_includedir}
%endif
#
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cxxabi.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/bits
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libstdc++.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libsupc++.a
%if %isarch %{biarches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libstdc++.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libsupc++.a
%endif
%if %isarch mips mipsel
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libstdc++.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libsupc++.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libstdc++.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libsupc++.a
%endif
%endif
%endif

%if %{build_libstdcxx} && %{libc_shared}
%if !%{build_monolithic}
%files -n %{libstdcxx_name}
%endif
%{target_libdir}/libstdc++.so.%{libstdcxx_major}
%{target_libdir}/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}
%if %isarch %{biarches}
%{_prefix}/lib/libstdc++.so.%{libstdcxx_major}
%{_prefix}/lib/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}
%endif
%if %isarch %{nof_arches}
%dir %{_libdir}/nof
%{_libdir}/nof/libstdc++.so.%{libstdcxx_major}
%{_libdir}/nof/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}
%endif
%if %isarch mips mipsel
%{target_libdir}32/libstdc++.so.%{libstdcxx_major}
%{target_libdir}32/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}
%{target_libdir}64/libstdc++.so.%{libstdcxx_major}
%{target_libdir}64/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}
%endif
%endif

%if %{build_libstdcxx}
%if !%{build_monolithic}
%files -n %{libstdcxx_name_orig}-devel
%endif
%doc libstdc++-v3/README*
%dir %{libstdcxx_includedir}
%{libstdcxx_includedir}/*
%if !%build_cross
%{_datadir}/gdb/auto-load/%{_libdir}/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py*
%if %isarch %{biarches}
%{_datadir}/gdb/auto-load/%{_prefix}/lib/libstdc++.so.%{libstdcxx_major}.0.%{libstdcxx_micro}-gdb.py*
%endif
%endif
%dir %{py_puresitedir}/libstdcxx
%{py_puresitedir}/libstdcxx/__init__.py*
%dir %{py_puresitedir}/libstdcxx/v6
%{py_puresitedir}/libstdcxx/v6/__init__.py*
%{py_puresitedir}/libstdcxx/v6/printers.py*

%if %{system_compiler}
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/include
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/cxxabi.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/bits
%endif
#
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libsupc++.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libstdc++.so
%endif
%if %isarch %{biarches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libsupc++.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libstdc++.so
%endif
%endif
%if %isarch %{nof_arches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libsupc++.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libstdc++.so
%endif
%endif
%if %isarch mips mipsel
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libsupc++.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libstdc++.so
%endif
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libsupc++.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libstdc++.so
%endif
%endif
%endif

%if %{build_libstdcxx}
%if !%{build_monolithic}
%files -n %{libstdcxx_name_orig}-static-devel
%endif
%doc libstdc++-v3/README
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libstdc++.a
%if %isarch %{biarches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libstdc++.a
%endif
%if %isarch %{nof_arches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libstdc++.a
%endif
%if %isarch mips mipsel
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libstdc++.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libstdc++.a
%endif
%endif

# placement is important in order to avoid breaking build_monolithic case
%files -n %{name}-plugins
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/plugin/include/
%{gcc_libdir}/%{gcc_target_platform}/%{version}/plugin/include/*
%{gcc_libdir}/%{gcc_target_platform}/%{version}/plugin/gengtype
%{gcc_libdir}/%{gcc_target_platform}/%{version}/plugin/gtype.state

%if %{build_objc}
%files objc
%doc rpm.doc/objc/*
%{gcc_libdir}/%{gcc_target_platform}/%{version}/cc1obj
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libobjc.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libobjc_gc.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libobjc.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libobjc_gc.so
%endif
%if %isarch %{biarches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libobjc.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libobjc_gc.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libobjc.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libobjc_gc.so
%endif
%endif
%if %isarch %{nof_arches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libobjc.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libobjc_gc.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libobjc.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libobjc_gc.so
%endif
%endif
#
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/include/objc
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/objc/*.h
#
%if %isarch mips mipsel
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libobjc.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libobjc_gc.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libobjc.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libobjc_gc.so
%endif
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libobjc.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libobjc_gc.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libobjc.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libobjc_gc.so
%endif
%endif
%endif

%if %{build_objc} && %{libc_shared}
%if !%{build_monolithic}
%files -n %{libobjc_name}
%endif
%doc rpm.doc/libobjc/*
%doc libobjc/THREADS* libobjc/ChangeLog
%{target_libdir}/libobjc.so.%{libobjc_major}
%{target_libdir}/libobjc.so.%{libobjc_major}.0.0
%{target_libdir}/libobjc_gc.so.%{libobjc_major}
%{target_libdir}/libobjc_gc.so.%{libobjc_major}.0.0
%if %isarch %{biarches}
%{_prefix}/lib/libobjc.so.%{libobjc_major}
%{_prefix}/lib/libobjc.so.%{libobjc_major}.0.0
%{_prefix}/lib/libobjc_gc.so.%{libobjc_major}
%{_prefix}/lib/libobjc_gc.so.%{libobjc_major}.0.0
%endif
%if %isarch mips mipsel
%{_prefix}/lib32/libobjc.so.%{libobjc_major}
%{_prefix}/lib32/libobjc.so.%{libobjc_major}.0.0
%{_prefix}/lib32/libobjc_gc.so.%{libobjc_major}
%{_prefix}/lib32/libobjc_gc.so.%{libobjc_major}.0.0
%{_prefix}/lib64/libobjc.so.%{libobjc_major}
%{_prefix}/lib64/libobjc.so.%{libobjc_major}.0.0
%{_prefix}/lib64/libobjc_gc.so.%{libobjc_major}
%{_prefix}/lib64/libobjc_gc.so.%{libobjc_major}.0.0
%endif
%endif

%if %{build_objcp}
%files objc++
%doc rpm.doc/objcp/*
%{gcc_libdir}/%{gcc_target_platform}/%{version}/cc1objplus
%endif

%if %{build_pascal}
%files gpc
%doc rpm.doc/gpc/*
%{_mandir}/man1/%{program_prefix}gpc%{program_suffix}.1*
%{_mandir}/man1/%{program_prefix}/gpc-run%{program_suffix}.1*
%{_bindir}/gpc-run
%{_bindir}/binobj
%{_bindir}/%{program_prefix}gpc%{program_suffix}
%{_bindir}/%{program_prefix}gpidump%{program_suffix}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/gpc1
%{gcc_libdir}/%{gcc_target_platform}/%{version}/gpcpp
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgpc.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/gpc-in-c.h
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/units
%{gcc_libdir}/%{gcc_target_platform}/%{version}/units/*.c
%{gcc_libdir}/%{gcc_target_platform}/%{version}/units/*.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/units/*.s
%{gcc_libdir}/%{gcc_target_platform}/%{version}/units/*.inc
%{gcc_libdir}/%{gcc_target_platform}/%{version}/units/*.pas
%endif

%if %{build_fortran}
%files gfortran
%doc rpm.doc/gfortran/*
%{_mandir}/man1/%{program_prefix}gfortran%{program_suffix}.1*
%{_bindir}/%{program_prefix}gfortran%{program_suffix}
%{_bindir}/%{gcc_target_platform}-gfortran%{program_suffix}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/f951
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgfortranbegin.la
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgfortranbegin.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgfortran.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libcaf_single.la
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libcaf_single.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgfortran.so
%endif
%if %isarch %{biarches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgfortranbegin.la
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgfortranbegin.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgfortran.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libcaf_single.la
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libcaf_single.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgfortran.so
%endif
%endif
%if %isarch %{nof_arches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libgfortran.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libgfortran.so
%endif
%endif
%if %isarch mips mipsel
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libgfortranbegin.la
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libgfortranbegin.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libgfortran.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libgfortranbegin.la
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libgfortranbegin.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libgfortran.a
%if %{libc_shared}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/n32/libgfortran.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/64/libgfortran.so
%endif
%endif
%if %{build_libgomp}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/finclude/omp*
%endif
%endif

%if %{build_fortran} && %{libc_shared}
%if !%{build_monolithic}
%files -n %{libgfortran_name}
%endif
%{target_libdir}/libgfortran.so.%{libgfortran_major}
%{target_libdir}/libgfortran.so.%{libgfortran_major}.0.0
%{target_libdir}/libgfortran.spec
%if %isarch %{biarches}
%{_prefix}/lib/libgfortran.so.%{libgfortran_major}
%{_prefix}/lib/libgfortran.so.%{libgfortran_major}.0.0
%{_prefix}/lib/libgfortran.spec
%endif
%if %isarch mips mipsel
%{target_libdir}32/libgfortran.so.%{libgfortran_major}
%{target_libdir}32/libgfortran.so.%{libgfortran_major}.0.0
%{target_libdir}64/libgfortran.so.%{libgfortran_major}
%{target_libdir}64/libgfortran.so.%{libgfortran_major}.0.0
%endif
%endif

%if %{build_java}
%files java
%doc gcc/java/ChangeLog*
%{_bindir}/gcj%{program_suffix}
%{_bindir}/%{gcc_target_platform}-gcj
%{gcc_libdir}/%{gcc_target_platform}/%{version}/ecj1
%{gcc_libdir}/%{gcc_target_platform}/%{version}/jc1
%{gcc_libdir}/%{gcc_target_platform}/%{version}/jvgenmain
%{_mandir}/man1/%{program_prefix}gcj%{program_suffix}.1*
%endif

%if %{build_java}
%files -n %{GCJ_TOOLS}
%{_bindir}/gij%{program_suffix}
%{_bindir}/grmic%{program_suffix}
%{_bindir}/grmiregistry%{program_suffix}
%{_bindir}/gappletviewer%{program_suffix}
%{_bindir}/gc-analyze%{program_suffix}
%{_bindir}/gjar%{program_suffix}
%{_bindir}/gjarsigner%{program_suffix}
%{_bindir}/gjavah%{program_suffix}
%{_bindir}/gjdoc%{program_suffix}
%{_bindir}/gkeytool%{program_suffix}
%{_bindir}/gnative2ascii%{program_suffix}
%{_bindir}/gorbd%{program_suffix}
%{_bindir}/grmid%{program_suffix}
%{_bindir}/gserialver%{program_suffix}
%{_bindir}/gtnameserv%{program_suffix}
%{_bindir}/gcj-dbtool%{program_suffix}
%{_bindir}/gcjh%{program_suffix}
%{_bindir}/%{gcc_target_platform}-gcjh
%{_bindir}/jcf-dump%{program_suffix}

#
%{_mandir}/man1/gij*.1*
%{_mandir}/man1/gcjh*.1*
%{_mandir}/man1/grmic*.1*
%{_mandir}/man1/grmiregistry*.1*
%{_mandir}/man1/gcj-dbtool*.1*
%{_mandir}/man1/jcf-dump*.1*
%{_mandir}/man1/gappletviewer*.1*
%{_mandir}/man1/gc-analyze*.1*
%{_mandir}/man1/gjar*.1*
%{_mandir}/man1/gjavah*.1*
%{_mandir}/man1/gjdoc*.1*
%{_mandir}/man1/gkeytool*.1*
%{_mandir}/man1/gnative2ascii*.1*
%{_mandir}/man1/gorbd*.1*
%{_mandir}/man1/grmid*.1*
%{_mandir}/man1/gserialver*.1*
%{_mandir}/man1/gtnameserv*.1*
%{_mandir}/man1/jv-convert*.1*
%endif

%if %{build_java}
%files -n %{libgcj_name}
%{target_libdir}/libgcj.so.%{libgcj_major}
%{target_libdir}/libgcj.so.%{libgcj_major}.0.0
%{target_libdir}/libgij.so.%{libgcj_major}
%{target_libdir}/libgij.so.%{libgcj_major}.0.0
%{target_libdir}/libgcj-tools.so.%{libgcj_major}
%{target_libdir}/libgcj-tools.so.%{libgcj_major}.0.0
%dir %{gcj_libdir}
%{gcj_libdir}/libgjsmalsa.so
%{gcj_libdir}/libgjsmdssi.so
%{gcj_libdir}/libgtkpeer.so
%{gcj_libdir}/libjavamath.so
%{gcj_libdir}/libjawt.so
%{gcj_libdir}/libjvm.so
#
%if %build_libgcj_bc && !%system_compiler
%{target_libdir}/gcj_bc-%{libgcj_major}
%endif
#
%dir %{gcj_libdir}/classmap.db.d
%attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) %{gcj_libdir}/classmap.db
%endif

%if %{build_java}
%files -n %{libgcj_name_base}-base
%dir %{_datadir}/java
%dir %{_datadir}/java/gcj-endorsed
%{_datadir}/java/libgcj-%{version}.jar
%{_datadir}/java/libgcj-tools-%{version}.jar
%endif

%if %{build_java}
%files -n %{libgcj_devel_name}
%doc rpm.doc/boehm-gc/*
%doc rpm.doc/libjava/*
%{_bindir}/jv-convert%{program_suffix}
%{_mandir}/man1/jv-convert%{program_suffix}.1*
%{_libdir}/pkgconfig/libgcj*.pc
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/include
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/gcj
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/libgcj
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/jni.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/jni_md.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/jvmpi.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/jawt.h
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/jawt_md.h
#
%dir %{libjava_includedir}
%dir %{libjava_includedir}/gcj
%{libjava_includedir}/gcj/*.h
%dir %{libjava_includedir}/gnu
%{libjava_includedir}/gnu/*
%dir %{libjava_includedir}/java
%{libjava_includedir}/java/*
%dir %{libjava_includedir}/javax
%{libjava_includedir}/javax/*
%dir %{libjava_includedir}/org
%{libjava_includedir}/org/*
#
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcj.spec
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcj.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgij.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcj-tools.so
%if %build_libgcj_bc
%{gcc_libdir}/%{gcc_target_platform}/%{version}/libgcj_bc.so
%endif
%if %isarch %{biarches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgcj.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgij.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgcj-tools.so
%if %build_libgcj_bc
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgcj_bc.so
%endif
%endif
%if %isarch %{nof_arches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libgcj.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libgij.so
%endif
%endif

%if %{build_java}
%files -n %{libgcj_static_devel_name}
%doc libjava/README libjava/LIBGCJ_LICENSE
%if %isarch %{biarches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgcj.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgij.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgcj-tools.a
%if %build_libgcj_bc
%{gcc_libdir}/%{gcc_target_platform}/%{version}/32/libgcj_bc.a
%endif
%endif
%if %isarch %{nof_arches}
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libgcj.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/nof/libgij.a
%endif
%endif

%if %{build_java}
%files -n %{libgcj_name_base}-src
%dir %{_datadir}/java
%{_datadir}/java/src*.zip
%endif

%if %{build_java} && %{system_compiler}
%files -n %{libgcj_bc_name}
%{target_libdir}/libgcj_bc.so.%{libgcj_bc_major}
%{target_libdir}/libgcj_bc.so.%{libgcj_bc_major}.0.0
%endif

%if %{build_ada}
%files gnat
%exclude %{_bindir}/gnative2ascii
%{_bindir}/gnat*
%{gcc_libdir}/%{gcc_target_platform}/%{version}/gnat1
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/adainclude
%{gcc_libdir}/%{gcc_target_platform}/%{version}/adainclude/*.adb
%{gcc_libdir}/%{gcc_target_platform}/%{version}/adainclude/*.ads
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib
%{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/*.ali
%{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgmem.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnat.a
%{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnarl.a
%if %{libc_shared}
%{_libdir}/libgnat-%{branch}.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnat.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnat-%{branch}.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnarl.so
%{gcc_libdir}/%{gcc_target_platform}/%{version}/adalib/libgnarl-%{branch}.so
%endif
%endif

%if %{build_libffi}
%files -n %{libffi_name}
%{target_libdir}/libffi.so.%{libffi_major}
%{target_libdir}/libffi.so.%{libffi_major}.0.1
%if %isarch %{biarches}
%{_prefix}/lib/libffi.so.%{libffi_major}
%{_prefix}/lib/libffi.so.%{libffi_major}.0.1
%endif
%if %isarch mips mipsel
%{_prefix}/lib32/libffi.so.%{libffi_major}
%{_prefix}/lib32/libffi.so.%{libffi_major}.0.1
%{_prefix}/lib64/libffi.so.%{libffi_major}
%{_prefix}/lib64/libffi.so.%{libffi_major}.0.1
%endif

%files -n %{libffi_name}-devel
%doc libffi/README libffi/LICENSE libffi/ChangeLog*
%{_mandir}/man3/ffi*.3*
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}
%dir %{gcc_libdir}/%{gcc_target_platform}/%{version}/include
%{gcc_libdir}/%{gcc_target_platform}/%{version}/include/ffi*.h
%{_libdir}/libffi.a
%{_libdir}/libffi.so
%if %isarch %{biarches}
%{_prefix}/lib/libffi.a
%{_prefix}/lib/libffi.so
%endif
%if %isarch mips mipsel
%{_prefix}/lib32/libffi.a
%{_prefix}/lib32/libffi.so
%{_prefix}/lib64/libffi.a
%{_prefix}/lib64/libffi.so
%endif
%endif

%if %{build_ada} && %{libc_shared}
%files -n %{libgnat_name}
%{target_libdir}/libgnat-*.so.*
%{target_libdir}/libgnarl-*.so.*
%endif

%if %{build_doc}
%files doc
%doc gcc/*ChangeLog*
%if %{build_check}
%doc test_summary.log
%endif
%{_infodir}/cppinternals%{_package_suffix}.info*
%{_infodir}/cpp%{_package_suffix}.info*
%{_infodir}/gcc%{_package_suffix}.info*
%{_infodir}/gccinstall%{_package_suffix}.info*
%{_infodir}/gccint%{_package_suffix}.info*
%if %{build_libstdcxx}
%doc rpm.doc/libstdc++/
%endif
%if %{build_cxx}
%doc rpm.doc/c++
%endif
%if %{build_libgomp}
%{_infodir}/libgomp%{_package_suffix}.info*
%endif
%if %{build_ada}
%{_infodir}/gnat-style%{_package_suffix}.info*
%{_infodir}/gnat_rm%{_package_suffix}.info*
%{_infodir}/gnat_ugn%{_package_suffix}.info*
%endif
%if %{build_java}
%{_infodir}/gcj%{_package_suffix}.info*
%endif
%if %{build_pascal}
%{_infodir}/gpc%{_package_suffix}.info*
%{_infodir}/gpcs%{_package_suffix}.info*
%endif
%if %{build_fortran}
%{_infodir}/gfortran%{_package_suffix}.info*
%endif
%if %{build_quadmath}
%{_infodir}/libquadmath%{_package_suffix}.info*
%endif
%if %{build_libitm}
%{_infodir}/libitm%{_package_suffix}.info*
%endif
%endif

%if %{build_pdf_doc}
%files doc-pdf
%doc gcc/doc/cppinternals.pdf
%doc gcc/doc/gcc.pdf
%doc gcc/doc/cpp.pdf
%if %{build_ada}
%doc gcc/ada/gnat_rm.pdf
%doc gcc/ada/gnat_ugn.pdf
%endif
%if %{build_fortran}
%doc gcc/fortran/gfortran.pdf
%endif
%endif

%if %{build_libstdcxx_docs}
%files -n libstdc++-docs
%{_mandir}/man3/*
%doc rpm.doc/libstdc++-v3/html
%endif


%changelog
* Wed Nov 11 2015 tmb <tmb> 4.9.2-4.1.mga5
+ Revision: 902581
- Fix C++11 std::random_device short read issue that could lead to
  predictable randomness. (CVE-2015-5276, mga#17126)

* Sun Nov 02 2014 cjw <cjw> 4.9.2-4.mga5
+ Revision: 795243
- source9/patch133: add java.security classes from apache harmony to libgcj to fix networking with bouncycastle 1.50

* Thu Oct 30 2014 tmb <tmb> 4.9.2-3.mga5
+ Revision: 794707
- update to 4.9.2 final

* Fri Oct 24 2014 tmb <tmb> 4.9.2-1.RC.2.mga5
+ Revision: 792983
- lsan is only available on x86_64
- update filelists
- update to 4.9.2-RC

* Wed Oct 15 2014 umeabot <umeabot> 4.9.2-0.20141001.2.mga5
+ Revision: 747981
- Second Mageia 5 Mass Rebuild

* Fri Oct 03 2014 tmb <tmb> 4.9.2-0.20141001.1.mga5
+ Revision: 736459
- update to 2014-10-01
- update to 2014-10-01

* Thu Sep 25 2014 tmb <tmb> 4.9.2-0.20140924.1.mga5
+ Revision: 724531
- update to 2014-09-24 snapshot

* Sat Sep 20 2014 tmb <tmb> 4.9.2-0.20140910.3.mga5
+ Revision: 697479
- rebuild with fixed rpm-mageia-setup

* Tue Sep 16 2014 umeabot <umeabot> 4.9.2-0.20140910.2.mga5
+ Revision: 679433
- Mageia 5 Mass Rebuild

* Thu Sep 11 2014 tmb <tmb> 4.9.2-0.20140910.1.mga5
+ Revision: 674668
- update to 2014-09-10

* Tue Sep 09 2014 tmb <tmb> 4.9.2-0.20140903.2.mga5
+ Revision: 674222
- rebuild with new glibc

* Thu Sep 04 2014 tmb <tmb> 4.9.2-0.20140903.1.mga5
+ Revision: 672114
- update to 2014-09-03

* Thu Aug 28 2014 tmb <tmb> 4.9.2-0.20140827.1.mga5
+ Revision: 669062
- update to 2014-08-27 snapshot

* Mon Aug 25 2014 tmb <tmb> 4.9.2-0.20140820.1.mga5
+ Revision: 667297
- update to 2014-08-20 snapshot

* Sat Aug 09 2014 tv <tv> 4.9.2-0.20140730.3.mga5
+ Revision: 661306
- make lib*san-devel requires lib*san1

* Sat Aug 09 2014 tv <tv> 4.9.2-0.20140730.2.mga5
+ Revision: 661283
- make libasan-devel requires libasan1

* Thu Jul 31 2014 tmb <tmb> 4.9.2-0.20140730.1.mga5
+ Revision: 658546
- update to 4.9.2 snapshot 2014-07-30 (CVE-2014-5044)

* Sun Jul 27 2014 tmb <tmb> 4.9.1-2.mga5
+ Revision: 657566
- gcc/PR61801: fix sched2 miscompiles syscall sequence

* Thu Jul 17 2014 tv <tv> 4.9.1-1.mga5
+ Revision: 653378
- new release

* Thu Jul 03 2014 tmb <tmb> 4.9.1-0.20140702.1.mga5
+ Revision: 642672
- update to 20140702 snapshot

* Tue Jul 01 2014 tmb <tmb> 4.9.1-0.20140625.2.mga5
+ Revision: 641812
- ship cxxabi.h and cxxabi_tweaks.h in both upstream default path for clang
  to work and Mageia specific path to keep backward compatibility (mga#13543)

* Thu Jun 26 2014 tmb <tmb> 4.9.1-0.20140625.1.mga5
+ Revision: 639753
- update to 20140625 snapshot

* Thu Jun 19 2014 tmb <tmb> 4.9.1-0.20140618.1.mga5
+ Revision: 638133
- update to 20140618 snapshot

* Thu Jun 12 2014 tmb <tmb> 4.9.1-0.20140611.1.mga5
+ Revision: 635741
- update to 20140611 snapshot

* Thu Jun 05 2014 tmb <tmb> 4.9.1-0.20140604.1.mga5
+ Revision: 633483
- update to 2014-06-04 snapshot

* Sat May 31 2014 pterjan <pterjan> 4.9.1-0.20140528.2.mga5
+ Revision: 628208
- Rebuild for new Python

* Thu May 29 2014 tmb <tmb> 4.9.1-0.20140528.1.mga5
+ Revision: 627475
- update to 20140528 snapshot

* Thu May 22 2014 tmb <tmb> 4.9.1-0.20140521.1.mga5
+ Revision: 624927
- update to 20140521 snapshot

* Fri May 16 2014 tmb <tmb> 4.9.1-0.20140514.1.mga5
+ Revision: 622989
- update to 20140514 snapshot

* Tue May 13 2014 tmb <tmb> 4.9.1-0.20140507.2.mga5
+ Revision: 622491
- push to release

* Thu May 08 2014 tmb <tmb> 4.9.1-0.20140507.1.mga5
+ Revision: 621215
- update to 20140507 snapshot

* Wed May 07 2014 tmb <tmb> 4.9.1-0.20140430.3.mga5
+ Revision: 621039
- switch to 4.9.1 snapshot 20140430
- fix libgcj pkconfig file
- adjust build defines
- revert PR bootstrap/56714 as it breaks the build
- drop p120 (merged), p125 (fixed)
- update filelists
- libatomic minor is now 1
- libgcj major is now 15
- libasan major is now 1
- libstdc++ micro version is now 20
- add new package definitions:
  * liblsan: Leak Sanitizer Libraries
  * libubsan: Undefined Behaviour Sanitizer Libraries
  * libvtv: Virtual Table Verification Libraries
  * libcilkrts: Cilk+ Runtime Libraries
- mudflap run time checker has been removed
- update to 4.9.0

* Mon Feb 17 2014 tmb <tmb> 4.8.2-5.mga5
+ Revision: 593942
- rebuild with new glibc

* Sat Feb 08 2014 tmb <tmb> 4.8.2-4.mga5
+ Revision: 586837
- adapt for new freetype2 include path (P125)
- test build with new glibc

* Wed Oct 23 2013 tmb <tmb> 4.8.2-3.mga4
+ Revision: 546668
- fix bug in nth_element (PR libstdc++/58800, mga #11516)

* Tue Oct 22 2013 umeabot <umeabot> 4.8.2-2.mga4
+ Revision: 545598
- Mageia 4 Mass Rebuild

* Wed Oct 16 2013 tmb <tmb> 4.8.2-1.mga4
+ Revision: 501462
- update to 4.8.2 final

* Sat Oct 12 2013 tmb <tmb> 4.8.2-0.20131009.2.mga4
+ Revision: 496063
- rebuild with new binutils & make

* Fri Oct 11 2013 tmb <tmb> 4.8.2-0.20131009.1.mga4
+ Revision: 495122
- update to 4.8.2 RC

* Fri Oct 04 2013 tmb <tmb> 4.8.2-0.20131003.1.mga4
+ Revision: 491582
- update filelists
- update to 2013-10-03

* Sun Sep 22 2013 tmb <tmb> 4.8.2-0.20130919.1.mga4
+ Revision: 483258
- update to 2013-09-19

* Tue Sep 17 2013 tmb <tmb> 4.8.2-0.20130912.1.mga4
+ Revision: 480784
- update to 2013-09-12

* Tue Sep 10 2013 tmb <tmb> 4.8.2-0.20130905.1.mga4
+ Revision: 477216
- update to 2013-09-05

* Sat Aug 24 2013 tmb <tmb> 4.8.2-0.20130822.1.mga4
+ Revision: 471381
- update to 2013-08-22 snapshot

* Sun Aug 18 2013 tmb <tmb> 4.8.2-0.20130815.1.mga4
+ Revision: 467526
- update to 2013-08-15 snapshot

* Sun Aug 11 2013 tmb <tmb> 4.8.2-0.20130808.2.mga4
+ Revision: 465377
- push to /release

* Fri Aug 09 2013 tmb <tmb> 4.8.2-0.20130808.1.mga4
+ Revision: 465008
- update to 2013-08-08

* Sat Aug 03 2013 tmb <tmb> 4.8.2-0.20130801.1.mga4
+ Revision: 463026
- update to 2013-08-01 snapshot
- force binutils 2.23.2 (build)requires

* Thu Aug 01 2013 tmb <tmb> 4.8.2-0.20130725.1.mga4
+ Revision: 461959
- update filelists
- add libatomic, libasan and libtsan (and their devel) subpackages
- libstdc++ minor is now 18
- libgcj major is now 14
- rediff gnuhash patches
- drop 'PR tree-optimization/33763' fix (merged)
- rediff linux32 patch
- drop merged patches
- update to 4.8.2 (20130725 pre-release)

* Sat May 04 2013 anssi <anssi> 4.7.2-7.mga3
+ Revision: 412285
- fix /usr/lib/cpp target (cosmetic, not seen due to alternatives)
- add conflicts against old gcc3.3-cpp for smooth upgrade

* Fri Jan 11 2013 umeabot <umeabot> 4.7.2-6.mga3
+ Revision: 351094
- Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild

* Tue Jan 01 2013 tmb <tmb> 4.7.2-5.mga3
+ Revision: 337399
- rebuild for new glibc

* Wed Oct 24 2012 blino <blino> 4.7.2-4.mga3
+ Revision: 309834
- remove ar/ranlib hack now that a fixed gcc-ar is available

* Wed Oct 24 2012 blino <blino> 4.7.2-3.mga3
+ Revision: 309752
- build temporarily with AR=ar and RANLIB=ranlib to workaround broken i586-mageia-linux-gnu-ar/ranlib
- fix gcc-ar exit code (from upstream git, to fix gcc build)
- fix inlining failure with fpmath=sse pragma (gcc#54988)

* Sun Oct 07 2012 tmb <tmb> 4.7.2-2.mga3
+ Revision: 303207
- fix gcc-ar, gcc-nm and gcc-ranlib target_platform specific symlinks
  (reported by Liutauras Adomaitis on -dev ml, and in mga #7393)
- make gcc-ar, gcc-nm, and gcc-ranlib use update-alternatives like gcc

* Sun Sep 23 2012 tmb <tmb> 4.7.2-1.mga3
+ Revision: 296791
- drop patches P108, P220-P223 (merged upstream)
- update to 4.7.2

* Sun Jul 29 2012 guillomovitch <guillomovitch> 4.7.1-7.mga3
+ Revision: 275547
- drop gnatmake completion, a more uptodate one is available in bash-completion package
- fix /lib/cpp link broken by /usr move

* Fri Jul 20 2012 tmb <tmb> 4.7.1-6.mga3
+ Revision: 272720
- PR 52908 - xop-mul-1:f9 miscompiled on bulldozer (-mxop) (P220)
- PR debug/53682 * cselib.c (promote_debug_loc): Don't crash
  on NULL argument. (P221)
- PR target/53759 (sse_loadlps): Use x m x constraints in
  the vmovlps load alternative. (P222)
- mksysinfo.sh: Fix handling of glibc 2.16 bits/resource.h (P223)

* Wed Jul 18 2012 tmb <tmb> 4.7.1-5.mga3
+ Revision: 272346
- rebuild for new glibc

* Wed Jul 18 2012 colin <colin> 4.7.1-4.mga3
+ Revision: 272255
- Exclude a file on x86_64 that will conflict with usrmerge (it will be recreated after install via ldconfig anyway)

* Sat Jul 14 2012 tmb <tmb> 4.7.1-3.mga3
+ Revision: 270744
- rebuild for missing i586 packages

* Tue Jul 10 2012 rtp <rtp> 4.7.1-2.mga3
+ Revision: 269214
- Fix file list on arm.

* Tue Jun 26 2012 tmb <tmb> 4.7.1-1.mga3
+ Revision: 264094
- BR texinfo-tex
- update filelists
- ada/gcc-interface/Makefile.in: fix missing -fPIC flag (P108, upstream)
- rediff P115, P201, P208, P211, P302, P304, P507
- add packages for GNU Transactional Memory library (libitm) support
- update libstdcxx_minor, libgcj_major and libobjc_major
- update to 4.7.1

* Mon Apr 16 2012 blino <blino> 4.6.3-2.mga2
+ Revision: 230992
- add libstdc++ html doc and man pages in new libstdc++-docs package, using Fedora spec bits
  (this also removes prebuilt libstdc++ html doc from gcc-doc)
- pass --disable-quadmath if quadmath is disabled (still not enough to make the rpm build correctly)

* Sat Mar 03 2012 tmb <tmb> 4.6.3-1.mga2
+ Revision: 217194
- drop merged patches: P140, P209
- update to 4.6.3 bugfix release (74 fixes)
- make sure gnative2ascii is in gcj-tools and not in gcc-gnat (#4618)

* Sun Feb 19 2012 tmb <tmb> 4.6.2-2.mga2
+ Revision: 211052
- add fix for PR middle-end/51077 (mga #4593)
  * tree-object-size.c (addr_object_size): Check TREE_CODE of
    MEM_REF's operand rather than code of the MEM_REF itself.
    (fixes Internal compiler error when building lesstif, mga #4492)
- fix libjava bootstrap build with glibc-2.15 (upstream PR/50888)
- make gfortran require quadmath-devel if it is built

  + rtp <rtp>
    - Fix build on arm:
      * fix building with quadmath disabled by removed extra info page
      * add missing arm-specific header in the gcc-plugins package

* Mon Dec 05 2011 tmb <tmb> 4.6.2-1.mga2
+ Revision: 176905
- update filelists
- add quadmath libraries for GCC __float128 and Fortran REAL*16 support
- spec cleanup
- rediff ada so.ext patch
- drop p105 (obsolete)
- update lib major/minor
- build with '--enable-linker-build-id'
- fix doc
- fix linux32 support (patch by pcpa, from mdv)
- bump requires on ppl to 0.11.2
- rediff P107, P115, P116, P132, P211, P304, P507 to apply cleanly
- drop merged patches P508-P517
- remove obsolete defattr
- drop support for ppc(64), sparc(64)
- update to 4.6.2

* Sun Sep 11 2011 fwang <fwang> 4.5.2-5.mga2
+ Revision: 142272
- rebuild for new libpng

* Wed Apr 20 2011 rtp <rtp> 4.5.2-4.mga1
+ Revision: 89091
- Add missing link in gcc-gnat (#833)
- Add fix for PR/48090
- cross gcc build fixes:
  - fix cross program prefix to be the same as for the other toolchain tools
  - fix when cross building 32 bit target on 64bit

* Tue Mar 29 2011 rtp <rtp> 4.5.2-3.mga1
+ Revision: 78682
- enable back checks
- cross toolchain fixes. Now, it should be possible to try to build cross
  toolchains (brieftly tested with mipsel cross toolchain on arm).
- disable libffi package so as to make sure newer libffi is used (which is
  the case in fact)
- fix monolithic build due to misplacement of gcc-plugin files.
- add noarch for pdf doc rpm.
- arm support (default DT_GNU_HASH, set __ARM_PCS or __ARM_PCS_VFP, fix
  wformat error)
- mips o32/n32/64 support
- backport PR/21803, PR/47166, PR/44768, PR/46865, workaround for PR/48090

* Tue Jan 18 2011 tmb <tmb> 4.5.2-2.mga1
+ Revision: 23432
- obsolete manbo-mandriva-files-gcc-* for a clean upgrade
- drop rpm tags
- drop manbo support
- drop support for old mandriva releases
- rename mandriva to mageia
- fix bugzilla url
- imported package gcc


* Sat Jan  8 2011 Thomas Backlund <tmb@mageia.org> 4.5.2-2.mga1
- initial import
- switch from manbo_mkrel to mkrel

* Tue Dec 28 2010 pcpa <pcpa> 4.5.2-1mnb2
+ Revision: 625688
- Update to gcc 4.5.2.

  + tv <tv>
    - let the doc subpackage be noarch

* Wed Aug 25 2010 cfergeau <cfergeau> 4.5.1-1mnb2
+ Revision: 573098
- gcc 4.5.1

* Tue Aug 24 2010 cfergeau <cfergeau> 4.5.0-1mnb2
+ Revision: 572931
- fix gcc-plugins group
- revert previous commit which was bogus :-/
- libstdc++ gdb python helper is always in /usr/lib whatever the arch is,
  and since it's a python script, it's "noarch", so we can unconditionnally
  put it in a directory ending in /usr/lib, no need to have both /usr/lib
  and /usr/lib64
- make sure LTO is enabled
- remove workaround for debugedit issue since it's now fixed in rpm thanks to Anssi :)
- import gcc 4.5.0

  + herton <herton>
    - Move gdb.py to gdb data dir.

* Tue Feb 09 2010 fwang <fwang> 4.4.3-2mnb2
+ Revision: 502641
- rebuild for new gmp

* Sun Jan 24 2010 fwang <fwang> 4.4.3-1mnb2
+ Revision: 495383
- New version 4.4.3
- CVE-2009-3736 patch merged upstream

  + peroyvind <peroyvind>
    - set interpreter path when using -muclibc to the one used by our uClibc (P304)

* Mon Nov 30 2009 oden <oden> 4.4.2-5mnb2
+ Revision: 471759
- P303: security fix for CVE-2009-3736

* Fri Nov 27 2009 cfergeau <cfergeau> 4.4.2-4mnb2
+ Revision: 470667
- update for gcc 4.4.2

  + tv <tv>
    - split checks in %%check
    - more more doc from libstdc++-devel and gcc-c++ into gcc-doc
    - use ln instead of cp (less disk usage, faster)

* Tue Sep 29 2009 cfergeau <cfergeau> 4.4.1-3mnb2
+ Revision: 450840
- another attempt at fixing the libgcj_bc stuff.
  The previous change wasn't a good idea because non-system compilers' libgcj_bc
  would obsolete the system libgcj_bc which is a bad idea :)

* Mon Sep 28 2009 cfergeau <cfergeau> 4.4.1-2mnb2
+ Revision: 450607
- One more attempt at fixing libgcj_bc packaging
- don't ship libgcj_bc shared libs both in libgcj10 and libgcj_bc1
  should fix bug #54121

* Thu Jul 23 2009 cfergeau <cfergeau> 4.4.1-1mnb2
+ Revision: 398776
- upload gcc 4.4.1 tarball
- preparation for gcc 4.4.1 (couldn't find it on the mirrors yet)

* Mon Jul 20 2009 anssi <anssi> 4.4.0-5mnb2
+ Revision: 398069
- remove python files from gcj-tools that conflicted with
  java-1.5.0-gcj-devel

* Sat Jul 18 2009 anssi <anssi> 4.4.0-4mnb2
+ Revision: 396976
- enable libobjc_gc (Mika Laitio)

* Wed Jun 03 2009 cfergeau <cfergeau> 4.4.0-3mnb2
+ Revision: 382395
- enable cloog/ppl in the build
- Don't install aot-compile and rebuild-gcj-db since it's part of java-1.5.0-gcj
- remove meaningless comment, disable -Wformat=error :-/
- only do try find locale files for libstdc++ if we actually build it
- check if files are present before trying to sanitize their rpath
- ada fixes
- Revert wrong hunk from wformat-fixes (see comment above it in the source)

* Tue May 19 2009 cfergeau <cfergeau> 4.4.0-1mnb2
+ Revision: 377476
- Don't attempt to build ada docs when ada is disabled
- Add cloog/ppl support to build (disabled for now)
- Fix customization of gcc bug URL
- Fix spec for ada support. Don't reenable ada build for now since we don't have
  a gnat compiler available in main to bootstrap it
- enable java in build
- spec update for gcj 4.4.0
- Initial pass at a gcc 4.4 package, rediff patches and get working C and C++ compilers. java and ada and tests are disabled for now.
- Fix one more format warning
- Get rid of cputoolize
- Rediff patches against gcc 4.3.3
- Reset release counter
- Disable ada for now
- Add missing space in substitution, this bug has been here forever, dunno why it never showed up before...
- Add patch 114 to fix -Wformat=error issues
- Upload gcc 4.3.3 tarball

  + helio <helio>
    - Add another wformat fix on current patch

  + anssi <anssi>
    - split libgcj_bc to a separate package to avoid future conflicts
    - fix libgcj_bc handling of non-system-compilers (ported from gcc4.3)
    - do not require libgcj-devel in gcj-tools

  + peroyvind <peroyvind>
    - only leave out libgcc_eh.a when building cross bootstrap (needs to be verified)
    - don't include libgomp.info when building without libgomp
    - libgmp-devel & libmpfr-devel is needed for building regardless of gfortran
    - sync some patches and configure options with gcc from gdium tree
    - fix bootstrap build of cross compiler
    - work around issue with xgcc ignoring --sysroot when cross-compiling
    - fix so that lsb-headers patches gets applied in correct location..
    - * add mips stuff to lsb-headers for cross compiling (P1000)
      * sysroot headers should go to usr/include/, not include/

  + pixel <pixel>
    - rebuild with gnat enabled

* Fri Nov 07 2008 pixel <pixel> 4.3.2-5mnb2
+ Revision: 300457
- rebuild without gnat for now (we need to rebuild libgcj first)

  + tv <tv>
    - rebuild since lib{,64}gcj9 depends on libxcb-xlib.so.0 which is no more

* Fri Sep 12 2008 pixel <pixel> 4.3.2-3mnb2
+ Revision: 284163
- fix broken symlinks <platform>-gfortran and <platform>-gcj (#43341)
- when not system_compiler:
  o handle conflicts with system_compiler
  o require manbo-files-gcc%%{branch}

* Thu Sep 04 2008 pixel <pixel> 4.3.2-2mnb2
+ Revision: 280693
- rename libffi-devel back to libffi4-devel (cf #43381)

* Fri Aug 29 2008 pixel <pixel> 4.3.2-1mnb2
+ Revision: 277302
- 4.3.2
- drop db-pathtail patch (fixed upstream)
- fix build when not system_compiler
- fix build without libgomp

* Fri Jun 27 2008 pixel <pixel> 4.3.1-2mnb2
+ Revision: 229470
- snapshot 4.3-20080626 (including fix for gccbz#36533)
- do not call ldconfig in %%post/%%postun, it is now handled by filetriggers

* Mon Jun 09 2008 pixel <pixel> 4.3.1-1mnb2
+ Revision: 217093
- gcc 4.3.1
- workaround bug with redefined extern inline (mdvbz #41171, upstream #33763)
- drop alternatives for anything but c,c++,cpp
- so drop having %%version in binary names (eg: gjar instead of gjar-4.3.1),
  this implies gcj-tools conflicts with current classpath
- libgcj-devel and libgcj-static-devel must obsolete libgcj9-devel and libgcj9-static-devel

* Mon May 19 2008 pixel <pixel> 4.3.1-0.20080515mnb2
+ Revision: 208957
- snapshot 4.3-20080515
- change version in java homedir to 1.5.0
- drop logging.properties and classpath.security (bug #23693)
- load java property files from /usr/lib instead of /usr/lib64 on 64-bit
  systems (patch130, see bug #23693)
- add patch133 (db-pathtail) to fix build (??, from gcc4.3.spec)
- drop patch 104 for now, may break cross builds
  (but hopefully it can be fixed differently)
- drop old patch 117, hopefully unneeded (Ada only)
- drop now unneeded patches 118, 120, 121, 123, 125, 128
- rediff patches 202, 211
- libgcj9 conflicts with libgcj8
- gcc-java now requires eclipse-ecj
- drop require for zip from libgcj-devel, gjar is now used
- drop patch 104 for now, may break cross builds
  (but hopefully it can be fixed differently)
- be the system_compiler on mdv2009.0
- add support for building on distros where gcc4.2 is system_compiler
- libxxx-devel which have files in %%{gcc_libdir}/%%{gcc_target_platform}/%%{version} and do not require gcc must own that directory
- %%{gcc_libdir}/%%{gcc_target_platform}/%%{version}/include/bits must be owned by libstdc++-devel
  (otherwise it's not removed on upgrade to a new gcc version)
- build libffi when building java, but remove the binaries in non-system-compiler builds
- handle build_stdcxxheaders on non system_compiler (from gcc4.3.spec)
- drop support for building on mdv2007.0 and older
- drop mention of deprecated gcc-$(gcc%%{branch}-version) for non system_compiler from %%description
- use %%{buildroot} instead of $RPM_BUILD_ROOT
- handle building without libgcj_bc, and build with libgcj_bc and not system_compiler (from gcc4.3.spec)

* Mon Mar 17 2008 pixel <pixel> 4.2.3-6mnb1
+ Revision: 188307
- add requires on specific manbo-files-gcc-xxx

* Fri Mar 14 2008 pixel <pixel> 4.2.3-5mnb1
+ Revision: 187793
- increase release
- gcc can't use %%check since we need to "make check" before %%install. but still
  allow "--without check" the standard way
- %%{base_release} is not needed anymore
- revert gcc-core/gcc-other split
- re-add Requires on manbo-files-gcc
  (no Requires(pre) needed since all files are not installed through the symlink)
- revert gcc-core/gcc-other split (only keeping the fixes and manbo_mkrel)
- revert gcc-core/gcc-other split
- use manbo_mkrel for gcc-core
- we must ensure manbo-files-gcc is installed prior to install of files in
  /usr/lib/gcc/*-mandriva-linux-gnu/<version>/ (otherwise manbo-files-gcc
  install will fail)

* Wed Mar 12 2008 pixel <pixel> 4.2.3-3mdv2008.1
+ Revision: 187140
- use simple "make bootstrap-lean" instead of "make profiledbootstrap"
  (it fails, it is not very useful, and jakub disabled it in fedora too)
- libjack-devel is needed to build libgjsmdssi
- java: always build with dssi-devel for libgjsmdssi

* Fri Mar 07 2008 pixel <pixel> 4.2.3-2mdv2008.1
+ Revision: 181288
- fix build on x86_64: do not create 32/libgomp.so if not build_libgomp
- add script to sync gcc-other from gcc-core
- new release: 4.2.3
- use a fixed list of include headers to keep

  + knaka <knaka>
    - use _real_vendor not _vendor
    - gcc requires gcc-manbo-files if the vendor is "manbo"
    - fix vendor name as "manbo"
    - fix a condition macro
    - added prereq for "manbo-files-gcc"
    - remove requirement for manbo-files
    - modify misc packages require not gcc but gcc-BRANCH
    - split the SRPM to "core" and "other" for Manbo packages
    - Rename the spec file
    - Renamed from "gcc" for Manbo packages

  + tv <tv>
    - rebuild
    - kill re-definition of %%buildroot on Pixel's request
    - move huge (& mostly prehistoric) Changelogs in doc subpackage

  + blino <blino>
    - restore BuildRoot

* Thu Dec 06 2007 pixel <pixel> 4.2.2-2mdv2008.1
+ Revision: 115817
- new 4.2.x snapshot (includes fix for PR34130, ie -10*abs(...) => abs(10*...))

* Tue Nov 13 2007 pixel <pixel> 4.2.2-1mdv2008.1
+ Revision: 108502
- 4.2.2 final release

  + tv <tv>
    - s/Mandrake/Mandriva/

* Fri Sep 14 2007 pixel <pixel> 4.2.2-0.RC.1mdv2008.0
+ Revision: 85687
- 4.2.2 RC1

* Tue Aug 28 2007 pixel <pixel> 4.2.1-6mdv2008.0
+ Revision: 72838
- new svn snapshot
- get rid of one last hardlink (c++-%%{version} and g++-%%{version}) by simplifying some script
- fix build without fortran/java/c++

  + tv <tv>
    - kill update-alternative file require
    - kill file require on info-install

  + spturtle <spturtle>
    - for ppc, remove ssp options from OPT_FLAGS because libgcj crashes when built with them

* Fri Aug 03 2007 pixel <pixel> 4.2.1-4mdv2008.0
+ Revision: 58669
- replace hardlinks on binaries with symlinks (#18160)
- don't mess with binaries gcc-%%{version} and %%{gcc_target_platform}-gcc (#18160)
  so that they are correctly the same file (hardlinks)
- do package binary %%{gcc_target_platform}-gcc-%%{version}
- do not package /usr/bin/gcj (as used to be in 4.1 pkg), otherwise alternatives are broken
  (nb: it breaks cooker to cooker upgrade, please fix by hand)
- new svn snapshot from 4.2 branch
- drop applied gcc-ada-gnat_ugn-info-fix.patch
- normalize %%clean (#18155)
  (maybe it was used by gb to keep test_summary.log, this is no longer needed)
- add -%%{version} suffix to gkeytool to avoid conflict with classpath

  + anssi <anssi>
    - disable libgcj_bc.so.1 provides from the libgcj-devel package, only
      libgcj8 itself should provide it

* Fri Jul 06 2007 pixel <pixel> 4.2.1-3mdv2008.0
+ Revision: 48942
- get rid of colorgcc (it will be in its own package)
- libstdc++.mo files from libstdc++ to gcc-c++ (to respect proper libification)
- don't package /usr/lib/gcj-4.2.1/*.la files
- add -%%{version} suffix to gappletviewer/gjarsigner to avoid conflict with classpath
- libstdc++-static-devel doesn't conflict with other libstdc++X-static-devel pkgs
- libgcj-devel doesn't conflict with other libgcjX-devel pkgs
- libgcj-static-devel doesn't conflict with other libgcjX-static-devel pkgs
- libstdc++-devel doesn't conflict with other libstdc++X-devel pkgs
- add obsolete/provide from libstdc++-static-devel on libstdc++6-static-devel
- fix obsolete from libffi-devel (it is now on libffi4-devel), and add provide
- add provides on obsoleted libstdc++6-devel (#31765)

* Thu Jul 05 2007 pixel <pixel> 4.2.1-2mdv2008.0
+ Revision: 48664
- 4.2.1 RC1
- use libxxx-devel instead of libxxx1-devel for libstdc++-devel, libgcj-devel,
  libffi-devel, libmudflap-devel, libssp-devel, libgomp-devel
- simplify conflicts on previous devel packages
- drop biarch_java support from .spec (it was already disabled)
- have the test_summary.log in the right place
- fix gcj_libdir (it is in lib64 on x86_64)
- use %%{gcj_libdir} macro, and drop the duplicated %%{gcj_libdir} entry
- we currently can't have a nice fixed list of *.h not to bundle, so don't die
  when removing non existing *.h
- zip is required to build libjava
- 4.2.0 svn snapshot
- drop libgcjawt renaming (still needed? maybe not since it has moved)
- package the result of tests to allow comparing when building a new gcc
- package libstdc++.mo files
- move branch to mainstream
- replacing with branch version

  + anssi <anssi>
    - remove classpath.security and logging.properties as they now reside in
      jpackage-utils (fixes bug #23693)
    - add biarch handling for libgcj-tools and libgcj_bc

  + spturtle <spturtle>
    - do not try to build the spu cross compiler on ppc
    - do not build soft-float libraries for ppc

  + peroyvind <peroyvind>
    - actually disable libffi when defining so (fixes #26518)
    - add autogen to buildrequires for %%check (fixes #17409)
    - add niagara support (P1000 & P1001, fixes #28503)
    - Fix %%g7 usage in TLS, add patch sparc-g7.dpatch, fixes glibc-2.4 build failure
      on sparc (Fabio M. Di Nitto) (P1000)


* Fri Mar 02 2007 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.1.2-1mdv2007.0
+ Revision: 131425
- don't build crt files with -fasynchronous-unwind-tables
- 4.1.2 + SVN (2007/03/02):
  * fix C++ visibility regression
  * fix PRs c++/30536, ada/30684, fortran/29441, fortran/25392,
  fortran/30400, fortran/30799, fortran/30478, rtl-optimization/30931,
  rtl-optimization/29599, middle-end/24427, rtl-optimization/28173,
  tree-optimization/30823, rtl-optimization/30787, debug/30189,
  rtl-optimization/28772, middle-end/30473, middle-end/30313
- fix full cross-compilers (e.g. {ppc,ppc64} on x86_64 for C, C++, Fortran 95)

* Mon Jan 15 2007 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.1.2-0.20070115.1mdv2007.1
+ Revision: 109050
- 4.1-branch (2007/01/15)
- don't package nof libraries on ppc
- fix default --with-cpu for non-ppc32e arches
- default to --hash-style=gnu
- add MNI intrinsics support (SSSE3)
- fix sse3 monitor intrinsic on x86_64 (PR target/24879)
- Created directory for version 4.1.2.
- Created releases directory.

* Wed Jan 10 2007 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.1.2-0.20061110.2mdv2007.1
+ Revision: 106916
- backport Cell SPU support from trunk
- fix build with new optflags

* Fri Nov 10 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.1.2-0.20061110.1mdv
- 4.1-branch (2006/11/10)
- slight updates to the Cell patch
- optimize for power4+ processors on ppc64
- add arm support files on popular request
- move classmap.db to arch-dependent library package, not gcj-tools
- fix ia64 cross compiler build (import LSB 3.1 headers)
- fix buildrequires, crosscompiler builds (#26715, #26483, #26484, #26518)
- enable long-double-128 on sparc (Per Oyvind Karlsen, #26485)

* Fri Oct 13 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.1.2-0.20060921.1mdv
- 4.1-branch (2006/09/21)
- merge Cell PPU optimizer from SCEI / BSC (IBM SDK 1.1)

* Tue Jul 25 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.1.1-3mdk
- handle gfortran in colorgcc (#20265)
- enable 128-bit long doubles on powerpc arches (Jakub, RH 4.1-branch)
- 4.1-branch (2006/07/24)
  * fix PRs c++/27495 c++/28025 c++/28048 c++/28235 c++/28258
    c++/28291 c++/28304 c++/28337 c++/28338 c++/28363 c/26993 c/28286
    middle-end/28283 target/28247 tree-optimization/19505

* Wed Jul 19 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.1.1-2mdk
- 4.1-branch (2006/07/16)
- add -mtune=generic (trunk)
- drop jdk-config (use pkg-config)
- fix colorgcc alternatives on upgrades
- fix build without java (Per Oyvind Karlsen)

* Fri May 19 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.1.1-1mdk
- 4.1.1 RC1
- rebuild against glibc 2.4 (stop building libssp0)
- add missing obsoletes (libgfortran0, libgcj6-base, libgcj6-src)

* Fri Apr 07 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.1.1-0.20060405.1mdk
- buildrequires alsa devel deps
- 4.1-branch (2006/04/05):
  * fix PRs java/26858, java/26858, java/2604, fortran/25358,
    fortran/19303, tree-optimization/26996, tree-optimization/26763,
    tree-optimization/18527, tree-optimization/26830, target/26459,
    libfortran/26735, fortran/19303, libgcj/26625, libgcj/27024,
    libgcj/26990, java/25414, java/26042

* Sat Apr 01 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.1.1-0.20060328.1mdk
- 4.1-branch (2006/03/28), major 4.1 changes include:
  * add new C parser
  * add Objective-C++ language support
  * vastly improve Java support (Classpath 0.19 + 0.20 bug fixes)
  * clean rewrite of stack-smashing protector

* Wed Mar 15 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.3-1mdk
- build libffi with PIC, decide later whether to ship DSO or not
- 4.0.3 release, fix a few more PRs: c/25682, c++/26291, c++/26266,
  ada/25885, ada/20753, middle-end/18859, target/23706, target/22553,
  middle-end/26092, c++/25632, ada/13408, rtl-optimization/25196,
  middle-end/16045, target/26255, bootstrap/16787, libgcj/26351,

* Sun Feb 19 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.3-0.20060215.2mdk
- fix biarch ppc64 build (missing -m32 crt files)
- add libffi & java support to sparc arches (Per Oyvind)
- add option to tune for Montecito CPUs (alias to Itanium 2 for now, H.J. Lu)

* Wed Feb 15 2006 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.3-0.20060215.1mdk
- 4.0.2 + SVN 4.0-branch (2006/02/15)
- fix <ffitarget.h> include (#19564)
- remove lib-gnu-java-awt-peer-gtk.la, nobody lt_dlopens it (#20462)

* Thu Nov 03 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.2-1mdk
- 4.0.2 + SVN 4.0-branch (2005/11/03)
- fix build as secondary compiler on MDK 10.0
- fix E: gcj-tools binary-or-shlib-defines-rpath

* Fri Sep 16 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.1-6mdk
- fix requires and conflicts for updates

* Fri Sep 02 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.1-5mdk
- merge libjava from 4.0-rhl-branch
- make gcjh generate arch-independent code for 0x80000000
- add fastjar and grepjar man pages
- don't move <gcj/libgcj-config.h> around
- stick to /usr/share/java-ext dir for jpackage existing practise
- remove duplicated files, create a libgcjX-base package for classes
- fix possible reloads into read-only memory (4.0-branch, PR rtl-opt/15248)

* Tue Aug 30 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.1-4mdk
- build the cairo Graphics2D implementation on GTK (backport from 4.1)
- ship with biarch c++config.h headers
- mklibnamize java libs package, aka don't depend on huge 32-bit runtime
- fix kopete miscompilation on x86_64 (Richard Guenther, PR tree-opt/23326)
- merge from RH 4.0.1-10:
  * more testcases
  * support more than 16 nested GCC visibility pragmas (H.J.Lu)
  * fix linker command line ordering when compiling multiple java
    source files (Tom Tromey, #163099)
  * diagnose invalid uses of inline (Eric Christopher, PRs c/22052, c/21975)
  * fix __builtin_*_chk miscompilation (PR middle-end/23484)
- merge some java related changes from David Walluck:
  * add missing java files
  * don't add gcj- prefix to tools
  * java-1.4.2-gcj-compat now handles java and javac wrappers
  * fix libgcj alternative removal
  * ship with Java runtime library sources for use in Eclipse
  * ship with libgcjawt instead of jawt commonly used in non-free JVMs

* Sat Aug 27 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.1-3mdk
- updates from 4.0-branch (2005/08/26):
  * fix -dv option handling
  * fix documentation for -ftree-dominator-opts
  * fix PRs rtl-opt/23560, tree-optimization/23546, middle-end/23517,
    target/21571, target/23070, c/18175, middle-end/20624, c/21562,
    rtl-opt/21254, c++/23337, tree-optimization/21105, rtl-opt/23299,
    middle-end/23369, middle-end/23312, middle-end/22439,
    rtl-opt/23241, middle-end/21894, middle-end/21728,
    middle-end/21529, middle-end/21291, c++/20817, c++/22454,
    c++/23044, tree-optimization/23426, c++/22233, c++/23089,
    c++/21799, c++/8271, c++/23266, c++/23219, c++/20646, c++/22508,
    c++/23191, fortran/20363, fortran/23065, fortran/21432,
    libfortran/20006, libfortran/22143, fortran/18833, fortran/20850,
    fortran/22010, java/17845, java/21436, java/23230,
    libfortran/23154, libfortran/23428, libgcj/21020, libgcj/21074,
    libgcj/23353, libstdc++/23465, libstdc++/23550

* Fri Aug 05 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.1-2mdk
- add Red Hat Fortify extensions
- updates from 4.0-branch (2005/08/04):
  * aliasing bug fixes (tree-opt/23192, tree-opt/22591)
  * fix PRs tree-opt/19899, c/22311, rtl-opt/22619, middle-end/21362,
    debug/20161, c++/22545, fortran/22503, libfortran/23178,
    fortran/22570 et al.

* Wed Jul 27 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.1-1mdk
- 4.0.1 + updates from 4.0-branch (CVS 2005/07/26)
  * Fix PRs debug/21828, target/21149, target/22576,
    rtl-optimization/22167, tree-opt/22278, target/21721,
    middle-end/22057, c/22421, middle-end/20593, tree-opt/22105,
    middle-end/22028, debug/21946, debug/21946, middle-end/17961,
    target/22083, c/21911, c/22308, c/22013, c/22098, c++/22263,
    c++/22139, c++/22204, c++/22132, c++/20637, c++/20678, c++/21903,
    c++/20789, c++/21929, c++/20746, c++/10611, c++/20563

* Tue Jun 07 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.1-0.2mdk
- 4.0.1 (CVS 2005/06/06)
- description tweaks
- buildrequires gawk >= 3.1.4
- build ada on ia64
- fix build on ppc with nof libs (Christiaan)
- fix build on ppc64 and make it a biarch compiler too (3.3-branch)
- remove obsolete RH compatibility code with "2.96"

* Fri Jun 03 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.1-0.1mdk
- 4.0.1 (CVS 2005/06/01)
- obsoletes gcc-g77, improve post scriptlets
- fix internal build of ada for the testsuite
- fix build on x86_64 without biarch awt peers
- add missing MMX & 3D Now! intrinsics headers

* Thu May 05 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.0-3mdk
- rebuild as system compiler
- don't build 32-bit awt/gtk peer on lib64 platforms
- make /usr/lib/security/*.security %%config(noreplace)

* Tue May 03 2005 Gwenole Beauchesne <gbeauchesne@mandriva.com> 4.0.0-2mdk
- ship with mudflap libs
- buildrequires: libgmp-devel for gfortran
- enable java with some changes:
  * add missing security and database files
  * add current directory in classpath if empty
  * handle java -jar JARFILE in the wrapper script
- updates from 4.0-branch as of 2005/05/02:
  * really inline memcpy with -minline-all-stringops (fix etherboot build)
  * fix kernel miscompilation (PR tree-optimization/21173)
  * more tweaks to <tr1/type_traits> (issue 3.20)
  * fix PRs ada/18847, c++/19542, rtl-optimization/21144,
    target/21098, java/21022, c/21159, c/21213, c/20740,
    rtl-optimization/21163, middle-end/20991, target/21101, c++/21087,
    middle-end/20991, fortran/13082, fortran/18824, fortran/16861,
    fortran/20865, fortran/21177, fortran/20879, fortran/20059,
    java/21115, java/20768, libgfortran/20950, libgcj/21136,
    libgcj/21233, libstdc++/21286, libstdc++/21244, libstdc++/21035,
    libstdc++/20914

* Wed Apr 27 2005 Gwenole Beauchesne <gbeauchesne@mandrva.com> 4.0.0-1mdk
- add missing <bits/cxxabi_tweaks.h>
- don't obsolete g77 packages as they may still be there for now
- further visibility fixes for KDE 3.4 on x86-64
- 4.0 release + updates from 4.0-branch as of 2005/04/24:
  * fix PRs rtl-opt/21102, target/21100, target/21099, c++/20805,
    middle-end/20973, c/12913, fortran/14569
- merge with gcc3.4 package:
  * fix javac wrapper script for automake1.9 testsuite (Christiaan)
  * fix libgcj pkgconfig files to look for gcj includes at the right place
  * avoid installing gcc into /usr/lib64 so that existing ways to generate
    libtool scripts can cope with 32-bit development on 64-bit platforms
  * unset TEXINPUTS when building PDF docs (G. Rousse)
  * disable 64-bit code generation if running under a 32-bit personality
  * temporarily disable libffi/java on sparc, sparc64 (Per Oyvind Karlsen)

* Fri Apr 15 2005 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 4.0.0-0.4mdk
- add fortran 95 front-end, they are now called gfortran and f95

* Fri Apr 15 2005 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 4.0.0-0.3mdk
- update from CVS (2005/04/14)

* Wed Dec 29 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 4.0.0-0.2mdk
- update from CVS (2004/12/28)
- make libstdc++.so symlink less sensitive to future changes from 3.4

* Sat Sep 11 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 4.0.0-0.1mdk
- Renamed to 4.0.0 (2004/09/10)

* Wed Jul 07 2004 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> 3.5.0-0.1mdk
- First Preview Release for Mandrakelinux