Blame SPECS/gcc.spec

9fbc78
%global __python /usr/bin/python3
9fbc78
%{?scl:%global __strip %%{_scl_root}/usr/bin/strip}
9fbc78
%{?scl:%global __objdump %%{_scl_root}/usr/bin/objdump}
9fbc78
%{?scl:%scl_package gcc}
5e6e6d
%global DATE 20221121
5e6e6d
%global gitrev b3f5a0d53b84ed27cf00cfa2b9c3e2c78935c07d
5e6e6d
%global gcc_version 12.2.1
9fbc78
%global gcc_major 12
9fbc78
# Note, gcc_release must be integer, if you want to add suffixes to
9fbc78
# %%{release}, append them after %%{gcc_release} on Release: line.
5e6e6d
%global gcc_release 4
5e6e6d
%global nvptx_tools_gitrev 472b6e78b3ba918d727698f79911360b7c808247
5e6e6d
%global newlib_cygwin_gitrev a8526cb52bedabd4d6ba4b227a5185627f871aa1
9fbc78
%global mpc_version 1.0.3
5e6e6d
%global isl_version 0.24
9fbc78
%global mpfr_version 3.1.4
9fbc78
%global gmp_version 6.1.0
9fbc78
%global doxygen_version 1.8.0
9fbc78
%global _unpackaged_files_terminate_build 0
9fbc78
%if 0%{?fedora} > 27 || 0%{?rhel} > 7
9fbc78
# Until annobin is fixed (#1519165).
9fbc78
%undefine _annotated_build
9fbc78
%endif
9fbc78
# Strip will fail on nvptx-none *.a archives and the brp-* scripts will
9fbc78
# fail randomly depending on what is stripped last.
9fbc78
%if 0%{?__brp_strip_static_archive:1}
9fbc78
%global __brp_strip_static_archive %{__brp_strip_static_archive} || :
9fbc78
%endif
9fbc78
%if 0%{?__brp_strip_lto:1}
9fbc78
%global __brp_strip_lto %{__brp_strip_lto} || :
9fbc78
%endif
9fbc78
%if 0%{?fedora} < 32 && 0%{?rhel} < 8
9fbc78
%global multilib_64_archs sparc64 ppc64 ppc64p7 x86_64
9fbc78
%else
9fbc78
%global multilib_64_archs sparc64 ppc64 ppc64p7 x86_64
9fbc78
%endif
9fbc78
%if 0%{?rhel} > 7
9fbc78
%global build_ada 0
9fbc78
%global build_objc 0
9fbc78
%global build_go 0
9fbc78
%global build_d 0
9fbc78
%else
9fbc78
%ifarch %{ix86} x86_64 ia64 ppc %{power64} alpha s390x %{arm} aarch64 riscv64
9fbc78
%global build_ada 0
9fbc78
%else
9fbc78
%global build_ada 0
9fbc78
%endif
9fbc78
%global build_objc 0
9fbc78
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64
9fbc78
%global build_go 0
9fbc78
%else
9fbc78
%global build_go 0
9fbc78
%endif
5e6e6d
%ifarch %{ix86} x86_64 %{arm} aarch64 %{mips} s390 s390x riscv64
9fbc78
%global build_d 1
9fbc78
%else
9fbc78
%global build_d 0
9fbc78
%endif
9fbc78
%endif
9fbc78
# Only so that rpmbuild doesn't complain on Fedora.
9fbc78
%if 0%{?fedora} > 18
9fbc78
%global build_libquadmath 0
9fbc78
%endif
9fbc78
%if 0%{?rhel} >= 7
9fbc78
%ifarch %{ix86} x86_64 ia64 ppc ppc64 ppc64le
9fbc78
%global build_libquadmath 1
9fbc78
%else
9fbc78
%global build_libquadmath 0
9fbc78
%endif
9fbc78
%endif
9fbc78
%if 0%{?rhel} == 6
9fbc78
%ifarch %{ix86} x86_64 ia64 ppc64le
9fbc78
%global build_libquadmath 1
9fbc78
%else
9fbc78
%global build_libquadmath 0
9fbc78
%endif
9fbc78
%endif
9fbc78
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64
9fbc78
%global build_libasan 1
9fbc78
%else
9fbc78
%global build_libasan 0
9fbc78
%endif
9fbc78
%ifarch x86_64 ppc64 ppc64le aarch64 s390x
9fbc78
%global build_libtsan 1
9fbc78
%else
9fbc78
%global build_libtsan 0
9fbc78
%endif
9fbc78
%ifarch x86_64 ppc64 ppc64le aarch64 s390x
9fbc78
%global build_liblsan 1
9fbc78
%else
9fbc78
%global build_liblsan 0
9fbc78
%endif
9fbc78
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64
9fbc78
%global build_libubsan 1
9fbc78
%else
9fbc78
%global build_libubsan 0
9fbc78
%endif
9fbc78
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64
9fbc78
%global build_libatomic 1
9fbc78
%else
9fbc78
%global build_libatomic 0
9fbc78
%endif
9fbc78
%ifarch %{ix86} x86_64 %{arm} alpha ppc ppc64 ppc64le ppc64p7 s390 s390x aarch64
9fbc78
%global build_libitm 1
9fbc78
%else
9fbc78
%global build_libitm 0
9fbc78
%endif
9fbc78
%if 0%{?rhel} == 6
9fbc78
%global build_isl 0
9fbc78
%else
9fbc78
%global build_isl 1
9fbc78
%endif
9fbc78
%global build_libstdcxx_docs 1
9fbc78
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips}
9fbc78
%global attr_ifunc 1
9fbc78
%else
9fbc78
%global attr_ifunc 0
9fbc78
%endif
9fbc78
%ifarch x86_64 ppc64le
9fbc78
%if 0%{?rhel} >= 8
9fbc78
%global build_offload_nvptx 1
9fbc78
%else
9fbc78
%global build_offload_nvptx 0
9fbc78
%endif
9fbc78
%else
9fbc78
%global build_offload_nvptx 0
9fbc78
%endif
9fbc78
%if 0%{?fedora} < 32
9fbc78
%ifarch s390x
9fbc78
%global multilib_32_arch s390
9fbc78
%endif
9fbc78
%endif
9fbc78
%ifarch sparc64
9fbc78
%global multilib_32_arch sparcv9
9fbc78
%endif
9fbc78
%ifarch ppc64 ppc64p7
9fbc78
%global multilib_32_arch ppc
9fbc78
%endif
9fbc78
%ifarch x86_64
9fbc78
%global multilib_32_arch i686
9fbc78
%endif
9fbc78
%if 0%{?fedora} >= 36 || 0%{?rhel} >= 10
9fbc78
%global build_annobin_plugin 1
9fbc78
%else
9fbc78
%global build_annobin_plugin 0
9fbc78
%endif
9fbc78
Summary: GCC version 12
9fbc78
Name: %{?scl_prefix}gcc
9fbc78
Version: %{gcc_version}
5e6e6d
Release: %{gcc_release}.1%{?dist}
9fbc78
# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
9fbc78
# GCC Runtime Exception.
9fbc78
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
9fbc78
# The source for this package was pulled from upstream's vcs.
9fbc78
# %%{gitrev} is some commit from the
9fbc78
# https://gcc.gnu.org/git/?p=gcc.git;h=refs/vendors/redhat/heads/gcc-%%{gcc_major}-branch
9fbc78
# branch.  Use the following commands to generate the tarball:
9fbc78
# git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
9fbc78
# git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin %%{gitrev}
9fbc78
# git --git-dir=gcc-dir.tmp/.git archive --prefix=%%{name}-%%{version}-%%{DATE}/ %%{gitrev} | xz -9e > %%{name}-%%{version}-%%{DATE}.tar.xz
9fbc78
# rm -rf gcc-dir.tmp
9fbc78
Source0: gcc-%{version}-%{DATE}.tar.xz
9fbc78
Source1: https://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2
9fbc78
Source2: http://www.multiprecision.org/mpc/download/mpc-%{mpc_version}.tar.gz
9fbc78
Source3: ftp://ftp.stack.nl/pub/users/dimitri/doxygen-%{doxygen_version}.src.tar.gz
9fbc78
# The source for nvptx-tools package was pulled from upstream's vcs.  Use the
9fbc78
# following commands to generate the tarball:
9fbc78
# git clone --depth 1 git://github.com/MentorEmbedded/nvptx-tools.git nvptx-tools-dir.tmp
9fbc78
# git --git-dir=nvptx-tools-dir.tmp/.git fetch --depth 1 origin %%{nvptx_tools_gitrev}
9fbc78
# git --git-dir=nvptx-tools-dir.tmp/.git archive --prefix=nvptx-tools-%%{nvptx_tools_gitrev}/ %%{nvptx_tools_gitrev} | xz -9e > nvptx-tools-%%{nvptx_tools_gitrev}.tar.xz
9fbc78
# rm -rf nvptx-tools-dir.tmp
9fbc78
Source4: nvptx-tools-%{nvptx_tools_gitrev}.tar.xz
9fbc78
# The source for nvptx-newlib package was pulled from upstream's vcs.  Use the
9fbc78
# following commands to generate the tarball:
9fbc78
# git clone git://sourceware.org/git/newlib-cygwin.git newlib-cygwin-dir.tmp
9fbc78
# git --git-dir=newlib-cygwin-dir.tmp/.git archive --prefix=newlib-cygwin-%%{newlib_cygwin_gitrev}/ %%{newlib_cygwin_gitrev} ":(exclude)newlib/libc/sys/linux/include/rpc/*.[hx]" | xz -9e > newlib-cygwin-%%{newlib_cygwin_gitrev}.tar.xz
9fbc78
# rm -rf newlib-cygwin-dir.tmp
9fbc78
Source5: newlib-cygwin-%{newlib_cygwin_gitrev}.tar.xz
9fbc78
Source6: libgomp_nonshared.c
9fbc78
Source7: http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-%{mpfr_version}.tar.bz2
9fbc78
Source8: http://gcc.gnu.org/pub/gcc/infrastructure/gmp-%{gmp_version}.tar.bz2
9fbc78
URL: http://gcc.gnu.org
9fbc78
# Need binutils with -pie support >= 2.14.90.0.4-4
9fbc78
# Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4
9fbc78
# Need binutils which handle -msecure-plt on ppc >= 2.16.91.0.2-2
9fbc78
# Need binutils which support .weakref >= 2.16.91.0.3-1
9fbc78
# Need binutils which support --hash-style=gnu >= 2.17.50.0.2-7
9fbc78
# Need binutils which support mffgpr and mftgpr >= 2.17.50.0.2-8
9fbc78
# Need binutils which support --build-id >= 2.17.50.0.17-3
9fbc78
# Need binutils which support %%gnu_unique_object >= 2.19.51.0.14
9fbc78
# Need binutils which support .cfi_sections >= 2.19.51.0.14-33
9fbc78
# Need binutils which support --no-add-needed >= 2.20.51.0.2-12
9fbc78
# Need binutils which support -plugin
9fbc78
# Need binutils which support .loc view >= 2.30
9fbc78
# Need binutils which support --generate-missing-build-notes=yes >= 2.31
9fbc78
%if 0%{?scl:1}
9fbc78
BuildRequires: %{?scl_prefix}binutils >= 2.31
9fbc78
BuildRequires: %{?scl_prefix}gdb >= 7.4.50
9fbc78
%endif
9fbc78
# While gcc doesn't include statically linked binaries, during testing
9fbc78
# -static is used several times.
9fbc78
BuildRequires: glibc-static
9fbc78
BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, sharutils
9fbc78
BuildRequires: texinfo, texinfo-tex, /usr/bin/pod2man
9fbc78
#BuildRequires: systemtap-sdt-devel >= 1.3
9fbc78
#BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 3.1.0, libmpc-devel >= 0.8.1
9fbc78
#BuildRequires: python3-devel, /usr/bin/python
9fbc78
BuildRequires: gcc, gcc-c++, make
9fbc78
%if 0%{?rhel} == 7
9fbc78
BuildRequires: python3
9fbc78
%endif
9fbc78
# For VTA guality testing
9fbc78
BuildRequires: gdb
9fbc78
# Make sure pthread.h doesn't contain __thread tokens
9fbc78
# Make sure glibc supports stack protector
9fbc78
# Make sure glibc supports DT_GNU_HASH
9fbc78
BuildRequires: glibc-devel >= 2.4.90-13
9fbc78
BuildRequires: elfutils-devel >= 0.147
9fbc78
BuildRequires: elfutils-libelf-devel >= 0.147
9fbc78
%if 0%{?rhel} >= 8
9fbc78
BuildRequires: libzstd-devel
9fbc78
%endif
9fbc78
%ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha
9fbc78
# Make sure glibc supports TFmode long double
9fbc78
BuildRequires: glibc >= 2.3.90-35
9fbc78
%endif
9fbc78
%ifarch %{multilib_64_archs} sparcv9 ppc
9fbc78
# Ensure glibc{,-devel} is installed for both multilib arches
9fbc78
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
9fbc78
%endif
9fbc78
%ifarch ia64
9fbc78
BuildRequires: libunwind >= 0.98
9fbc78
%endif
9fbc78
# Need .eh_frame ld optimizations
9fbc78
# Need proper visibility support
9fbc78
# Need -pie support
9fbc78
# Need --as-needed/--no-as-needed support
9fbc78
# On ppc64, need omit dot symbols support and --non-overlapping-opd
9fbc78
# Need binutils that owns /usr/bin/c++filt
9fbc78
# Need binutils that support .weakref
9fbc78
# Need binutils that supports --hash-style=gnu
9fbc78
# Need binutils that support mffgpr/mftgpr
9fbc78
# Need binutils that support --build-id
9fbc78
# Need binutils that support %%gnu_unique_object
9fbc78
# Need binutils that support .cfi_sections
9fbc78
# Need binutils that support --no-add-needed
9fbc78
# Need binutils that support -plugin
9fbc78
# Need binutils that support .loc view >= 2.30
9fbc78
# Need binutils which support --generate-missing-build-notes=yes >= 2.31
9fbc78
Requires: %{?scl_prefix}binutils >= 2.22.52.0.1
9fbc78
# Make sure gdb will understand DW_FORM_strp
9fbc78
Conflicts: gdb < 5.1-2
9fbc78
Requires: glibc-devel >= 2.2.90-12
9fbc78
%ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha
9fbc78
# Make sure glibc supports TFmode long double
9fbc78
Requires: glibc >= 2.3.90-35
9fbc78
%endif
9fbc78
%if 0%{?rhel} >= 7
9fbc78
BuildRequires: gmp-devel >= 4.3.2
9fbc78
BuildRequires: mpfr-devel >= 3.1.0
9fbc78
BuildRequires: libmpc-devel >= 0.8.1
9fbc78
%endif
9fbc78
%if %{build_libstdcxx_docs}
9fbc78
BuildRequires: libxml2
9fbc78
BuildRequires: graphviz
9fbc78
%if 0%{?rhel} < 7
9fbc78
# doxygen BRs
9fbc78
BuildRequires: perl
9fbc78
BuildRequires: texlive-dvips, texlive-utils, texlive-latex
9fbc78
BuildRequires: ghostscript
9fbc78
%endif
9fbc78
%if 0%{?rhel} >= 7
9fbc78
BuildRequires: doxygen >= 1.7.1
9fbc78
BuildRequires: dblatex, texlive-collection-latex, docbook-style-xsl
9fbc78
%endif
9fbc78
%endif
9fbc78
9fbc78
# See the build section for why this is needed.
9fbc78
%if 0%{?rhel} == 6
9fbc78
BuildRequires: devtoolset-11-runtime devtoolset-11-binutils
9fbc78
BuildRequires: devtoolset-11-gcc devtoolset-11-gcc-c++
9fbc78
%endif
9fbc78
9fbc78
Requires: libgcc >= 4.1.2-43
9fbc78
Requires: libgomp >= 4.4.4-13
9fbc78
# lto-wrapper invokes make
9fbc78
Requires: make
9fbc78
%{?scl:Requires:%scl_runtime}
9fbc78
AutoReq: true
9fbc78
# Various libraries are imported.  #1859893 asks us to list them all.
9fbc78
Provides: bundled(libiberty)
9fbc78
Provides: bundled(libbacktrace)
9fbc78
Provides: bundled(libffi)
9fbc78
Provides: gcc(major) = %{gcc_major}
9fbc78
%ifarch sparc64 ppc64 ppc64le s390x x86_64 ia64 aarch64
9fbc78
Provides: liblto_plugin.so.0()(64bit)
9fbc78
%else
9fbc78
Provides: liblto_plugin.so.0
9fbc78
%endif
9fbc78
%global oformat %{nil}
9fbc78
%global oformat2 %{nil}
9fbc78
%ifarch %{ix86}
9fbc78
%global oformat OUTPUT_FORMAT(elf32-i386)
9fbc78
%endif
9fbc78
%ifarch x86_64
9fbc78
%global oformat OUTPUT_FORMAT(elf64-x86-64)
9fbc78
%global oformat2 OUTPUT_FORMAT(elf32-i386)
9fbc78
%endif
9fbc78
%ifarch ppc
9fbc78
%global oformat OUTPUT_FORMAT(elf32-powerpc)
9fbc78
%global oformat2 OUTPUT_FORMAT(elf64-powerpc)
9fbc78
%endif
9fbc78
%ifarch ppc64
9fbc78
%global oformat OUTPUT_FORMAT(elf64-powerpc)
9fbc78
%global oformat2 OUTPUT_FORMAT(elf32-powerpc)
9fbc78
%endif
9fbc78
%ifarch s390
9fbc78
%global oformat OUTPUT_FORMAT(elf32-s390)
9fbc78
%endif
9fbc78
%ifarch s390x
9fbc78
%global oformat OUTPUT_FORMAT(elf64-s390)
9fbc78
%global oformat2 OUTPUT_FORMAT(elf32-s390)
9fbc78
%endif
9fbc78
%ifarch ia64
9fbc78
%global oformat OUTPUT_FORMAT(elf64-ia64-little)
9fbc78
%endif
9fbc78
%ifarch ppc64le
9fbc78
%global oformat OUTPUT_FORMAT(elf64-powerpcle)
9fbc78
%endif
9fbc78
%ifarch aarch64
9fbc78
%global oformat OUTPUT_FORMAT(elf64-littleaarch64)
9fbc78
%endif
9fbc78
%if 0%{?rhel} == 6
9fbc78
ExclusiveArch: x86_64 %{ix86}
9fbc78
%endif
9fbc78
%if 0%{?rhel} == 7
9fbc78
ExcludeArch: aarch64
9fbc78
%endif
9fbc78
9fbc78
Patch0: gcc12-hack.patch
9fbc78
Patch2: gcc12-sparc-config-detection.patch
9fbc78
Patch3: gcc12-libgomp-omp_h-multilib.patch
9fbc78
Patch4: gcc12-libtool-no-rpath.patch
9fbc78
Patch5: gcc12-isl-dl.patch
9fbc78
Patch6: gcc12-isl-dl2.patch
9fbc78
Patch7: gcc12-libstdc++-docs.patch
9fbc78
Patch8: gcc12-no-add-needed.patch
9fbc78
Patch9: gcc12-Wno-format-security.patch
9fbc78
Patch10: gcc12-rh1574936.patch
9fbc78
Patch11: gcc12-d-shared-libphobos.patch
5e6e6d
Patch12: gcc12-pr107468.patch
5e6e6d
Patch15: gcc12-static-libquadmath.patch
5e6e6d
Patch16: gcc12-FMA-chains.patch
9fbc78
9fbc78
Patch100: gcc12-fortran-fdec-duplicates.patch
9fbc78
Patch101: gcc12-fortran-flogical-as-integer.patch
9fbc78
Patch102: gcc12-fortran-fdec-override-kind.patch
9fbc78
Patch103: gcc12-fortran-fdec-non-logical-if.patch
9fbc78
9fbc78
Patch1000: gcc12-libstdc++-compat.patch
9fbc78
Patch1001: gcc12-alt-compat-test.patch
9fbc78
Patch1002: gcc12-libgfortran-compat.patch
9fbc78
9fbc78
Patch2001: doxygen-1.7.1-config.patch
9fbc78
Patch2002: doxygen-1.7.5-timestamp.patch
9fbc78
Patch2003: doxygen-1.8.0-rh856725.patch
9fbc78
9fbc78
Patch3000: 0001-basic_string-reserve-n-semantics-are-not-available-i.patch
9fbc78
Patch3001: 0004-operator-istream-char-N-eofbit-fixes-are-not-availab.patch
9fbc78
Patch3002: 0005-Disable-tests-for-PR-libstdc-79820-and-PR-libstdc-81.patch
9fbc78
Patch3003: 0006-Don-t-assume-has_facet-codecvt_c16-when-run-against-.patch
9fbc78
Patch3004: 0008-testsuite-build-plugins-with-std-c-11.patch
9fbc78
Patch3005: 0009-Fix-22_locale-locale-cons-unicode.cc-when-run-under-.patch
9fbc78
Patch3006: 0010-Don-t-verify-exception-handling-in-basic_filebuf-clo.patch
9fbc78
Patch3007: 0011-Add-dts.exp-and-use-it-to-fix-22_locale-messages-136.patch
9fbc78
Patch3008: 0012-dts.exp-use-usr-bin-gcc.patch
9fbc78
Patch3009: 0013-Rename-__CXXSTDLIB_SO_VERSION__-to-__LIBSTDCXX_SO_VE.patch
9fbc78
Patch3010: 0014-Conditionalize-tests-for-PR-libstdc-98466-on-__LIBST.patch
9fbc78
Patch3011: 0015-Conditionalize-test-for-PR-libstdc-87135-on-__LIBSTD.patch
9fbc78
Patch3012: 0016-Conditionalize-test-for-hashtable-bucket-sizes-on-__.patch
9fbc78
Patch3013: 0017-Conditionalize-test-for-PR-libstdc-71181-on-__LIBSTD.patch
9fbc78
Patch3014: gcc12-dg-ice-fixes.patch
9fbc78
Patch3015: 0018-Use-CXX11-ABI.patch
9fbc78
Patch3016: 0019-xfails.patch
9fbc78
Patch3017: 0020-more-fixes.patch
9fbc78
Patch3018: 0021-libstdc++-disable-tests.patch
9fbc78
Patch3019: 0022-libstdc++-revert-behavior.patch
5e6e6d
Patch3020: gcc12-testsuite-typo.patch
9fbc78
9fbc78
%if 0%{?rhel} == 9
9fbc78
%global nonsharedver 110
9fbc78
%endif
9fbc78
%if 0%{?rhel} == 8
9fbc78
%global nonsharedver 80
9fbc78
%endif
9fbc78
%if 0%{?rhel} == 7
9fbc78
%global nonsharedver 48
9fbc78
%endif
9fbc78
%if 0%{?rhel} == 6
9fbc78
%global nonsharedver 44
9fbc78
%endif
9fbc78
9fbc78
%if 0%{?scl:1}
9fbc78
%global _gnu %{nil}
9fbc78
%else
9fbc78
%global _gnu -gnueabi
9fbc78
%endif
9fbc78
%ifarch sparcv9
9fbc78
%global gcc_target_platform sparc64-%{_vendor}-%{_target_os}
9fbc78
%endif
9fbc78
%ifarch ppc ppc64p7
9fbc78
%global gcc_target_platform ppc64-%{_vendor}-%{_target_os}
9fbc78
%endif
9fbc78
%ifnarch sparcv9 ppc ppc64p7
9fbc78
%global gcc_target_platform %{_target_platform}
9fbc78
%endif
9fbc78
9fbc78
%description
9fbc78
The %{?scl_prefix}gcc%{!?scl:12} package contains the GNU Compiler Collection version 10.
9fbc78
9fbc78
%package -n libgcc
9fbc78
Summary: GCC version 12 shared support library
9fbc78
Autoreq: false
9fbc78
9fbc78
%description -n libgcc
9fbc78
This package contains GCC shared support library which is needed
9fbc78
e.g. for exception handling support.
9fbc78
9fbc78
%package c++
9fbc78
Summary: C++ support for GCC version 12
9fbc78
Requires: %{?scl_prefix}gcc%{!?scl:12} = %{version}-%{release}
9fbc78
%if 0%{?rhel} >= 7
9fbc78
Requires: libstdc++
9fbc78
%else
9fbc78
Requires: libstdc++ >= 4.4.4-13
9fbc78
%endif
9fbc78
Requires: %{?scl_prefix}libstdc++%{!?scl:12}-devel = %{version}-%{release}
9fbc78
Autoreq: true
9fbc78
9fbc78
%description c++
9fbc78
This package adds C++ support to the GNU Compiler Collection
9fbc78
version 12.  It includes support for most of the current C++ specification
9fbc78
and a lot of support for the upcoming C++ specification.
9fbc78
9fbc78
%package -n libstdc++
9fbc78
Summary: GNU Standard C++ Library
9fbc78
Autoreq: true
9fbc78
Requires: glibc >= 2.10.90-7
9fbc78
9fbc78
%description -n libstdc++
9fbc78
The libstdc++ package contains a rewritten standard compliant GCC Standard
9fbc78
C++ Library.
9fbc78
9fbc78
%package -n %{?scl_prefix}libstdc++%{!?scl:12}-devel
9fbc78
Summary: Header files and libraries for C++ development
9fbc78
%if 0%{?rhel} >= 7
9fbc78
Requires: libstdc++
9fbc78
%else
9fbc78
Requires: libstdc++ >= 4.4.4-13
9fbc78
%endif
9fbc78
Requires: libstdc++%{?_isa}
9fbc78
Autoreq: true
9fbc78
9fbc78
%description -n %{?scl_prefix}libstdc++%{!?scl:12}-devel
9fbc78
This is the GNU implementation of the standard C++ libraries.  This
9fbc78
package includes the header files and libraries needed for C++
9fbc78
development. This includes rewritten implementation of STL.
9fbc78
9fbc78
%package -n %{?scl_prefix}libstdc++%{!?scl:12}-docs
9fbc78
Summary: Documentation for the GNU standard C++ library
9fbc78
Autoreq: true
9fbc78
9fbc78
%description -n %{?scl_prefix}libstdc++%{!?scl:12}-docs
9fbc78
Manual, doxygen generated API information and Frequently Asked Questions
9fbc78
for the GNU standard C++ library.
9fbc78
9fbc78
%package gfortran
9fbc78
Summary: Fortran support for GCC 12
9fbc78
Requires: %{?scl_prefix}gcc%{!?scl:12} = %{version}-%{release}
9fbc78
%if 0%{?rhel} > 7
9fbc78
Requires: libgfortran >= 8.1.1
9fbc78
%else
9fbc78
Requires: libgfortran5 >= 8.1.1
9fbc78
%endif
9fbc78
Autoreq: true
9fbc78
9fbc78
%if %{build_libquadmath}
9fbc78
%if 0%{!?scl:1}
9fbc78
Requires: libquadmath
9fbc78
%endif
9fbc78
Requires: %{?scl_prefix}libquadmath-devel = %{version}-%{release}
9fbc78
%endif
9fbc78
Autoreq: true
9fbc78
9fbc78
%description gfortran
9fbc78
The %{?scl_prefix}gcc%{!?scl:10}-gfortran package provides support for compiling Fortran
9fbc78
programs with the GNU Compiler Collection.
9fbc78
9fbc78
9fbc78
%package gdb-plugin
9fbc78
Summary: GCC 12 plugin for GDB
9fbc78
Requires: %{?scl_prefix}gcc%{!?scl:12} = %{version}-%{release}
9fbc78
9fbc78
%description gdb-plugin
9fbc78
This package contains GCC 12 plugin for GDB C expression evaluation.
9fbc78
9fbc78
%package -n %{?scl_prefix}libgccjit
9fbc78
Summary: Library for embedding GCC inside programs and libraries
9fbc78
Requires: %{?scl_prefix}gcc%{!?scl:12} = %{version}-%{release}
9fbc78
9fbc78
%description -n %{?scl_prefix}libgccjit
9fbc78
This package contains shared library with GCC 12 JIT front-end.
9fbc78
9fbc78
%package -n %{?scl_prefix}libgccjit-devel
9fbc78
Summary: Support for embedding GCC inside programs and libraries
9fbc78
Group: Development/Libraries
9fbc78
Requires: %{?scl_prefix}libgccjit = %{version}-%{release}
9fbc78
Requires: %{?scl_prefix}libgccjit-docs = %{version}-%{release}
9fbc78
9fbc78
%description -n %{?scl_prefix}libgccjit-devel
9fbc78
This package contains header files for GCC 12 JIT front end.
9fbc78
9fbc78
%package -n %{?scl_prefix}libgccjit-docs
9fbc78
Summary: Documentation for embedding GCC inside programs and libraries
9fbc78
Group: Development/Libraries
9fbc78
%if 0%{?rhel} > 7
9fbc78
BuildRequires: python3-sphinx
9fbc78
%else
9fbc78
BuildRequires: python-sphinx
9fbc78
%endif
9fbc78
Requires(post): /sbin/install-info
9fbc78
Requires(preun): /sbin/install-info
9fbc78
9fbc78
%description -n %{?scl_prefix}libgccjit-docs
9fbc78
This package contains documentation for GCC 12 JIT front-end.
9fbc78
9fbc78
%package -n libquadmath
9fbc78
Summary: GCC 12 __float128 shared support library
9fbc78
Requires(post): /sbin/install-info
9fbc78
Requires(preun): /sbin/install-info
9fbc78
9fbc78
%description -n libquadmath
9fbc78
This package contains GCC shared support library which is needed
9fbc78
for __float128 math support and for Fortran REAL*16 support.
9fbc78
9fbc78
%package -n %{?scl_prefix}libquadmath-devel
9fbc78
Summary: GCC 12 __float128 support
9fbc78
Group: Development/Libraries
9fbc78
%if 0%{!?scl:1}
9fbc78
Requires: %{?scl_prefix}libquadmath%{_isa} = %{version}-%{release}
9fbc78
%else
9fbc78
%if 0%{?rhel} >= 7
9fbc78
Requires: libquadmath%{_isa}
9fbc78
%endif
9fbc78
%endif
9fbc78
Requires: %{?scl_prefix}gcc%{!?scl:12} = %{version}-%{release}
9fbc78
9fbc78
%description -n %{?scl_prefix}libquadmath-devel
9fbc78
This package contains headers for building Fortran programs using
9fbc78
REAL*16 and programs using __float128 math.
9fbc78
9fbc78
%package -n libitm
9fbc78
Summary: The GNU Transactional Memory library
9fbc78
Group: System Environment/Libraries
9fbc78
Requires(post): /sbin/install-info
9fbc78
Requires(preun): /sbin/install-info
9fbc78
9fbc78
%description -n libitm
9fbc78
This package contains the GNU Transactional Memory library
9fbc78
which is a GCC transactional memory support runtime library.
9fbc78
9fbc78
%package -n %{?scl_prefix}libitm-devel
9fbc78
Summary: The GNU Transactional Memory support
9fbc78
Requires: libitm%{_isa} >= 4.7.0-1
9fbc78
Requires: %{?scl_prefix}gcc%{!?scl:12} = %{version}-%{release}
9fbc78
9fbc78
%description -n %{?scl_prefix}libitm-devel
9fbc78
This package contains headers and support files for the
9fbc78
GNU Transactional Memory library.
9fbc78
9fbc78
%package plugin-devel
9fbc78
Summary: Support for compiling GCC plugins
9fbc78
Requires: %{?scl_prefix}gcc%{!?scl:12} = %{version}-%{release}
9fbc78
%if 0%{?rhel} >= 7
9fbc78
Requires: gmp-devel >= 4.3.2
9fbc78
Requires: mpfr-devel >= 3.1.0
9fbc78
Requires: libmpc-devel >= 0.8.1
9fbc78
%endif
9fbc78
9fbc78
%description plugin-devel
9fbc78
This package contains header files and other support files
9fbc78
for compiling GCC 12 plugins.  The GCC plugin ABI is currently
9fbc78
not stable, so plugins must be rebuilt any time GCC is updated.
9fbc78
9fbc78
%package -n libatomic
9fbc78
Summary: The GNU Atomic library
9fbc78
Group: System Environment/Libraries
9fbc78
Requires(post): /sbin/install-info
9fbc78
Requires(preun): /sbin/install-info
9fbc78
9fbc78
%description -n libatomic
9fbc78
This package contains the GNU Atomic library
9fbc78
which is a GCC support runtime library for atomic operations not supported
9fbc78
by hardware.
9fbc78
9fbc78
%package -n %{?scl_prefix}libatomic-devel
9fbc78
Summary: The GNU Atomic static library
9fbc78
Requires: libatomic%{_isa} >= 4.8.0
9fbc78
9fbc78
%description -n %{?scl_prefix}libatomic-devel
9fbc78
This package contains GNU Atomic static libraries.
9fbc78
9fbc78
%package -n libasan8
9fbc78
Summary: The Address Sanitizer runtime library from GCC 12
9fbc78
Group: System Environment/Libraries
9fbc78
Requires(post): /sbin/install-info
9fbc78
Requires(preun): /sbin/install-info
9fbc78
9fbc78
%description -n libasan8
9fbc78
This package contains the Address Sanitizer library from GCC 12
9fbc78
which is used for -fsanitize=address instrumented programs.
9fbc78
9fbc78
%package -n %{?scl_prefix}libasan-devel
9fbc78
Summary: The Address Sanitizer static library
9fbc78
Requires: libasan8%{_isa} >= 12.1.1
9fbc78
Obsoletes: libasan5 <= 8.3.1
9fbc78
9fbc78
%description -n %{?scl_prefix}libasan-devel
9fbc78
This package contains Address Sanitizer static runtime library.
9fbc78
9fbc78
%package -n libtsan2
9fbc78
Summary: The Thread Sanitizer runtime library
9fbc78
Requires(post): /sbin/install-info
9fbc78
Requires(preun): /sbin/install-info
9fbc78
9fbc78
%description -n libtsan2
9fbc78
This package contains the Thread Sanitizer library
9fbc78
which is used for -fsanitize=thread instrumented programs.
9fbc78
9fbc78
%package -n %{?scl_prefix}libtsan-devel
9fbc78
Summary: The Thread Sanitizer static library
9fbc78
Requires: libtsan2%{_isa} >= 12.1.1
9fbc78
9fbc78
%description -n %{?scl_prefix}libtsan-devel
9fbc78
This package contains Thread Sanitizer static runtime library.
9fbc78
9fbc78
%package -n libubsan1
9fbc78
Summary: The Undefined Behavior Sanitizer runtime library
9fbc78
Requires(post): /sbin/install-info
9fbc78
Requires(preun): /sbin/install-info
9fbc78
9fbc78
%description -n libubsan1
9fbc78
This package contains the Undefined Behavior Sanitizer library
9fbc78
which is used for -fsanitize=undefined instrumented programs.
9fbc78
9fbc78
%package -n %{?scl_prefix}libubsan-devel
9fbc78
Summary: The Undefined Behavior Sanitizer static library
9fbc78
%if 0%{?rhel} > 7
9fbc78
Requires: libubsan%{_isa} >= 8.3.1
9fbc78
Obsoletes: libubsan1 <= 8.3.1
9fbc78
%else
9fbc78
Requires: libubsan1%{_isa} >= 8.3.1
9fbc78
%endif
9fbc78
9fbc78
%description -n %{?scl_prefix}libubsan-devel
9fbc78
This package contains Undefined Behavior Sanitizer static runtime library.
9fbc78
9fbc78
%package -n liblsan
9fbc78
Summary: The Leak Sanitizer runtime library
9fbc78
Requires(post): /sbin/install-info
9fbc78
Requires(preun): /sbin/install-info
9fbc78
9fbc78
%description -n liblsan
9fbc78
This package contains the Leak Sanitizer library
9fbc78
which is used for -fsanitize=leak instrumented programs.
9fbc78
9fbc78
%package -n %{?scl_prefix}liblsan-devel
9fbc78
Summary: The Leak Sanitizer static library
9fbc78
Requires: liblsan%{_isa} >= 5.1.1
9fbc78
9fbc78
%description -n %{?scl_prefix}liblsan-devel
9fbc78
This package contains Leak Sanitizer static runtime library.
9fbc78
9fbc78
%package -n %{?scl_prefix}offload-nvptx
9fbc78
Summary: Offloading compiler to NVPTX
9fbc78
Requires: gcc >= 8.3.1
9fbc78
Requires: libgomp-offload-nvptx >= 8.3.1
9fbc78
9fbc78
%description -n %{?scl_prefix}offload-nvptx
9fbc78
The gcc-offload-nvptx package provides offloading support for
9fbc78
NVidia PTX.  OpenMP and OpenACC programs linked with -fopenmp will
9fbc78
by default add PTX code into the binaries, which can be offloaded
9fbc78
to NVidia PTX capable devices if available.
9fbc78
9fbc78
%package plugin-annobin
9fbc78
Summary: The annobin plugin for gcc, built by the installed version of gcc
9fbc78
Requires: gcc = %{version}-%{release}
9fbc78
%if %{build_annobin_plugin}
9fbc78
BuildRequires: annobin >= 10.62, annobin-plugin-gcc, rpm-devel, binutils-devel, xz
9fbc78
%endif
9fbc78
9fbc78
%description plugin-annobin
9fbc78
This package adds a version of the annobin plugin for gcc.  This version
9fbc78
of the plugin is explicitly built by the same version of gcc that is installed
9fbc78
so that there cannot be any synchronization problems.
9fbc78
9fbc78
%prep
9fbc78
%if 0%{?rhel} >= 7
9fbc78
%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 4 -a 5
9fbc78
%else
9fbc78
%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2 -a 3 -a 7 -a 8
9fbc78
%endif
9fbc78
%patch0 -p0 -b .hack~
9fbc78
%patch2 -p0 -b .sparc-config-detection~
9fbc78
%patch3 -p0 -b .libgomp-omp_h-multilib~
9fbc78
%patch4 -p0 -b .libtool-no-rpath~
9fbc78
%if %{build_isl}
9fbc78
%patch5 -p0 -b .isl-dl~
9fbc78
%patch6 -p0 -b .isl-dl2~
9fbc78
%endif
9fbc78
%if %{build_libstdcxx_docs}
9fbc78
%patch7 -p0 -b .libstdc++-docs~
9fbc78
%endif
9fbc78
%patch8 -p0 -b .no-add-needed~
9fbc78
%patch9 -p0 -b .Wno-format-security~
9fbc78
%if 0%{?fedora} >= 29 || 0%{?rhel} > 7
9fbc78
%patch10 -p0 -b .rh1574936~
9fbc78
%endif
9fbc78
%patch11 -p0 -b .d-shared-libphobos~
5e6e6d
%patch12 -p0 -b .pr107468~
5e6e6d
%patch15 -p0 -b .static-libquadmath~
5e6e6d
%patch16 -p1 -b .fma~
9fbc78
9fbc78
%if 0%{?rhel} >= 6
9fbc78
%patch100 -p1 -b .fortran-fdec-duplicates~
9fbc78
%patch101 -p1 -b .fortran-flogical-as-integer~
9fbc78
%patch102 -p1 -b .fortran-fdec-override-kind~
9fbc78
%patch103 -p1 -b .fortran-fdec-non-logical-if~
9fbc78
%endif
9fbc78
9fbc78
%ifarch %{arm}
9fbc78
rm -f gcc/testsuite/go.test/test/fixedbugs/issue19182.go
9fbc78
%endif
9fbc78
%if 0%{?rhel} <= 8
9fbc78
# Requires pthread_cond_clockwait, only present in glibc 2.30.
9fbc78
rm -f gcc/testsuite/g++.dg/tsan/pthread_cond_clockwait.C
9fbc78
%endif
9fbc78
rm -f libphobos/testsuite/libphobos.gc/forkgc2.d
9fbc78
#rm -rf libphobos/testsuite/libphobos.gc
9fbc78
9fbc78
%patch1000 -p0 -b .libstdc++-compat~
9fbc78
%ifarch %{ix86} x86_64
9fbc78
%if 0%{?rhel} < 7
9fbc78
# On i?86/x86_64 there are some incompatibilities in _Decimal* as well as
9fbc78
# aggregates containing larger vector passing.
9fbc78
%patch1001 -p0 -b .alt-compat-test~
9fbc78
%endif
9fbc78
%endif
9fbc78
%patch1002 -p0 -b .libgfortran-compat~
9fbc78
9fbc78
%if %{build_libstdcxx_docs}
9fbc78
%if 0%{?rhel} < 7
9fbc78
cd doxygen-%{doxygen_version}
9fbc78
%patch2001 -p1 -b .config~
9fbc78
%patch2002 -p1 -b .timestamp~
9fbc78
%patch2003 -p1 -b .rh856725~
9fbc78
cd ..
9fbc78
%endif
9fbc78
%endif
9fbc78
9fbc78
# Apply DTS-specific testsuite patches.
9fbc78
%patch3000 -p1 -b .dts-test-0~
9fbc78
%patch3001 -p1 -b .dts-test-1~
9fbc78
%patch3002 -p1 -b .dts-test-2~
9fbc78
%patch3003 -p1 -b .dts-test-3~
9fbc78
%patch3004 -p1 -b .dts-test-4~
9fbc78
%patch3005 -p1 -b .dts-test-5~
9fbc78
%patch3006 -p1 -b .dts-test-6~
9fbc78
%patch3007 -p1 -b .dts-test-7~
9fbc78
%patch3008 -p1 -b .dts-test-8~
9fbc78
%patch3009 -p1 -b .dts-test-9~
9fbc78
%patch3010 -p1 -b .dts-test-10~
9fbc78
%patch3011 -p1 -b .dts-test-11~
9fbc78
%patch3012 -p1 -b .dts-test-12~
9fbc78
%patch3013 -p1 -b .dts-test-13~
9fbc78
%patch3014 -p1 -b .dts-test-14~
9fbc78
%patch3015 -p1 -b .dts-test-15~
9fbc78
%patch3016 -p1 -b .dts-test-16~
9fbc78
%patch3017 -p1 -b .dts-test-17~
9fbc78
%patch3018 -p1 -b .dts-test-18~
9fbc78
%if 0%{?rhel} <= 7
9fbc78
%patch3019 -p1 -b .dts-test-19~
9fbc78
%endif
5e6e6d
%patch3020 -p1 -b .typo
9fbc78
9fbc78
find gcc/testsuite -name \*.pr96939~ | xargs rm -f
9fbc78
9fbc78
echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
9fbc78
9fbc78
%if 0%{?rhel} == 6
9fbc78
# Default to -gdwarf-3 rather than -gdwarf-5
9fbc78
sed -i '/UInteger Var(dwarf_version)/s/Init(5)/Init(3)/' gcc/common.opt
9fbc78
sed -i 's/\(version for most targets is \)5 /\13 /' gcc/doc/invoke.texi
9fbc78
%endif
9fbc78
%if 0%{?rhel} <= 8
9fbc78
# Default to -gdwarf-4 rather than -gdwarf-5
9fbc78
sed -i '/UInteger Var(dwarf_version)/s/Init(5)/Init(4)/' gcc/common.opt
9fbc78
sed -i 's/\(version for most targets is \)5 /\14 /' gcc/doc/invoke.texi
9fbc78
%endif
9fbc78
9fbc78
cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
9fbc78
cp -a libstdc++-v3/config/cpu/i{4,3}86/opt
9fbc78
echo 'TM_H += $(srcdir)/config/rs6000/rs6000-modes.h' >> gcc/config/rs6000/t-rs6000
9fbc78
9fbc78
./contrib/gcc_update --touch
9fbc78
9fbc78
LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
9fbc78
9fbc78
sed -i -e 's/Common Driver Var(flag_report_bug)/& Init(1)/' gcc/common.opt
9fbc78
sed -i -e 's/context->report_bug = false;/context->report_bug = true;/' gcc/diagnostic.cc
9fbc78
9fbc78
%ifarch ppc
9fbc78
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
9fbc78
  mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
