Blame SPECS/gcc.spec

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