%bcond_with check

# version of tarball
%global gcc_version 11.2.0
%global gcc_major 11
# Note, gcc_release must be integer, if you want to add suffixes to
# %{release}, append them after %{gcc_release} on Release: line.
%global gcc_release 3

Summary:        GNU Compiler Collection (C, C++, Objective-C, ...)
Summary(ja):    GNU コンパイラコレクション (C, C++, Objective-C, ...)
Name:           gcc
Version:        11.2.1
Release:        %{gcc_release}%{?_dist_release}
Group:          programming
Vendor:         Project Vine
Distribution:   Vine Linux

# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
# GCC Runtime Exception.
License:        GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions
URL:            https://gcc.gnu.org
Source0:        https://ftp.gnu.org/gnu/%{name}/%{name}-%{gcc_version}/%{name}-%{gcc_version}.tar.xz
%global isl_version 0.18
Source3:        https://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2

%{?!_fmoddir: %global _fmoddir %{_libdir}/gfortran/modules}
%global multilib_64_archs sparc64 ppc64 s390x x86_64
%global build_objc 1
# %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha
# %global build_ada 1
# %else
%global build_ada 0
# %endif
%global build_java 0
%ifarch %{ix86} x86_64 %{arm}
%global build_go 1
%global go_soversion 19
%else
%global build_go 0
%endif
%global build_d 0
%ifarch %{ix86} x86_64 ia64
%global build_libquadmath 1
%else
%global build_libquadmath 0
%endif
%ifarch %{ix86} x86_64 ppc ppc64
%global build_libasan 1
%else
%global build_libasan 0
%endif
%ifarch x86_64
%global build_libtsan 1
%else
%global build_libtsan 0
%endif
%ifarch x86_64
%global build_liblsan 1
%else
%global build_liblsan 0
%endif
%ifarch %{ix86} x86_64 ppc ppc64 ppc64p7 %{arm} aarch64
%global build_libubsan 1
%else
%global build_libubsan 0
%endif
%ifarch %{ix86} x86_64 ppc ppc64 %{arm}
%global build_libatomic 1
%else
%global build_libatomic 0
%endif
%ifarch %{ix86} x86_64 %{arm} ppc ppc64
%global build_libitm 1
%else
%global build_libitm 0
%endif
%global build_isl 1
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64
%global attr_ifunc 1
%else
%global attr_ifunc 0
%endif
# %global build_cloog 1
%global build_cloog 0
%global build_libstdcxx_docs 1
# If you don't have already a usable gcc-java and libgcj for your arch,
# do on some arch which has it rpmbuild -bc --with java_tar gcc.spec
# which creates libjava-classes-%{version}-%{release}.tar.bz2
# With this then on the new arch do rpmbuild -ba -v --with java_bootstrap gcc.spec
%global bootstrap_java %{?_with_java_bootstrap:%{build_java}}%{!?_with_java_bootstrap:0}
%global build_java_tar %{?_with_java_tar:%{build_java}}%{!?_with_java_tar:0}

%ifarch s390x
%global multilib_32_arch s390
%endif
%ifarch sparc64
%global multilib_32_arch sparcv9
%endif
%ifarch ppc64
%global multilib_32_arch ppc
%endif
%ifarch x86_64
%global multilib_32_arch i686
%endif

BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
# Need binutils with -pie support >= 2.14.90.0.4-4
# Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4
# Need binutils which handle -msecure-plt on ppc >= 2.16.91.0.2-2
# Need binutils which support .weakref >= 2.16.91.0.3-1
# Need binutils which support --hash-style=gnu >= 2.17.50.0.2-7
# Need binutils which support mffgpr and mftgpr >= 2.17.50.0.2-8
# Need binutils which support --build-id >= 2.17.50.0.17-3
# Need binutils which support %gnu_unique_object >= 2.19.51.0.14
# Need binutils which support .cfi_sections >= 2.19.51.0.14-33
# Need binutils which support --no-add-needed >= 2.20.51.0.2-12
BuildRequires: binutils >= 2.20.51.0.2-12
# While gcc doesn't include statically linked binaries, during testing
# -static is used several times.
BuildRequires: glibc-static
BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, texinfo, sharutils
##VINE##TODO## BuildRequires: systemtap-sdt-devel >= 1.3
# For VTA guality testing
BuildRequires: gdb
# Make sure pthread.h doesn't contain __thread tokens
# Make sure glibc supports stack protector
# Make sure glibc supports DT_GNU_HASH
BuildRequires: glibc-devel >= 2.4.90-13
BuildRequires: elfutils-devel >= 0.147
BuildRequires: elfutils-libelf-devel >= 0.147
%ifarch ppc ppc64 s390 s390x sparc sparcv9 alpha
# Make sure glibc supports TFmode long double
BuildRequires: glibc >= 2.3.90-35
%endif
%ifarch %{multilib_64_archs}
# Ensure glibc{,-devel} is installed for both multilib arches
# BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
BuildRequires: compat32-glibc-devel
BuildRequires: compat32-glibc-static
%endif
%if %{build_ada}
# Ada requires Ada to build
BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1
%endif
%ifarch ia64
BuildRequires: libunwind >= 0.98
%endif
%if %{build_cloog}
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
BuildRequires: ppl >= 0.11.2, ppl-devel >= 0.11.2
%else
BuildRequires: ppl >= 0.10, ppl-devel >= 0.10
%endif
BuildRequires: cloog-ppl >= 0.15, cloog-ppl-devel >= 0.15
%endif
%if %{build_libstdcxx_docs}
BuildRequires: doxygen >= 1.7.1
BuildRequires: graphviz
%endif
# for testsuite
BuildRequires: net-tools
Requires: gcc-cpp = %{version}-%{release}
# Need .eh_frame ld optimizations
# Need proper visibility support
# Need -pie support
# Need --as-needed/--no-as-needed support
# On ppc64, need omit dot symbols support and --non-overlapping-opd
# Need binutils that owns /usr/bin/c++filt
# Need binutils that support .weakref
# Need binutils that supports --hash-style=gnu
# Need binutils that support mffgpr/mftgpr
# Need binutils that support --build-id
# Need binutils that support %gnu_unique_object
# Need binutils that support .cfi_sections
# Need binutils that support --no-add-needed
Requires: binutils >= 2.20.51.0.2-12
# Make sure gdb will understand DW_FORM_strp
Conflicts: gdb < 5.1-2
Requires: glibc-devel >= 2.2.90-12
%ifarch ppc ppc64 s390 s390x sparc sparcv9 alpha
# Make sure glibc supports TFmode long double
Requires: glibc >= 2.3.90-35
%endif
Requires: libgcc >= %{version}-%{release}
Requires: libgomp = %{version}-%{release}
%if !%{build_ada}
Obsoletes: gcc-gnat < %{version}-%{release}
Obsoletes: libgnat < %{version}-%{release}
%endif
%if %{build_cloog}
Requires: cloog-ppl >= 0.15
%endif
Obsoletes: gcc3
Obsoletes: egcs
Obsoletes: gcc34
Obsoletes: gcc35
Obsoletes: gcc4
%ifarch %{ix86} x86_64
Obsoletes: libcilkrts < %{version}
Obsoletes: libcilkrts-static < %{version}
Obsoletes: libmpx < %{version}
Obsoletes: libmpx-static < %{version}
%endif
Provides: gcc4 = %{version}-%{release}
AutoReq: true

Patch0: gcc11-hack.patch
Patch2: gcc11-sparc-config-detection.patch
Patch3: gcc11-libgomp-omp_h-multilib.patch
Patch4: gcc11-libtool-no-rpath.patch
Patch5: gcc11-isl-dl.patch
Patch6: gcc11-isl-dl2.patch
Patch7: gcc11-libstdc++-docs.patch
Patch8: gcc11-no-add-needed.patch
Patch9: gcc11-foffload-default.patch
Patch10: gcc11-Wno-format-security.patch
Patch11: gcc11-rh1574936.patch
Patch12: gcc11-d-shared-libphobos.patch
Patch13: gcc11-pr99341-revert.patch

Patch10000: gcc-11.2-20220129.patch

# On ARM EABI systems, we do want -gnueabi to be part of the
# target triple.
%ifnarch %{arm}
%global _gnu %{nil}
%endif
%ifarch sparcv9
%global gcc_target_platform sparc64-%{_vendor}-%{_target_os}
%endif
%ifarch ppc
%global gcc_target_platform ppc64-%{_vendor}-%{_target_os}
%endif
%ifnarch sparcv9 ppc
%global gcc_target_platform %{_target_platform}
%endif

################################################# gcc
%description
The gcc package contains the GNU Compiler Collection version %{version}.
You'll need this package in order to compile C code.

%description -l ja
gcc パッケージには、GNU Compiler Collection バージョン %{version} が
含まれています。C のソースコードをコンパイルするにはこのパッケージが
必要となります。

################################################# libgcc
%package -n libgcc
Summary: GCC version %{version} shared support library
Summary(ja): GCC バージョン %{version} 共有サポートライブラリ
Group: system
Autoreq: false
Obsoletes: libmudflap
Obsoletes: libmudflap-devel
Obsoletes: libmudflap-static

%description -n libgcc
This package contains GCC shared support library which is needed
e.g. for exception handling support.

%description -n libgcc -l ja
このパッケージには GCC 共有サポートライブラリが含まれます。
これは例えば例外ハンドリングサポートに必要です。

################################################# c++
%package c++
Summary: C++ support for GCC
Summary(ja): GNU コンパイラ集 - C++ サポート
Group: programming
Requires: gcc = %{version}-%{release}
Requires: libstdc++ = %{version}-%{release}
Requires: libstdc++-devel = %{version}-%{release}
Obsoletes: gcc34-c++
Obsoletes: gcc35-c++
Obsoletes: gcc4-c++
Provides: gcc4-c++ = %{version}-%{release}
Autoreq: true

%description c++
This package adds C++ support to the GNU Compiler Collection.
It includes support for most of the current C++ specification,
including templates and exception handling.

%description c++ -l ja
このパッケージは GNU Compiler Collection に C++ サポートを追加します。
テンプレートと例外ハンドリングサポートを含む、現在の C++ 仕様の多くを
サポートします。

################################################# libstdc++
%package -n libstdc++
Summary: GNU Standard C++ Library
Summary(ja): GNU 標準 C++ ライブラリ
Group: system
Obsoletes: libstdc++34
Provides: libstdc++34 = %{version}-%{release}
Autoreq: true
BuildRequires: python3
BuildRequires: python3-rpm-macros
Requires: glibc >= 2.10.90-7

%description -n libstdc++
The libstdc++ package contains a rewritten standard compliant GCC Standard
C++ Library.

%description -n libstdc++ -l ja
libstdc++ パッケージには、標準準拠に書き直された
GCC 標準 C++ ライブラリが収録されています。

################################################# libstdc++-devel
%package -n libstdc++-devel
Summary: Header files and libraries for C++ development
Summary(ja): C++ 開発用ヘッダ/ライブラリ
Group: programming
Requires: libstdc++ = %{version}-%{release}
Autoreq: true

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

%description -n libstdc++-devel -l ja
これは標準 C++ ライブラリの GNU 実装です。
このパッケージには C++ 開発に必要なヘッダファイルとライブラリが
収録されています。これには STL の実装も含まれます。

################################################# libstdc++-static
%package -n libstdc++-static
Summary: Static libraries for the GNU standard C++ library
Summary(ja): GNU 標準 C++ ライブラリの静的リンクライブラリ
Group: programming
Requires: libstdc++-devel = %{version}-%{release}
Autoreq: true

%description -n libstdc++-static
Static libraries for the GNU standard C++ library. 

%description -n libstdc++-static -l ja
GNU 標準 C++ ライブラリの静的リンクライブラリ

################################################# libstdc++-docs
%package -n libstdc++-docs
Summary: Documentation for the GNU standard C++ library
Summary(ja): GNU 標準 C++ ライブラリのドキュメント
Group: documentation
Autoreq: true

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

%description -n libstdc++-docs -l ja
GNU 標準 C++ ライブラリのマニュアル、Doxygenで生成した API情報と FAQ集

################################################# objc
%package objc
Summary: Objective-C support for GCC
Summary(ja): GNU コンパイラ集 - Objective C サポート
Group: programming
Requires: gcc = %{version}-%{release}
Requires: libobjc = %{version}-%{release}
Autoreq: true

%description objc
gcc-objc provides Objective-C support for the GCC.
Mainly used on systems running NeXTSTEP, Objective-C is an
object-oriented derivative of the C language.

%description objc -l ja
gcc-objc パッケージは GCC に Objective-C サポートを追加します。
Objective-C は C 言語から派生したオブジェクト指向言語で、
主に NeXTSTEP システムで使われてきました。

################################################# objc++
%package objc++
Summary: Objective-C++ support for GCC
Summary(ja): GNU コンパイラ集 - Objective C++ サポート
Group: programming
Requires: gcc-c++ = %{version}-%{release}
Requires: gcc-objc = %{version}-%{release}
Autoreq: true

%description objc++
gcc-objc++ package provides Objective-C++ support for the GCC.

%description objc++ -l ja
gcc-objc++ パッケージは GCC に Objective-C++ サポートを追加します。

################################################# libobjc
%package -n libobjc
Summary: Objective-C runtime
Summary(ja): Objective C ランタイムライブラリ
Group: system
Autoreq: true

%description -n libobjc
This package contains Objective-C shared library which is needed to run
Objective-C dynamically linked programs.

%description -n libobjc -l ja
このパッケージには Objective-C 共有ライブラリが収められています。
これは Objective-C にダイナミックリンクされたプログラムの実行に必要と
なります。

################################################# gfortran
%package gfortran
Summary: Fortran support
Summary(ja): GNU コンパイラ集 - Fortran サポート
Group: programming
Requires: gcc = %{version}-%{release}
Requires: libgfortran = %{version}-%{release}
%if %{build_libquadmath}
Requires: libquadmath = %{version}-%{release}
Requires: libquadmath-devel = %{version}-%{release}
%endif
BuildRequires: gmp-devel >= 4.2.2-3vl2
BuildRequires: mpfr-devel >= 2.2.1
BuildRequires: libmpc-devel >= 0.8.1
Obsoletes: gcc4-gfortran
Autoreq: true

%description gfortran
The gcc-gfortran package provides support for compiling Fortran
programs with the GNU Compiler Collection.

%description gfortran -l ja
gcc-gfortran パッケージは GNU Compiler Collection に
Fortran プログラムをコンパイルする機能を追加するものです。

################################################# libgfortran
%package -n libgfortran
Summary: Fortran runtime
Summary(ja): Fortran ランタイム
Group: system
Autoreq: true
%if %{build_libquadmath}
Requires: libquadmath = %{version}-%{release}
%endif

%description -n libgfortran
This package contains Fortran shared library which is needed to run
Fortran dynamically linked programs.

%description -n libgfortran -l ja
このパッケージには Fortran 共有ライブラリが収められています。
これは Fortran にダイナミックリンクされたプログラムの実行に
必要となります。

################################################# libgfortran-static
%package -n libgfortran-static
Summary: Static Fortran libraries
Summary(ja): Fortranの静的リンクライブラリ
Group: programming
Requires: libgfortran = %{version}-%{release}
Requires: gcc = %{version}-%{release}
%if %{build_libquadmath}
Requires: libquadmath-static = %{version}-%{release}
%endif

%description -n libgfortran-static
This package contains static Fortran libraries.

%description -n libgfortran-static -l ja
このパッケージには Fortran 静的リンクライブラリが収められています。

################################################# libgomp
%package -n libgomp
Summary: GCC OpenMP v3.0 shared support library
Summary(ja): GCC OpenMP v3.0 共有ライブラリ
Group: system

%description -n libgomp
This package contains GCC shared support library which is needed
for OpenMP v3.0 support.

%description -n libgomp -l ja
このパッケージには OpenMP v3.0 をサポートする GCC 共有ライブラリが
収められています。

################################################# gdb-plugin
%package gdb-plugin
Summary: GCC plugin for GDB
Group: programming
Requires: gcc = %{version}-%{release}

%description gdb-plugin
This package contains GCC plugin for GDB C expression evaluation.