9fbc78
  mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{,64/}baseline_symbols.txt
9fbc78
  mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{32/,}baseline_symbols.txt
9fbc78
  rm -rf libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32
9fbc78
fi
9fbc78
%endif
9fbc78
%ifarch sparc
9fbc78
if [ -d libstdc++-v3/config/abi/post/sparc64-linux-gnu ]; then
9fbc78
  mkdir -p libstdc++-v3/config/abi/post/sparc64-linux-gnu/64
9fbc78
  mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{,64/}baseline_symbols.txt
9fbc78
  mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{32/,}baseline_symbols.txt
9fbc78
  rm -rf libstdc++-v3/config/abi/post/sparc64-linux-gnu/32
9fbc78
fi
9fbc78
%endif
9fbc78
9fbc78
# This test causes fork failures, because it spawns way too many threads
9fbc78
rm -f gcc/testsuite/go.test/test/chan/goroutines.go
9fbc78
9fbc78
# These tests get stuck and don't timeout.
9fbc78
%ifarch ppc ppc64 ppc64le
9fbc78
rm -f libgomp/testsuite/libgomp.c/target-*.c
9fbc78
rm -rf libgomp/testsuite/libgomp.oacc*
9fbc78
rm -rf libgomp/testsuite/libgomp.graphite*
9fbc78
# This uses a removed file (#2093997).
9fbc78
rm -rf libgomp/testsuite/libgomp.fortran/pr90030.f90
9fbc78
%endif
9fbc78
# This test gets stuck.
9fbc78
%ifarch %{ix86} ppc64 s390x
9fbc78
rm -f libstdc++-v3/testsuite/30_threads/future/members/poll.cc
9fbc78
%endif
9fbc78
9fbc78
%build
9fbc78
9fbc78
# Undo the broken autoconf change in recent Fedora versions
9fbc78
export CONFIG_SITE=NONE
9fbc78
9fbc78
# GCC 11 needs C++11 support to bootstrap, but system RHEL 6 gcc is too old.
9fbc78
# Use devtoolset-11 to build it.
9fbc78
%if 0%{?rhel} == 6
9fbc78
export PATH=/opt/rh/devtoolset-11/root/usr/bin:${PATH:+:${PATH}}
9fbc78
%endif
9fbc78
9fbc78
CC=gcc
9fbc78
CXX=g++
9fbc78
OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'`
9fbc78
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-flto=auto//g;s/-flto//g;s/-ffat-lto-objects//g'`
9fbc78
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'`
9fbc78
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'`
9fbc78
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'`
9fbc78
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Werror=format-security/-Wformat-security/g'`
9fbc78
%ifarch sparc
9fbc78
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcpu=v[78]//g'`
9fbc78
%endif
9fbc78
%ifarch %{ix86}
9fbc78
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i.86//g'`
9fbc78
%endif
9fbc78
OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
9fbc78
case "$OPT_FLAGS" in
9fbc78
  *-fasynchronous-unwind-tables*)
