Blame SPECS/gcc.spec

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