################################################# libgccjit
%package -n libgccjit
Summary: Library for embedding GCC inside programs and libraries
Group: system
Requires: gcc = %{version}-%{release}

%description -n libgccjit
This package contains shared library with GCC JIT front-end.

################################################# libgccjit-devel
%package -n libgccjit-devel
Summary: Support for embedding GCC inside programs and libraries
Group: programming
BuildRequires: python3-sphinx
Requires: libgccjit = %{version}-%{release}

%description -n libgccjit-devel
This package contains header files and documentation for GCC JIT front-end.

################################################# libquadmath
%package -n libquadmath
Summary: GCC __float128 shared support library
Summary(ja): GCC __float128 サポートのための共有ライブラリ
Group: system

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

%description -n libquadmath -l ja
このパッケージには __float128 データ型と Fortran REAL*16 をサポートする
ために必要な GCC 共有ライブラリが収められています。

################################################# libquadmath-devel
%package -n libquadmath-devel
Summary: GCC __float128 support
Summary(ja): GCC __float128 サポート
Group: programming
Requires: libquadmath = %{version}-%{release}
Requires: gcc = %{version}-%{release}

%description -n libquadmath-devel
This package contains headers for building Fortran programs using
REAL*16 and programs using __float128 math.

%description -n libquadmath-devel -l ja
このパッケージには __float128 データ型を使ったプログラムや REAL*16 を
使った Fortranプログラムをビルドするためのヘッダーが収められています。

################################################# libquadmath-static
%package -n libquadmath-static
Summary: Static libraries for __float128 support
Summary(ja): __float128 サポートのための静的リンクライブラリ
Group: programming
Requires: libquadmath-devel = %{version}-%{release}

%description -n libquadmath-static
This package contains static libraries for building Fortran programs
using REAL*16 and programs using __float128 math.

%description -n libquadmath-static -l ja
このパッケージには __float128 データ型を使ったプログラムや REAL*16 を
使った Fortranプログラムをビルドするための静的リンクライブラリが収めら
れています。

################################################# libitm
%package -n libitm
Summary: The GNU Transactional Memory library
Group: system

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

################################################# libitm-devel
%package -n libitm-devel
Summary: The GNU Transactional Memory support
Group: programming
Requires: libitm = %{version}-%{release}
Requires: gcc = %{version}-%{release}

%description -n libitm-devel
This package contains headers and support files for the
GNU Transactional Memory library.

################################################# libitm-static
%package -n libitm-static
Summary: The GNU Transactional Memory static library
Group: programming
Requires: libitm-devel = %{version}-%{release}

%description -n libitm-static
This package contains GNU Transactional Memory static libraries.

################################################# libatomic
%package -n libatomic
Summary: The GNU Atomic library
Group: system

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

################################################# libatomic-static
%package -n libatomic-static
Summary: The GNU Atomic static library
Group: programming
Requires: libatomic = %{version}-%{release}

%description -n libatomic-static
This package contains GNU Atomic static libraries.

################################################# libasan
%package -n libasan
Summary: The Address Sanitizer runtime library
Group: system

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

################################################# libasan-static
%package -n libasan-static
Summary: The Address Sanitizer static library
Group: programming
Requires: libasan = %{version}-%{release}

%description -n libasan-static
This package contains Address Sanitizer static runtime library.

################################################# libtsan
%package -n libtsan
Summary: The Thread Sanitizer runtime library
Group: system

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

################################################# libtsan-static
%package -n libtsan-static
Summary: The Thread Sanitizer static library
Group: programming
Requires: libtsan = %{version}-%{release}

%description -n libtsan-static
This package contains Thread Sanitizer static runtime library.

################################################# libubsan
%package -n libubsan
Summary: The Undefined Behavior Sanitizer runtime library
Group: system

%description -n libubsan
This package contains the Undefined Behavior Sanitizer library
which is used for -fsanitize=undefined instrumented programs.

################################################# libubsan-static
%package -n libubsan-static
Summary: The Undefined Behavior Sanitizer static library
Group: programming
Requires: libubsan = %{version}-%{release}

%description -n libubsan-static
This package contains Undefined Behavior Sanitizer static runtime library.

################################################# liblsan
%package -n liblsan
Summary: The Leak Sanitizer runtime library
Group: system

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

################################################# liblsan-static
%package -n liblsan-static
Summary: The Leak Sanitizer static library
Group: programming
Requires: liblsan = %{version}-%{release}

%description -n liblsan-static
This package contains Leak Sanitizer static runtime library.

################################################# gcc-cpp
%package cpp
Summary: The C Preprocessor
Summary(ja): C プリプロセッサ
Group: programming
Provides: cpp = %{version}-%{release}
Autoreq: true

%description cpp
Cpp is the GNU C-Compatible Compiler Preprocessor.
Cpp 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, abbreviations for longer
constructs.

The C preprocessor provides four separate functionalities: the
inclusion of header files (files of declarations that can be
substituted into your program); macro expansion (you can define macros,
and 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); and 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 C programmer and you use
macros.

################################################# gcc-gnat
%package gnat
Summary: Ada 95 support for GCC
Summary(ja): GNU コンパイラ集 - Ada 95 サポート
Group: programming
Requires: gcc = %{version}-%{release}
Requires: libgnat = %{version}-%{release}
Requires: libgnat-devel = %{version}-%{release}
Obsoletes: gnat-devel, gcc3-gnat
Autoreq: true

%description gnat
GNAT is a GNU Ada 95 front-end to GCC. This package includes development tools,
the documents and Ada 95 compiler.

%description gnat -l ja
GNAT は GCC 用の GNU Ada 95 フロントエンドです。
このパッケージには Ada 95 コンパイラ、開発ツール、ドキュメントが
収録されています。

################################################# libgnat
%package -n libgnat
Summary: GNU Ada 95 runtime shared libraries
Summary(ja): GNU コンパイラ集 - Ada 95 ランタイム共有ライブラリ
Group: system
Obsoletes: gnat libgnat3
Autoreq: true

%description -n libgnat
GNAT is a GNU Ada 95 front-end to GCC. This package includes shared libraries,
which are required to run programs compiled with the GNAT.

%description -n libgnat -l ja
GNAT は GCC 用の GNU Ada 95 フロントエンドです。
このパッケージには GNAT でコンパイルされたプログラムを実行するために必要な
共有ライブラリが収録されています。

################################################# libgnat-devel
%package -n libgnat-devel
Summary: GNU Ada 95 libraries
Group: programming
Autoreq: true

%description -n libgnat-devel
GNAT is a GNU Ada 95 front-end to GCC. This package includes libraries,
which are required to compile with the GNAT.

################################################# libgnat-static
%package -n libgnat-static
Summary: GNU Ada 95 static libraries
Group: programming
Requires: libgnat-devel = %{version}-%{release}
Autoreq: true

%description -n libgnat-static
GNAT is a GNU Ada 95 front-end to GCC. This package includes static libraries.

################################################# gcc-go
%package go
Summary: Go support
Group: programming
Requires: gcc = %{version}-%{release}
Requires: libgo = %{version}-%{release}
Requires: libgo-devel = %{version}-%{release}
Autoreq: true

%description go
The gcc-go package provides support for compiling Go programs
with the GNU Compiler Collection.

################################################# libgo
%package -n libgo
Summary: Go runtime
Group: system
Autoreq: true

%description -n libgo
This package contains Go shared library which is needed to run
Go dynamically linked programs.

################################################# libgo-devel
%package -n libgo-devel
Summary: Go development libraries
Group: programming
Requires: libgo = %{version}-%{release}
Autoreq: true

%description -n libgo-devel
This package includes libraries and support files for compiling
Go programs.

################################################# libgo-static
%package -n libgo-static
Summary: Static Go libraries
Group: programming
Requires: libgo = %{version}-%{release}
Requires: gcc = %{version}-%{release}

%description -n libgo-static
This package contains static Go libraries.

################################################# gcc-plugin-devel
%package plugin-devel
Summary: Support for compiling GCC plugins
Group: programming
Requires: gcc = %{version}-%{release}
Requires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1, libmpc-devel >= 0.8.1

%description plugin-devel
This package contains header files and other support files
for compiling GCC plugins.  The GCC plugin ABI is currently
not stable, so plugins must be rebuilt any time GCC is updated.

################################################# libgcc-32bit
%package -n libgcc-32bit
Summary: GCC version %{version} shared support library
Summary(ja): GCC バージョン %{version} 共有サポートライブラリ
Group: system,legacy
Autoreq: false

%description -n libgcc-32bit
This package contains GCC shared support library which is needed
e.g. for exception handling support.

%description -n libgcc-32bit -l ja
このパッケージには GCC 共有サポートライブラリが含まれます。
これは例えば例外ハンドリングサポートに必要です。

################################################# libstdc++-32bit
%package -n libstdc++-32bit
Summary: GNU Standard C++ Library
Summary(ja): GNU 標準 C++ ライブラリ
Group: system,legacy
Autoreq: true
Requires: compat32-glibc >= 2.10.90

%description -n libstdc++-32bit
The libstdc++ package contains a rewritten standard compliant GCC Standard
C++ Library.

%description -n libstdc++-32bit -l ja
libstdc++ パッケージには、標準準拠に書き直された
GCC 標準 C++ ライブラリが収録されています。

################################################# libobjc-32bit
%package -n libobjc-32bit
Summary: Objective-C runtime
Summary(ja): Objective C ランタイムライブラリ
Group: system,legacy
Autoreq: true

%description -n libobjc-32bit
This package contains Objective-C shared library which is needed to run
Objective-C dynamically linked programs.

%description -n libobjc-32bit -l ja
このパッケージには Objective-C 共有ライブラリが収められています。
これは Objective-C にダイナミックリンクされたプログラムの実行に必要と
なります。

################################################# libgfortran-32bit
%package -n libgfortran-32bit
Summary: Fortran runtime
Summary(ja): Fortran ランタイム
Group: system,legacy
Autoreq: true
%if %{build_libquadmath}
Requires: libquadmath-32bit = %{version}-%{release}
%endif

%description -n libgfortran-32bit
This package contains Fortran shared library which is needed to run
Fortran dynamically linked programs.

%description -n libgfortran-32bit -l ja
このパッケージには Fortran 共有ライブラリが収められています。
これは Fortran にダイナミックリンクされたプログラムの実行に
必要となります。

################################################# libgomp-32bit
%package -n libgomp-32bit
Summary: GCC OpenMP v3.0 shared support library
Summary(ja): GCC OpenMP v3.0 共有ライブラリ
Group: system,legacy

%description -n libgomp-32bit
This package contains GCC shared support library which is needed
for OpenMP v3.0 support.

%description -n libgomp-32bit -l ja
このパッケージには OpenMP v3.0 をサポートする GCC 共有ライブラリが
収められています。

################################################# libquadmath-32bit
%package -n libquadmath-32bit
Summary: GCC __float128 shared support library
Summary(ja): GCC __float128 サポートのための共有ライブラリ
Group: system,legacy

%description -n libquadmath-32bit
This package contains GCC shared support library which is needed
for __float128 math support and for Fortran REAL*16 support.

%description -n libquadmath-32bit -l ja
このパッケージには __float128 データ型と Fortran REAL*16 をサポートする
ために必要な GCC 共有ライブラリが収められています。

################################################# libitm-32bit
%package -n libitm-32bit
Summary: The GNU Transactional Memory library
Group: system,legacy

%description -n libitm-32bit
This package contains the GNU Transactional Memory library
which is a GCC transactional memory support runtime library.

################################################# libatomic-32bit
%package -n libatomic-32bit
Summary: The GNU Atomic library
Group: system,legacy

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

################################################# libasan-32bit
%package -n libasan-32bit
Summary: The Address Sanitizer runtime library
Group: system,legacy

%description -n libasan-32bit
This package contains the Address Sanitizer library
which is used for -fsanitize=address instrumented programs.

################################################# libubsan-32bit
%package -n libubsan-32bit
Summary: The Undefined Behavior Sanitizer runtime library
Group: system,legacy

%description -n libubsan-32bit
This package contains the Undefined Behavior Sanitizer library
which is used for -fsanitize=undefined instrumented programs.

################################################# libgo-32bit
%package -n libgo-32bit
Summary: Go runtime
Group: system,legacy
Autoreq: true

%description -n libgo-32bit
This package contains Go shared library which is needed to run
Go dynamically linked programs.

#####################################################################
%debug_package
#####################################################################


%prep
%setup -q -n gcc-%{gcc_version} -a 3
%patch10000 -p1 -b .upstream

%patch0 -p0 -b .hack~
%patch2 -p0 -b .sparc-config-detection~
%patch3 -p0 -b .libgomp-omp_h-multilib~
%patch4 -p0 -b .libtool-no-rpath~
%if %{build_isl}
%patch5 -p0 -b .isl-dl~
%patch6 -p0 -b .isl-dl2~
%endif
%if %{build_libstdcxx_docs}
%patch7 -p0 -b .libstdc++-docs~
%endif
%patch8 -p0 -b .no-add-needed~
%patch9 -p0 -b .foffload-default~
%patch10 -p0 -b .Wno-format-security~
%if 0%{?fedora} >= 29 || 0%{?rhel} > 7
%patch11 -p0 -b .rh1574936~
%endif
%patch12 -p0 -b .d-shared-libphobos~
%patch13 -p0 -b .pr99341-revert~

echo 'Vine Linux %{version}-%{gcc_release}' > gcc/DEV-PHASE

cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h

./contrib/gcc_update --touch

LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi

sed -i -e 's/Common Driver Var(flag_report_bug)/& Init(1)/' gcc/common.opt

# This test causes fork failures, because it spawns way too many threads
rm -f gcc/testsuite/go.test/test/chan/goroutines.go


%build
# Undo the broken autoconf change in recent Fedora versions
export CONFIG_SITE=NONE

CC=gcc
CXX=g++

OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-flto=auto//g;s/-flto//g;s/-ffat-lto-objects//g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Werror=format-security/-Wformat-security/g'`

%ifarch %{ix86}
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i.86//g'`
%endif
OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
case "$OPT_FLAGS" in
  *-fasynchronous-unwind-tables*)
    sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables /' \
      libgcc/Makefile.in
    ;;
esac

rm -rf obj-%{gcc_target_platform}
mkdir obj-%{gcc_target_platform}
cd obj-%{gcc_target_platform}

%if %{build_isl}
mkdir isl-build isl-install
%ifarch s390 s390x
ISL_FLAG_PIC=-fPIC
%else
ISL_FLAG_PIC=-fpic
%endif
cd isl-build
sed -i 's|libisl|libgcc11privateisl|g' \
  ../../isl-%{isl_version}/Makefile.{am,in}
../../isl-%{isl_version}/configure \
  CC=/usr/bin/gcc CXX=/usr/bin/g++ \
  CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC" --prefix=`cd ..; pwd`/isl-install
make %{?_smp_mflags}
make install
cd ../isl-install/lib
rm libgcc11privateisl.so{,.15}
mv libgcc11privateisl.so.15.3.0 libisl.so.15
ln -sf libisl.so.15 libisl.so
cd ../..
%endif

enablelgo=
enablelada=
enablelobjc=
enableld=
%if %{build_objc}
enablelobjc=,objc,obj-c++
%endif
%if %{build_ada}
enablelada=,ada
%endif
%if %{build_go}
enablelgo=,go
%endif
%if %{build_d}
enableld=,d
%endif

CONFIGURE_OPTS="\
	--prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
	--with-bugurl=http://mantis.vinelinux.org/ \
	--enable-shared --enable-threads=posix --enable-checking=release \
	--enable-multilib \
	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
	--enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only \
	--enable-plugin --enable-initfini-array \
%if %{build_isl}
	--with-isl=`pwd`/isl-install \
%else
	--without-isl \
%endif
%if %{attr_ifunc}
	--enable-gnu-indirect-function \
%endif
%ifarch %{ix86} x86_64
	--enable-cet \
	--with-tune=generic \
%endif
%ifarch %{ix86}
	--with-arch=i686 \
%endif
%ifarch x86_64
	--with-arch_32=i686 \
%endif
	--build=%{gcc_target_platform} \
	--with-build-config=bootstrap-lto --enable-link-serialization=1 \
	"

CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
	CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \
		  | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \
	XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
	../configure --enable-bootstrap \
	--enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo}${enableld},lto \
	$CONFIGURE_OPTS

make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap

CC="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cc`"
CXX="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cxx` `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-includes`"

# Build libgccjit separately, so that normal compiler binaries aren't -fpic
# unnecessarily.
mkdir objlibgccjit
cd objlibgccjit
CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
	CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \
		  | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \
	XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
	../../configure --disable-bootstrap --enable-host-shared \
	--enable-languages=jit $CONFIGURE_OPTS
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc
cp -a gcc/libgccjit.so* ../gcc/
cd ../gcc/
ln -sf xgcc %{gcc_target_platform}-gcc-%{gcc_major}
cp -a Makefile{,.orig}
sed -i -e '/^CHECK_TARGETS/s/$/ check-jit/' Makefile
touch -r Makefile.orig Makefile
rm Makefile.orig
make jit.sphinx.html
make jit.sphinx.install-html jit_htmldir=`pwd`/../../rpm.doc/libgccjit-devel/html
cd ..

%if %{build_isl}
cp -a isl-install/lib/libisl.so.15 gcc/
%endif

# Make generated man pages even if Pod::Man is not new enough
perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
for i in ../gcc/doc/*.texi; do
  cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
done
make -C gcc generated-manpages
for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done

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

# Copy various doc files here and there
cd ..
mkdir -p rpm.doc/gfortran rpm.doc/objc
mkdir -p rpm.doc/go rpm.doc/libgo rpm.doc/libquadmath rpm.doc/libitm
mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer}

for i in {gcc,gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer}/ChangeLog*; do
	cp -p $i rpm.doc/changelogs/$i
done

(cd gcc/fortran; for i in ChangeLog*; do
	cp -p $i ../../rpm.doc/gfortran/$i
done)
(cd libgfortran; for i in ChangeLog*; do
	cp -p $i ../rpm.doc/gfortran/$i.libgfortran
done)
%if %{build_objc}
(cd libobjc; for i in README*; do
	cp -p $i ../rpm.doc/objc/$i.libobjc
done)
%endif
%if %{build_libquadmath}
(cd libquadmath; for i in ChangeLog* COPYING.LIB; do
	cp -p $i ../rpm.doc/libquadmath/$i.libquadmath
done)
%endif

%if %{build_libitm}
(cd libitm; for i in ChangeLog*; do
	cp -p $i ../rpm.doc/libitm/$i.libitm
done)
%endif
%if %{build_go}
(cd gcc/go; for i in README* ChangeLog*; do
	cp -p $i ../../rpm.doc/go/$i
done)
(cd libgo; for i in LICENSE* PATENTS* README; do
	cp -p $i ../rpm.doc/libgo/$i.libgo
done)
%endif

rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9


%install
rm -rf %{buildroot}

cd obj-%{gcc_target_platform}

TARGET_PLATFORM=%{gcc_target_platform}

# There are some MP bugs in libstdc++ Makefiles
make -C %{gcc_target_platform}/libstdc++-v3

make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
  infodir=%{buildroot}%{_infodir} install
%if %{build_ada}
chmod 644 %{buildroot}%{_infodir}/gnat*
%endif

FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}

%if %{build_isl}
cp -a isl-install/lib/libisl.so.15 $FULLPATH/
%endif

# fix some things
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
rm -f %{buildroot}%{_prefix}/lib/cpp
ln -sf ../bin/cpp %{buildroot}/%{_prefix}/lib/cpp
ln -sf gfortran %{buildroot}%{_prefix}/bin/f95
rm -f %{buildroot}%{_infodir}/dir
gzip -9 %{buildroot}%{_infodir}/*.info*
%if %{build_ada}
ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc
%endif
mkdir -p %{buildroot}%{_fmoddir}

%if %{build_go}
mv %{buildroot}%{_prefix}/bin/go{,.gcc}
mv %{buildroot}%{_prefix}/bin/gofmt{,.gcc}
ln -sf /etc/alternatives/go %{buildroot}%{_prefix}/bin/go
ln -sf /etc/alternatives/gofmt %{buildroot}%{_prefix}/bin/gofmt
%endif

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
    cat > %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/c++config.h <<EOF
#ifndef _CPP_CPPCONFIG_WRAPPER
#define _CPP_CPPCONFIG_WRAPPER 1
#include <bits/wordsize.h>
#if __WORDSIZE == 32
%ifarch %{multilib_64_archs}
`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)`
%else
`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
%endif
#else
%ifarch %{multilib_64_archs}
`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
%else
`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)`
%endif
#endif
#endif
EOF
    break
  fi
done

for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/ -name c++config.h`; do
  for i in 1 2 4 8; do
    sed -i -e 's/#define _GLIBCXX_ATOMIC_BUILTINS_'$i' 1/#ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_'$i'\
&\
#endif/' $f
  done
done

# Nuke bits/*.h.gch dirs
# 1) there is no bits/*.h header installed, so when gch file can't be
#    used, compilation fails
# 2) sometimes it is hard to match the exact options used for building
#    libstdc++-v3 or they aren't desirable
# 3) there are multilib issues, conflicts etc. with this
# 4) it is huge
# People can always precompile on their own whatever they want, but
# shipping this for everybody is unnecessary.
rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/*.h.gch

%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/
find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
%endif

FULLLSUBDIR=
%ifarch sparcv9 ppc
FULLLSUBDIR=lib32
%endif
%ifarch sparc64 ppc64 ppc64p7
FULLLSUBDIR=lib64
%endif
if [ -n "$FULLLSUBDIR" ]; then
  FULLLPATH=$FULLPATH/$FULLLSUBDIR
  mkdir -p $FULLLPATH
else
  FULLLPATH=$FULLPATH
fi

find %{buildroot} -name \*.la | xargs rm -f

mv %{buildroot}%{_prefix}/%{_lib}/libgfortran.spec $FULLPATH/
%if %{build_libitm}
mv %{buildroot}%{_prefix}/%{_lib}/libitm.spec $FULLPATH/
%endif
%if %{build_libasan}
mv %{buildroot}%{_prefix}/%{_lib}/libsanitizer.spec $FULLPATH/
%endif

mkdir -p %{buildroot}/%{_lib}
mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}.so.1
chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}.so.1
ln -sf libgcc_s-%{gcc_major}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
%ifarch %{multilib_64_archs}
ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
mkdir -p %{buildroot}/lib
mv -f %{buildroot}%{_prefix}/lib/libgcc_s.so.1 %{buildroot}/lib/libgcc_s-%{gcc_major}.so.1
chmod 755 %{buildroot}/lib/libgcc_s-%{gcc_major}.so.1
ln -sf libgcc_s-%{gcc_major}.so.1 %{buildroot}/lib/libgcc_s.so.1
%endif

mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/

%if %{build_ada}
mv -f $FULLPATH/adalib/libgnarl-*.so %{buildroot}%{_prefix}/%{_lib}/
mv -f $FULLPATH/adalib/libgnat-*.so %{buildroot}%{_prefix}/%{_lib}/
rm -f $FULLPATH/adalib/libgnarl.so* $FULLPATH/adalib/libgnat.so*
%endif

mkdir -p %{buildroot}%{_prefix}/libexec/getconf
if gcc/xgcc -B gcc/ -E -P -dD -xc /dev/null | grep '__LONG_MAX__.*\(2147483647\|0x7fffffff\($\|[LU]\)\)'; then
  ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
else
  ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
fi

mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++*gdb.py* \
      %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/
pushd ../libstdc++-v3/python
for i in `find . -name \*.py`; do
  touch -r $i %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/$i
done
touch -r hook.in %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc++*gdb.py
popd
for f in `find %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/ \
	       %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/ -name \*.py`; do
  r=${f/$RPM_BUILD_ROOT/}
  %{__python3} -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")'
  %{__python3} -O -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")'
done

rm -f $FULLEPATH/libgccjit.so
cp -a objlibgccjit/gcc/libgccjit.so* %{buildroot}%{_prefix}/%{_lib}/
cp -a ../gcc/jit/libgccjit*.h %{buildroot}%{_prefix}/include/
/usr/bin/install -c -m 644 objlibgccjit/gcc/doc/libgccjit.info %{buildroot}/%{_infodir}/
gzip -9 %{buildroot}/%{_infodir}/libgccjit.info

pushd $FULLPATH
if [ "%{_lib}" = "lib" ]; then
%if %{build_objc}
ln -sf ../../../libobjc.so.4 libobjc.so
%endif
ln -sf ../../../libstdc++.so.6.*[0-9] libstdc++.so
ln -sf ../../../libgfortran.so.5.* libgfortran.so
ln -sf ../../../libgomp.so.1.* libgomp.so
%if %{build_go}
ln -sf ../../../libgo.so.%{go_soversion}.* libgo.so
%endif
%if %{build_libquadmath}
ln -sf ../../../libquadmath.so.0.* libquadmath.so
%endif
%if %{build_libitm}
ln -sf ../../../libitm.so.1.* libitm.so
%endif
%if %{build_libatomic}
ln -sf ../../../libatomic.so.1.* libatomic.so
%endif
%if %{build_libasan}
ln -sf ../../../libasan.so.6.* libasan.so
mv ../../../libasan_preinit.o libasan_preinit.o
%endif
%if %{build_libubsan}
ln -sf ../../../libubsan.so.1.* libubsan.so
%endif
else
%if %{build_objc}
ln -sf ../../../../%{_lib}/libobjc.so.4 libobjc.so
%endif
ln -sf ../../../../%{_lib}/libstdc++.so.6.*[0-9] libstdc++.so
ln -sf ../../../../%{_lib}/libgfortran.so.5.* libgfortran.so
ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so
%if %{build_go}
ln -sf ../../../../%{_lib}/libgo.so.%{go_soversion}.* libgo.so
%endif
%if %{build_libquadmath}
ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so
%endif
%if %{build_libitm}
ln -sf ../../../../%{_lib}/libitm.so.1.* libitm.so
%endif
%if %{build_libatomic}
ln -sf ../../../../%{_lib}/libatomic.so.1.* libatomic.so
%endif
%if %{build_libasan}
ln -sf ../../../../%{_lib}/libasan.so.6.* libasan.so
mv ../../../../%{_lib}/libasan_preinit.o libasan_preinit.o
%endif
%if %{build_libubsan}
ln -sf ../../../../%{_lib}/libubsan.so.1.* libubsan.so
%endif
%if %{build_libtsan}
rm -f libtsan.so
echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/libtsan.so.0.* | sed 's,^.*libt,libt,'`' )' > libtsan.so
mv ../../../../%{_lib}/libtsan_preinit.o libtsan_preinit.o
%endif
%if %{build_liblsan}
rm -f liblsan.so
echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/liblsan.so.0.* | sed 's,^.*libl,libl,'`' )' > liblsan.so
mv ../../../../%{_lib}/liblsan_preinit.o liblsan_preinit.o
%endif
fi
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++fs.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a $FULLLPATH/
%if %{build_objc}
mv -f %{buildroot}%{_prefix}/%{_lib}/libobjc.*a .
%endif
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a .
%if %{build_libquadmath}
mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/
%endif
%if %{build_libitm}
mv -f %{buildroot}%{_prefix}/%{_lib}/libitm.*a $FULLLPATH/
%endif
%if %{build_libatomic}
mv -f %{buildroot}%{_prefix}/%{_lib}/libatomic.*a $FULLLPATH/
%endif
%if %{build_libasan}
mv -f %{buildroot}%{_prefix}/%{_lib}/libasan.*a $FULLLPATH/
%endif
%if %{build_libubsan}
mv -f %{buildroot}%{_prefix}/%{_lib}/libubsan.*a $FULLLPATH/
%endif
%if %{build_libtsan}
mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan.*a $FULLPATH/
%endif
%if %{build_liblsan}
mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan.*a $FULLPATH/
%endif
%if %{build_go}
mv -f %{buildroot}%{_prefix}/%{_lib}/libgo.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libgobegin.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libgolibbegin.*a $FULLLPATH/
%endif
%ifarch %{multilib_64_archs}
mv -f %{buildroot}%{_prefix}/lib/libstdc++.*a $FULLLPATH/32/
mv -f %{buildroot}%{_prefix}/lib/libstdc++fs.*a $FULLLPATH/32/
mv -f %{buildroot}%{_prefix}/lib/libsupc++.*a $FULLLPATH/32/
mv -f %{buildroot}%{_prefix}/lib/libgfortran.*a $FULLLPATH/32/
rm -f %{buildroot}%{_prefix}/lib/libssp.a
%if %{build_libquadmath}
mv -f %{buildroot}%{_prefix}/lib/libquadmath.*a $FULLLPATH/32/
%endif
%if %{build_libitm}
mv -f %{buildroot}%{_prefix}/lib/libitm.*a $FULLLPATH/32/
%endif
%if %{build_libatomic}
mv -f %{buildroot}%{_prefix}/lib/libatomic.*a $FULLLPATH/32/
%endif
%if %{build_libasan}
mv -f %{buildroot}%{_prefix}/lib/libasan.*a $FULLLPATH/32/
%endif
%if %{build_libubsan}
mv -f %{buildroot}%{_prefix}/lib/libubsan.*a $FULLLPATH/32/
%endif
%if %{build_go}
mv -f %{buildroot}%{_prefix}/lib/libgo.*a $FULLLPATH/32/
mv -f %{buildroot}%{_prefix}/lib/libgobegin.*a $FULLLPATH/32/
mv -f %{buildroot}%{_prefix}/lib/libgolibbegin.*a $FULLLPATH/32/
%endif
%endif

%if %{build_ada}
%ifarch %{multilib_64_archs}
rm -rf $FULLPATH/32/ada{include,lib}
%endif
if [ "$FULLPATH" != "$FULLLPATH" ]; then
mv -f $FULLPATH/ada{include,lib} $FULLLPATH/
pushd $FULLLPATH/adalib
if [ "%{_lib}" = "lib" ]; then
ln -sf ../../../../../libgnarl-*.so libgnarl.so
ln -sf ../../../../../libgnarl-*.so libgnarl-8.so
ln -sf ../../../../../libgnat-*.so libgnat.so
ln -sf ../../../../../libgnat-*.so libgnat-8.so
else
ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so
ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-8.so
ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so
ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-8.so
fi
popd
else
pushd $FULLPATH/adalib
if [ "%{_lib}" = "lib" ]; then
ln -sf ../../../../libgnarl-*.so libgnarl.so
ln -sf ../../../../libgnarl-*.so libgnarl-8.so
ln -sf ../../../../libgnat-*.so libgnat.so
ln -sf ../../../../libgnat-*.so libgnat-8.so
else
ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so
ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-8.so
ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so
ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-8.so
fi
popd
fi
%endif

%ifarch %{multilib_64_archs}
mkdir -p 32
%if %{build_objc}
ln -sf ../../../../libobjc.so.4 32/libobjc.so
%endif
ln -sf ../`echo ../../../../lib64/libstdc++.so.6.*[0-9] | sed s~/../lib64/~/~` 32/libstdc++.so
ln -sf ../`echo ../../../../lib64/libgfortran.so.5.* | sed s~/../lib64/~/~` 32/libgfortran.so
ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so
%if %{build_go}
rm -f libgo.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.%{go_soversion}.* | sed 's,^.*libg,libg,'`' )' > libgo.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.%{go_soversion}.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so
%endif
%if %{build_libquadmath}
rm -f libquadmath.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > libquadmath.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > 32/libquadmath.so
%endif
%if %{build_libitm}
rm -f libitm.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > libitm.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > 32/libitm.so
%endif
%if %{build_libatomic}
rm -f libatomic.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > libatomic.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > 32/libatomic.so
%endif
%if %{build_libasan}
rm -f libasan.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libasan.so.6.* | sed 's,^.*liba,liba,'`' )' > libasan.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libasan.so.6.* | sed 's,^.*liba,liba,'`' )' > 32/libasan.so
mv ../../../../lib/libasan_preinit.o 32/libasan_preinit.o
%endif
%if %{build_libubsan}
rm -f libubsan.so
echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libubsan.so.1.* | sed 's,^.*libu,libu,'`' )' > libubsan.so
echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libubsan.so.1.* | sed 's,^.*libu,libu,'`' )' > 32/libubsan.so
%endif
%if %{build_objc}
mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/
%endif
mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/
%endif
%ifarch sparc64 ppc64 ppc64p7
ln -sf ../lib32/libgfortran.a 32/libgfortran.a
ln -sf lib64/libgfortran.a libgfortran.a
ln -sf ../lib32/libstdc++.a 32/libstdc++.a
ln -sf lib64/libstdc++.a libstdc++.a
ln -sf ../lib32/libstdc++fs.a 32/libstdc++fs.a
ln -sf lib64/libstdc++fs.a libstdc++fs.a
ln -sf ../lib32/libsupc++.a 32/libsupc++.a
ln -sf lib64/libsupc++.a libsupc++.a
%if %{build_libquadmath}
ln -sf ../lib32/libquadmath.a 32/libquadmath.a
ln -sf lib64/libquadmath.a libquadmath.a
%endif
%if %{build_libitm}
ln -sf ../lib32/libitm.a 32/libitm.a
ln -sf lib64/libitm.a libitm.a
%endif
%if %{build_libatomic}
ln -sf ../lib32/libatomic.a 32/libatomic.a
ln -sf lib64/libatomic.a libatomic.a
%endif
%if %{build_libasan}
ln -sf ../lib32/libasan.a 32/libasan.a
ln -sf lib64/libasan.a libasan.a
%endif
%if %{build_libubsan}
ln -sf ../lib32/libubsan.a 32/libubsan.a
ln -sf lib64/libubsan.a libubsan.a
%endif
%if %{build_go}
ln -sf ../lib32/libgo.a 32/libgo.a
ln -sf lib64/libgo.a libgo.a
ln -sf ../lib32/libgobegin.a 32/libgobegin.a
ln -sf lib64/libgobegin.a libgobegin.a
ln -sf ../lib32/libgolibbegin.a 32/libgolibbegin.a
ln -sf lib64/libgolibbegin.a libgolibbegin.a
%endif
%if %{build_ada}
ln -sf ../lib32/adainclude 32/adainclude
ln -sf lib64/adainclude adainclude
ln -sf ../lib32/adalib 32/adalib
ln -sf lib64/adalib adalib
%endif
%else
%ifarch %{multilib_64_archs}
%if 0
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgfortran.a 32/libgfortran.a
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++.a 32/libstdc++.a
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++fs.a 32/libstdc++fs.a
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libsupc++.a 32/libsupc++.a
%if %{build_libquadmath}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libquadmath.a 32/libquadmath.a
%endif
%if %{build_libitm}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libitm.a 32/libitm.a
%endif
%if %{build_libatomic}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libatomic.a 32/libatomic.a
%endif
%if %{build_libasan}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libasan.a 32/libasan.a
%endif
%if %{build_libubsan}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libubsan.a 32/libubsan.a
%endif
%if %{build_go}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgo.a 32/libgo.a
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgobegin.a 32/libgobegin.a
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgolibbegin.a 32/libgolibbegin.a
%endif
%if %{build_ada}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/adainclude 32/adainclude
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/adalib 32/adalib
%endif
%endif
%endif
%endif

# If we are building a debug package then copy all of the static archives
# into the debug directory to keep them as unstripped copies.
%if 0%{?_enable_debug_packages}
for d in . $FULLLSUBDIR; do
  mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/$d
  for f in `find $d -maxdepth 1 -a \
		\( -name libasan.a -o -name libatomic.a \
		-o -name libcaf_single.a \
		-o -name libgcc.a -o -name libgcc_eh.a \
		-o -name libgcov.a -o -name libgfortran.a \
		-o -name libgo.a -o -name libgobegin.a \
		-o -name libgolibbegin.a -o -name libgomp.a \
		-o -name libitm.a -o -name liblsan.a \
		-o -name libobjc.a \
		-o -name libquadmath.a -o -name libstdc++.a \
		-o -name libstdc++fs.a -o -name libsupc++.a \
		-o -name libtsan.a -o -name libubsan.a \) -a -type f`; do
    cp -a $f $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/$d/
  done
done
%endif

# Strip debug info from Fortran/ObjC/Java static libraries
strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \
		    -o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \
		    -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \
		    -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \
		    -o -name libubsan.a -o -name liblsan.a \
		    -o -name libcc1.a \) \
		 -a -type f`
popd
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.5.*
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.*
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.*
%if %{build_libquadmath}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.*
%endif
%if %{build_libitm}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.*
%endif
%if %{build_libatomic}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1.*
%endif
%if %{build_libasan}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.6.*
%endif
%if %{build_libubsan}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.*
%endif
%if %{build_libtsan}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0.*
%endif
%if %{build_liblsan}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.*
%endif
%if %{build_go}
# Avoid stripping these libraries and binaries.
chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.%{go_soversion}.*
chmod 644 %{buildroot}%{_prefix}/bin/go.gcc
chmod 644 %{buildroot}%{_prefix}/bin/gofmt.gcc
chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo
chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/buildid
chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/test2json
chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/vet
%endif
%if %{build_objc}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.4.*
%endif

%if %{build_ada}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnarl*so*
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnat*so*
%endif

mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h
mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h
for h in `find $FULLPATH/include -name \*.h`; do
  if grep -q 'It has been auto-edited by fixincludes from' $h; then
    rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'`
    diff -up $rh $h || :
    rm -f $h
  fi
done

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 gcc $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 gcc $fl ${1+"$@"}
EOF
chmod 755 %{buildroot}%{_prefix}/bin/c?9

cd ..
%find_lang %{name}
%find_lang cpplib
%find_lang libstdc++

# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a} || :
rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a
rm -f %{buildroot}%{_prefix}/%{_lib}/libssp*
rm -f %{buildroot}%{_prefix}/%{_lib}/libvtv* || :
rm -f %{buildroot}%{_prefix}/bin/gappletviewer || :
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gfortran || :
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gccgo || :
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcj || :
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-ar || :
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-nm || :
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-ranlib || :

%ifarch %{multilib_64_archs}
# Remove libraries for the other arch on multilib arches
# keep %{_prefix}/lib/lib*.{so*,a} for Vine Linux
# rm -f %{buildroot}%{_prefix}/lib/lib*.so*
# rm -f %{buildroot}%{_prefix}/lib/lib*.a
# rm -f %{buildroot}/lib/libgcc_s*.so*
%if %{build_go}
rm -rf %{buildroot}%{_prefix}/lib/go/%{gcc_major}/%{gcc_target_platform}
%ifnarch sparc64 ppc64 ppc64p7
ln -sf %{multilib_32_arch}-%{_vendor}-%{_target_os} %{buildroot}%{_prefix}/lib/go/%{gcc_major}/%{gcc_target_platform}
%endif
%endif
%else
%ifarch sparcv9 ppc
rm -f %{buildroot}%{_prefix}/lib64/lib*.so*
rm -f %{buildroot}%{_prefix}/lib64/lib*.a
rm -f %{buildroot}/lib64/libgcc_s*.so*
%if %{build_go}
rm -rf %{buildroot}%{_prefix}/lib64/go/%{gcc_major}/%{gcc_target_platform}
%endif
%endif
%endif

rm -f %{buildroot}%{mandir}/man3/ffi*

# Help plugins find out nvra.
echo gcc-%{version}-%{release}.%{_arch} > $FULLPATH/rpmver

# for compatibility
mkdir -p %{buildroot}/lib
ln -sf ../usr/bin/cpp %{buildroot}/lib/cpp

# remove unnecessary files.
rm -rf %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include-fixed
rm -rf %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ssp
rm -rf %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools
rm -rf %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools
rm -f %{buildroot}%{_prefix}/lib/*.spec
rm -rf %{buildroot}%{_mandir}/man7

for f in asan atomic gcc_s gfortran go gomp itm lsan objc quadmath stdc++ tsan ubsan; do
  rm -f %{buildroot}%{_prefix}/%{_lib}/lib${f}.so
  rm -f %{buildroot}%{_prefix}/lib/lib${f}.so
done
rm -f %{buildroot}%{_prefix}/lib/libssp*


%check
%if %{with check}
cd obj-%{gcc_target_platform}

# run the tests.
make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ \
RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector-strong}'" || :
echo ====================TESTING=========================
( LC_ALL=C ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}'
echo ====================TESTING END=====================
mkdir testlogs-%{_target_platform}-%{version}-%{release}
for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats.*/tests/'`; do
  ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
