Blame SPECS/gcc.spec

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