9fbc78
    sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables /' \
9fbc78
      libgcc/Makefile.in
9fbc78
    ;;
9fbc78
esac
9fbc78
9fbc78
%if %{build_offload_nvptx}
9fbc78
mkdir obji
9fbc78
IROOT=`pwd`/obji
9fbc78
cd nvptx-tools-%{nvptx_tools_gitrev}
9fbc78
rm -rf obj-%{gcc_target_platform}
9fbc78
mkdir obj-%{gcc_target_platform}
9fbc78
cd obj-%{gcc_target_platform}
9fbc78
CC="$CC" CXX="$CXX" CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" \
9fbc78
../configure --prefix=%{_prefix}
9fbc78
make %{?_smp_mflags}
9fbc78
make install prefix=${IROOT}%{_prefix}
9fbc78
cd ../..
9fbc78
9fbc78
ln -sf newlib-cygwin-%{newlib_cygwin_gitrev}/newlib newlib
9fbc78
rm -rf obj-offload-nvptx-none
9fbc78
mkdir obj-offload-nvptx-none
9fbc78
9fbc78
cd obj-offload-nvptx-none
9fbc78
CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
9fbc78
	CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \
9fbc78
		  | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \
9fbc78
	XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
9fbc78
	../configure --disable-bootstrap --disable-sjlj-exceptions \
9fbc78
	--enable-newlib-io-long-long --with-build-time-tools=${IROOT}%{_prefix}/nvptx-none/bin \
9fbc78
	--target nvptx-none --enable-as-accelerator-for=%{gcc_target_platform} \
9fbc78
	--enable-languages=c,c++,fortran,lto \
9fbc78
	--prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
9fbc78
	--with-bugurl=http://bugzilla.redhat.com/bugzilla \
9fbc78
	--enable-checking=release --with-system-zlib \
9fbc78
	--with-gcc-major-version-only --without-isl
9fbc78
make %{?_smp_mflags}
9fbc78
cd ..
9fbc78
rm -f newlib
9fbc78
%endif
9fbc78
9fbc78
rm -rf obj-%{gcc_target_platform}
9fbc78
mkdir obj-%{gcc_target_platform}
9fbc78
cd obj-%{gcc_target_platform}
9fbc78
9fbc78
%if %{build_libstdcxx_docs}
9fbc78
9fbc78
%if 0%{?rhel} < 7
9fbc78
mkdir doxygen-install
9fbc78
pushd ../doxygen-%{doxygen_version}
9fbc78
./configure --prefix `cd ..; pwd`/obj-%{gcc_target_platform}/doxygen-install \
9fbc78
  --shared --release --english-only
9fbc78
9fbc78
make %{?_smp_mflags} all
9fbc78
make install
9fbc78
popd
9fbc78
export PATH=`pwd`/doxygen-install/bin/${PATH:+:${PATH}}
9fbc78
%endif
9fbc78
%endif
9fbc78
9fbc78
%if 0%{?rhel} < 7
9fbc78
# Build GMP for RHEL 6.  Build it first because MPC and MPFR need it.
9fbc78
mkdir gmp gmp-install
9fbc78
cd gmp
9fbc78
../../gmp-%{gmp_version}/configure --disable-shared --disable-assembly \
9fbc78
  CFLAGS="${CFLAGS:-%optflags} -fPIC" CXXFLAGS="${CXXFLAGS:-%optflags} -fPIC" \
9fbc78
  --prefix=`cd ..; pwd`/gmp-install
9fbc78
make %{?_smp_mflags}
9fbc78
make install
9fbc78
cd ..
9fbc78
9fbc78
# It also needs MPFR.
9fbc78
mkdir mpfr mpfr-install
9fbc78
cd mpfr
9fbc78
../../mpfr-%{mpfr_version}/configure --disable-shared \
9fbc78
  --with-gmp=`cd ..; pwd`/gmp-install \
9fbc78
  CFLAGS="${CFLAGS:-%optflags} -fPIC" CXXFLAGS="${CXXFLAGS:-%optflags} -fPIC" \
9fbc78
  --prefix=`cd ..; pwd`/mpfr-install
9fbc78
make %{?_smp_mflags}
9fbc78
make install
9fbc78
cd ..
9fbc78
9fbc78
mkdir mpc mpc-install
9fbc78
cd mpc
9fbc78
../../mpc-%{mpc_version}/configure --disable-shared \
9fbc78
  --with-mpfr=`cd ..; pwd`/mpfr-install \
9fbc78
  --with-gmp=`cd ..; pwd`/gmp-install \
9fbc78
  CFLAGS="${CFLAGS:-%optflags} -fPIC" CXXFLAGS="${CXXFLAGS:-%optflags} -fPIC" \
9fbc78
  --prefix=`cd ..; pwd`/mpc-install
9fbc78
make %{?_smp_mflags}
9fbc78
make install
9fbc78
cd ..
9fbc78
%endif
9fbc78
9fbc78
%if %{build_isl}
9fbc78
mkdir isl-build isl-install
9fbc78
%ifarch s390 s390x
9fbc78
ISL_FLAG_PIC=-fPIC
9fbc78
%else
9fbc78
ISL_FLAG_PIC=-fpic
9fbc78
%endif
9fbc78
cd isl-build
5e6e6d
sed -i 's|libisl\([^-]\)|libgcc12privateisl\1|g' \
9fbc78
  ../../isl-%{isl_version}/Makefile.{am,in}
9fbc78
../../isl-%{isl_version}/configure \
9fbc78
  CC=/usr/bin/gcc CXX=/usr/bin/g++ \
9fbc78
  CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC" --prefix=`cd ..; pwd`/isl-install
9fbc78
make %{?_smp_mflags}
9fbc78
make install
9fbc78
cd ../isl-install/lib
5e6e6d
rm libgcc12privateisl.so{,.23}
5e6e6d
mv libgcc12privateisl.so.23.1.0 libisl.so.23
5e6e6d
ln -sf libisl.so.23 libisl.so
9fbc78
cd ../..
9fbc78
%endif
9fbc78
9fbc78
# Disabled on Intel because of:
9fbc78
# https://bugzilla.redhat.com/show_bug.cgi?id=2091571#c1
9fbc78
%if 0%{?rhel} == 8
9fbc78
%ifnarch %{ix86} x86_64
9fbc78
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
9fbc78
%endif
9fbc78
%else
9fbc78
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
9fbc78
%endif
9fbc78
9fbc78
# We're going to use the old long double format (double double) until RHEL10.
9fbc78
# Only -static-lib{stdc++,gfortran}/libgcc would work with IEEE double.
9fbc78
# Upstream also uses the old long double format, but Fedora uses the new
9fbc78
# format.  To make things clearer, --with-long-double-format=ibm is used
9fbc78
# explicitly.
9fbc78
CONFIGURE_OPTS="\
9fbc78
	--prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
9fbc78
	--with-bugurl=http://bugzilla.redhat.com/bugzilla \
9fbc78
	--enable-shared --enable-threads=posix --enable-checking=release \
9fbc78
%ifarch ppc64le
9fbc78
	--enable-targets=powerpcle-linux \
9fbc78
%endif
9fbc78
%ifarch ppc64le %{mips} s390x
9fbc78
	--disable-multilib \
9fbc78
%else
9fbc78
	--enable-multilib \
9fbc78
%endif
9fbc78
	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
9fbc78
	--enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only \
9fbc78
	--enable-libstdcxx-backtrace \
9fbc78
%ifnarch %{mips}
9fbc78
	--with-linker-hash-style=gnu \
9fbc78
%endif
9fbc78
%if 0%{?rhel} <= 7
9fbc78
	--with-default-libstdcxx-abi=gcc4-compatible \
9fbc78
%endif
9fbc78
	--enable-plugin --enable-initfini-array \
9fbc78
%if %{build_isl}
9fbc78
	--with-isl=`pwd`/isl-install \
9fbc78
%else
9fbc78
	--without-isl \
9fbc78
%endif
9fbc78
%if %{build_offload_nvptx}
9fbc78
	--enable-offload-targets=nvptx-none \
9fbc78
	--without-cuda-driver --enable-offload-defaulted \