done
tar cf - testlogs-%{_target_platform}-%{version}-%{release} | xz -9e \
  | uuencode testlogs-%{_target_platform}.tar.xz || :
rm -rf testlogs-%{_target_platform}-%{version}-%{release}

%endif
# check


%clean
rm -rf $RPM_BUILD_ROOT


%posttrans
if [ ! -x %{_bindir}/cc ]; then
  ln -sf gcc %{_bindir}/cc
fi

%posttrans c++
if [ ! -x %{_bindir}/c++ ]; then
  ln -sf g++ %{_bindir}/c++
fi

%posttrans gfortran
if [ ! -x %{_bindir}/f95 ]; then
  ln -sf gfortran %{_bindir}/f95
fi

# Because glibc Prereq's libgcc and /sbin/ldconfig
# comes from glibc, it might not exist yet when
# libgcc is installed
%post -n libgcc -p <lua>
if posix.access ("/sbin/ldconfig", "x") then
  local pid = posix.fork ()
  if pid == 0 then
    posix.exec ("/sbin/ldconfig")
  elseif pid ~= -1 then
    posix.wait (pid)
  end
end

%postun -n libgcc -p <lua>
if posix.access ("/sbin/ldconfig", "x") then
  local pid = posix.fork ()
  if pid == 0 then
    posix.exec ("/sbin/ldconfig")
  elseif pid ~= -1 then
    posix.wait (pid)
  end
end

%post go
%{_sbindir}/update-alternatives --install \
  %{_prefix}/bin/go go %{_prefix}/bin/go.gcc 92 \
  --slave %{_prefix}/bin/gofmt gofmt %{_prefix}/bin/gofmt.gcc

%preun go
if [ $1 = 0 ]; then
  %{_sbindir}/update-alternatives --remove go %{_prefix}/bin/go.gcc
fi


