Blame SPECS/gcc.spec

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