9fbc78
%endif
9fbc78
%if 0%{?rhel} < 7
9fbc78
	--with-mpc=`pwd`/mpc-install \
9fbc78
	--with-mpfr=`pwd`/mpfr-install \
9fbc78
	--with-gmp=`pwd`/gmp-install \
9fbc78
%endif
9fbc78
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 7
9fbc78
%if %{attr_ifunc}
9fbc78
	--enable-gnu-indirect-function \
9fbc78
%endif
9fbc78
%endif
9fbc78
%ifarch %{arm}
9fbc78
	--disable-sjlj-exceptions \
9fbc78
%endif
9fbc78
%ifarch ppc ppc64 ppc64le ppc64p7
9fbc78
	--enable-secureplt \
9fbc78
%endif
9fbc78
%ifarch sparc sparcv9 sparc64 ppc ppc64 ppc64le ppc64p7 s390 s390x alpha
9fbc78
	--with-long-double-128 \
9fbc78
%endif
9fbc78
%ifarch ppc64le
9fbc78
	--with-long-double-format=ibm \
9fbc78
%endif
9fbc78
%ifarch sparc
9fbc78
	--disable-linux-futex \
9fbc78
%endif
9fbc78
%ifarch sparc64
9fbc78
	--with-cpu=ultrasparc \
9fbc78
%endif
9fbc78
%ifarch sparc sparcv9
9fbc78
	--host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7
9fbc78
%endif
9fbc78
%ifarch ppc ppc64 ppc64p7
9fbc78
%if 0%{?rhel} >= 7
9fbc78
	--with-cpu-32=power7 --with-tune-32=power7 --with-cpu-64=power7 --with-tune-64=power7 \
9fbc78
%endif
9fbc78
%if 0%{?rhel} == 6
9fbc78
	--with-cpu-32=power4 --with-tune-32=power6 --with-cpu-64=power4 --with-tune-64=power6 \
9fbc78
%endif
9fbc78
%endif
9fbc78
%ifarch ppc64le
9fbc78
%if 0%{?rhel} == 9
9fbc78
	--with-cpu-32=power9 --with-tune-32=power9 --with-cpu-64=power9 --with-tune-64=power9 \
9fbc78
%else
9fbc78
	--with-cpu-32=power8 --with-tune-32=power8 --with-cpu-64=power8 --with-tune-64=power8 \
9fbc78
%endif
9fbc78
%endif
9fbc78
%ifarch ppc
9fbc78
	--build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32
9fbc78
%endif
9fbc78
%ifarch %{ix86} x86_64
9fbc78
%if 0%{?rhel} >= 8
9fbc78
	--enable-cet \
9fbc78
%endif
9fbc78
	--with-tune=generic \
9fbc78
%endif
9fbc78
%if 0%{?rhel} >= 7
9fbc78
%ifarch %{ix86}
9fbc78
	--with-arch=x86-64 \
9fbc78
%endif
9fbc78
%ifarch x86_64
9fbc78
%if 0%{?rhel} > 8
9fbc78
	--with-arch_64=x86-64-v2 \
9fbc78
%endif
9fbc78
	--with-arch_32=x86-64 \
9fbc78
%endif
9fbc78
%else
9fbc78
%ifarch %{ix86}
9fbc78
	--with-arch=i686 \
9fbc78
%endif
9fbc78
%ifarch x86_64
9fbc78
	--with-arch_32=i686 \
9fbc78
%endif
9fbc78
%endif
9fbc78
%ifarch s390 s390x
9fbc78
%if 0%{?rhel} >= 7
9fbc78
%if 0%{?rhel} > 7
9fbc78
%if 0%{?rhel} > 8
9fbc78
%if 0%{?rhel} == 9
9fbc78
	--with-arch=z14 --with-tune=z15 \
9fbc78
%else
9fbc78
	--with-arch=z13 --with-tune=arch13 \
9fbc78
%endif
9fbc78
%else
9fbc78
	--with-arch=z13 --with-tune=z14 \
9fbc78
%endif
9fbc78
%else
9fbc78
	--with-arch=z196 --with-tune=zEC12 \
9fbc78
%endif
9fbc78
%else
9fbc78
%if 0%{?fedora} >= 26
9fbc78
	--with-arch=zEC12 --with-tune=z13 \
9fbc78
%else
9fbc78
	--with-arch=z9-109 --with-tune=z10 \
9fbc78
%endif
9fbc78
%endif
9fbc78
	--enable-decimal-float \
9fbc78
%endif
9fbc78
%ifarch armv7hl
9fbc78
	--with-tune=generic-armv7-a --with-arch=armv7-a \
9fbc78
	--with-float=hard --with-fpu=vfpv3-d16 --with-abi=aapcs-linux \
9fbc78
%endif
9fbc78
%ifarch mips mipsel
9fbc78
	--with-arch=mips32r2 --with-fp-32=xx \
9fbc78
%endif
9fbc78
%ifarch mips64 mips64el
9fbc78
	--with-arch=mips64r2 --with-abi=64 \
9fbc78
%endif
9fbc78
%ifarch riscv64
9fbc78
	--with-arch=rv64gc --with-abi=lp64d --with-multilib-list=lp64d \
9fbc78
%endif
9fbc78
%ifnarch sparc sparcv9 ppc
9fbc78
	--build=%{gcc_target_platform} \
9fbc78
%endif
9fbc78
%if 0%{?fedora} >= 35 || 0%{?rhel} >= 9
9fbc78
%ifnarch %{arm}
9fbc78
	--with-build-config=bootstrap-lto --enable-link-serialization=1 \
9fbc78
%endif
9fbc78
%endif
9fbc78
	"
9fbc78
9fbc78
CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
9fbc78
	CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \
9fbc78
		  | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \
9fbc78
	XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
9fbc78
	../configure --enable-bootstrap \
9fbc78
	--enable-languages=c,c++,fortran,lto \
9fbc78
	$CONFIGURE_OPTS
9fbc78
9fbc78
%ifarch sparc sparcv9 sparc64
9fbc78
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now bootstrap
9fbc78
%else
9fbc78
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now profiledbootstrap
9fbc78
%endif
9fbc78
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared%{nonsharedver} )' \
9fbc78
  > %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_system.so
9fbc78
9fbc78
# Relink libcc1 against -lstdc++_nonshared:
9fbc78
sed -i -e '/^postdeps/s/-lstdc++/-lstdc++_system/' libcc1/libtool
9fbc78
rm -f libcc1/libcc1.la
9fbc78
make -C libcc1 libcc1.la
9fbc78
9fbc78
CC="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cc`"
9fbc78
CXX="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cxx` `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-includes`"
9fbc78
9fbc78
# Build libgccjit separately, so that normal compiler binaries aren't -fpic
9fbc78
# unnecessarily.
9fbc78
mkdir objlibgccjit
9fbc78
cd objlibgccjit
9fbc78
CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
9fbc78
	CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \
9fbc78
		  | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \
9fbc78
	XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
9fbc78
	../../configure --disable-bootstrap --enable-host-shared \
9fbc78
	--enable-languages=jit $CONFIGURE_OPTS
9fbc78
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc
9fbc78
cp -a gcc/libgccjit.so* ../gcc/
9fbc78
cd ../gcc/
9fbc78
ln -sf xgcc %{gcc_target_platform}-gcc-%{gcc_major}
9fbc78
cp -a Makefile{,.orig}
9fbc78
sed -i -e '/^CHECK_TARGETS/s/$/ check-jit/' Makefile
9fbc78
touch -r Makefile.orig Makefile
9fbc78
rm Makefile.orig
9fbc78
make jit.sphinx.html
9fbc78
make jit.sphinx.install-html jit_htmldir=`pwd`/../../rpm.doc/libgccjit-devel/html
9fbc78
cd ..
9fbc78
9fbc78
%if %{build_isl}
5e6e6d
cp -a isl-install/lib/libisl.so.23 gcc/
9fbc78
%endif
9fbc78
9fbc78
# Make generated man pages even if Pod::Man is not new enough
9fbc78
perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
9fbc78
for i in ../gcc/doc/*.texi; do
9fbc78
  cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
9fbc78
done
9fbc78
make -C gcc generated-manpages
9fbc78
for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done
9fbc78
9fbc78
# Make generated doxygen pages.
9fbc78
%if %{build_libstdcxx_docs}
9fbc78
cd %{gcc_target_platform}/libstdc++-v3
9fbc78
make doc-html-doxygen
9fbc78
make doc-man-doxygen
9fbc78
cd ../..
9fbc78
%endif
9fbc78
9fbc78
# Copy various doc files here and there
9fbc78
cd ..
9fbc78
mkdir -p rpm.doc/gfortran rpm.doc/libquadmath rpm.doc/libitm
9fbc78
mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/jit,libstdc++-v3,libgomp,libcc1,libatomic,libsanitizer}
9fbc78
9fbc78
for i in {gcc,gcc/cp,gcc/jit,libstdc++-v3,libgomp,libcc1,libatomic,libsanitizer}/ChangeLog*; do
9fbc78
	cp -p $i rpm.doc/changelogs/$i
9fbc78
done
9fbc78
9fbc78
(cd gcc/fortran; for i in ChangeLog*; do
9fbc78
	cp -p $i ../../rpm.doc/gfortran/$i
9fbc78
done)
9fbc78
(cd libgfortran; for i in ChangeLog*; do
9fbc78
	cp -p $i ../rpm.doc/gfortran/$i.libgfortran
9fbc78
done)
9fbc78
%if %{build_libquadmath}
9fbc78
(cd libquadmath; for i in ChangeLog* COPYING.LIB; do
9fbc78
	cp -p $i ../rpm.doc/libquadmath/$i.libquadmath
9fbc78
done)
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
(cd libitm; for i in ChangeLog*; do
9fbc78
	cp -p $i ../rpm.doc/libitm/$i.libitm
9fbc78
done)
9fbc78
%endif
9fbc78
9fbc78
rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
9fbc78
find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
9fbc78
9fbc78
%if %{build_annobin_plugin}
9fbc78
mkdir annobin-plugin
9fbc78
cd annobin-plugin
9fbc78
tar xf %{_usrsrc}/annobin/latest-annobin.tar.xz
9fbc78
cd annobin*
9fbc78
touch aclocal.m4 configure Makefile.in */configure */config.h.in */Makefile.in
9fbc78
ANNOBIN_FLAGS=../../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags
9fbc78
ANNOBIN_CFLAGS1="%build_cflags -I %{_builddir}/gcc-%{version}-%{DATE}/gcc"
9fbc78
ANNOBIN_CFLAGS1="$ANNOBIN_CFLAGS1 -I %{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/gcc"
9fbc78
ANNOBIN_CFLAGS2="-I %{_builddir}/gcc-%{version}-%{DATE}/include -I %{_builddir}/gcc-%{version}-%{DATE}/libcpp/include"
9fbc78
ANNOBIN_LDFLAGS="%build_ldflags -L%{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs"
9fbc78
CC="`$ANNOBIN_FLAGS --build-cc`" CXX="`$ANNOBIN_FLAGS --build-cxx`" \
9fbc78
  CFLAGS="$ANNOBIN_CFLAGS1 $ANNOBIN_CFLAGS2 $ANNOBIN_LDFLAGS" \
9fbc78
  CXXFLAGS="$ANNOBIN_CFLAGS1 `$ANNOBIN_FLAGS --build-includes` $ANNOBIN_CFLAGS2 $ANNOBIN_LDFLAGS" \
9fbc78
  ./configure --with-gcc-plugin-dir=%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin \
9fbc78
	      --without-annocheck --without-tests --without-docs --disable-rpath --without-debuginfod
9fbc78
make
9fbc78
cd ../..
9fbc78
%endif
9fbc78
9fbc78
# Test the nonshared bits.
9fbc78
mkdir libstdc++_compat_test
9fbc78
cd libstdc++_compat_test
9fbc78
readelf -Ws %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | sed 's/ UNIQUE / GLOBAL /;s/ WEAK / GLOBAL /;s/@@GLIBCXX_\(LDBL_\)\?[0-9.]*//;s/@@CXXABI_TM_[0-9.]*//;s/@@CXXABI_FLOAT128//;s/@@CXXABI_\(LDBL_\)\?[0-9.]*//' | LC_ALL=C sort -u > system.abilist
9fbc78
readelf -Ws ../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6 | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | sed 's/ UNIQUE / GLOBAL /;s/ WEAK / GLOBAL /;s/@@GLIBCXX_\(LDBL_\)\?[0-9.]*//;s/@@CXXABI_TM_[0-9.]*//;s/@@CXXABI_FLOAT128//;s/@@CXXABI_\(LDBL_\)\?[0-9.]*//' | LC_ALL=C sort -u > vanilla.abilist
9fbc78
diff -up system.abilist vanilla.abilist | awk '/^\+\+\+/{next}/^\+/{print gensub(/^+(.*)$/,"\\1","1",$0)}' > system2vanilla.abilist.diff
9fbc78
../obj-%{gcc_target_platform}/gcc/xgcc -B ../obj-%{gcc_target_platform}/gcc/ -shared -o libstdc++_nonshared.so -Wl,--whole-archive ../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a -Wl,--no-whole-archive %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6
9fbc78
readelf -Ws libstdc++_nonshared.so | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | sed 's/ UNIQUE / GLOBAL /;s/ WEAK / GLOBAL /;s/@@GLIBCXX_\(LDBL_\)\?[0-9.]*//;s/@@CXXABI_TM_[0-9.]*//;s/@@CXXABI_FLOAT128//;s/@@CXXABI_\(LDBL_\)\?[0-9.]*//' | LC_ALL=C sort -u > nonshared.abilist
9fbc78
echo ====================NONSHARED=========================
9fbc78
ldd -d -r ./libstdc++_nonshared.so || :
9fbc78
ldd -u ./libstdc++_nonshared.so || :
9fbc78
diff -up system2vanilla.abilist.diff nonshared.abilist || :
9fbc78
readelf -Ws ../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a | grep HIDDEN.*UND | grep -v __dso_handle || :
9fbc78
echo ====================NONSHARED END=====================
9fbc78
rm -f libstdc++_nonshared.so
9fbc78
cd ..
9fbc78
9fbc78
%install
9fbc78
rm -rf %{buildroot}
9fbc78
mkdir -p %{buildroot}
9fbc78
9fbc78
# RISC-V ABI wants to install everything in /lib64/lp64d or /usr/lib64/lp64d.
9fbc78
# Make these be symlinks to /lib64 or /usr/lib64 respectively. See:
9fbc78
# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/DRHT5YTPK4WWVGL3GIN5BF2IKX2ODHZ3/
9fbc78
%ifarch riscv64
9fbc78
for d in %{buildroot}%{_libdir} %{buildroot}/%{_lib} \
9fbc78
	  %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib} \
9fbc78
	  %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/%{_lib}; do
9fbc78
  mkdir -p $d
9fbc78
  (cd $d && ln -sf . lp64d)
9fbc78
done
9fbc78
%endif
9fbc78
9fbc78
%if %{build_offload_nvptx}
9fbc78
cd nvptx-tools-%{nvptx_tools_gitrev}
9fbc78
cd obj-%{gcc_target_platform}
9fbc78
make install prefix=%{buildroot}%{_prefix}
9fbc78
cd ../..
9fbc78
9fbc78
ln -sf newlib-cygwin-%{newlib_cygwin_gitrev}/newlib newlib
9fbc78
cd obj-offload-nvptx-none
9fbc78
make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
9fbc78
  infodir=%{buildroot}%{_infodir} install
9fbc78
rm -rf %{buildroot}%{_prefix}/libexec/gcc/nvptx-none/%{gcc_major}/install-tools
9fbc78
rm -rf %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/{install-tools,plugin,cc1,cc1plus,f951}
9fbc78
rm -rf %{buildroot}%{_infodir} %{buildroot}%{_mandir}/man7 %{buildroot}%{_prefix}/share/locale
9fbc78
rm -rf %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/{install-tools,plugin}
9fbc78
rm -rf %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/{install-tools,plugin,include-fixed}
9fbc78
rm -rf %{buildroot}%{_prefix}/%{_lib}/libc[cp]1*
9fbc78
mv -f %{buildroot}%{_prefix}/nvptx-none/lib/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/
9fbc78
mv -f %{buildroot}%{_prefix}/nvptx-none/lib/mgomp/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/
9fbc78
mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/
9fbc78
mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/mgomp/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/
9fbc78
find %{buildroot}%{_prefix}/lib/gcc/nvptx-none %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none \
9fbc78
     %{buildroot}%{_prefix}/nvptx-none/lib -name \*.la | xargs rm
9fbc78
cd ..
9fbc78
rm -f newlib
9fbc78
%endif
9fbc78
9fbc78
%if %{build_libstdcxx_docs}
9fbc78
%if 0%{?rhel} < 7
9fbc78
export PATH=`pwd`/obj-%{gcc_target_platform}/doxygen-install/bin/${PATH:+:${PATH}}
9fbc78
%endif
9fbc78
%endif
9fbc78
9fbc78
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
9fbc78
# Also set LD_LIBRARY_PATH so that DTS eu-strip (called from find-debuginfo.sh)
9fbc78
# can find the libraries it needs.
9fbc78
%{?scl:export LD_LIBRARY_PATH=%{_libdir}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}}
9fbc78
9fbc78
perl -pi -e \
9fbc78
  's~href="l(ibstdc|atest)~href="http://gcc.gnu.org/onlinedocs/libstdc++/l\1~' \
9fbc78
  libstdc++-v3/doc/html/api.html
9fbc78
9fbc78
cd obj-%{gcc_target_platform}
9fbc78
9fbc78
TARGET_PLATFORM=%{gcc_target_platform}
9fbc78
9fbc78
# There are some MP bugs in libstdc++ Makefiles
9fbc78
make -C %{gcc_target_platform}/libstdc++-v3
9fbc78
9fbc78
%if 0%{?scl:1}
9fbc78
rm -f gcc/libgcc_s.so
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat}
9fbc78
GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > gcc/libgcc_s.so
9fbc78
%endif
9fbc78
9fbc78
make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
9fbc78
  infodir=%{buildroot}%{_infodir} install