%files -f %{name}.lang
%defattr(-,root,root,-)
%{_prefix}/bin/cc
%{_prefix}/bin/c89
%{_prefix}/bin/c99
%{_prefix}/bin/gcc
%{_prefix}/bin/gcov
%{_prefix}/bin/gcov-tool
%{_prefix}/bin/gcov-dump
%{_prefix}/bin/gcc-ar
%{_prefix}/bin/gcc-nm
%{_prefix}/bin/gcc-ranlib
%{_prefix}/bin/lto-dump
%ifarch ppc
%{_prefix}/bin/%{_target_platform}-gcc
%endif
%ifarch sparc64 sparcv9
%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc
%endif
%ifarch ppc64 ppc64p7
%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc
%endif
%{_prefix}/bin/%{gcc_target_platform}-gcc
%{_prefix}/bin/%{gcc_target_platform}-gcc-%{gcc_major}
%{_mandir}/man1/gcc.1*
%{_mandir}/man1/gcov.1*
%{_mandir}/man1/gcov-tool.1*
%{_mandir}/man1/gcov-dump.1*
%{_mandir}/man1/lto-dump.1*
%{_infodir}/gcc*
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto1
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto-wrapper
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so*
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/rpmver
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stddef.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdarg.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdfix.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/varargs.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/float.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/limits.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdbool.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/iso646.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/syslimits.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/unwind.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/omp.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/openacc.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/acc_prof.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint-gcc.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdalign.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdnoreturn.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdatomic.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/gcov.h
%ifarch %{ix86} x86_64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xmmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/emmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pmmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tmmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ammintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/smmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/nmmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/wmmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/immintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fma4intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xopintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lwpintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/popcntintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmiintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tbmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia32intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx2intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmi2intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/f16cintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fmaintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lzcntintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rtmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xtestintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/adxintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/prfchwintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rdseedintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fxsrintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsaveintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsaveoptintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512cdintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512erintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512pfintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/shaintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm_malloc.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm3dnow.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cpuid.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cross-stdarg.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bwintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512dqintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512ifmaintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512ifmavlintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmiintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmivlintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vlbwintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vldqintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vlintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clflushoptintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clwbintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mwaitxintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsavecintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsavesintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clzerointrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pkuintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx5124fmapsintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx5124vnniwintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vpopcntdqintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sgxintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/gfniintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cetintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cet.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmi2intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmi2vlintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vnniintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vnnivlintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vaesintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vpclmulqdqintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vpopcntdqvlintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bitalgintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pconfigintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/wbnoinvdintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/movdirintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/waitpkgintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cldemoteintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bf16vlintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bf16intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/enqcmdintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vp2intersectintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vp2intersectvlintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/serializeintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tsxldtrkintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxtileintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxint8intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxbf16intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86gprintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/uintrintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/hresetintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/keylockerintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxvnniintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mwaitintrin.h
%endif
%ifarch ia64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia64intrin.h
%endif
%ifarch ppc ppc64 ppc64le ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppc-asm.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/altivec.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/paired.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppu_intrinsics.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/si2vmx.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/spu2vmx.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vec_types.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmi2intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmiintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xmmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm_malloc.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/emmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amo.h
%endif
%ifarch %{arm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/unwind-arm-common.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_acle.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_cmse.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_fp16.h
%endif
%ifarch aarch64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_acle.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_fp16.h
%endif
%ifarch sparc sparcv9 sparc64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/visintrin.h
%endif
%ifarch s390 s390x
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/s390intrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vecintrin.h
%endif
%if %{build_libasan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sanitizer
%endif
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/collect2
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/crt*.o
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcov.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc_eh.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc_s.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.spec
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.so
%if %{build_libitm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.spec
%endif
%if %{build_libasan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsanitizer.spec
%endif
%if %{build_isl}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libisl.so.*
%endif
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/crt*.o
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcov.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc_eh.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc_s.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgomp.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgomp.so
%if %{build_libquadmath}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.so
%endif
%if %{build_libitm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.so
%endif
%if %{build_libatomic}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.so
%endif
%if %{build_libasan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan_preinit.o
%endif
%if %{build_libubsan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.so
%endif
%endif
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/crt*.o
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcov.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_eh.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_s.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.so
%if %{build_libquadmath}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.so
%endif
%if %{build_libitm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.so
%endif
%if %{build_libatomic}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.so
%endif
%if %{build_libasan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan_preinit.o
%endif
%if %{build_libubsan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.so
%endif
%endif
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
%if %{build_libquadmath}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
%endif
%if %{build_libitm}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so
%endif
%if %{build_libatomic}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so
%endif
%if %{build_libasan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o
%endif
%if %{build_libubsan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so
%endif
%else
%if %{build_libatomic}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so
%endif
%if %{build_libasan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o
%endif
%if %{build_libubsan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so
%endif
%endif
%if %{build_libtsan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan_preinit.o
%endif
%if %{build_liblsan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan_preinit.o
%endif
%{_prefix}/libexec/getconf/default
%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* 
%{!?_licensedir:%global license %%doc}
%license gcc/COPYING* COPYING.RUNTIME

%files cpp -f cpplib.lang
%defattr(-,root,root,-)
/lib/cpp
%{_prefix}/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
%{_infodir}/cpp*
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1


%files -n libgcc
%defattr(-,root,root,-)
/%{_lib}/libgcc_s-%{gcc_major}.so.1
/%{_lib}/libgcc_s.so.1
%{!?_licensedir:%global license %%doc}
%license gcc/COPYING* COPYING.RUNTIME

%files c++
%defattr(-,root,root,-)
%{_prefix}/bin/%{gcc_target_platform}-*++
%{_prefix}/bin/g++
%{_prefix}/bin/c++
%{_mandir}/man1/g++.1*
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1plus
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/g++-mapper-server
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++fs.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libsupc++.a
%endif
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++fs.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libsupc++.a
%endif
%ifarch sparcv9 ppc %{multilib_64_archs}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so
%endif
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a
%endif
%doc rpm.doc/changelogs/gcc/cp/ChangeLog*


%files -n libstdc++ -f libstdc++.lang
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libstdc++.so.6*
%dir %{_datadir}/gdb
%dir %{_datadir}/gdb/auto-load
%dir %{_datadir}/gdb/auto-load/%{_prefix}
%dir %{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/__pycache__
%dir %{_prefix}/share/gcc-%{gcc_major}
%dir %{_prefix}/share/gcc-%{gcc_major}/python
%{_prefix}/share/gcc-%{gcc_major}/python/libstdcxx

%files -n libstdc++-devel
%defattr(-,root,root,-)
%dir %{_prefix}/include/c++
%{_prefix}/include/c++/%{gcc_major}
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%ifnarch sparcv9 ppc %{multilib_64_archs}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so
%endif
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++fs.a
%endif
%ifarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++fs.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a
%endif
%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README*

%files -n libstdc++-static
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libsupc++.a
%endif
%ifarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libsupc++.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a
%endif

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

%files objc
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/objc
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1obj
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libobjc.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libobjc.so
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libobjc.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libobjc.so
%endif
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libobjc.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libobjc.so
%endif
%doc rpm.doc/objc/*
%doc libobjc/THREADS* rpm.doc/changelogs/libobjc/ChangeLog*

%files objc++
%defattr(-,root,root,-)
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1objplus

%files -n libobjc
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libobjc.so.4*

%files gfortran
%defattr(-,root,root,-)
%{_prefix}/bin/gfortran
%{_prefix}/bin/f95
%{_mandir}/man1/gfortran.1*
%{_infodir}/gfortran*
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ISO_Fortran_binding.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.f90
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.mod
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib_kinds.mod
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc.f90
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc.mod
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc_kinds.mod
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc_lib.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_arithmetic.mod
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_exceptions.mod
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_features.mod
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/f951
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.spec
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcaf_single.a
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a
%endif
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.so
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libcaf_single.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgfortran.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgfortran.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/finclude
%endif
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libcaf_single.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/finclude
%endif
%dir %{_fmoddir}
%doc rpm.doc/gfortran/*

%files -n libgfortran
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgfortran.so.5*

%files -n libgfortran-static
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgfortran.a
%endif
%ifarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgfortran.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a
%endif

%if %{build_ada}
%files gnat
%defattr(-,root,root,-)
%{_prefix}/bin/gnat
%{_prefix}/bin/gnat[^i]*
%{_infodir}/gnat*
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/adainclude
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/adalib
%endif
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/adainclude
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/adalib
%endif
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adainclude
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib
%endif
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/gnat1
%doc rpm.doc/changelogs/gcc/ada/ChangeLog*

%files -n libgnat
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgnat-*.so
%{_prefix}/%{_lib}/libgnarl-*.so

%files -n libgnat-devel
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adainclude
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adalib
%exclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adalib/libgnat.a
%exclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adalib/libgnarl.a
%endif
%ifarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adainclude
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adalib
%exclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adalib/libgnat.a
%exclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adalib/libgnarl.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adainclude
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib
%exclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib/libgnat.a
%exclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib/libgnarl.a
%endif

%files -n libgnat-static
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adalib
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adalib/libgnat.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adalib/libgnarl.a
%endif
%ifarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adalib
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adalib/libgnat.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adalib/libgnarl.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib/libgnat.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib/libgnarl.a
%endif
%endif

%files -n libgomp
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libgomp.so.1*
%{_infodir}/libgomp.info*
%doc rpm.doc/changelogs/libgomp/ChangeLog*

%if %{build_libquadmath}
%files -n libquadmath
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libquadmath.so.0*
%{_infodir}/libquadmath.info*
%{!?_licensedir:%global license %%doc}
%license rpm.doc/libquadmath/COPYING*

%files -n libquadmath-devel
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/quadmath.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/quadmath_weak.h
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
%endif
%doc rpm.doc/libquadmath/ChangeLog*

%files -n libquadmath-static
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libquadmath.a
%endif
%ifarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libquadmath.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
%endif
%endif

%if %{build_libitm}
%files -n libitm
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libitm.so.1*
%{_infodir}/libitm.info*

%files -n libitm-devel
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
#%%{_prefix}/lib/gcc/%%{gcc_target_platform}/%%{gcc_major}/include/itm.h
#%%{_prefix}/lib/gcc/%%{gcc_target_platform}/%%{gcc_major}/include/itm_weak.h
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so
%endif
%doc rpm.doc/libitm/ChangeLog*

%files -n libitm-static
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libitm.a
%endif
%ifarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libitm.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a
%endif
%endif

%if %{build_libatomic}
%files -n libatomic
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libatomic.so.1*

%files -n libatomic-static
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libatomic.a
%endif
%ifarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libatomic.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a
%endif
%doc rpm.doc/changelogs/libatomic/ChangeLog*
%endif

%if %{build_libasan}
%files -n libasan
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libasan.so.6*

%files -n libasan-static
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libasan.a
%endif
%ifarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libasan.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a
%endif
%doc rpm.doc/changelogs/libsanitizer/ChangeLog*
%{!?_licensedir:%global license %%doc}
%license libsanitizer/LICENSE.TXT
%endif

%if %{build_libtsan}
%files -n libtsan
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libtsan.so.0*

%files -n libtsan-static
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.a
%doc rpm.doc/changelogs/libsanitizer/ChangeLog*
%{!?_licensedir:%global license %%doc}
%license libsanitizer/LICENSE.TXT
%endif

%if %{build_libubsan}
%files -n libubsan
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libubsan.so.1*

%files -n libubsan-static
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libubsan.a
%endif
%ifarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libubsan.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a
%endif
%doc rpm.doc/changelogs/libsanitizer/ChangeLog*
%{!?_licensedir:%global license %%doc}
%license libsanitizer/LICENSE.TXT
%endif

%if %{build_liblsan}
%files -n liblsan
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/liblsan.so.0*

%files -n liblsan-static
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.a
%doc rpm.doc/changelogs/libsanitizer/ChangeLog*
%{!?_licensedir:%global license %%doc}
%license libsanitizer/LICENSE.TXT
%endif

%if %{build_go}
%files go
%defattr(-,root,root,-)
%ghost %{_prefix}/bin/go
%attr(755,root,root) %{_prefix}/bin/go.gcc
%{_prefix}/bin/gccgo
%ghost %{_prefix}/bin/gofmt
%attr(755,root,root) %{_prefix}/bin/gofmt.gcc
%{_mandir}/man1/gccgo.1*
%{_mandir}/man1/go.1*
%{_mandir}/man1/gofmt.1*
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/go1
%attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo
%attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/buildid
%attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/test2json
%attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/vet
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgo.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgo.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgobegin.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgolibbegin.a
%endif
%ifarch %{multilib_64_archs}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgo.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgo.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgobegin.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgolibbegin.a
%endif
%ifarch sparcv9 ppc %{multilib_64_archs}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgo.so
%endif
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgo.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgobegin.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgolibbegin.a
%endif
%doc rpm.doc/go/*

%files -n libgo
%defattr(-,root,root,-)
%attr(755,root,root) %{_prefix}/%{_lib}/libgo.so.%{go_soversion}.*.*
%{_prefix}/%{_lib}/libgo.so.%{go_soversion}

%files -n libgo-devel
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/%{_lib}/go
%dir %{_prefix}/%{_lib}/go/%{gcc_major}
%{_prefix}/%{_lib}/go/%{gcc_major}/%{gcc_target_platform}
%ifarch %{multilib_64_archs}
%ifnarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/go
%dir %{_prefix}/lib/go/%{gcc_major}
%{_prefix}/lib/go/%{gcc_major}/%{gcc_target_platform}
%endif
%endif
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgobegin.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgolibbegin.a
%endif
%ifarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgobegin.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgolibbegin.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgobegin.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgolibbegin.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgo.so
%endif

%files -n libgo-static
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%ifarch sparcv9 ppc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgo.a
%endif
%ifarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgo.a
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgo.a
%endif
%endif

%files -n libgccjit
%{_prefix}/%{_lib}/libgccjit.so.*
%doc rpm.doc/changelogs/gcc/jit/ChangeLog*

%files -n libgccjit-devel
%{_prefix}/%{_lib}/libgccjit.so
%{_prefix}/include/libgccjit*.h
%{_infodir}/libgccjit.info*
%doc rpm.doc/libgccjit-devel/*
%doc gcc/jit/docs/examples

%files plugin-devel
%defattr(-,root,root,-)
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/gtype.state
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/include
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/plugin

%files gdb-plugin
%defattr(-,root,root,-)
%{_prefix}/%{_lib}/libcc1.so*
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcc1plugin.so*
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcp1plugin.so*
%doc rpm.doc/changelogs/libcc1/ChangeLog*

%ifarch %{multilib_64_archs}

%files -n libgcc-32bit
/lib/libgcc_s-%{gcc_major}.so.1
/lib/libgcc_s.so.1

%files -n libstdc++-32bit
%{_prefix}/lib/libstdc++.so.6*

%files -n libobjc-32bit
%{_prefix}/lib/libobjc.so.4*

%files -n libgfortran-32bit
%{_prefix}/lib/libgfortran.so.5*

%files -n libgomp-32bit
%{_prefix}/lib/libgomp.so.1*

%if %{build_libquadmath}
%files -n libquadmath-32bit
%{_prefix}/lib/libquadmath.so.0*
%endif

%if %{build_libitm}
%files -n libitm-32bit
%{_prefix}/lib/libitm.so.1*
%endif

%if %{build_libatomic}
%files -n libatomic-32bit
%{_prefix}/lib/libatomic.so.1*
%endif

%if %{build_libasan}
%files -n libasan-32bit
%{_prefix}/lib/libasan.so.6*
%endif

%if %{build_libubsan}
%files -n libubsan-32bit
%{_prefix}/lib/libubsan.so.1*
%endif

%if %{build_go}
%files -n libgo-32bit
%{_prefix}/lib/libgo.so.%{go_soversion}*
%endif

%endif


%changelog
* Sat Jan 29 2022 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 11.2.1-3
- updated Patch10000.

* Mon Nov 01 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 11.2.1-2
- updated Patch10000.
- separated 32bit shared libraries on x86_64.
- dropped install-info scriptlets.

* Wed Aug 04 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 11.2.1-1
- updated tarball to 11.2.0.
- re-imported patches from rawhide.
- imported Patch10000 from upstream (11.2.1).

* Sat Apr 10 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 10.3.1-1
- imported Patch10000 from upstream (10.3.1).

* Fri Apr 09 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 10.3.1-0
- updated tarball to 10.3.0.
- imported Patch10000 from upstream (10.3.1).

* Tue Feb 09 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 10.2.1-1
- updated tarball to 10.2.0.
- imported Patch10000 from upstream (10.2.1).
- refreshed all patches.

* Fri Mar 20 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 9.3.1-1
- updated tarball to 9.3.0.
- dropped Patch 0 and 11-12.
- imported Patch10000 from upstream (9.3.1).
- renumbered and updated all patches.
- imported Patch11 from rawhide.
- dropped libmpx.

* Sun Sep 22 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 8.3.1-1
- updated to 8.3.0
- imported Patch0 from upstream (8.3.1).

* Sun Jan 20 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 8.2.0-1
- updated to 8.2.0
- dropped fastjar.
- dropped all patches.
- imported Patch0 from upstream.
- imported Patch1-13 from rawhide.

* Sun Jun 26 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 5.4.0-1
- updated to 5.4.0
- merged with FC 5.3.1-6.fc23
- add BuildRequires: isl-devel
- create libmpx,libmpx-static and gdb-plugin subpackages

* Tue May 24 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 4.9.3-2
- added BR:net-tools for tests.
- rebuilt with new binutils.

* Sat May 07 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 4.9.3-1
- updated to 4.9.3
- update Patch4 (gcc49-i386-libgomp.patch)
- remove Patch13,14
- remove libmudflap{,-devel,-static} subpackages
- add {libubsan,libtsan,liblsan,libcilkrts,}-{,-static} subpackages

* Sun Dec 13 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 4.8.2-2
- rebuild with VineSeed environment
- remove gcc-java subpackage (build_java is set to 0) 

* Mon Nov 04 2013 Yoji TOYODA <bsyamato@sea.plala.or.jp> 4.8.2-1
- updated to 4.8.2

* Mon Sep 30 2013 Yoji TOYODA <bsyamato@sea.plala.or.jp> 4.8.1-2
- change source (original)

* Sun Sep 29 2013 Yoji TOYODA <bsyamato@sea.plala.or.jp> 4.8.1-1
- updated to 4.8.1
- merged with FC 4.8.1-10.fc21

* Mon Jan 09 2012 NAKAMURA Kenta <kenta@vinelinux.org> 4.6.2-3
- updated %%install and %%files sections to pack missing 32bit libraries on multilib_64_archs

* Sat Jan 07 2012 Daisuke SUZUKI <daisuke@linux.or.jp> 4.6.2-2
- add %%posttrans for gcc,gcc-cpp,gcc-c++,gcc-gfortran
  to fix missing symlinks
- add Obsoletes: fastjar to libgcj

* Fri Dec 02 2011 NAKAMURA Kenta <kenta@vinelinux.org> 4.6.2-1
- updated to 4.6.2
- merged with FC 4.6.2-1.fc17.1
- removed alternatives

* Wed Nov 02 2011 NAKAMURA Kenta <kenta@vinelinux.org> - 4.4.5-8
- rebuilt with mpfr-3.1.0

* Fri Sep 09 2011 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 4.4.5-7
- updated to more recent svn source from Fedora13 updates 4.4.5-2.fc13

* Mon May 02 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 4.4.5-6
- fix %%postun
  - remove alternatives only if broken

* Mon May 02 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 4.4.5-5
- update %%postun to fix alternatives bug
- add %%triggerpostun to fix broken alternatives

* Sat Apr 02 2011 NAKAMURA Kenta <kenta@vinelinux.org> - 4.4.5-3
- dropped gcc44-no-add-needed.patch in Vine Linux 6

* Wed Mar 23 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 4.4.5-2
- add BR: glibc-static

* Sun Mar 20 2011 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 4.4.5-1
- new upstream release
- used %%posttrans instead of %%triggerpostun 

* Sun Sep 19 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> - 4.4.3-9
- used alternatives %%{_prefix}/%%{_lib}/security/classpath.security

* Fri Aug 13 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> - 4.4.3-8
- rebuilt with gcc-java-4.4.3-7

* Sun Aug  1 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> - 4.4.3-7
- used %%{_lib} macros for classpath.security and logging.properties (libgcj)
- this release needs to build --with java_bootstrap option

* Sun Jul 25 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> - 4.4.3-6
- bootstrapped java package
- this release needs to build --with java_bootstrap option

* Wed Apr  7 2010 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 4.4.3-5
- updated to 20100401 (svn r157910)

* Tue Apr  6 2010 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 4.4.3-4
- fix configure flags on ppc again (remove --with-cpu=750)

* Mon Feb  8 2010 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 4.4.3-3
- fix configure flags on ppc

* Mon Jan 25 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 4.4.3-2
- rebuilt with new toolchain
- fixed %%install and %%file libgomp section (Thanks to kenta-san)
- added Provides: libstdc++34 to libstdc++

* Sun Jan 24 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 4.4.3-1
- new upstream release

* Fri Dec 26 2008 NAKAMURA Kenta <kenta@vinelinux.org> 4.1.2-21
- added BuildRequires: compat32-glibc-devel for x86_64 arch

* Sat Dec 20 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 4.1.2-20
- remove Requires: %{_prefox}/%{_lib}/libz.so from libgcj-devel

* Wed Sep 24 2008 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 4.1.2-19
- rebuilt with binutils-2.18.50.0.6 and glibc-2.8

* Tue Jul 08 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 4.1.2-18
- updated to 4.1.3 prerelease 20080708 (gcc-4_1-branch r137614)
- new versioning policy
- require gecko-devel instead of firefox-devel

* Sun Feb 10 2008 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl17
- updated to 4.1.3 prerelease 20080204 (gcc-4_1-branch r132101)

* Thu Dec 27 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl16
- updated to 4.1.3 prerelease 20071221 (gcc-4_1-branch r131115)

* Tue Dec 18 2007 NAKAMURA Kenta <kenta@vinelinux.org> 4.1.2-0vl15
- updated %%files section to include 32bit libraries for x86_64

* Sat Dec 15 2007 NAKAMURA Kenta <kenta@vinelinux.org> 4.1.2-0vl14
- added BuildRequires: mpfr-devel

* Sat Oct 20 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl13
- updated to 4.1.3 prerelease 20070923 (gcc-4_1-branch r128704)

* Wed Jul 04 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl12
- updated to 4.1.3 prerelease 20070703 (gcc-4_1-branch r126255)
  - PR target/28307, boehm-gc/21940, boehm-gc/21942, target/32389,
       c++/31809, c++/31806, inline-asm/32109, middle-end/32285,
       rtl-optimization/28011, tree-optimization/32353, target/32163

* Thu May 31 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl11
- Sorry, put a wrong srpm, it was just my mistake. Put correct version.

* Mon May 28 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl10
- updated to 4.1.3 prerelease 20070524 (gcc-4_1-branch r125017)
  - PR libfortran/31964, target/31701, target/31480, target/31022
- disguise version_string[], such as
  "4.1.2 (4.1.3 prelease 20070524) (Vine Linux 4.1.2-0vl10)"

* Sun May 20 2007 NAKAMURA Kenta <kenta@vinelinux.org> 4.1.2-0vl9
- enable Patch5: gcc41-java-nomulti.patch
- remove obsoleted work around which building libgcj_bc.so 

* Sat May 19 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl8
- updated to 4.1.3 prerelease 20070517 (gcc-4_1-branch r124799)

* Sun May 13 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl7
- add Patch101
  (long double 128bit by default on alpha/ppc/sparc/s390 targets)
    http://sources.redhat.com/bugzilla/show_bug.cgi?id=2749
  which was originally derived from the following patches:
    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25864#c13
    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25864#c14
- add --disable-multilib configure option for no-biarch builds on ppc
- fix spec typo of Daisuk SUZUKI's -mcpu removal on 4.1.2-0vl5

* Sat May 12 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl6
- enable Patch19 now

* Wed May 09 2007 Daisuke SUZUKI <daisuke@linux.or.jp> 4.1.2-0vl5
- add Patch100 to add -mtune=generic option (from MDV)
- remove -mcpu option from OPT_FLAGS
- use bootstrap-lean instead of profiledbootstrap
- enable Patch10 to add MNI support (SSE3)

* Mon May 07 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl4
- yet another minor fix (don't obsolete gcc3-* packages)

* Mon May 07 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl3
- one more minor fix (libgfortran don't obsolete libf2c)

* Mon May 07 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl2
- Oops, fixed one small typo

* Sun May 06 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl1
- rebuild

* Wed May 02 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 4.1.2-0vl0
- initial build for VineSeed
- based on FC 4.1.1-30 and VineSeed 3.3.6-0vl8
- updated to 4.1.2 upstream release with most FC patches omitted (TODOs)

* Wed Oct 11 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-30
- update from gcc-4_1-branch (-r117464:117629)
  - PRs c++/28302, c++/28349, c++/28450, c++/29002, libstdc++/29095,
	libstdc++/29354, libstdc++/29368, target/28490
- fix gnu.xml.transform.TransformerImpl (Tom Tromey, #208854,
  PR classpath/29362)

* Fri Oct  6 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-29
- update from gcc-4_1-branch (-r117266:117464)
  - PRs bootstrap/26764, bootstrap/27334, c++/29080, c++/29138, c++/29226,
	c/27489, c/27490, debug/28980, fortran/18791, libfortran/18791,
	middle-end/28862, objc/29195, other/25035, tree-opt/28952
  - fix s390{,x} address legitimization with TLS symbols (Angel Nunez
    Mencias)
- fix -fno-automatic with Fortran auto arrays with non-constant size
  (#203928, PR fortran/28415)
- fix char and short __sync_fetch_and_XXX (PR target/28924)
- fix emitting of vector constants with incomplete initializers (PR c/29091)
- fix ICE with multiple exit loop and -ftree-loop-linear
  (#208935, PR tree-optimization/29290)

* Sat Sep 30 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-28
- fix i386/x86_64 legitimize_pic_address with TLS symbols (PR target/29198)
- fix gimplification of post-increment with side-effects on the inner
  expression (PR c/29154)

* Thu Sep 28 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-27
- update from gcc-4_1-branch (-r117225:117266)
  - PR target/29230
- restrict single entry mem{{,p}cpy,move,set} optimization to vars
  and components thereof (PR middle-end/29272)
- fix java.util.Locale (Tom Tromey, #201712)

* Tue Sep 26 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-26
- update from gcc-4_1-branch (-r117162:117225)
  - PRs classpath/28661, libgcj/29178, libstdc++/29179, libstdc++/29224
  - fix unwind info generation, broken in gcc-4.1.1-21
    (Roger Sayle, PR debug/29132)

* Sat Sep 23 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-25
- update from gcc-4_1-branch (-r117069:117162)
  - PRs c++/28996, c++/29087, middle-end/26983
- fix -fprofile-use with anonymous namespaces (Jan Hubicka, PRs profile/20815,
  profile/26399)
- fix #pragma omp parallel and #pragma omp section that call nested
  functions (PRs middle-end/25261, middle-end/28790)

* Wed Sep 20 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-24
- update from gcc-4_1-branch (-r117000:117069)
  - PRs fortran/21918, fortran/28526, fortran/28817, fortran/29060,
	fortran/29101, java/28754, java/28892, java/29013,
	middle-end/27226, middle-end/4520, tree-optimization/28900
- fix java.utils.logging.Logger (Mark Wielaard, #207111)
- fix gnu.javax.net.ssl.provider.SSLSocket (Tom Tromey, #206904)
- add support for Fortran OpenMP conditional inclusion (PR fortran/29097)
- add some -D_FORTIFY_SOURCE compile time strncat buffer overflow checks

* Sun Sep 17 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-23
- update from gcc-4_1-branch (-r116958:117000)
  - PRs fortran/29051, target/28946
- fix single entry mem{{,p}cpy,move,set} optimization (Andrew Pinski,
  PR tree-opt/29059)

* Fri Sep 15 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-22
- update from gcc-4_1-branch (-r116778:116958)
  - PRs ada/21952, ada/29025, c++/26957, fortran/28890, fortran/28923,
	fortran/28959, libfortran/28890, libfortran/28923, libfortran/28947,
	middle-end/28493, other/23541, other/26507, rtl-optimization/28243,
	rtl-optimization/28634, rtl-optimization/28636, rtl-optimization/28726,
	target/13685, target/26504, target/27537, target/27681, target/28621,
	target/29006, testsuite/28950, testsuite/29007
- fix #pragma omp atomic (PR middle-end/28046)
- speed up dominance frontiers calculation (Jan Hubicka)
- add README.libgcjwebplugin.so to libgcj %%doc (Tom Fitzsimmons)
- fix gcc-gfortran %%doc (#206333)
- fix gcc-debuginfo (#205500)

* Fri Sep  8 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-21
- update from gcc-4_1-branch (-r116498:116778)
  - PRs c++/19809, c++/26102, c++/26195, c++/26571, c++/26670, c++/26671,
	c++/26696, c++/26917, c++/28860, c++/28878, c++/28886, fortran/20067,
	fortran/24866, fortran/25077, fortran/25102, fortran/28005,
	fortran/28873, fortran/28885, fortran/28908, libfortran/28005,
	middle-end/27724, middle-end/28814, other/22313,
	rtl-optimization/27616, rtl-optimization/28386, target/24367
- add primitive class object symbols to libgcj_bc.so (Tom Tromey,
  PR libgcj/28698)
- optimize single entry memcpy/mempcpy/memmove/memset already at the tree
  level (PR middle-end/27567)
- add dependencies to *-devel subpackages, so that e.g. ppc64
  libstdc++-devel requires 64-bit libstdc++, similarly for libgcj-devel
  and libgcj/zlib-devel

* Fri Aug 25 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-20
- update from gcc-4_1-branch (-r116389:116498)
  - PRs c++/28056, c++/28058, c++/28595, c++/28853, c/27558,
	c/27893, c/28299, c/28418, driver/27622, libfortran/28452,
	libfortran/28542, target/27075
- optimize A / (B << N) where A and B is positive and B is a power of two
  (Alan Modra, #195924, PR rtl-optimization/26026)
- fix attribute handling in C++ (Jason Merrill, #204277, #204035,
  PRs c++/28659, c++/28863)

* Fri Aug 25 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-19
- update from gcc-4_1-branch (-r116223:116389)
  - PRs c++/23372, c++/27714, c++/28346, c++/28385, fortran/18111,
	fortran/20886, fortran/25217, fortran/25828, fortran/28425,
	fortran/28496, fortran/28601, fortran/28630, fortran/28660,
	fortran/28735, fortran/28762, fortran/28771, fortran/28788,
	libstdc++/28765, target/27565
- another big Java merge from the trunk (Tom Fitzsimmons)
- fix ICE in add_reg_br_prob_note (PR middle-end/28683)

* Fri Aug 18 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-18
- update from gcc-4_1-branch (-r116176:116223)
  - PRs c++/28593, c++/28606, c++/28710, c/27697, middle-end/20256,
	middle-end/25211, middle-end/26435
- don't waste .rodata space when copying from const array with large
  entries (PR middle-end/28755)
- fix --combine with anonymous structures in unions (Alexandre Oliva,
  PR c/27898)
- rebuilt with latest binutils to pick up 64K -z commonpagesize on ppc*
  (#203001)

* Wed Aug 16 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-17
- update from gcc-4_1-branch (-r116082:116176)
  - PRs c++/27894, c++/28677, c/28649, middle-end/28075,
	rtl-optimization/23454
- merge gomp fixes from the trunk (-r116152:116154)
  - PRs middle-end/28713, middle-end/28724
- add -march=geode and -mtune=geode support (Vlad Makarov)
- use %gs rather than %fs register on x86_64 with
  -mcmodel=kernel -fstack-protector (Arjan van de Ven, #202842)
- don't create jar manifest in libgcj-tools-4.*.jar (#200887)
- externally_visible attribute fixes (Jan Hubicka, PRs c/25795, c++/27369)
- --combine fixes for aggregates with attributes (PRs c/28706, c/28712)
- further externally_visible attr fixes (PR c/28744)
- fix invalid token pasting error message (PR preprocessor/28709)
- obey OpenMP 2.5 chapter 4 env var requirements (whitespace rules
  and case insensitivity in the env vars; PR libgomp/28725)
- fix OPT_FLAGS on sparc

* Sat Aug 12 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-16
- fix multilib conflict in libgcj-tools-4.1.1.jar (#200887)

* Fri Aug 11 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-15
- update from gcc-4_1-branch (-r115877:116082)
  - PRs c++/27508, c++/28148, c++/28250, c++/28256, c++/28257, c++/28259,
	c++/28267, c++/28274, c++/28347, c++/28432, c++/28557, c++/28594,
	c++/28637, c++/28638, c++/28639, c++/28640, c++/28641, c/27721,
	c/28136, fortran/27981, fortran/28548, fortran/28590,
	middle-end/28651, rtl-optimization/27291, rtl-optimization/28221,
	target/27566, target/27827
- fix Fortran ICE with nested function (Paul Thomas, #200618,
  PR fortran/28600)

* Wed Aug  2 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-14
- update from gcc-4_1-branch (-r115644:115877)
  - PRs c++/27572, c++/27668, c++/27962, c++/28025, c++/28258, c++/28523,
	debug/25468, fortran/20892, fortran/27874, fortran/28129,
	fortran/28439, libgfortran/28335, libgfortran/28339,
	middle-end/28402, middle-end/28403, middle-end/28473,
	target/27287, target/28247, tree-optimization/26719,
	tree-optimization/27639, tree-optimization/27795,
	tree-optimization/28029, tree-optimization/28238
- BuildRequire firefox-devel instead of mozilla-devel

* Tue Jul 25 2006 Alexandre Oliva <aoliva@redhat.com> 4.1.1-13
- backport fix by Andrew Haley for build problems related with the
  bootstrap ClassLoader

* Mon Jul 24 2006 Alexandre Oliva <aoliva@redhat.com> 4.1.1-12
- backport fix by Mark Wielaard for NullPointerException in GCJ web plugin

* Fri Jul 21 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-11
- update from gcc-4_1-branch (-r115565:115644)
  - PRs target/27363, c++/27495, c++/28048, c++/28235, c++/28337, c++/28338,
	c++/28363, middle-end/28283
- turn back autoprov/autoreq on gcc-java, instead disable it on
  libgcj-devel

* Thu Jul 20 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-10
- Java backport of from GCC trunk (Tom Tromey, Bryce McKinlay)
  - include libgcjwebplugin.so, gappletviewer, gjarsigner, gkeytool
- C++ visibility changes (Jason Merrill, PRs c++/28407, c++/28409)

* Tue Jul 18 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-9
- update from gcc-4_1-branch (-r115330:115565)
  - PRs c++/28016, c++/28051, c++/28249, c++/28291, c++/28294, c++/28304,
	c++/28343, c/26993, c/28286, fortran/20844, fortran/20893,
	fortran/20903, fortran/25097, fortran/27980, fortran/28201,
	fortran/28353, fortran/28384, libstdc++/27878,
	tree-optimization/19505, tree-optimization/28162,
	tree-optimization/28187
- fix directory traversal issue in fastjar (Richard Guenther, CVE-2006-3619,
  PR fastjar/28359)
- fix ICE on complex assignment in nested fn (Richard Henderson,
  PR middle-end/27889)
- fix __builtin_constant_p in initializers (Mark Shinwell, #198849)
- fix tree verification - IDENTIFIER_NODE can be shared (Diego Novillo)
- fix duplicate_eh_regions
- handle > 99 tree dumps in the testsuite

* Sat Jul 15 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-8
- fix handling of C++ template static data members in anonymous namespace
  (PR c++/28370)
- fix Fortran OpenMP handling of !$omp parallel do with lastprivate on the
  iteration variable (PR fortran/28390)
- backported reassociation pass rewrite (Daniel Berlin, Jeff Law,
  Roger Sayle, Peter Bergner, PRs ada/24994, tree-optimization/26854)
- BuildReq sharutils for uuencode

* Tue Jul 11 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-7
- update from gcc-4_1-branch (-r115058:115330)
  - PRs c++/13983, c++/17519, c++/18681, c++/18698, c++/26577, c++/27019,
	c++/27424, c++/27768, c++/27820, c++/28114, fortran/23420,
	fortran/23862, fortran/24748, fortran/26801, fortran/27965,
	fortran/28081, fortran/28094, fortran/28167, fortran/28174,
	fortran/28213, fortran/28237, middle-end/27428, target/28084,
	target/28207, tree-optimization/28218
- use --hash-style=gnu by default
- C++ visibility fixes (Jason Merrill, PRs c++/17470, c++/19134,
  c++/21581, c++/21675, c++/25915, c++/26612, c++/26905, c++/26984,
  c++/27000, c++/28215, c++/28279)
- fix ppc insvdi_internal2/3 (David Edelsohn, Alan Modra, #197755,
  PR target/28170)
- avoid TFmode PRE_INC/PRE_DEC on ppc (David Edelsohn, PR target/28150)

* Thu Jun 29 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-6
- update from gcc-4_1-branch (-r114766:115058)
  - PRs c++/27821, c++/28109, c++/28110, c++/28112, fortran/16206,
	fortran/18769, fortran/19310, fortran/19904, fortran/20867,
	fortran/20874, fortran/20876, fortran/22038, fortran/25049,
	fortran/25050, fortran/25056, fortran/25073, fortran/27554,
	fortran/27715, fortran/27784, fortran/27895, fortran/27958,
	fortran/28118, fortran/28119, libfortran/27784, libfortran/27895,
	libgcj/28178, middle-end/28045, middle-end/28151, target/27082,
	target/27861, tree-optimization/27781
- fix a reload problem that lead sometimes to writes to read-only objects
  (Bernd Schmidt, #196736, PR middle-end/26991, PR rtl-optimization/25636)
- ppc -mcpu=power6 initial support (Pete Steinmetz, #195924)

* Tue Jun 20 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-5
- fix C++ #pragma omp atomic (Mark Mitchell)

* Mon Jun 19 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-4
- update from gcc-4_1-branch (-r114555:114766)
  - PRs bootstrap/22541, c++/21210, c++/26559, c++/27227, c++/27648,
	c++/27665, c++/27666, c++/27689, c++/27884, c++/27933, c++/27951,
	fortran/27786, java/28024, middle-end/27733, middle-end/27802,
	target/27858, tree-optimization/27830
- merge gomp changes from the trunk (-r114642:114643)
  - PR libgomp/28008
- fix -fmerge-all-constants
- fix #pragma omp critical handling if not --enable-linux-futex

* Tue Jun 13 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-3
- add BuildRequires for elfutils-devel on ia64
- fix a reload bug visible on s390x (Andreas Krebbel, #193912,
  PR middle-end/27959)

* Mon Jun 12 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-2
- update from gcc-4_1-branch (-r114107:114555)
  - PRs ada/27769, c++/20173, c++/26068, c++/26433, c++/26496, c++/27177,
	c++/27385, c++/27447, c++/27451, c++/27601, c++/27713, c++/27716,
	c++/27722, c++/27801, c++/27806, c++/27807, c++/27819, c/25161,
	c/26818, c/27020, c/27718, fortran/14067, fortran/16943,
	fortran/18003, fortran/19015, fortran/19777, fortran/20839,
	fortran/20877, fortran/23091, fortran/23151, fortran/24168,
	fortran/24558, fortran/25047, fortran/25058, fortran/25082,
	fortran/25090, fortran/25098, fortran/25147, fortran/25746,
	fortran/26551, fortran/27155, fortran/27320, fortran/27411,
	fortran/27449, fortran/27470, fortran/27524, fortran/27552,
	fortran/27584, fortran/27613, fortran/27655, fortran/27662,
	fortran/27709, fortran/27897, libgcj/26483, libgfortran/24459,
	libgfortran/27757, middle-end/27743, middle-end/27793,
	target/25758, target/26223, target/27790, target/27842,
	testsuite/27705, tree-optimization/26242, tree-optimization/26622
- merge gomp changes from the trunk (-r114518:114520 and -r114524:114525)
  - PRs preprocessor/27746, c/27747, c++/27748, fortran/27916
- don't generate decls with the same DECL_UID in C++ FE (PR middle-end/27793)

* Thu May 25 2006 Jakub Jelinek <jakub@redhat.com> 4.1.1-1
- update from gcc-4_1-branch (-r113848:114107)
  - GCC 4.1.1 release
  - PR fortran/27553
- fix i386/x86_64 -O0 -fpic link failure (#192816, PR target/27758)
- fix gcjh on 64-bit hosts (#192700)
- -fvar-tracking fixes needed for SystemTap (Alexandre Oliva, BZ#2438)

* Wed May 17 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-19
- update from gcc-4_1-branch (-r113785:113848)
  - PRs c++/26757, c++/27339, c++/27491, driver/26885, rtl-optimization/14261,
	target/26600, tree-optimization/27603
- merge gomp changes from the trunk (-r113513:113514, -r113821:113823 and
  -r113845:113846)
  - PRs middle-end/27415, middle-end/27573
- optimize handling of large CONSTRUCTORs (Bernd Schmidt,
  PR middle-end/27620)

* Mon May 15 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-18
- update from gcc-4_1-branch (-r113722:113785)
  - PRs c++/27315, c++/27581, c++/27582, rtl-optimization/22563
- merge gomp changes from the trunk (-r113786:113790)

* Sun May 14 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-17
- make -mtune=z9-109 the default on s390{,x} (#184630)

* Sat May 13 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-16
- update from gcc-4_1-branch (-r113637:113722)
  - PRs bootstrap/26872, c++/27547, fortran/20460, fortran/24549,
	middle-end/27384, middle-end/27488, target/26545, target/27158
- fix libgcj.pc location and content on x86_64, ppc64 and s390x (#185230)
- make __dso_handle const, so that it is added into .data.rel.ro section
  in shared libraries
- fix a typo in __builtin_object_size computation (Richard Guenther,
  PR tree-optimization/27532)
- fix ICE on -O0 -g if static local variables are in unreachable code blocks
  (Jan Hubicka, PR debug/26881)
- fix ICEs with conflicts across abnormal edges (Zdenek Dvorak,
  PRs tree-optimization/27283, tree-optimization/27548,
  tree-optimization/27549)
- warn about OpenMP section 2.9 region nesting violations
- fix OpenMP fortran array REDUCTION with -fbounds-check (PR fortran/27446)
- fix OpenMP {{FIRST,LAST}PRIVATE,REDUCTION} in orphaned construct on
  Fortran dummy argument (PR middle-end/27416)
- fix ICE on #pragma omp for unsigned iteration variable (PR c/27499)

* Tue May  9 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-15
- update from gcc-4_1-branch (-r113623:113637)
  - PR fortran/27378
- update from trunk (-r109500:109501, -r109670:109671, -r111341:111342,
		     -r111704:111705, -r112546:112547, -r113111:113112,
		     -r113339:113341, -r113511:113513)
- fix loop peeling (Zdenek Dvorak, #190039, PR rtl-optimization/27335)

* Mon May  8 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-14
- update from gcc-4_1-branch (-r113489:113623)
  - PRs c++/27422, c++/27427, fortran/24813, fortran/25099, fortran/25681,
	fortran/27269, fortran/27324, libfortran/26985, objc/27240,
	target/26481, target/26765, tree-optimization/25985,
	tree-optimization/27151
- fix zero size field handling in structalias (Richard Guenther,
  PR tree-optimization/27409)
- fix PR tree-optimization/27136 (Richard Guenther)
- fix classification of invalid struct types on x86_64 (Volker Reichelt,
  PR target/27421)

* Wed May  3 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-13
- update from gcc-4_1-branch (-r113416:113489)
  - PRs c/25309, target/27374, target/27387, tree-optimization/27364
- merge gomp changes from trunk (-r113267:113271, -r113411:113412,
  -r113452:113456, -r113482:113483, -r113493:113494)
  - PR fortran/27395
- additional gomp fixes (PRs c++/27359, middle-end/27388)
- package SYSCALLS.c.X for protoize (#190047)
- fix gcj -fprofile-arcs -ftest-coverage (Alexandre Oliva, #177450)
- reenable profiledbootstrap
- in 64-bit builds remove 32-bit /usr/lib/lib* libraries from the
  buildroots (and similarly on 32-bit builds remove 64-bit /usr/lib64/lib*)
  before AutoReq generation (#190541)

* Mon May  1 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-12
- update from gcc-4_1-branch (-r113242:113416)
  - PRs c++/26534, c++/26912, c++/27094, c++/27278, c++/27279, fortran/26017,
	libgfortran/20257, libgfortran/27304, libgfortran/27360,
	libstdc++/26513, middle-end/26565, middle-end/26869,
	rtl-optimization/26685, target/26826
- merge gomp changes from trunk (-r113255:113256, -r113420:113421)
  - PRs libgomp/25865, c/27358
- assorted gomp fixes (PRs middle-end/27325, middle-end/27310,
  middle-end/27328, middle-end/27337, c++/26943)
- fix builtin memset (Alan Modra, PR middle-end/27260, PR middle-end/27095)

* Tue Apr 25 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-11
- update from gcc-4_1-branch (-r113149:113242)
  - PRs c/25875, c/26774, fortran/18803, fortran/25597, fortran/25669,
	fortran/26787, fortran/26822, fortran/26834, fortran/27089,
	fortran/27113, fortran/27122, fortran/27124, target/21283,
	target/26961
- fix number of iterations computation (Zdenek Dvorak, #189376,
  PR tree-optimization/27285)
- fix handling of volatile in the inliner (Andrew Pinski, Richard Guenther,
  PR tree-optimization/27236)
- strip useless type conversions in the inliner (Andrew Pinski,
  Richard Guenther, PR tree-optimization/27218)

* Fri Apr 21 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-10
- update from gcc-4_1-branch (-r113110:113149)
  - PRs libgcj/21941, libgcj/27170, libgcj/27231, libgfortran/27138,
	libstdc++/26424, mudflap/26789
- improve dir/../-stripping code to support /usr/lib64 and /usr/lib in
  separate AFS mountpoints (Alexandre Oliva, #137200)
- fix fortran real(16) transpose and reshape on 32-bit architectures
  (PR fortran/26769)
- fix i?86/x86_64 vector extraction (Alexandre Oliva, #187450)
- fix testcase for ppc32 va_arg bug
- fix testsuite log uuencoding
- fix acats timeout framework

* Thu Apr 20 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-9
- update from gcc-4_1-branch (-r112951:113110)
  - PRs c++/10385, c++/26036, c++/26365, c++/26558, classpath/27163,
	fortran/26769, libgcj/27171, libgfortran/26766, libstdc++/27162,
	middle-end/27095, middle-end/27134, target/27182,
	tree-optimization/26643, tree-optimization/26821,
	tree-optimization/26854, tree-optimization/27087
- fix ppc32 va_arg bug (Alan Modra)
- assorted gomp fixes (PRs c++/25874, middle-end/25989, c/25996, c/26171,
  middle-end/26913)
- fix pretty printing C array types (#188944)
- fix ICE on unprototyped alloca (PR tree-optimization/26865)
- fix truncation optimization overflow handling (PR middle-end/26729)
- uuencode dejagnu testsuite log files in rpmbuild output

* Fri Apr 14 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-8
- update from gcc-4_1-branch (-r112825:112951)
  - PRs c++/26122, c++/26295, fortran/23634, fortran/25619, fortran/26257,
	libgcj/23829, libgcj/26522, libgfortran/26890, target/27006
- merge gomp changes from trunk (-r112934:112935)
  - PR libgomp/26651
- fix ICE in gomp handling of EH regions (PR middle-end/26823)

* Mon Apr 10 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-7
- update from gcc-4_1-branch (-r112727:112825)
  - PRs fortran/19101, fortran/25031, fortran/26779, fortran/26891,
	fortran/26976, target/26508, tree-optimization/26919
- fix libgfortran printing of REAL*16 for IEEE quad and IBM extended formats
  (PR libgfortran/24685)
- fix Fortran -fbounds-check (Roger Sayle, #188409, PR middle-end/22375)
- fix Java StackTraceElement.toString() (Mark Wielaard, #183212,
  PR classpath/27081)
- fix -fopenmp -static

* Thu Apr  6 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-6
- update from gcc-4_1-branch (-r112706:112727)
  - PRs classpath/24752, classpath/27028, libgcj/26625, libgcj/27024,
	tree-optimization/26996
- reenable PR c++/19238, c++/21764 fixes, only PR c++/21581 is not
  applied
- better fix for Java GC vs. pthread_create (Bryce McKinlay, #182263,
  PR libgcj/13212)
- fix objc_push_parm (#185398)
- fix ICE with -feliminate-dwarf2-dups and using namespace (#187787,
  PR debug/27057)

* Wed Apr  5 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-5
- update from gcc-4_1-branch (-r112431:112706)
  - PRs bootstrap/26936, bootstrap/27023, classpath/25924, fortran/19303,
	fortran/25358, fortran/26816, java/25414, java/26042, java/26858,
	libfortran/26735, libgcj/26990, libstdc++/26777, testsuite/25741,
	tree-optimization/18527, tree-optimization/26763,
	tree-optimization/26830
- merge gomp changes from trunk (-r112602:112603 and -r112618:112619)
- temporarily revert PR c++/21764, c++/19238, c++/21581 fixes (#187399)

* Tue Mar 28 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-4
- update from gcc-4_1-branch (-r111697:112431)
  - PRs ada/25885, c/26004, fortran/17298, fortran/20935, fortran/20938,
	fortran/23092, fortran/24519, fortran/24557, fortran/25045,
	fortran/25054, fortran/25075, fortran/25089, fortran/25378,
	fortran/25395, fortran/26041, fortran/26054, fortran/26064,
	fortran/26107, fortran/26277, fortran/26393, fortran/26716,
	fortran/26741, libfortran/21303, libfortran/24903, libgcj/24461,
	libgcj/25713, libgcj/26103, libgcj/26688, libgcj/26706,
	libgfortran/26499, libgfortran/26509, libgfortran/26554,
	libgfortran/26661, libgfortran/26880, libstdc++/26132,
	middle-end/18859, middle-end/19543, middle-end/26557,
	middle-end/26630, other/26489, target/25917, target/26347,
	target/26459, target/26532, target/26607, tree-optimization/26524,
	tree-optimization/26587, tree-optimization/26672
  - fix visibility and builtins interaction (Jason Merrill,
    PR middle-end/20297, #175442)
- merge gomp changes from trunk (-r112022:112023, -r112250:112251,
  -r112252:112253, -r112350:112351 and -r112282:112283)
  - PRs c++/26691, middle-end/26084, middle-end/26611, c++/26690,
	middle-end/25989
- support visibility attribute on namespaces (Jason Merrill, PR c++/21764,
  PR c++/19238)
- use hidden visibility for anonymous namespaces by default (Jason Merrill,
  PR c++/21581)

* Thu Mar  9 2006 Alexandre Oliva <aoliva@redhat.com> 4.1.0-3
- make ppc32 TLS PIC code sequences compatible with secure plt (#184446)
  (Richard Henderson and myself)

* Sat Mar  4 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-2
- update from gcc-4_1-branch (-r111570:111697)
  - PRs c++/26291, libgfortran/26136, libgfortran/26423, libgfortran/26464,
	libstdc++/26526, rtl-optimization/26345, target/19061, target/26453
- handle DW_CFA_val_{offset,offset_sf,expression} in the libgcc{,_s} unwinder

* Tue Feb 28 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-1
- update from gcc-4_1-branch (-r111466:111570)
  - GCC 4.1.0 release
  - PR other/26473

* Mon Feb 27 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.31
- add __floatuns[sdt]i[sdxt]f exports to libgcc_s.so.1 (Joseph S. Myers)
- fix unwinding through signal frames (#175951, PR other/26208, glibc BZ#300)

* Mon Feb 27 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.30
- update from gcc-4_1-branch (-r111278:111466)
  - GCC 4.1.0 RC2
  - PRs fortran/26201, libobjc/26309, rtl-optimization/25603, target/25603
  - fix nested vector shifts (#182047, PR middle-end/26379)
- merge gomp changes from trunk (-r111390:111391, -r111428:111429 and
  -r111440:111441)
  - PR middle-end/26412
- fortran MATMUL optimization (Richard Sandiford)
- fortran WHERE optimizations (Roger Sayle)
- x86_64 _mm_monitor fixes (H.J. Lu, PR target/24879)
- add MNI support on i?86/x86_64, -mmni option and <tmmintrin.h> header
  (H.J Lu)

* Sun Feb 19 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.29
- update from gcc-4_1-branch (-r111179:111278)
  - PRs ada/13408, c++/26266, target/22209, target/26189
  - fix ppc32 -fpic reload problem with extenddftf2 pattern
    (David Edelsohn, #181625, PR target/26350)
  - fix the PR middle-end/26334 patch

* Fri Feb 17 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.28
- update from gcc-4_1-branch (-r110978:111179)
  - PRs ada/20753, bootstrap/16787, bootstrap/26053, fortran/25806,
	libfortran/15234, libgfortran/25949, middle-end/25335,
	target/25259, target/26255
  - fix ICE with shift by -1 (#181586, PR middle-end/26300)
- merge gomp changes from trunk (-r110983:110984, -r111017:111018,
  -r111152:111153 and -r111204:111205)
  - PRs bootstrap/26161, fortran/26224, libgomp/25938, libgomp/25984
- don't define _REENTRANT in gthr*.h (#176278, PR libstdc++/11953)
- define _REENTRANT if -pthread and _POSIX_SOURCE if -posix on s390{,x}
  and ia64
- fix ICE with register variable and __asm statement (#181731,
  PR middle-end/26334)

* Tue Feb 14 2006 Alexandre Oliva <aoliva@redhat.com> 4.1.0-0.27
- merge fix by Zdenek Dvorak for regression introduced by patch for PR
  tree-optimization/26209

* Tue Feb 14 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.26
- update from gcc-4_1-branch (-r110903:110978)
  - PRs fortran/20861, fortran/20871, fortran/25059, fortran/25070,
	fortran/25083, fortran/25088, fortran/25103, fortran/26038,
	fortran/26074, inline-asm/16194, libfortran/24685,
	libfortran/25425, target/26141, tree-optimization/26258
- ABI change - revert to GCC 3.3 and earlier behaviour of
  zero sized bitfields in packed structs (Michael Matz, PR middle-end/22275)
- fix valarrays vs. non-POD (Paolo Carlini, Gabriel Dos Reis,
  PR libstdc++/25626)
- fix C++ duplicate declspec diagnostics (Volker Reichelt, PR c++/26151)
- fix dominance ICE (Zdenek Dvorak, PR tree-optimization/26209)
- add some new Intel {,e,x}mmintrin.h intrinsics (H.J. Lu)
- speedup bitset<>::_M_copy_to_string (Paolo Carlini)
- fix tree_expr_nonzero_p (Jeff Law)
- fix TRUTH_XOR_EXPR handling in VRP (Jeff Law)

* Mon Feb 13 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.25
- update from gcc-4_1-branch (-r110831:110903)
  - PRs c++/16405, c++/24996, fortran/14771, fortran/20858, fortran/25756,
	middle-end/22439
- merge gomp changes from trunk (-r110719:110720, -r110852:110853 and
  -r110907:110908)
  - PR libgomp/25936
- fix gimplification of const fn pointers to builting functions
  (PR middle-end/26092)
- make sure Fortran length artifical variables aren't SAVEd (Andrew Pinski,
  PR fortran/26246)

* Fri Feb 10 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.24
- update from gcc-4_1-branch (-r110632:110831)
  - PRs tree-opt/26180, c++/26070, c++/26071, fortran/25577, java/26192,
	libfortran/23815, libstdc++/26127, target/23359, target/26109,
	tree-opt/25251
- remove gcc-ppc32, gcc-c++-ppc32, gcc-sparc32 and gcc-c++-sparc32
  subpackages, they do more harm than good.  Particularly this time
  gcc*ppc32 and gcc*sparc32 defaulted to DFmode long double rather
  than TFmode long double

* Mon Feb  6 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.23
- update from gcc-4_1-branch (-r110582:110632)
  - PRs classpath/24618, classpath/25141, classpath/25727, fortran/25046,
	fortran/26039
- use LOGICAL*1 instead of LOGICAL*4 for Fortran where temporary masks
  (Roger Sayle)
- fix symbol versions in s390 libgcc_s.so.1
- sparc32 and alpha long double fixes
- BuildRequires libXt-devel
- BuildRequires and Requires glibc-devel >= 2.3.90-35 on arches
  that are switching long double

* Sat Feb  4 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.22
- fix ia64 debug info patch
- fix libjava pthread_create wrapper patch

* Sat Feb  4 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.21
- update from gcc-4_1-branch (-r110433:110582)
  - PRs c++/25342, c++/25979, fortran/20845, fortran/24266,
	fortran/24958, fortran/25072, libstdc++/21554, middle-end/24901,
	middle-end/25977, middle-end/26001, target/25864, target/25926,
	target/25960
  - put ia64 read-only sections that require runtime relocations
    even in -fno-pic code into .data.rel.ro etc. sections
    rather than .rodata to avoid DT_TEXTREL binaries
    (Richard Henderson, PR target/26090)
- merge gomp changes from trunk (-r110511:110512 and -r110549:110552)
- fix ia64 debug info coverage of epilogues (Alexandre Oliva, PR debug/24444)
- export pthread_create from libgcj.so.7 as a wrapper around
  libpthread.so.0's pthread_create that handles GC (Anthony Green, Tom Tromey)
- BC-ABI java lookup fix (Andrew Haley, #179070, #178156)
- on sparc64 emit .register %g7,#ignore instead of .register %g7,#scratch
  to avoid problems with TLS or -fstack-protector
- switch to IBM extended format long double by default on ppc and ppc64
- switch to IEEE 754 quad format long double by default on s390, s390x,
  sparc32 and alpha

* Wed Feb  1 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.20
- merge from gomp-20050808-branch (up to -r110392)
  - fix PR c++/25874 (Diego Novillo)

* Wed Feb  1 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.19
- s390{,x} long double patch fix for s390x ICEs on test-ldouble
  and tst-align2 (Andreas Krebbel)

* Tue Jan 31 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.18
- update from gcc-4_1-branch (-r110317:110433)
  - PRs c++/25855, c++/25999, fortran/17911, fortran/18578, fortran/18579,
	fortran/20857, fortran/20885, fortran/20895, fortran/25030,
	fortran/25835, fortran/25951, java/21428, libgfortran/25835,
	target/14798, target/25706, target/25718, target/25947,
	target/26018, testsuite/25318
- add -mtune=generic support for i?86 and x86_64 (Jan Hubicka, H.J. Lu,
  Evandro Menezes)
- use -mtune=generic by default if neither -march= nor -mtune= is specified
  on command line on i?86 or x86_64
- updated s390{,x} long double patch, fixing ICEs on s390x glibc build
  (Andreas Krebbel, Ulrich Weigand)

* Sat Jan 28 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.17
- update from gcc-4_1-branch (-r110062:110317)
  - PRs ada/20548, ada/21317, bootstrap/25859, c++/25552, c++/25856,
	c++/25858, c++/25895, c/25892, fortran/18540, fortran/20852,
	fortran/20881, fortran/23308, fortran/24276, fortran/25084,
	fortran/25085, fortran/25086, fortran/25124, fortran/25416,
	fortran/25538, fortran/25625, fortran/25710, fortran/25716,
	fortran/25901, fortran/25964, java/25816, other/24829,
	rtl-optimization/24626, rtl-optimization/25654, target/24831,
	testsuite/24962, testsuite/25590
- atomic builtin fixes (Richard Henderson)
- -mlong-double-128 support on ppc32 (David Edelsohn, Alan Modra)
- -mlong-double-128 support on s390 and s390x (Andreas Krebbel,
  Ulrich Weigand)

* Sat Jan 21 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.16
- update from gcc-4_1-branch (-r109815:110062)
  - PRs ada/24533, c++/16829, c++/22136, c++/25836, c++/25854, c/25805,
	classpath/20198, fortran/20869, fortran/20875, fortran/25024,
	fortran/25631, fortran/25697, fortran/25785, libgcj/25840,
	libgfortran/25631, libgfortran/25697, libstdc++/25823,
	libstdc++/25824, target/25731, testsuite/25171
  - fix X509Certificate.java (#174708, #177733)

* Tue Jan 17 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.15
- update from gcc-4_1-branch (-r109401:109815)
  - PRs c++/24824, c++/25386, c++/25663, c/25682, classpath/25803,
	fortran/12456, fortran/20868, fortran/20870, fortran/21256,
	fortran/21977, fortran/22146, fortran/24640, fortran/25029,
	fortran/25093, fortran/25101, fortran/25486, fortran/25598,
	fortran/25730, libgcj/21637, libgcj/23499, libgfortran/25598,
	libstdc++/23591, libstdc++/25472, rtl-optimization/24257,
	rtl-optimization/25367, rtl-optimization/25662, target/20754,
	target/25042, target/25168, testsuite/25728, testsuite/25777,
	tree-opt/24365, tree-optimization/23109, tree-optimization/23948,
	tree-optimization/24123, tree-optimization/25125
- update from gomp-20050608-branch (up to -r109816)
- fix ppc32 libffi (#177655)
- fix lookup_conversions_r (#177918)
- define __STDC__ as a normal macro rather than a preprocessor builtin
  unless it needs to change its value between system and non-system
  headers (PR preprocessor/25717)

* Fri Jan  6 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.14
- update from gcc-4_1-branch (-r109369:109401)
  - PR fortran/23675
  - fix Java shutdown hook (Tom Tromey, #165136)
- fix libjava/shlibpath.m4 (PR libgcj/24940)

* Thu Jan  5 2006 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.13
- update from gcc-4_1-branch (-r108957:109369)
  - PRs c++/23171, c++/23172, c++/24671, c++/24782, c++/25294, c++/25417,
	c++/25439, c++/25492, c++/25625, c++/25632, c++/25633, c++/25634,
	c++/25635, c++/25637, c++/25638, c/25183, c/25559, debug/25562,
	fortran/18990, fortran/19362, fortran/20244, fortran/20862,
	fortran/20864, fortran/20889, fortran/22607, fortran/23152,
	fortran/25018, fortran/25053, fortran/25055, fortran/25063,
	fortran/25064, fortran/25066, fortran/25067, fortran/25068,
	fortran/25069, fortran/25106, fortran/25391, fortran/25532,
	fortran/25586, fortran/25587, libgcj/9715, libgcj/19132,
	libgfortran/25139, libgfortran/25419, libgfortran/25510,
	libgfortran/25550, libgfortran/25594, middle-end/24827, objc/25328,
	rtl-optimization/21041, rtl-optimization/25130, target/24342,
	target/25554, target/25572, testsuite/25214, testsuite/25441,
	testsuite/25442, testsuite/25444, tree-opt/25513
  - create java Package for compiled classes which are linked in but
    loaded by the system class loader (Tom Tromey, #176956)
  - fix posix_memalign prototype in <mm_malloc.h> (#176461)
- update from gomp-20050608-branch (up to -r109349)
- buildrequire libXtst-devel (#176898)
- fix built in path to classmap.db on x86_64, s390x and ppc64 (#176562)
- fix debug info for preprocessed Fortran code (#175071, PR fortran/25324)

* Thu Dec 22 2005 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.12
- make sure GCJFLAGS are propagated down to libjava's configure
- build crt{begin,end}*.o with -fno-asynchronous-unwind-tables
  if RPM_OPT_FLAGS include -fasynchronous-unwind-tables
- fix PR c++/25369 (Mark Mitchell)
- fix PR libgfortran/25307 (Jerry DeLisle)

* Thu Dec 22 2005 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.11
- update from gcc-4_1-branch (-r108861:108957)
  - PRs debug/25518, fortran/24268, fortran/25423, libgfortran/25463,
	rtl-optimization/25196, tree-optimization/24793
- validate changes in forward copy propagation (PR target/25005)
- fix Java constants constructors on 64-bit big endian arches
  (Andrew Haley, PR java/25535)
- fix PR c++/25364 (Mark Mitchell)

* Wed Dec 21 2005 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.10
- update from gcc-4_1-branch (-r108539:108861)
  - PRs ada/18659, ada/18819, c++/20552, c++/21228, c++/24278, c++/24915,
	fortran/18197, fortran/25458, libgfortran/25039, libgfortran/25264,
	libgfortran/25349, libobjc/14382, libstdc++/25421, middle-end/22313,
	middle-end/24306, rtl-optimization/23837, rtl-optimization/25224,
	rtl-optimization/25310, target/24969, testsuite/25215,
	tree-optimization/23838, tree-optimization/24378
- update from gomp-20050608-branch (up to -r108859)
  - fix _Pragma handling (Richard Henderson, PR preprocessor/25240)
- fix reload re-recognition of insns (Alan Modra, PR rtl-optimization/25432)
- don't peephole RTX_FRAME_RELATED_P insns (Andrew Haley,
  PR middle-end/25121)

* Thu Dec 15 2005 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.9
- fix OpenMP lastprivate handling for global vars (Aldy Hernandez)
- fix gnu.xml.dom.DomNode's detach method (Caolan McNamara,
  PR classpath/25426)
- fix up the #175569 fix (Tom Tromey, #175833, PR java/25429)
- fix strength reduction miscompilation of libgnomecanvas
  (#175669, PR rtl-optimization/24899)
- create libgcj-*.jar with -@E options and feed a sorted list to
  it rather than relying on filesystem sorting

* Wed Dec 14 2005 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.8
- update from gcc-4_1-branch (-r108414:108539)
  - PRs classpath/25389, fortran/23815, fortran/25078, target/25254
- fix Java ICE on initialized static final var used in case
  (Andrew Haley, #175569, PR java/25429)
- fix crash in _Unwind_IteratePhdrCallback (Andrew Haley)
- don't Require alsa-lib-devel, just BuildRequire it
  (#175627)
- use .gnu.linkonce.d.rel.ro.* sections for objects that
  are constant after relocation processing

* Mon Dec 12 2005 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.7
- update from gcc-4_1-branch (-r108157:108414)
  - PRs c++/19317, c++/19397, c++/19762, c++/19764, c++/25010, c++/25300,
	c++/25337, debug/24908, fortran/25292, libfortran/25116,
	libgcj/25265, target/17828, target/19005, target/23424,
	target/25212, target/25258, target/25311, testsuite/20772,
	testsuite/24478, testsuite/25167, tree-optimization/25248
- update from gomp-20050608-branch (up to -r108424)
- add BuildReq for alsa-lib-devel and configure with --disable-dssi
- sort files in libgcj-*.jar and touch them to latest ChangeLog
  timestamp, so that libgcj-*.jar is identical across multilib arches
- don't use pushw instruction on i?86, as that leads to ICEs
  in def_cfa_1, because negative CFA offsets not multiple of 4
  aren't representable in the unwind and debug info (PR debug/25023,
  PR target/25293)
- fix ICEs with x86_64 -mlarge-data-threshold=N and STRING_CSTs
  (Jan Hubicka, PR target/24188)
- fix Java ICE with input_filename being unset (Alexandre Oliva, #174912)
- don't accept invalid int x,; in C++ (Petr Machata, PR c++/24907)
- fix Java ICE in do_resolve_class (Andrew Haley, PR java/25366,
  PR java/25368)
- make sure g*.dg/compat/struct-layout-1.exp generated tests
  don't use arrays with entries aligned more than their size (PR c++/25331)
- don't use -liberty in g++.dg/compat/struct-layout-1.exp tests

* Wed Dec  7 2005 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.6
- allow #pragmas at C struct scope as well as ObjC class scope
  (PR c/25246)
- some gomp testcase fixes

* Wed Dec  7 2005 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.5
- update from gcc-4_1-branch (-r107810:108157)
  - PRs bootstrap/25207, c++/24103, c++/24138, c++/24173, fortran/15809,
	fortran/21302, fortran/23912, java/25283, libfortran/24919,
	libgfortran/25149, middle-end/25176, other/13873, target/18580,
	target/24108, target/24475, target/24934, target/25199,
	testsuite/25247, tree-optimization/24963
- update from gomp-20050608-branch (up to -r108105)
- -Wstrict-aliasing C++ support (Richard Guenther, Dirk Mueller,
  Paolo Carlini, PRs c++/14024, libstdc++/24975)
- fix mark_used_regs regression (Andreas Krebbel, PR rtl-optimization/24823)
- fix reload ICE (Kaz Kojima, PR target/24982)
- fix PPC ICE on Linux kernel (Paolo Bonzini, PR target/24982)
- fix s390{,x} shifts with shift count ANDed with constant mask
  (Andreas Krebbel, PR target/25268)
- s390{,x} atomic builtins enhancements (Adrian Straetling)

* Thu Dec  1 2005 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.4
- update from gcc-4_1-branch (-r107618:107810)
  - PRs c++/21123, c++/21166, fortran/24223, fortran/24705, java/18278,
	libgfortran/25109, middle-end/20109, middle-end/25120,
	middle-end/25158, rtl-opt/24930
- use %%{_tmppath} in BuildRoot (#174594)
- require libgomp in gcc subpackage
- fix Java .so symlinks

* Tue Nov 29 2005 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.3
- fix IA-64 local-exec TLS handling
- fix IA-64 __sync_fetch_and_{sub,xor,...}

* Mon Nov 28 2005 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.2
- update from gcc-4_1-branch (-r107462:107618)
  - PRs fortran/24917, libgcj/25016, libgfortran/24945, middle-end/21309,
	middle-end/25022, libfortran/24991
- update from gomp-20050608-branch (up to -r107619)
  - fix omp_get_wti{me,ck} on older kernels
- ppc32 EH fix
- fix #pragma omp atomic
- resurrected multi32 hack for ppc32 and sparc32

* Thu Nov 24 2005 Jakub Jelinek <jakub@redhat.com> 4.1.0-0.1
- initial 4.1 package, using newly created redhat/gcc-4_1-branch
