Blame SPECS/gcc.spec

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