9fbc78
9fbc78
%if 0%{?scl:1}
9fbc78
rm -f gcc/libgcc_s.so
9fbc78
ln -sf libgcc_s.so.1 gcc/libgcc_s.so
9fbc78
%endif
9fbc78
9fbc78
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
9fbc78
%if 0%{?scl:1}
9fbc78
ln -sf ../../../../bin/ar $FULLEPATH/ar
9fbc78
ln -sf ../../../../bin/as $FULLEPATH/as
9fbc78
ln -sf ../../../../bin/ld $FULLEPATH/ld
9fbc78
ln -sf ../../../../bin/ld.bfd $FULLEPATH/ld.bfd
9fbc78
ln -sf ../../../../bin/ld.gold $FULLEPATH/ld.gold
9fbc78
ln -sf ../../../../bin/nm $FULLEPATH/nm
9fbc78
ln -sf ../../../../bin/objcopy $FULLEPATH/objcopy
9fbc78
ln -sf ../../../../bin/ranlib $FULLEPATH/ranlib
9fbc78
ln -sf ../../../../bin/strip $FULLEPATH/strip
9fbc78
%endif
9fbc78
9fbc78
%if %{build_isl}
5e6e6d
cp -a isl-install/lib/libisl.so.23 $FULLPATH/
9fbc78
%endif
9fbc78
9fbc78
# fix some things
9fbc78
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
9fbc78
mkdir -p %{buildroot}/lib
9fbc78
ln -sf ..%{_prefix}/bin/cpp %{buildroot}/lib/cpp
9fbc78
ln -sf gfortran %{buildroot}%{_prefix}/bin/f95
9fbc78
rm -f %{buildroot}%{_infodir}/dir
9fbc78
gzip -9 %{buildroot}%{_infodir}/*.info*
9fbc78
ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc
9fbc78
mkdir -p %{buildroot}%{_fmoddir}
9fbc78
9fbc78
cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`"
9fbc78
for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do
9fbc78
  if ! diff -up $cxxconfig $i; then
9fbc78
    cat > %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/c++config.h <
9fbc78
#ifndef _CPP_CPPCONFIG_WRAPPER
9fbc78
#define _CPP_CPPCONFIG_WRAPPER 1
9fbc78
#include <bits/wordsize.h>
9fbc78
#if __WORDSIZE == 32
9fbc78
%ifarch %{multilib_64_archs}
9fbc78
`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)`
9fbc78
%else
9fbc78
`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
9fbc78
%endif
9fbc78
#else
9fbc78
%ifarch %{multilib_64_archs}
9fbc78
`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
9fbc78
%else
9fbc78
`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)`
9fbc78
%endif
9fbc78
#endif
9fbc78
#endif
9fbc78
EOF
9fbc78
    break
9fbc78
  fi
9fbc78
done
9fbc78
9fbc78
for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/ -name c++config.h`; do
9fbc78
  for i in 1 2 4 8; do
9fbc78
    sed -i -e 's/#define _GLIBCXX_ATOMIC_BUILTINS_'$i' 1/#ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_'$i'\
9fbc78
&\
9fbc78
#endif/' $f
9fbc78
  done
9fbc78
%if 0%{?rhel} <= 7
9fbc78
  # Force the old ABI unconditionally, the new one does not work in the
9fbc78
  # libstdc++_nonshared.a model against RHEL 6/7 libstdc++.so.6.
9fbc78
  sed -i -e 's/\(define[[:blank:]]*_GLIBCXX_USE_DUAL_ABI[[:blank:]]*\)1/\10/' $f
9fbc78
%endif
9fbc78
done
9fbc78
9fbc78
# Nuke bits/*.h.gch dirs
9fbc78
# 1) there is no bits/*.h header installed, so when gch file can't be
9fbc78
#    used, compilation fails
9fbc78
# 2) sometimes it is hard to match the exact options used for building
9fbc78
#    libstdc++-v3 or they aren't desirable
9fbc78
# 3) there are multilib issues, conflicts etc. with this
9fbc78
# 4) it is huge
9fbc78
# People can always precompile on their own whatever they want, but
9fbc78
# shipping this for everybody is unnecessary.
9fbc78
rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/*.h.gch
9fbc78
9fbc78
%if %{build_libstdcxx_docs}
9fbc78
libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen
9fbc78
mkdir -p ../rpm.doc/libstdc++-v3
9fbc78
cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html
9fbc78
cp -r -p $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api
9fbc78
mkdir -p %{buildroot}%{_mandir}/man3
9fbc78
cp -r -p $libstdcxx_doc_builddir/man/man3/* %{buildroot}%{_mandir}/man3/
9fbc78
find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
9fbc78
%endif
9fbc78
9fbc78
%ifarch sparcv9 sparc64
9fbc78
ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \
9fbc78
  %{buildroot}%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc
9fbc78
%endif
9fbc78
%ifarch ppc ppc64 ppc64p7
9fbc78
ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \
9fbc78
  %{buildroot}%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc
9fbc78
%endif
9fbc78
9fbc78
%ifarch sparcv9 ppc
9fbc78
FULLLPATH=$FULLPATH/lib32
9fbc78
%endif
9fbc78
%ifarch sparc64 ppc64 ppc64p7
9fbc78
FULLLPATH=$FULLPATH/lib64
9fbc78
%endif
9fbc78
if [ -n "$FULLLPATH" ]; then
9fbc78
  mkdir -p $FULLLPATH
9fbc78
else
9fbc78
  FULLLPATH=$FULLPATH
9fbc78
fi
9fbc78
9fbc78
find %{buildroot} -name \*.la | xargs rm -f
9fbc78
9fbc78
mv %{buildroot}%{_prefix}/%{_lib}/libgfortran.spec $FULLPATH/
9fbc78
%if %{build_libitm}
9fbc78
mv %{buildroot}%{_prefix}/%{_lib}/libitm.spec $FULLPATH/
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
mv %{buildroot}%{_prefix}/%{_lib}/libsanitizer.spec $FULLPATH/
9fbc78
%endif
9fbc78
9fbc78
mkdir -p %{buildroot}/%{_lib}
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1
9fbc78
chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1
9fbc78
ln -sf libgcc_s-%{gcc_major}-%{DATE}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
9fbc78
ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
9fbc78
%ifarch sparcv9 ppc
9fbc78
ln -sf /lib64/libgcc_s.so.1 $FULLPATH/64/libgcc_s.so
9fbc78
%endif
9fbc78
%ifarch %{multilib_64_archs}
9fbc78
ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
9fbc78
%endif
9fbc78
9fbc78
rm -f $FULLPATH/libgcc_s.so
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat}
9fbc78
GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so
9fbc78
%ifarch sparcv9 ppc
9fbc78
rm -f $FULLPATH/64/libgcc_s.so
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat2}
9fbc78
GROUP ( /lib64/libgcc_s.so.1 libgcc.a )' > $FULLPATH/64/libgcc_s.so
9fbc78
%endif
9fbc78
%ifarch %{multilib_64_archs}
9fbc78
rm -f $FULLPATH/32/libgcc_s.so
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat2}
9fbc78
GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so
9fbc78
%endif
9fbc78
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
9fbc78
cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \
9fbc78
  $FULLLPATH/libstdc++_nonshared.a
9fbc78
cp -a %{gcc_target_platform}/libgfortran/.libs/libgfortran_nonshared80.a \
9fbc78
  $FULLLPATH/libgfortran_nonshared.a
9fbc78
9fbc78
%if 0%{?rhel} <= 7
9fbc78
# Build libgomp_nonshared.a with the system compiler.  Use -O2 to
9fbc78
# get tailcalls.
9fbc78
gcc %{SOURCE6} -O2 -c
9fbc78
ar rcs libgomp_nonshared.a libgomp_nonshared.o
9fbc78
cp -a libgomp_nonshared.a $FULLLPATH
9fbc78
%ifarch x86_64
9fbc78
# Only need this for -m32 on x86_64.  devtoolset-N-gcc isn't multilib,
9fbc78
# and we don't have a devtoolset-N-libgomp-devel subpackage.
9fbc78
gcc %{SOURCE6} -O2 -c -m32 -o libgomp_nonshared32.o
9fbc78
ar rcs libgomp_nonshared32.a libgomp_nonshared32.o
9fbc78
cp -a libgomp_nonshared32.a $FULLLPATH/32/libgomp_nonshared.a
9fbc78
%endif
9fbc78
%endif
9fbc78
9fbc78
mkdir -p %{buildroot}%{_prefix}/libexec/getconf
9fbc78
if gcc/xgcc -B gcc/ -E -P -dD -xc /dev/null | grep '__LONG_MAX__.*\(2147483647\|0x7fffffff\($\|[LU]\)\)'; then
9fbc78
  ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
9fbc78
else
9fbc78
  ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
9fbc78
fi
9fbc78
9fbc78
%if 0%{?rhel} >= 7
9fbc78
mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++*gdb.py* \
9fbc78
      %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/
9fbc78
pushd ../libstdc++-v3/python
9fbc78
for i in `find . -name \*.py`; do
9fbc78
  touch -r $i %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/$i
9fbc78
done
9fbc78
touch -r hook.in %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc++*gdb.py
9fbc78
popd
9fbc78
for f in `find %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/ \
9fbc78
	       %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/ -name \*.py`; do
9fbc78
  r=${f/$RPM_BUILD_ROOT/}
9fbc78
%if 0%{?rhel} <= 7
9fbc78
  %{__python} -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")'
9fbc78
  %{__python} -O -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")'
9fbc78
%else
9fbc78
  %{__python3} -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")'
9fbc78
  %{__python3} -O -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")'
9fbc78
%endif
9fbc78
done
9fbc78
%endif
9fbc78
9fbc78
rm -f $FULLEPATH/libgccjit.so
9fbc78
mkdir -p %{buildroot}%{_prefix}/%{_lib}/
9fbc78
cp -a objlibgccjit/gcc/libgccjit.so.* %{buildroot}%{_prefix}/%{_lib}/
9fbc78
rm -f $FULLPATH/libgccjit.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat}
9fbc78
INPUT ( %{_prefix}/%{_lib}/libgccjit.so.0 )' > $FULLPATH/libgccjit.so
9fbc78
cp -a ../gcc/jit/libgccjit*.h $FULLPATH/include/
9fbc78
/usr/bin/install -c -m 644 objlibgccjit/gcc/doc/libgccjit.info %{buildroot}/%{_infodir}/
9fbc78
gzip -9 %{buildroot}/%{_infodir}/libgccjit.info
9fbc78
9fbc78
pushd $FULLPATH
9fbc78
%if 0%{?rhel} <= 7
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgomp.so.1 -lgomp_nonshared )' > libgomp.so
9fbc78
%else
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgomp.so.1 )' > libgomp.so
9fbc78
%endif
9fbc78
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' > libstdc++.so
9fbc78
rm -f libgfortran.so
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgfortran.so.5 -lgfortran_nonshared )' > libgfortran.so
9fbc78
%if %{build_libquadmath}
9fbc78
rm -f libquadmath.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat}
9fbc78
%if 0%{!?scl:1}
9fbc78
INPUT ( %{_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so
9fbc78
%else
9fbc78
%if 0%{?rhel} >= 7
9fbc78
INPUT ( %{_root_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so
9fbc78
%else
9fbc78
INPUT ( libquadmath.a )' > libquadmath.so
9fbc78
%endif
9fbc78
%endif
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
rm -f libitm.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libitm.so.1 )' > libitm.so
9fbc78
%endif
9fbc78
%if %{build_libatomic}
9fbc78
rm -f libatomic.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libatomic.so.1 )' > libatomic.so
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
rm -f libasan.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libasan.so.8 )' > libasan.so
9fbc78
%endif
9fbc78
%if %{build_libtsan}
9fbc78
rm -f libtsan.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libtsan.so.2 )' > libtsan.so
9fbc78
%endif
9fbc78
%if %{build_libubsan}
9fbc78
rm -f libubsan.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libubsan.so.1 )' > libubsan.so
9fbc78
%endif
9fbc78
%if %{build_liblsan}
9fbc78
rm -f liblsan.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/liblsan.so.0 )' > liblsan.so
9fbc78
%endif
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++fs.*a $FULLLPATH/
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a .
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a .
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a .
9fbc78
%if %{build_libquadmath}
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libitm.*a $FULLLPATH/
9fbc78
%endif
9fbc78
%if %{build_libatomic}
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libatomic.*a $FULLLPATH/
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libasan.*a $FULLLPATH/
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libasan_preinit.o $FULLLPATH/
9fbc78
%endif
9fbc78
%if %{build_libtsan}
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan.*a $FULLPATH/
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan_preinit.o $FULLPATH/
9fbc78
%endif
9fbc78
%if %{build_libubsan}
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/libubsan.*a $FULLLPATH/
9fbc78
%endif
9fbc78
%if %{build_liblsan}
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan.*a $FULLPATH/
9fbc78
mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan_preinit.o $FULLPATH/
9fbc78
%endif
9fbc78
9fbc78
%ifarch sparcv9 ppc
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libstdc++.so.6 -lstdc++_nonshared )' > 64/libstdc++.so
9fbc78
rm -f 64/libgfortran.so
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libgfortran.so.5 -lgfortran_nonshared )' > 64/libgfortran.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libgomp.so.1 )' > 64/libgomp.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{_prefix}/lib64/libgccjit.so.0 )' > 64/libgccjit.so
9fbc78
%if %{build_libquadmath}
9fbc78
rm -f 64/libquadmath.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
%if 0%{!?scl:1}
9fbc78
INPUT ( %{_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so
9fbc78
%else
9fbc78
%if 0%{?rhel} >= 7
9fbc78
INPUT ( %{_root_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so
9fbc78
%else
9fbc78
INPUT ( libquadmath.a )' > 64/libquadmath.so
9fbc78
%endif
9fbc78
%endif
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
rm -f 64/libitm.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libitm.so.1 )' > 64/libitm.so
9fbc78
%endif
9fbc78
%if %{build_libatomic}
9fbc78
rm -f 64/libatomic.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libatomic.so.1 )' > 64/libatomic.so
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
rm -f 64/libasan.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libasan.so.8 )' > 64/libasan.so
9fbc78
%endif
9fbc78
%if %{build_libubsan}
9fbc78
rm -f 64/libubsan.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libubsan.so.1 )' > 64/libubsan.so
9fbc78
%endif
9fbc78
mv -f %{buildroot}%{_prefix}/lib64/libsupc++.*a 64/
9fbc78
mv -f %{buildroot}%{_prefix}/lib64/libgfortran.*a 64/
9fbc78
mv -f %{buildroot}%{_prefix}/lib64/libgomp.*a 64/
9fbc78
%if %{build_libquadmath}
9fbc78
mv -f %{buildroot}%{_prefix}/lib64/libquadmath.*a 64/
9fbc78
%endif
9fbc78
ln -sf lib32/libstdc++.a libstdc++.a
9fbc78
ln -sf ../lib64/libstdc++.a 64/libstdc++.a
9fbc78
ln -sf lib32/libstdc++fs.a libstdc++fs.a
9fbc78
ln -sf ../lib64/libstdc++fs.a 64/libstdc++fs.a
9fbc78
ln -sf lib32/libstdc++_nonshared.a libstdc++_nonshared.a
9fbc78
ln -sf ../lib64/libstdc++_nonshared.a 64/libstdc++_nonshared.a
9fbc78
%if %{build_libquadmath}
9fbc78
ln -sf lib32/libquadmath.a libquadmath.a
9fbc78
ln -sf ../lib64/libquadmath.a 64/libquadmath.a
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
ln -sf lib32/libitm.a libitm.a
9fbc78
ln -sf ../lib64/libitm.a 64/libitm.a
9fbc78
%endif
9fbc78
%if %{build_libatomic}
9fbc78
ln -sf lib32/libatomic.a libatomic.a
9fbc78
ln -sf ../lib64/libatomic.a 64/libatomic.a
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
ln -sf lib32/libasan.a libasan.a
9fbc78
ln -sf ../lib64/libasan.a 64/libasan.a
9fbc78
ln -sf lib32/libasan_preinit.o libasan_preinit.o
9fbc78
ln -sf ../lib64/libasan_preinit.o 64/libasan_preinit.o
9fbc78
%endif
9fbc78
%if %{build_libubsan}
9fbc78
ln -sf lib32/libubsan.a libubsan.a
9fbc78
ln -sf ../lib64/libubsan.a 64/libubsan.a
9fbc78
%endif
9fbc78
%endif
9fbc78
%ifarch %{multilib_64_archs}
9fbc78
mkdir -p 32
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libstdc++.so.6 -lstdc++_nonshared )' > 32/libstdc++.so
9fbc78
rm -f 32/libgfortran.so
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgfortran.so.5 -lgfortran_nonshared )' > 32/libgfortran.so
9fbc78
9fbc78
%if 0%{?rhel} <= 7
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgomp.so.1 -lgomp_nonshared )' > 32/libgomp.so
9fbc78
%else
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgomp.so.1 )' > 32/libgomp.so
9fbc78
%endif
9fbc78
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{_prefix}/lib/libgccjit.so.0 )' > 32/libgccjit.so
9fbc78
%if %{build_libquadmath}
9fbc78
rm -f 32/libquadmath.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
%if 0%{!?scl:1}
9fbc78
INPUT ( %{_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so
9fbc78
%else
9fbc78
%if 0%{?rhel} >= 7
9fbc78
INPUT ( %{_root_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so
9fbc78
%else
9fbc78
INPUT ( libquadmath.a )' > 32/libquadmath.so
9fbc78
%endif
9fbc78
%endif
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
rm -f 32/libitm.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libitm.so.1 )' > 32/libitm.so
9fbc78
%endif
9fbc78
%if %{build_libatomic}
9fbc78
rm -f 32/libatomic.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libatomic.so.1 )' > 32/libatomic.so
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
rm -f 32/libasan.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libasan.so.8 )' > 32/libasan.so
9fbc78
%endif
9fbc78
%if %{build_libubsan}
9fbc78
rm -f 32/libubsan.so
9fbc78
echo '/* GNU ld script */
9fbc78
%{oformat2}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libubsan.so.1 )' > 32/libubsan.so
9fbc78
%endif
9fbc78
mv -f %{buildroot}%{_prefix}/lib/libsupc++.*a 32/
9fbc78
mv -f %{buildroot}%{_prefix}/lib/libgfortran.*a 32/
9fbc78
mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/
9fbc78
%if %{build_libquadmath}
9fbc78
mv -f %{buildroot}%{_prefix}/lib/libquadmath.*a 32/
9fbc78
%endif
9fbc78
%endif
9fbc78
%ifarch sparc64 ppc64
9fbc78
ln -sf ../lib32/libstdc++.a 32/libstdc++.a
9fbc78
ln -sf lib64/libstdc++.a libstdc++.a
9fbc78
ln -sf ../lib32/libstdc++fs.a 32/libstdc++fs.a
9fbc78
ln -sf lib64/libstdc++fs.a libstdc++fs.a
9fbc78
ln -sf ../lib32/libstdc++_nonshared.a 32/libstdc++_nonshared.a
9fbc78
ln -sf lib64/libstdc++_nonshared.a libstdc++_nonshared.a
9fbc78
ln -sf ../lib32/libgfortran_nonshared.a 32/libgfortran_nonshared.a
9fbc78
ln -sf lib64/libgfortran_nonshared.a libgfortran_nonshared.a
9fbc78
ln -sf lib64/libgomp_nonshared.a libgomp_nonshared.a
9fbc78
%if %{build_libquadmath}
9fbc78
ln -sf ../lib32/libquadmath.a 32/libquadmath.a
9fbc78
ln -sf lib64/libquadmath.a libquadmath.a
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
ln -sf ../lib32/libitm.a 32/libitm.a
9fbc78
ln -sf lib64/libitm.a libitm.a
9fbc78
%endif
9fbc78
%if %{build_libatomic}
9fbc78
ln -sf ../lib32/libatomic.a 32/libatomic.a
9fbc78
ln -sf lib64/libatomic.a libatomic.a
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
ln -sf ../lib32/libasan.a 32/libasan.a
9fbc78
ln -sf lib64/libasan.a libasan.a
9fbc78
ln -sf ../lib32/libasan_preinit.o 32/libasan_preinit.o
9fbc78
ln -sf lib64/libasan_preinit.o libasan_preinit.o
9fbc78
%endif
9fbc78
%if %{build_libubsan}
9fbc78
ln -sf ../lib32/libubsan.a 32/libubsan.a
9fbc78
# BZ #2027391
9fbc78
mv -f lib64/libubsan.a libubsan.a
9fbc78
%endif
9fbc78
%else
9fbc78
%ifarch %{multilib_64_archs}
9fbc78
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libstdc++.a 32/libstdc++.a
9fbc78
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libstdc++fs.a 32/libstdc++fs.a
9fbc78
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libstdc++_nonshared.a 32/libstdc++_nonshared.a
9fbc78
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libgfortran_nonshared.a 32/libgfortran_nonshared.a
9fbc78
%if %{build_libquadmath}
9fbc78
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libquadmath.a 32/libquadmath.a
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libitm.a 32/libitm.a
9fbc78
%endif
9fbc78
%if %{build_libatomic}
9fbc78
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libatomic.a 32/libatomic.a
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libasan.a 32/libasan.a
9fbc78
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libasan_preinit.o 32/libasan_preinit.o
9fbc78
%endif
9fbc78
%if %{build_libubsan}
9fbc78
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libubsan.a 32/libubsan.a
9fbc78
%endif
9fbc78
%endif
9fbc78
%endif
9fbc78
9fbc78
# If we are building a debug package then copy all of the static archives
9fbc78
# into the debug directory to keep them as unstripped copies.
9fbc78
%if 0%{?_enable_debug_packages}
9fbc78
mkdir -p $RPM_BUILD_ROOT%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
adirs="$FULLPATH"
9fbc78
if [ $FULLLPATH -ne $FULLPATH ]; then
9fbc78
  adirs="$adirs $FULLLPATH"
