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