9fbc78
fi
9fbc78
for f in `find $adirs -maxdepth 1 -a \
9fbc78
		 \( -name libgfortran.a -o -name libgomp.a \
9fbc78
		    -o -name libgcc.a -o -name libgcc_eh.a -o -name libgcov.a \
9fbc78
		    -o -name libquadmath.a -o -name libitm.a \
9fbc78
		    -o -name libatomic.a -o -name libasan.a \
9fbc78
		    -o -name libtsan.a -o -name libubsan.a \
9fbc78
		    -o -name liblsan.a \
9fbc78
		    -o -name libcc1.a \
9fbc78
		    -o -name libstdc++_nonshared.a \
9fbc78
		    -o -name libgomp_nonshared.a \
9fbc78
		    -o -name libgfortran_nonshared.a \
9fbc78
		    -o -name libsupc++.a \
9fbc78
		    -o -name libstdc++.a -o -name libcaf_single.a \
9fbc78
		    -o -name libstdc++fs.a \) -a -type f`; do
9fbc78
  cp -a $f $RPM_BUILD_ROOT%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/
9fbc78
done
9fbc78
%endif
9fbc78
9fbc78
# Strip debug info from Fortran/ObjC/Java static libraries
9fbc78
strip -g `find . \( -name libgfortran.a  -o -name libgomp.a \
9fbc78
		    -o -name libgcc.a -o -name libgcov.a \
9fbc78
		    -o -name libquadmath.a -o -name libitm.a \
9fbc78
		    -o -name libatomic.a -o -name libasan.a \
9fbc78
		    -o -name libtsan.a -o -name libubsan.a \
9fbc78
		    -o -name liblsan.a \
9fbc78
		    -o -name libcc1.a \) -a -type f`
9fbc78
popd
9fbc78
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.5.*
9fbc78
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.*
9fbc78
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.*
9fbc78
%if %{build_libquadmath}
9fbc78
%if 0%{!?scl:1}
9fbc78
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.*
9fbc78
%endif
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.*
9fbc78
%if 0%{?scl:1}
9fbc78
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
9fbc78
mv %{buildroot}%{_prefix}/%{_lib}/libitm.so.1* %{buildroot}%{_root_prefix}/%{_lib}/
9fbc78
mkdir -p %{buildroot}%{_root_infodir}
9fbc78
%if 0%{?rhel} <= 7
9fbc78
mv %{buildroot}%{_infodir}/libitm.info* %{buildroot}%{_root_infodir}/
9fbc78
%endif
9fbc78
%endif
9fbc78
%endif
9fbc78
%if %{build_libatomic}
9fbc78
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1.*
9fbc78
%if 0%{?scl:1}
9fbc78
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
9fbc78
mv %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1* %{buildroot}%{_root_prefix}/%{_lib}/
9fbc78
mkdir -p %{buildroot}%{_root_infodir}
9fbc78
%endif
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.8.*
9fbc78
%if 0%{?scl:1}
9fbc78
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
9fbc78
mv %{buildroot}%{_prefix}/%{_lib}/libasan.so.8* %{buildroot}%{_root_prefix}/%{_lib}/
9fbc78
mkdir -p %{buildroot}%{_root_infodir}
9fbc78
%endif
9fbc78
%endif
9fbc78
%if %{build_libtsan}
9fbc78
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2.*
9fbc78
%if 0%{?scl:1}
9fbc78
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
9fbc78
mv %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2* %{buildroot}%{_root_prefix}/%{_lib}/
9fbc78
mkdir -p %{buildroot}%{_root_infodir}
9fbc78
%endif
9fbc78
%endif
9fbc78
%if %{build_libubsan}
9fbc78
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.*
9fbc78
%if 0%{?scl:1}
9fbc78
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
9fbc78
mv %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1* %{buildroot}%{_root_prefix}/%{_lib}/
9fbc78
mkdir -p %{buildroot}%{_root_infodir}
9fbc78
%endif
9fbc78
%endif
9fbc78
%if %{build_liblsan}
9fbc78
chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.*
9fbc78
%if 0%{?scl:1}
9fbc78
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
9fbc78
mv %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0* %{buildroot}%{_root_prefix}/%{_lib}/
9fbc78
mkdir -p %{buildroot}%{_root_infodir}
9fbc78
%endif
9fbc78
%endif
9fbc78
9fbc78
mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h
9fbc78
mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h
9fbc78
for h in `find $FULLPATH/include -name \*.h`; do
9fbc78
  if grep -q 'It has been auto-edited by fixincludes from' $h; then
9fbc78
    rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'`
9fbc78
    diff -up $rh $h || :
9fbc78
    rm -f $h
9fbc78
  fi
9fbc78
done
9fbc78
9fbc78
9fbc78
cd ..
9fbc78
9fbc78
%if 0%{!?scl:1}
9fbc78
for i in %{buildroot}%{_prefix}/bin/{*gcc,*++,gcov,gfortran,gcc-ar,gcc-nm,gcc-ranlib}; do
9fbc78
  mv -f $i ${i}5
9fbc78
done
9fbc78
%endif
9fbc78
9fbc78
# Remove binaries we will not be including, so that they don't end up in
9fbc78
# gcc-debuginfo
9fbc78
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a,libstdc++*,libgfortran*} || :
9fbc78
%if 0%{?scl:1}
9fbc78
rm -f %{buildroot}%{_prefix}/%{_lib}/{libquadmath*,libitm*,libatomic*,libasan*,libtsan*,libubsan*,liblsan*}
9fbc78
%else
9fbc78
%if 0%{?rhel} >= 7
9fbc78
rm -f %{buildroot}%{_prefix}/%{_lib}/{libitm*,libatomic*}
9fbc78
%endif
9fbc78
%endif
9fbc78
rm -f %{buildroot}%{_prefix}/%{_lib}/libgomp*
9fbc78
rm -f %{buildroot}/%{_lib}/libgcc_s*
9fbc78
rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
9fbc78
rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a
9fbc78
rm -f %{buildroot}%{_prefix}/%{_lib}/libssp*
9fbc78
rm -f %{buildroot}%{_prefix}/%{_lib}/libvtv* || :
9fbc78
rm -f %{buildroot}/lib/cpp
9fbc78
rm -f %{buildroot}/%{_lib}/libgcc_s*
9fbc78
rm -f %{buildroot}%{_prefix}/bin/{f95,gccbug,gnatgcc*}
9fbc78
rm -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gfortran
9fbc78
%if 0%{!?scl:1}
9fbc78
rm -f %{buildroot}%{_prefix}/bin/{*c++*,cc,cpp}
9fbc78
%endif
9fbc78
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gfortran || :
9fbc78
9fbc78
%ifarch %{multilib_64_archs}
9fbc78
# Remove libraries for the other arch on multilib arches
9fbc78
rm -f %{buildroot}%{_prefix}/lib/lib*.so*
9fbc78
rm -f %{buildroot}%{_prefix}/lib/lib*.a
9fbc78
rm -f %{buildroot}/lib/libgcc_s*.so*
9fbc78
%else
9fbc78
%ifarch sparcv9 ppc
9fbc78
rm -f %{buildroot}%{_prefix}/lib64/lib*.so*
9fbc78
rm -f %{buildroot}%{_prefix}/lib64/lib*.a
9fbc78
rm -f %{buildroot}/lib64/libgcc_s*.so*
9fbc78
%endif
9fbc78
%endif
9fbc78
9fbc78
%ifnarch sparc64 ppc64
9fbc78
%ifarch %{multilib_64_archs}
9fbc78
cat <<\EOF > %{buildroot}%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major}
9fbc78
#!/bin/sh
9fbc78
%ifarch s390x
9fbc78
exec %{gcc_target_platform}-gcc-%{gcc_major} -m31 "$@"
9fbc78
%else
9fbc78
exec %{gcc_target_platform}-gcc-%{gcc_major} -m32 "$@"
9fbc78
%endif
9fbc78
EOF
9fbc78
chmod 755 %{buildroot}%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major}
9fbc78
%endif
9fbc78
%endif
9fbc78
9fbc78
# Help plugins find out nvra.
9fbc78
echo gcc-%{version}-%{release}.%{arch} > $FULLPATH/rpmver
9fbc78
9fbc78
# Add symlink to lto plugin in the binutils plugin directory.
9fbc78
%{__mkdir_p} %{buildroot}%{_libdir}/bfd-plugins/
9fbc78
ln -s ../../libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so \
9fbc78
  %{buildroot}%{_libdir}/bfd-plugins/
9fbc78
9fbc78
%check
9fbc78
cd obj-%{gcc_target_platform}
9fbc78
5e6e6d
%ifarch s390x
5e6e6d
exit 0
5e6e6d
%endif
5e6e6d
9fbc78
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
9fbc78
# Test against the system libstdc++.so.6 + libstdc++_nonshared.a combo
9fbc78
mv %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6{,.not_here}
9fbc78
mv %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so{,.not_here}
9fbc78
ln -sf %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 \
9fbc78
  %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6
9fbc78
echo '/* GNU ld script
9fbc78
   Use the shared library, but some functions are only in
9fbc78
   the static library, so try that secondarily.  */
9fbc78
%{oformat}
9fbc78
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' \
9fbc78
  > %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so
9fbc78
cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \
9fbc78
  %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared.a
9fbc78
9fbc78
# run the tests.
9fbc78
LC_ALL=C make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ \
9fbc78
%if 0%{?fedora} >= 20 || 0%{?rhel} > 7
9fbc78
     RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector-strong}'" || :
9fbc78
%else
9fbc78
%ifnarch ppc ppc64 ppc64le s390x
9fbc78
     RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || :
9fbc78
%else
9fbc78
    || :
9fbc78
%endif
9fbc78
%endif
9fbc78
( LC_ALL=C ../contrib/test_summary -t || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' > testresults
9fbc78
rm -rf gcc/testsuite.prev
9fbc78
mv gcc/testsuite{,.prev}
9fbc78
rm -f gcc/site.exp
9fbc78
LC_ALL=C make %{?_smp_mflags} -C gcc -k check-gcc check-g++ ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}' compat.exp struct-layout-1.exp" || :
9fbc78
mv gcc/testsuite/gcc/gcc.sum{,.sent}
9fbc78
mv gcc/testsuite/g++/g++.sum{,.sent}
9fbc78
( LC_ALL=C ../contrib/test_summary -o -t || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' > testresults2
9fbc78
rm -rf gcc/testsuite.compat
9fbc78
mv gcc/testsuite{,.compat}
9fbc78
mv gcc/testsuite{.prev,}
9fbc78
echo ====================TESTING=========================
9fbc78
cat testresults
9fbc78
echo ===`gcc --version | head -1` compatibility tests====
9fbc78
cat testresults2
9fbc78
echo ====================TESTING END=====================
9fbc78
mkdir testlogs-%{_target_platform}-%{version}-%{release}
9fbc78
for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats.*/tests/'`; do
9fbc78
  ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
9fbc78
done
9fbc78
for i in `find gcc/testsuite.compat -name \*.log | grep -v 'config.log\|acats.*/tests/'`; do
9fbc78
  ln $i testlogs-%{_target_platform}-%{version}-%{release}/`basename $i`.compat || :
9fbc78
done
9fbc78
tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \
9fbc78
  | uuencode testlogs-%{_target_platform}.tar.bz2 || :
9fbc78
rm -rf testlogs-%{_target_platform}-%{version}-%{release}
9fbc78
9fbc78
9fbc78
%if 0%{?scl:1}
9fbc78
%post gfortran
9fbc78
if [ -f %{_infodir}/gfortran.info.gz ]; then
9fbc78
  /sbin/install-info \
9fbc78
    --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
9fbc78
fi
9fbc78
9fbc78
%preun gfortran
9fbc78
if [ $1 = 0 -a -f %{_infodir}/gfortran.info.gz ]; then
9fbc78
  /sbin/install-info --delete \
9fbc78
    --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
9fbc78
fi
9fbc78
%endif
9fbc78
9fbc78
%post gdb-plugin -p /sbin/ldconfig
9fbc78
9fbc78
%postun gdb-plugin -p /sbin/ldconfig
9fbc78
9fbc78
%post -n %{?scl_prefix}libgccjit -p /sbin/ldconfig
9fbc78
9fbc78
%postun -n %{?scl_prefix}libgccjit -p /sbin/ldconfig
9fbc78
9fbc78
%post -n %{?scl_prefix}libgccjit-docs
9fbc78
if [ -f %{_infodir}/libgccjit.info.gz ]; then
9fbc78
  /sbin/install-info \
9fbc78
    --info-dir=%{_infodir} %{_infodir}/libgccjit.info.gz || :
9fbc78
fi
9fbc78
9fbc78
%preun -n %{?scl_prefix}libgccjit-docs
9fbc78
if [ $1 = 0 -a -f %{_infodir}/libgccjit.info.gz ]; then
9fbc78
  /sbin/install-info --delete \
9fbc78
    --info-dir=%{_infodir} %{_infodir}/libgccjit.info.gz || :
9fbc78
fi
9fbc78
9fbc78
%post -n libquadmath
9fbc78
/sbin/ldconfig
9fbc78
if [ -f %{_infodir}/libquadmath.info.gz ]; then
9fbc78
  /sbin/install-info \
9fbc78
    --info-dir=%{_infodir} %{_infodir}/libquadmath.info.gz || :
9fbc78
fi
9fbc78
9fbc78
%preun -n libquadmath
9fbc78
if [ $1 = 0 -a -f %{_infodir}/libquadmath.info.gz ]; then
9fbc78
  /sbin/install-info --delete \
9fbc78
    --info-dir=%{_infodir} %{_infodir}/libquadmath.info.gz || :
9fbc78
fi
9fbc78
9fbc78
%postun -n libquadmath -p /sbin/ldconfig
9fbc78
9fbc78
%post -n libitm
9fbc78
/sbin/ldconfig
9fbc78
if [ -f %{_infodir}/libitm.info.gz ]; then
9fbc78
  /sbin/install-info \
9fbc78
    --info-dir=%{_infodir} %{_infodir}/libitm.info.gz || :
9fbc78
fi
9fbc78
9fbc78
%preun -n libitm
9fbc78
if [ $1 = 0 -a -f %{_infodir}/libitm.info.gz ]; then
9fbc78
  /sbin/install-info --delete \
9fbc78
    --info-dir=%{_infodir} %{_infodir}/libitm.info.gz || :
9fbc78
fi
9fbc78
9fbc78
%postun -n libitm -p /sbin/ldconfig
9fbc78
9fbc78
%post -n libatomic -p /sbin/ldconfig
9fbc78
9fbc78
%postun -n libatomic -p /sbin/ldconfig
9fbc78
9fbc78
%post -n libasan8 -p /sbin/ldconfig
9fbc78
9fbc78
%postun -n libasan8 -p /sbin/ldconfig
9fbc78
9fbc78
%post -n libtsan2 -p /sbin/ldconfig
9fbc78
9fbc78
%postun -n libtsan2 -p /sbin/ldconfig
9fbc78
9fbc78
%post -n libubsan1 -p /sbin/ldconfig
9fbc78
9fbc78
%postun -n libubsan1 -p /sbin/ldconfig
9fbc78
9fbc78
%post -n liblsan -p /sbin/ldconfig
9fbc78
9fbc78
%postun -n liblsan -p /sbin/ldconfig
9fbc78
9fbc78
%files
9fbc78
%{_prefix}/bin/gcc%{!?scl:12}
9fbc78
%{_prefix}/bin/gcov%{!?scl:12}
9fbc78
%{_prefix}/bin/gcov-tool%{!?scl:12}
9fbc78
%{_prefix}/bin/gcov-dump%{!?scl:12}
9fbc78
%{_prefix}/bin/gcc-ar%{!?scl:12}
9fbc78
%{_prefix}/bin/gcc-nm%{!?scl:12}
9fbc78
%{_prefix}/bin/gcc-ranlib%{!?scl:12}
9fbc78
%{_prefix}/bin/lto-dump%{!?scl:12}
9fbc78
%ifarch ppc
9fbc78
%{_prefix}/bin/%{_target_platform}-gcc%{!?scl:12}
9fbc78
%endif
9fbc78
%ifarch sparc64 sparcv9
9fbc78
%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}%{?_gnu}-gcc%{!?scl:12}
9fbc78
%endif
9fbc78
%ifarch ppc64 ppc64p7
9fbc78
%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}%{?_gnu}-gcc%{!?scl:12}
9fbc78
%endif
9fbc78
%{_prefix}/bin/%{gcc_target_platform}-gcc%{!?scl:12}
9fbc78
%{_prefix}/bin/%{gcc_target_platform}-gcc-%{gcc_major}
9fbc78
%ifnarch sparc64 ppc64
9fbc78
%ifarch %{multilib_64_archs}
9fbc78
%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major}
9fbc78
%endif
9fbc78
%endif
9fbc78
%if 0%{?scl:1}
9fbc78
%{_prefix}/bin/cc
9fbc78
%{_prefix}/bin/cpp
9fbc78
%{_mandir}/man1/gcc.1*
9fbc78
%{_mandir}/man1/cpp.1*
9fbc78
%{_mandir}/man1/gcov.1*
9fbc78
%{_mandir}/man1/gcov-tool.1*
9fbc78
%{_mandir}/man1/gcov-dump.1*
9fbc78
%{_mandir}/man1/lto-dump.1*
9fbc78
%{_infodir}/gcc*
9fbc78
%{_infodir}/cpp*
9fbc78
%endif
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%dir %{_prefix}/libexec/gcc
9fbc78
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto1
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto-wrapper
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so*
9fbc78
%{_libdir}/bfd-plugins/liblto_plugin.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/rpmver
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stddef.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdarg.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdfix.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/varargs.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/float.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/limits.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdbool.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/iso646.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/syslimits.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/unwind.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/omp.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/openacc.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/acc_prof.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint-gcc.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdalign.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdnoreturn.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdatomic.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/gcov.h
9fbc78
%ifarch %{ix86} x86_64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xmmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/emmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pmmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tmmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ammintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/smmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/nmmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/wmmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/immintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fma4intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xopintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lwpintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/popcntintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmiintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tbmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia32intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx2intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmi2intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/f16cintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fmaintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lzcntintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rtmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xtestintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/adxintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/prfchwintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rdseedintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fxsrintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsaveintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsaveoptintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512cdintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512erintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512pfintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/shaintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm_malloc.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm3dnow.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cpuid.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cross-stdarg.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bwintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512dqintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512ifmaintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512ifmavlintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmiintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmivlintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vlbwintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vldqintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vlintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clflushoptintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clwbintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mwaitxintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsavecintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsavesintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clzerointrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pkuintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx5124fmapsintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx5124vnniwintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vpopcntdqintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sgxintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/gfniintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cetintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cet.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmi2intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmi2vlintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vnniintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vnnivlintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vaesintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vpclmulqdqintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vpopcntdqvlintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bitalgintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pconfigintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/wbnoinvdintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/movdirintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/waitpkgintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cldemoteintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bf16vlintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bf16intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/enqcmdintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vp2intersectintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vp2intersectvlintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/serializeintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tsxldtrkintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxtileintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxint8intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxbf16intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86gprintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/uintrintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/hresetintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/keylockerintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxvnniintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mwaitintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fp16intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fp16vlintrin.h
9fbc78
%endif
9fbc78
%ifarch ia64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia64intrin.h
9fbc78
%endif
9fbc78
%ifarch ppc ppc64 ppc64le ppc64p7
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppc-asm.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/altivec.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppu_intrinsics.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/si2vmx.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/spu2vmx.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vec_types.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmi2intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmiintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xmmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm_malloc.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/emmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pmmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tmmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/smmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amo.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/nmmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/immintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86gprintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rs6000-vecdefines.h
9fbc78
%endif
9fbc78
%ifarch %{arm}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/unwind-arm-common.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_acle.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_cmse.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_fp16.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_bf16.h
9fbc78
%endif
9fbc78
%ifarch aarch64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_acle.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_fp16.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_bf16.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_sve.h
9fbc78
%endif
9fbc78
%ifarch sparc sparcv9 sparc64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/visintrin.h
9fbc78
%endif
9fbc78
%ifarch s390 s390x
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/s390intrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vecintrin.h
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sanitizer
9fbc78
%endif
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/collect2
9fbc78
%if 0%{?scl:1}
9fbc78
%if 0%{?rhel} <= 7
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ar
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/as
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld.bfd
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld.gold
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/nm
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/objcopy
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ranlib
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/strip
9fbc78
%endif
9fbc78
%endif
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/crt*.o
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcov.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc_eh.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc_s.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.spec
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.so
9fbc78
%if 0%{?rhel} <= 7
9fbc78
%ifnarch ppc
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp_nonshared.a
9fbc78
%endif
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.spec
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsanitizer.spec
9fbc78
%endif
9fbc78
%ifarch sparcv9 sparc64 ppc ppc64
9fbc78
%if %{build_libquadmath}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
9fbc78
%endif
9fbc78
%endif
9fbc78
%if %{build_isl}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libisl.so.*
9fbc78
%endif
9fbc78
%ifarch sparcv9 ppc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/crt*.o
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcov.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc_eh.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc_s.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgomp.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgomp.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgccjit.so
9fbc78
%if %{build_libquadmath}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.so
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.so
9fbc78
%endif
9fbc78
%if %{build_libatomic}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.so
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan_preinit.o
9fbc78
%endif
9fbc78
%if %{build_libubsan}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.so
9fbc78
%endif
9fbc78
%endif
9fbc78
%ifarch %{multilib_64_archs}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/crt*.o
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcov.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_eh.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_s.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.so
9fbc78
9fbc78
# Add libgomp_nonshared.a
9fbc78
%if 0%{?rhel} <= 7
9fbc78
%ifarch x86_64
9fbc78
# Need it for -m32.
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp_nonshared.a
9fbc78
%endif
9fbc78
%ifarch ppc64
9fbc78
# We've created a symlink to lib64/libgomp_nonshared.a, so add it.
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgomp_nonshared.a
9fbc78
%endif
9fbc78
%endif
9fbc78
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgccjit.so
9fbc78
%if %{build_libquadmath}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.so
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.so
9fbc78
%endif
9fbc78
%if %{build_libatomic}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.so
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan_preinit.o
9fbc78
%endif
9fbc78
%if %{build_libubsan}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.so
9fbc78
%endif
9fbc78
%endif
9fbc78
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
9fbc78
%if %{build_libquadmath}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
9fbc78
%endif
9fbc78
%if %{build_libitm}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so
9fbc78
%endif
9fbc78
%if %{build_libatomic}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so
9fbc78
%endif
9fbc78
%if %{build_libasan}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o
9fbc78
%endif
9fbc78
%if %{build_libubsan}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so
9fbc78
%endif
9fbc78
%if %{build_libtsan}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so
9fbc78
%endif
9fbc78
%if %{build_liblsan}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so
9fbc78
%endif
9fbc78
%endif
9fbc78
%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING* COPYING.RUNTIME
9fbc78
9fbc78
%files c++
9fbc78
%{_prefix}/bin/%{gcc_target_platform}-g++%{!?scl:12}
9fbc78
%{_prefix}/bin/g++%{!?scl:12}
9fbc78
%if 0%{?scl:1}
9fbc78
%{_prefix}/bin/%{gcc_target_platform}-c++
9fbc78
%{_prefix}/bin/c++
9fbc78
%{_mandir}/man1/g++.1*
9fbc78
%endif
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%dir %{_prefix}/libexec/gcc
9fbc78
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1plus
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/g++-mapper-server
9fbc78
%ifarch sparcv9 ppc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++fs.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++_nonshared.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libsupc++.a
9fbc78
%endif
9fbc78
%ifarch %{multilib_64_archs}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++fs.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++_nonshared.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libsupc++.a
9fbc78
%endif
9fbc78
%ifarch sparcv9 ppc %{multilib_64_archs}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a
9fbc78
%endif
9fbc78
%ifarch sparcv9 sparc64 ppc ppc64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_nonshared.a
9fbc78
%endif
9fbc78
%doc rpm.doc/changelogs/gcc/cp/ChangeLog*
9fbc78
9fbc78
%files -n %{?scl_prefix}libstdc++%{!?scl:12}-devel
9fbc78
%defattr(-,root,root,-)
9fbc78
%dir %{_prefix}/include/c++
9fbc78
%{_prefix}/include/c++/%{gcc_major}
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%ifarch sparcv9 ppc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++fs.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++_nonshared.a
9fbc78
%endif
9fbc78
%ifarch sparc64 ppc64
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++fs.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++_nonshared.a
9fbc78
%endif
9fbc78
%ifnarch sparcv9 sparc64 ppc ppc64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_nonshared.a
9fbc78
%endif
9fbc78
%ifnarch sparcv9 ppc %{multilib_64_archs}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a
9fbc78
%endif
9fbc78
%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README*
9fbc78
9fbc78
9fbc78
%if %{build_libstdcxx_docs}
9fbc78
%files -n %{?scl_prefix}libstdc++%{!?scl:12}-docs
9fbc78
%{_mandir}/man3/*
9fbc78
%doc rpm.doc/libstdc++-v3/html
9fbc78
%endif
9fbc78
9fbc78
%files gfortran
9fbc78
%{_prefix}/bin/gfortran%{!?scl:12}
9fbc78
%if 0%{?scl:1}
9fbc78
%{_mandir}/man1/gfortran.1*
9fbc78
%{_infodir}/gfortran*
9fbc78
%endif
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%dir %{_prefix}/libexec/gcc
9fbc78
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ISO_Fortran_binding.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.f90
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.mod
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib_kinds.mod
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc.f90
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc.mod
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc_kinds.mod
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc_lib.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_arithmetic.mod
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_exceptions.mod
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_features.mod
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/f951
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.spec
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcaf_single.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran_nonshared.a
9fbc78
%ifarch sparcv9 ppc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libcaf_single.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgfortran.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgfortran.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/finclude
9fbc78
%endif
9fbc78
%ifarch %{multilib_64_archs}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libcaf_single.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran_nonshared.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/finclude
9fbc78
%endif
9fbc78
%ifarch ppc64
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgfortran_nonshared.a
9fbc78
%endif
9fbc78
%doc rpm.doc/gfortran/*
9fbc78
9fbc78
%if %{build_libquadmath}
9fbc78
%files -n %{?scl_prefix}libquadmath-devel
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/quadmath.h
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/quadmath_weak.h
9fbc78
%ifarch sparcv9 ppc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libquadmath.a
9fbc78
%endif
9fbc78
%ifarch sparc64 ppc64 ppc64p7
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libquadmath.a
9fbc78
%endif
9fbc78
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
9fbc78
%endif
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%ifarch %{ix86}
9fbc78
# Need it for -m32.
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran_nonshared.a
9fbc78
%endif
9fbc78
%doc rpm.doc/libquadmath/ChangeLog*
9fbc78
%endif
9fbc78
9fbc78
%if %{build_libitm}
9fbc78
%files -n %{?scl_prefix}libitm-devel
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%ifarch sparcv9 ppc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libitm.a
9fbc78
%endif
9fbc78
%ifarch sparc64 ppc64 ppc64p7
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libitm.a
9fbc78
%endif
9fbc78
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a
9fbc78
%endif
9fbc78
%doc rpm.doc/libitm/ChangeLog*
9fbc78
%endif
9fbc78
9fbc78
%if %{build_libatomic}
9fbc78
%files -n %{?scl_prefix}libatomic-devel
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%ifarch sparcv9 ppc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libatomic.a
9fbc78
%endif
9fbc78
%ifarch sparc64 ppc64 ppc64p7
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libatomic.a
9fbc78
%endif
9fbc78
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a
9fbc78
%endif
9fbc78
%doc rpm.doc/changelogs/libatomic/ChangeLog*
9fbc78
%endif
9fbc78
9fbc78
%if %{build_libasan}
9fbc78
%files -n libasan8
9fbc78
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libasan.so.8*
9fbc78
9fbc78
%files -n %{?scl_prefix}libasan-devel
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%ifarch sparcv9 ppc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libasan.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libasan_preinit.o
9fbc78
%endif
9fbc78
%ifarch sparc64 ppc64 ppc64p7
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libasan.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libasan_preinit.o
9fbc78
%endif
9fbc78
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o
9fbc78
%endif
9fbc78
%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
9fbc78
%endif
9fbc78
9fbc78
%if %{build_libtsan}
9fbc78
%files -n libtsan2
9fbc78
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libtsan.so.2*
9fbc78
9fbc78
%files -n %{?scl_prefix}libtsan-devel
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan_preinit.o
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.a
9fbc78
%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
9fbc78
%endif
9fbc78
9fbc78
%if %{build_libubsan}
9fbc78
# GTS 12 libubsan1 would clash with the system RHEL 8 libubsan.
9fbc78
%if 0%{?rhel} < 8
9fbc78
%files -n libubsan1
9fbc78
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libubsan.so.1*
9fbc78
%endif
9fbc78
9fbc78
%files -n %{?scl_prefix}libubsan-devel
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a
9fbc78
%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
9fbc78
%endif
9fbc78
9fbc78
%if %{build_liblsan}
9fbc78
# Use the system liblsan.
9fbc78
%if 0%{?rhel} < 8
9fbc78
%files -n liblsan
9fbc78
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/liblsan.so.0*
9fbc78
%else
9fbc78
%ifarch s390x
9fbc78
# Except that on s390x we don't have the system liblsan, because we
9fbc78
# only enabled LSan in GCC 12.  ??? Ugly duplication.
9fbc78
%files -n liblsan
9fbc78
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/liblsan.so.0*
9fbc78
%endif
9fbc78
%endif
9fbc78
9fbc78
%files -n %{?scl_prefix}liblsan-devel
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan_preinit.o
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.a
9fbc78
%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
9fbc78
%endif
9fbc78
9fbc78
%files -n %{?scl_prefix}libgccjit
9fbc78
%{_prefix}/%{_lib}/libgccjit.so*
9fbc78
%doc rpm.doc/changelogs/gcc/jit/ChangeLog*
9fbc78
9fbc78
%files -n %{?scl_prefix}libgccjit-devel
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgccjit.so
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/libgccjit*.h
9fbc78
9fbc78
%files -n %{?scl_prefix}libgccjit-docs
9fbc78
%{_infodir}/libgccjit.info*
9fbc78
%doc rpm.doc/libgccjit-devel/*
9fbc78
%doc gcc/jit/docs/examples
9fbc78
9fbc78
%files plugin-devel
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/gtype.state
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/include
9fbc78
%dir %{_prefix}/libexec/gcc
9fbc78
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
9fbc78
9fbc78
%if 0
9fbc78
%files gdb-plugin
9fbc78
%{_prefix}/%{_lib}/libcc1.so*
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcc1plugin.so*
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcp1plugin.so*
9fbc78
%doc rpm.doc/changelogs/libcc1/ChangeLog*
9fbc78
%endif
9fbc78
9fbc78
%if %{build_offload_nvptx}
9fbc78
%files -n %{?scl_prefix}offload-nvptx
9fbc78
%{_prefix}/bin/nvptx-none-*
9fbc78
%{_prefix}/bin/%{gcc_target_platform}-accel-nvptx-none-gcc
9fbc78
%{_prefix}/bin/%{gcc_target_platform}-accel-nvptx-none-lto-dump
9fbc78
%dir %{_prefix}/lib/gcc
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel
9fbc78
%dir %{_prefix}/libexec/gcc
9fbc78
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
9fbc78
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
9fbc78
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel
9fbc78
%{_prefix}/lib/gcc/nvptx-none
9fbc78
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none
9fbc78
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none
9fbc78
%dir %{_prefix}/nvptx-none
9fbc78
%{_prefix}/nvptx-none/bin
9fbc78
%{_prefix}/nvptx-none/include
9fbc78
%endif
9fbc78
9fbc78
%changelog
5e6e6d
* Fri Feb 10 2023 Marek Polacek <polacek@redhat.com> 12.2.1-4.1
5e6e6d
- avoid fma_chain for -march=alderlake and sapphirerapids (#2168916)
5e6e6d
5e6e6d
* Wed Nov 23 2022 Marek Polacek <polacek@redhat.com> 12.2.1-4
5e6e6d
- update from releases/gcc-12 branch (#2110580)
5e6e6d
- fix up std::from_chars behavior in rounding modes other than FE_TONEAREST
5e6e6d
  (PR libstdc++/107468)
5e6e6d
5e6e6d
* Tue Oct 18 2022 Marek Polacek <polacek@redhat.com> 12.1.1-3.4
5e6e6d
- fix pr86731-fwrapv-longlong.c (#2134379)
5e6e6d
5e6e6d
* Mon Oct  3 2022 Marek Polacek <polacek@redhat.com> 12.1.1-3.3
5e6e6d
- add -static-libquadmath (#2094428)
4612aa
9fbc78
* Fri Jul  8 2022 Marek Polacek <polacek@redhat.com> 12.1.1-3.2
9fbc78
- recognize PLUS and XOR forms of rldimi (PR target/105991, #2095789)
9fbc78
9fbc78
* Fri Jul  8 2022 Marek Polacek <polacek@redhat.com> 12.1.1-3.1
9fbc78
- always ship liblsan on s390x (#2104824)
9fbc78
9fbc78
* Wed Jul  6 2022 Marek Polacek <polacek@redhat.com> 12.1.1-3
9fbc78
- update from releases/gcc-12 branch
9fbc78
  - PRs c++/49387, c++/102307, c++/102651, c++/104470, c++/105491, c++/105589,
9fbc78
	c++/105623, c++/105652, c++/105655, c++/105725, c++/105734,
9fbc78
	c++/105756, c++/105761, c++/105779, c++/105795, c++/105852,
9fbc78
	c++/105871, c++/105885, c++/105908, c++/105925, c++/105931,
9fbc78
	c++/105964, c++/106001, c/105635, d/105544, fortran/105230,
9fbc78
	gcov-profile/105535, ipa/100413, ipa/105600, ipa/105639, ipa/105739,
9fbc78
	libgomp/105745, libgomp/106045, libstdc++/104731, libstdc++/105284,
9fbc78
	libstdc++/105671, libstdc++/105681, middle-end/105537,
9fbc78
	middle-end/105604, middle-end/105711, middle-end/105951,
9fbc78
	middle-end/105998, middle-end/106030, other/105527,
9fbc78
	preprocessor/105732, rtl-optimization/105455, rtl-optimization/105559,
9fbc78
	rtl-optimization/105577, sanitizer/105714, sanitizer/105729,
9fbc78
	target/101891, target/104871, target/105162, target/105209,
9fbc78
	target/105292, target/105472, target/105556, target/105599,
9fbc78
	target/105854, target/105879, target/105953, target/105960,
9fbc78
	target/105970, target/105981, target/106096, tree-optimization/103116,
9fbc78
	tree-optimization/105431, tree-optimization/105458,
9fbc78
	tree-optimization/105528, tree-optimization/105562,
9fbc78
	tree-optimization/105618, tree-optimization/105726,
9fbc78
	tree-optimization/105736, tree-optimization/105786,
9fbc78
	tree-optimization/105940
9fbc78
- enable tsan and lsan on s390x (#2101610)
9fbc78
- fix up libtsan on s390x
9fbc78
- fix nvptx build (PRs bootstrap/105551, target/105938)
9fbc78
9fbc78
* Tue Jun 28 2022 Marek Polacek <polacek@redhat.com> 12.1.1-1.6
9fbc78
- ship lto-dump (#2101835)
9fbc78
9fbc78
* Thu Jun 23 2022 Marek Polacek <polacek@redhat.com> 12.1.1-1.5
9fbc78
- don't provide g++/fortran (CS-1145)
9fbc78
9fbc78
* Wed Jun 15 2022 Marek Polacek <polacek@redhat.com> 12.1.1-1.4
9fbc78
- testsuite fixes (#2095749 )
9fbc78
9fbc78
* Wed Jun  1 2022 Marek Polacek <polacek@redhat.com> 12.1.1-1.3
9fbc78
- run the testsuite on s390x/ppc64 too
9fbc78
9fbc78
* Tue May 31 2022 Marek Polacek <polacek@redhat.com> 12.1.1-1.2
9fbc78
- add missing headers (#2091572)
9fbc78
9fbc78
* Thu May 26 2022 Marek Polacek <polacek@redhat.com> 12.1.1-1.1
9fbc78
- use DTS 12 gdb
9fbc78
9fbc78
* Mon May 16 2022 Marek Polacek <polacek@redhat.com> 12.1.1-1
9fbc78
- update to GCC 12 (#2077042)
9fbc78
9fbc78
* Fri Jan 28 2022 Marek Polacek <polacek@redhat.com> 11.2.1-9
9fbc78
- update from releases/gcc-11-branch (#2047298)
9fbc78
  - PRs fortran/104127, fortran/104212, fortran/104227, target/101529
9fbc78
- fix up va-opt-6.c testcase
9fbc78
9fbc78
* Fri Jan 28 2022 Marek Polacek <polacek@redhat.com> 11.2.1-8
9fbc78
- update from releases/gcc-11-branch (#2047298)
9fbc78
  - PRs ada/103538, analyzer/101962, bootstrap/103688, c++/85846, c++/95009,
9fbc78
	c++/98394, c++/99911, c++/100493, c++/101715, c++/102229, c++/102933,
9fbc78
	c++/103012, c++/103198, c++/103480, c++/103703, c++/103714,
9fbc78
	c++/103758, c++/103783, c++/103831, c++/103912, c++/104055, c/97548,
9fbc78
	c/101289, c/101537, c/103587, c/103881, d/103604, debug/103838,
9fbc78
	debug/103874, fortran/67804, fortran/83079, fortran/101329,
9fbc78
	fortran/101762, fortran/102332, fortran/102717, fortran/102787,
9fbc78
	fortran/103411, fortran/103412, fortran/103418, fortran/103473,
9fbc78
	fortran/103505, fortran/103588, fortran/103591, fortran/103606,
9fbc78
	fortran/103607, fortran/103609, fortran/103610, fortran/103692,
9fbc78
	fortran/103717, fortran/103718, fortran/103719, fortran/103776,
9fbc78
	fortran/103777, fortran/103778, fortran/103782, fortran/103789,
9fbc78
	ipa/101354, jit/103562, libfortran/103634, libstdc++/100017,
9fbc78
	libstdc++/102994, libstdc++/103453, libstdc++/103501,
9fbc78
	libstdc++/103549, libstdc++/103877, libstdc++/103919,
9fbc78
	middle-end/101751, middle-end/102860, middle-end/103813, objc/103639,
9fbc78
	preprocessor/89971, preprocessor/102432, rtl-optimization/102478,
9fbc78
	rtl-optimization/103837, rtl-optimization/103860,
9fbc78
	rtl-optimization/103908, sanitizer/102911, target/102347,
9fbc78
	target/103465, target/103661, target/104172, target/104188,
9fbc78
	tree-optimization/101615, tree-optimization/103523,
9fbc78
	tree-optimization/103603, tree-optimization/103995
9fbc78
9fbc78
* Tue Jan  4 2022 Marek Polacek <polacek@redhat.com> 11.2.1-7.2
9fbc78
- fix dg-ice tests (#1986854)
9fbc78
9fbc78
* Thu Dec  9 2021 Marek Polacek <polacek@redhat.com> 11.2.1-7.1
9fbc78
- update Intel Tremont tuning patches (#2014276)
9fbc78
- backport Intel Alderlake tuning (#2023553)
9fbc78
9fbc78
* Tue Dec  7 2021 Marek Polacek <polacek@redhat.com> 11.2.1-7
9fbc78
- update from releases/gcc-11-branch (#1996860)
9fbc78
  - PRs ada/100486, c++/70796, c++/92746, c++/93286, c++/94490, c++/102642,
9fbc78
	c++/102786, debug/101378, debug/103046, debug/103315, fortran/87711,
9fbc78
	fortran/87851, fortran/97896, fortran/99061, fortran/99348,
9fbc78
	fortran/102521, fortran/102685, fortran/102715, fortran/102745,
9fbc78
	fortran/102816, fortran/102817, fortran/102917, fortran/103137,
9fbc78
	fortran/103138, fortran/103392, gcov-profile/100520, ipa/102714,
9fbc78
	ipa/102762, ipa/103052, ipa/103246, ipa/103267, libstdc++/96416,
9fbc78
	libstdc++/98421, libstdc++/100117, libstdc++/100153, libstdc++/100748,
9fbc78
	libstdc++/101571, libstdc++/101608, libstdc++/102894,
9fbc78
	libstdc++/103022, libstdc++/103086, libstdc++/103133,
9fbc78
	libstdc++/103240, libstdc++/103381, middle-end/64888,
9fbc78
	middle-end/101480, middle-end/102431, middle-end/102518,
9fbc78
	middle-end/103059, middle-end/103181, middle-end/103248,
9fbc78
	middle-end/103384, preprocessor/103130, rtl-optimization/102356,
9fbc78
	rtl-optimization/102842, target/101985, target/102976, target/102991,
9fbc78
	target/103205, target/103274, target/103275, testsuite/102690,
9fbc78
	tree-optimization/100393, tree-optimization/102139,
9fbc78
	tree-optimization/102505, tree-optimization/102572,
9fbc78
	tree-optimization/102788, tree-optimization/102789,
9fbc78
	tree-optimization/102798, tree-optimization/102970,
9fbc78
	tree-optimization/103192, tree-optimization/103204,
9fbc78
	tree-optimization/103237, tree-optimization/103255,
9fbc78
	tree-optimization/103435
9fbc78
- fix up #__VA_OPT__ handling (PR preprocessor/103415)
9fbc78
9fbc78
* Mon Nov 29 2021 Marek Polacek <polacek@redhat.com> 11.2.1-6.3
9fbc78
- fix libubsan.a symlink (#2027391)
9fbc78
9fbc78
* Wed Nov 17 2021 Marek Polacek <polacek@redhat.com> 11.2.1-6.2
9fbc78
- backport Intel Tremont tuning (#2014276)
9fbc78
9fbc78
* Wed Nov 17 2021 Marek Polacek <polacek@redhat.com> 11.2.1-6.1
9fbc78
- add -Wbidi-chars patch
9fbc78
- use devtoolset-11-gdb
9fbc78
9fbc78
* Tue Oct 26 2021 Marek Polacek <polacek@redhat.com> 11.2.1-6
9fbc78
- update from releases/gcc-11-branch (#1996860)
9fbc78
  - PRs target/100208, target/100316, target/102761
9fbc78
- build target shared libraries with -Wl,-z,relro,-z,now
9fbc78
- add mwaitintrin.h on x86 (#2013860)
9fbc78
- improve generated code with extern thread_local constinit vars
9fbc78
  with trivial dtors
9fbc78
- add support for C++20 #__VA_OPT__
9fbc78
- apply DTS-specific testsuite patches (#1986854)
9fbc78
9fbc78
* Mon Aug 16 2021 Marek Polacek <polacek@redhat.com> 11.2.1-1.1
9fbc78
- add .hidden for _ZNSt10filesystem9_Dir_base7advanceEbRSt10error_code
9fbc78
9fbc78
* Wed Jul 28 2021 Marek Polacek <polacek@redhat.com> 11.2.1-1
9fbc78
- update from releases/gcc-11-branch (#1986841)
9fbc78
  - GCC 11.2 release
9fbc78
  - PRs middle-end/101586, rtl-optimization/101562
9fbc78
9fbc78
* Wed Jul  7 2021 Marek Polacek <polacek@redhat.com> 11.1.1-6.1
9fbc78
- provide libubsan.a on ppc64 in libubsan-devel (#1977855)
9fbc78
9fbc78
* Wed Jun 23 2021 Marek Polacek <polacek@redhat.com> 11.1.1-6
9fbc78
- update from Fedora gcc 11.1.1-6 (#1957522)
9fbc78
  - PRs c++/100876, c++/100879, c++/101106, c/100619, c/100783, fortran/95501,
9fbc78
   fortran/95502, fortran/100283, fortran/101123, inline-asm/100785,
9fbc78
   libstdc++/91488, libstdc++/95833, libstdc++/100806, libstdc++/100940,
9fbc78
   middle-end/100250, middle-end/100307, middle-end/100574,
9fbc78
   middle-end/100684, middle-end/100732, middle-end/100876,
9fbc78
   middle-end/101062, middle-end/101167, target/99842, target/99939,
9fbc78
   target/100310, target/100777, target/100856, target/100871,
9fbc78
   target/101016
9fbc78
9fbc78
* Mon Jun 21 2021 Marek Polacek <polacek@redhat.com> 11.1.1-5
9fbc78
- update from Fedora gcc 11.1.1-5 (#1957522)
9fbc78
- default to -gdwarf-4 (#1974428)
9fbc78
9fbc78
* Wed Jun  2 2021 Marek Polacek <polacek@redhat.com> 11.1.1-3
9fbc78
- update from Fedora gcc 11.1.1-3 (#1957522)
9fbc78
9fbc78
* Wed May 12 2021 Marek Polacek <polacek@redhat.com> 11.1.1-2
9fbc78
- update from Fedora gcc 11.1.1-2
9fbc78
- fix up mausezahn miscompilation (PR tree-optimization/100566)
9fbc78
- fix build with removed linux/cyclades.h header (PR sanitizer/100379)
9fbc78
9fbc78
* Tue May 11 2021 Marek Polacek <polacek@redhat.com> 11.1.1-1
9fbc78
- update to GCC 11 (#1957522)
9fbc78
9fbc78
* Thu Mar 18 2021 Marek Polacek <polacek@redhat.com> 10.2.1-11.1
9fbc78
- update libgomp_nonshared.c with new symbols
9fbc78
9fbc78
* Tue Feb 16 2021 Marek Polacek <polacek@redhat.com> 10.2.1-11
9fbc78
- update from Fedora gcc 10.2.1-11
9fbc78
- apply gcc10-SIZE_MAX.patch
9fbc78
9fbc78
* Tue Feb 16 2021 Marek Polacek <polacek@redhat.com> 10.2.1-10.4
9fbc78
- package 32/libgfortran_nonshared.a (#1927579)
9fbc78
9fbc78
* Mon Feb 15 2021 Marek Polacek <polacek@redhat.com> 10.2.1-10.3
9fbc78
- actually use libgfortran_nonshared.a (#1927579)
9fbc78
9fbc78
* Mon Jan 25 2021 Marek Polacek <polacek@redhat.com> 10.2.1-10.2
9fbc78
- require make
9fbc78
- apply PR97524 fix (#1896092)
9fbc78
9fbc78
* Tue Jan 19 2021 Marek Polacek <polacek@redhat.com> 10.2.1-10.1
9fbc78
- update from Fedora gcc 10.2.1-10 (#1872051)
9fbc78
- drop gcc10-pr96385.patch
9fbc78
9fbc78
* Mon Aug 17 2020 Marek Polacek <polacek@redhat.com> 10.2.1-2.1
9fbc78
- re-enable Fortran patches (#1860413)
9fbc78
9fbc78
* Tue Aug  4 2020 Marek Polacek <polacek@redhat.com> 10.2.1-2
9fbc78
- update from Fedora gcc 10.2.1-2
9fbc78
- emit debug info for C/C++ external function declarations used in the TU
9fbc78
  (PR debug/96383)
9fbc78
- discard SHN_UNDEF global symbols from LTO debuginfo (PR lto/96385)
9fbc78
- strip also -flto=auto from optflags
9fbc78
9fbc78
* Sun Aug  2 2020 Marek Polacek <polacek@redhat.com> 10.2.1-1.2
9fbc78
- avoid stack overflow in std::vector (PR libstdc++/94540, #1859670)
9fbc78
- apply gcc10-libgfortran-compat-2.patch
9fbc78
9fbc78
* Sat Aug  1 2020 Marek Polacek <polacek@redhat.com> 10.2.1-1.1
9fbc78
- add various .hidden symbols to gcc10-libstdc++-compat.patch
9fbc78
9fbc78
* Mon Jul 27 2020 Marek Polacek <polacek@redhat.com> 10.2.1-1
9fbc78
- GCC 10.2 release
9fbc78
- add symlink to liblto_plugin.so in /usr/lib/bfd-plugins
9fbc78
- disable -flto in %%{optflags}, lto bootstrap will be enabled the GCC way
9fbc78
  later
9fbc78
- require MPFR Library version 3.1.0 (or later)
9fbc78
9fbc78
* Wed Jul 22 2020 Marek Polacek <polacek@redhat.com> 10.1.1-1.1
9fbc78
- require libasan6
9fbc78
9fbc78
* Mon Jul 13 2020 Marek Polacek <polacek@redhat.com> 10.1.1-1
9fbc78
- update to GCC 10.1.0 release (#1851053)
9fbc78
9fbc78
* Thu Jun  4 2020 Marek Polacek <polacek@redhat.com> 9.3.1-2.1
9fbc78
- bump for rebuild on ppc/s390
9fbc78
9fbc78
* Wed Apr  8 2020 Marek Polacek <polacek@redhat.com> 9.3.1-2
9fbc78
- update from Fedora gcc-9.3.1-2
9fbc78
9fbc78
* Tue Apr 7 2020 Marek Polacek <polacek@redhat.com> 9.3.1-1.1
9fbc78
- include the c++/93597 fix
9fbc78
- remove several .hidden symbols from gcc9-libstdc++-compat
9fbc78
9fbc78
* Wed Mar 18 2020 Marek Polacek <polacek@redhat.com> 9.3.1-1
9fbc78
- update from Fedora gcc-9.3.1-1 (#1812147)
9fbc78
9fbc78
* Thu Feb  6 2020 Marek Polacek <polacek@redhat.com> 9.2.1-3.8
9fbc78
- remove a few *codecvt_utf8* symbols from gcc9-libstdc++-compat
9fbc78
9fbc78
* Wed Jan 29 2020 Marek Polacek <polacek@redhat.com> 9.2.1-3.7
9fbc78
- gcc9-libstdc++-compat fix: move _ZSt19__throw_ios_failurePKc
9fbc78
9fbc78
* Wed Jan 29 2020 Marek Polacek <polacek@redhat.com> 9.2.1-3.6
9fbc78
- update from Fedora gcc-9.2.1-3 (#1783475)
9fbc78
9fbc78
* Thu Nov 21 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2.6
9fbc78
- fix libgomp_nonshared.a symlink on ppc64
9fbc78
9fbc78
* Tue Nov 19 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2.5
9fbc78
- add libgomp_nonshared.a (#1769957)
9fbc78
9fbc78
* Thu Aug 15 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2.4
9fbc78
- require binutils >= 2.31 so that gcc supports -mpltseq
9fbc78
9fbc78
* Fri Aug  9 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2.3
9fbc78
- fix visibility of symbols in gcc9-libstdc++-compat.patch (#1738677)
9fbc78
9fbc78
* Mon Jul 22 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2.2
9fbc78
- small fixes for the Fortran patches (#1728355)
9fbc78
9fbc78
* Mon Jul 22 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2.1
9fbc78
- updates from GTS 9 gcc
9fbc78
9fbc78
* Fri Jul 19 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2
9fbc78
- fix Release
9fbc78
9fbc78
* Thu Jul 18 2019 Marek Polacek <polacek@redhat.com> 9.1.1-1.1
9fbc78
- fix out-of-ssa with unsupported vector types (PR rtl-optimization/90756,
9fbc78
  #1727979)
9fbc78
- apply Fortran patches (#1728355)
9fbc78
9fbc78
* Tue Jul  9 2019 Marek Polacek <polacek@redhat.com> 9.1.1-1
9fbc78
- new package
9fbc78
- fix library requires: use %{_isa} (#1697655)