Blame SPECS/gcc.spec

f61693
%global __python /usr/bin/python3
f61693
%{?scl:%global __strip %%{_scl_root}/usr/bin/strip}
f61693
%{?scl:%global __objdump %%{_scl_root}/usr/bin/objdump}
f61693
%{?scl:%scl_package gcc}
f61693
%global DATE 20210728
f61693
%global gitrev 134ab8155c937122663513b76afa8e64ad61fe99
f61693
%global gcc_version 11.2.1
f61693
%global gcc_major 11
f61693
# Note, gcc_release must be integer, if you want to add suffixes to
f61693
# %%{release}, append them after %%{gcc_release} on Release: line.
f61693
%global gcc_release 1
f61693
%global nvptx_tools_gitrev 5f6f343a302d620b0868edab376c00b15741e39e
f61693
%global newlib_cygwin_gitrev 50e2a63b04bdd018484605fbb954fd1bd5147fa0
f61693
%global mpc_version 1.0.3
f61693
%global isl_version 0.18
f61693
%global mpfr_version 3.1.4
f61693
%global gmp_version 6.1.0
f61693
%global doxygen_version 1.8.0
f61693
%global _unpackaged_files_terminate_build 0
f61693
%if 0%{?fedora} > 27 || 0%{?rhel} > 7
f61693
%undefine _annotated_build
f61693
%endif
f61693
# Strip will fail on nvptx-none *.a archives and the brp-* scripts will
f61693
# fail randomly depending on what is stripped last.
f61693
%if 0%{?__brp_strip_static_archive:1}
f61693
%global __brp_strip_static_archive %{__brp_strip_static_archive} || :
f61693
%endif
f61693
%if 0%{?__brp_strip_lto:1}
f61693
%global __brp_strip_lto %{__brp_strip_lto} || :
f61693
%endif
f61693
%global multilib_64_archs sparc64 ppc64 ppc64p7 x86_64
f61693
%if 0%{?rhel} > 7
f61693
%global build_ada 0
f61693
%global build_objc 0
f61693
%global build_go 0
f61693
%global build_d 0
f61693
%else
f61693
%ifarch %{ix86} x86_64 ia64 ppc %{power64} alpha s390x %{arm} aarch64
f61693
%global build_ada 0
f61693
%else
f61693
%global build_ada 0
f61693
%endif
f61693
%global build_objc 0
f61693
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips}
f61693
%global build_go 0
f61693
%else
f61693
%global build_go 0
f61693
%endif
f61693
%ifarch %{ix86} x86_64 %{arm} %{mips} s390 s390x riscv64
f61693
%global build_d 1
f61693
%else
f61693
%global build_d 0
f61693
%endif
f61693
%endif
f61693
%if 0%{?rhel} >= 7
f61693
%ifarch %{ix86} x86_64 ia64 ppc ppc64 ppc64le
f61693
%global build_libquadmath 1
f61693
%else
f61693
%global build_libquadmath 0
f61693
%endif
f61693
%endif
f61693
%if 0%{?rhel} == 6
f61693
%ifarch %{ix86} x86_64 ia64 ppc64le
f61693
%global build_libquadmath 1
f61693
%else
f61693
%global build_libquadmath 0
f61693
%endif
f61693
%endif
f61693
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64
f61693
%global build_libasan 1
f61693
%else
f61693
%global build_libasan 0
f61693
%endif
f61693
%ifarch x86_64 ppc64 ppc64le aarch64
f61693
%global build_libtsan 1
f61693
%else
f61693
%global build_libtsan 0
f61693
%endif
f61693
%ifarch x86_64 ppc64 ppc64le aarch64
f61693
%global build_liblsan 1
f61693
%else
f61693
%global build_liblsan 0
f61693
%endif
f61693
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64
f61693
%global build_libubsan 1
f61693
%else
f61693
%global build_libubsan 0
f61693
%endif
f61693
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64
f61693
%global build_libatomic 1
f61693
%else
f61693
%global build_libatomic 0
f61693
%endif
f61693
%ifarch %{ix86} x86_64 %{arm} alpha ppc ppc64 ppc64le ppc64p7 s390 s390x aarch64
f61693
%global build_libitm 1
f61693
%else
f61693
%global build_libitm 0
f61693
%endif
f61693
%if 0%{?rhel} == 6
f61693
%global build_isl 0
f61693
%else
f61693
%global build_isl 1
f61693
%endif
f61693
%global build_libstdcxx_docs 1
f61693
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips}
f61693
%global attr_ifunc 1
f61693
%else
f61693
%global attr_ifunc 0
f61693
%endif
f61693
%ifarch x86_64 ppc64le
f61693
%if 0%{?rhel} >= 8
f61693
%global build_offload_nvptx 1
f61693
%else
f61693
%global build_offload_nvptx 0
f61693
%endif
f61693
%else
f61693
%global build_offload_nvptx 0
f61693
%endif
f61693
%if 0%{?fedora} < 32
f61693
%ifarch s390x
f61693
%global multilib_32_arch s390
f61693
%endif
f61693
%endif
f61693
%ifarch sparc64
f61693
%global multilib_32_arch sparcv9
f61693
%endif
f61693
%ifarch ppc64 ppc64p7
f61693
%global multilib_32_arch ppc
f61693
%endif
f61693
%ifarch x86_64
f61693
%global multilib_32_arch i686
f61693
%endif
f61693
Summary: GCC version 11
f61693
Name: %{?scl_prefix}gcc
f61693
Version: %{gcc_version}
4c2713
Release: %{gcc_release}.2%{?dist}
f61693
# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
f61693
# GCC Runtime Exception.
f61693
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
f61693
# The source for this package was pulled from upstream's vcs.
f61693
# %%{gitrev} is some commit from the
f61693
# https://gcc.gnu.org/git/?p=gcc.git;h=refs/vendors/redhat/heads/gcc-%%{gcc_major}-branch
f61693
# branch.  Use the following commands to generate the tarball:
f61693
# git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
f61693
# git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin %%{gitrev}
f61693
# git --git-dir=gcc-dir.tmp/.git archive --prefix=%%{name}-%%{version}-%%{DATE}/ %%{gitrev} | xz -9e > %%{name}-%%{version}-%%{DATE}.tar.xz
f61693
# rm -rf gcc-dir.tmp
f61693
Source0: gcc-%{version}-%{DATE}.tar.xz
f61693
Source1: https://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2
f61693
Source2: http://www.multiprecision.org/mpc/download/mpc-%{mpc_version}.tar.gz
f61693
Source3: ftp://ftp.stack.nl/pub/users/dimitri/doxygen-%{doxygen_version}.src.tar.gz
f61693
# The source for nvptx-tools package was pulled from upstream's vcs.  Use the
f61693
# following commands to generate the tarball:
f61693
# git clone --depth 1 git://github.com/MentorEmbedded/nvptx-tools.git nvptx-tools-dir.tmp
f61693
# git --git-dir=nvptx-tools-dir.tmp/.git fetch --depth 1 origin %%{nvptx_tools_gitrev}
f61693
# 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
f61693
# rm -rf nvptx-tools-dir.tmp
f61693
Source4: nvptx-tools-%{nvptx_tools_gitrev}.tar.xz
f61693
# The source for nvptx-newlib package was pulled from upstream's vcs.  Use the
f61693
# following commands to generate the tarball:
f61693
# git clone git://sourceware.org/git/newlib-cygwin.git newlib-cygwin-dir.tmp
f61693
# 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
f61693
# rm -rf newlib-cygwin-dir.tmp
f61693
Source5: newlib-cygwin-%{newlib_cygwin_gitrev}.tar.xz
f61693
Source6: libgomp_nonshared.c
f61693
Source7: http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-%{mpfr_version}.tar.bz2
f61693
Source8: http://gcc.gnu.org/pub/gcc/infrastructure/gmp-%{gmp_version}.tar.bz2
f61693
URL: http://gcc.gnu.org
f61693
# Need binutils with -pie support >= 2.14.90.0.4-4
f61693
# Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4
f61693
# Need binutils which handle -msecure-plt on ppc >= 2.16.91.0.2-2
f61693
# Need binutils which support .weakref >= 2.16.91.0.3-1
f61693
# Need binutils which support --hash-style=gnu >= 2.17.50.0.2-7
f61693
# Need binutils which support mffgpr and mftgpr >= 2.17.50.0.2-8
f61693
# Need binutils which support --build-id >= 2.17.50.0.17-3
f61693
# Need binutils which support %%gnu_unique_object >= 2.19.51.0.14
f61693
# Need binutils which support .cfi_sections >= 2.19.51.0.14-33
f61693
# Need binutils which support --no-add-needed >= 2.20.51.0.2-12
f61693
# Need binutils which support -plugin
f61693
# Need binutils which support .loc view >= 2.30
f61693
# Need binutils which support --generate-missing-build-notes=yes >= 2.31
f61693
%if 0%{?scl:1}
f61693
BuildRequires: %{?scl_prefix}binutils >= 2.31
f61693
# For testing
f61693
BuildRequires: %{?scl_prefix}gdb >= 7.4.50
f61693
%endif
f61693
# While gcc doesn't include statically linked binaries, during testing
f61693
# -static is used several times.
f61693
BuildRequires: glibc-static
f61693
BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, sharutils
f61693
BuildRequires: texinfo, texinfo-tex, /usr/bin/pod2man
f61693
#BuildRequires: systemtap-sdt-devel >= 1.3
f61693
#BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 3.1.0, libmpc-devel >= 0.8.1
f61693
#BuildRequires: python3-devel, /usr/bin/python
f61693
BuildRequires: gcc, gcc-c++, make
f61693
%if 0%{?rhel} <= 7
f61693
BuildRequires: python3
f61693
%endif
f61693
# For VTA guality testing
f61693
BuildRequires: gdb
f61693
# Make sure pthread.h doesn't contain __thread tokens
f61693
# Make sure glibc supports stack protector
f61693
# Make sure glibc supports DT_GNU_HASH
f61693
BuildRequires: glibc-devel >= 2.4.90-13
f61693
BuildRequires: elfutils-devel >= 0.147
f61693
BuildRequires: elfutils-libelf-devel >= 0.147
f61693
%if 0%{?rhel} >= 8
f61693
BuildRequires: libzstd-devel
f61693
%endif
f61693
%ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha
f61693
# Make sure glibc supports TFmode long double
f61693
BuildRequires: glibc >= 2.3.90-35
f61693
%endif
f61693
%ifarch %{multilib_64_archs} sparcv9 ppc
f61693
# Ensure glibc{,-devel} is installed for both multilib arches
f61693
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
f61693
%endif
f61693
%ifarch ia64
f61693
BuildRequires: libunwind >= 0.98
f61693
%endif
f61693
# Need .eh_frame ld optimizations
f61693
# Need proper visibility support
f61693
# Need -pie support
f61693
# Need --as-needed/--no-as-needed support
f61693
# On ppc64, need omit dot symbols support and --non-overlapping-opd
f61693
# Need binutils that owns /usr/bin/c++filt
f61693
# Need binutils that support .weakref
f61693
# Need binutils that supports --hash-style=gnu
f61693
# Need binutils that support mffgpr/mftgpr
f61693
# Need binutils that support --build-id
f61693
# Need binutils that support %%gnu_unique_object
f61693
# Need binutils that support .cfi_sections
f61693
# Need binutils that support --no-add-needed
f61693
# Need binutils that support -plugin
f61693
# Need binutils that support .loc view >= 2.30
f61693
# Need binutils which support --generate-missing-build-notes=yes >= 2.31
f61693
%if 0%{?rhel} <= 8
f61693
Requires: %{?scl_prefix}binutils >= 2.22.52.0.1
f61693
%else
f61693
Requires: binutils >= 2.24
f61693
%endif
f61693
# Make sure gdb will understand DW_FORM_strp
f61693
Conflicts: gdb < 5.1-2
f61693
Requires: glibc-devel >= 2.2.90-12
f61693
%ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha
f61693
# Make sure glibc supports TFmode long double
f61693
Requires: glibc >= 2.3.90-35
f61693
%endif
f61693
%if 0%{?rhel} >= 7
f61693
BuildRequires: gmp-devel >= 4.3.2
f61693
BuildRequires: mpfr-devel >= 3.1.0
f61693
BuildRequires: libmpc-devel >= 0.8.1
f61693
%endif
f61693
%if %{build_libstdcxx_docs}
f61693
BuildRequires: libxml2
f61693
BuildRequires: graphviz
f61693
%if 0%{?rhel} < 7
f61693
# doxygen BRs
f61693
BuildRequires: perl
f61693
BuildRequires: texlive-dvips, texlive-utils, texlive-latex
f61693
BuildRequires: ghostscript
f61693
%endif
f61693
%if 0%{?rhel} >= 7
f61693
BuildRequires: doxygen >= 1.7.1
f61693
BuildRequires: dblatex, texlive-collection-latex, docbook5-style-xsl
f61693
%endif
f61693
%endif
f61693
Requires: libgcc >= 4.1.2-43
f61693
Requires: libgomp >= 4.4.4-13
f61693
# lto-wrapper invokes make
f61693
Requires: make
f61693
%{?scl:Requires:%scl_runtime}
f61693
AutoReq: true
f61693
# Various libraries are imported.  #1859893 asks us to list them all.
f61693
Provides: bundled(libiberty)
f61693
Provides: bundled(libbacktrace)
f61693
Provides: bundled(libffi)
f61693
Provides: gcc(major) = %{gcc_major}
f61693
%ifarch sparc64 ppc64 ppc64le s390x x86_64 ia64 aarch64
f61693
Provides: liblto_plugin.so.0()(64bit)
f61693
%else
f61693
Provides: liblto_plugin.so.0
f61693
%endif
f61693
%global oformat %{nil}
f61693
%global oformat2 %{nil}
f61693
%ifarch %{ix86}
f61693
%global oformat OUTPUT_FORMAT(elf32-i386)
f61693
%endif
f61693
%ifarch x86_64
f61693
%global oformat OUTPUT_FORMAT(elf64-x86-64)
f61693
%global oformat2 OUTPUT_FORMAT(elf32-i386)
f61693
%endif
f61693
%ifarch ppc
f61693
%global oformat OUTPUT_FORMAT(elf32-powerpc)
f61693
%global oformat2 OUTPUT_FORMAT(elf64-powerpc)
f61693
%endif
f61693
%ifarch ppc64
f61693
%global oformat OUTPUT_FORMAT(elf64-powerpc)
f61693
%global oformat2 OUTPUT_FORMAT(elf32-powerpc)
f61693
%endif
f61693
%ifarch s390
f61693
%global oformat OUTPUT_FORMAT(elf32-s390)
f61693
%endif
f61693
%ifarch s390x
f61693
%global oformat OUTPUT_FORMAT(elf64-s390)
f61693
%global oformat2 OUTPUT_FORMAT(elf32-s390)
f61693
%endif
f61693
%ifarch ia64
f61693
%global oformat OUTPUT_FORMAT(elf64-ia64-little)
f61693
%endif
f61693
%ifarch ppc64le
f61693
%global oformat OUTPUT_FORMAT(elf64-powerpcle)
f61693
%endif
f61693
%ifarch aarch64
f61693
%global oformat OUTPUT_FORMAT(elf64-littleaarch64)
f61693
%endif
f61693
%if 0%{?rhel} == 6
f61693
ExclusiveArch: x86_64 %{ix86}
f61693
%endif
f61693
%if 0%{?rhel} == 7
f61693
ExcludeArch: aarch64
f61693
%endif
f61693
f61693
Patch0: gcc11-hack.patch
f61693
Patch2: gcc11-sparc-config-detection.patch
f61693
Patch3: gcc11-libgomp-omp_h-multilib.patch
f61693
Patch4: gcc11-libtool-no-rpath.patch
f61693
Patch5: gcc11-isl-dl.patch
f61693
Patch6: gcc11-isl-dl2.patch
f61693
Patch7: gcc11-libstdc++-docs.patch
f61693
Patch8: gcc11-no-add-needed.patch
f61693
Patch9: gcc11-foffload-default.patch
f61693
Patch10: gcc11-Wno-format-security.patch
f61693
Patch11: gcc11-rh1574936.patch
f61693
Patch12: gcc11-d-shared-libphobos.patch
4c2713
Patch13: gcc11-add-Wbidirectional.patch
f61693
f61693
Patch100: gcc11-fortran-fdec-duplicates.patch
f61693
Patch101: gcc11-fortran-flogical-as-integer.patch
f61693
Patch102: gcc11-fortran-fdec-ichar.patch
f61693
Patch103: gcc11-fortran-fdec-non-integer-index.patch
f61693
Patch104: gcc11-fortran-fdec-old-init.patch
f61693
Patch105: gcc11-fortran-fdec-override-kind.patch
f61693
Patch106: gcc11-fortran-fdec-non-logical-if.patch
f61693
Patch107: gcc11-fortran-fdec-promotion.patch
f61693
Patch108: gcc11-fortran-fdec-sequence.patch
f61693
Patch109: gcc11-fortran-fdec-add-missing-indexes.patch
f61693
f61693
Patch1000: gcc11-libstdc++-compat.patch
f61693
Patch1001: gcc11-alt-compat-test.patch
f61693
Patch1002: gcc11-libgfortran-compat.patch
f61693
f61693
Patch2001: doxygen-1.7.1-config.patch
f61693
Patch2002: doxygen-1.7.5-timestamp.patch
f61693
Patch2003: doxygen-1.8.0-rh856725.patch
f61693
f61693
%if 0%{?rhel} > 7
f61693
%global nonsharedver 80
f61693
%else
f61693
%if 0%{?rhel} == 7
f61693
%global nonsharedver 48
f61693
%else
f61693
%global nonsharedver 44
f61693
%endif
f61693
%endif
f61693
f61693
%if 0%{?scl:1}
f61693
%global _gnu %{nil}
f61693
%else
f61693
%global _gnu -gnueabi
f61693
%endif
f61693
%ifarch sparcv9
f61693
%global gcc_target_platform sparc64-%{_vendor}-%{_target_os}
f61693
%endif
f61693
%ifarch ppc ppc64p7
f61693
%global gcc_target_platform ppc64-%{_vendor}-%{_target_os}
f61693
%endif
f61693
%ifnarch sparcv9 ppc ppc64p7
f61693
%global gcc_target_platform %{_target_platform}
f61693
%endif
f61693
f61693
%description
f61693
The %{?scl_prefix}gcc%{!?scl:11} package contains the GNU Compiler Collection version 10.
f61693
f61693
%package -n libgcc
f61693
Summary: GCC version 11 shared support library
f61693
Autoreq: false
f61693
f61693
%description -n libgcc
f61693
This package contains GCC shared support library which is needed
f61693
e.g. for exception handling support.
f61693
f61693
%package c++
f61693
Summary: C++ support for GCC  version 11
f61693
Requires: %{?scl_prefix}gcc%{!?scl:11} = %{version}-%{release}
f61693
%if 0%{?rhel} >= 7
f61693
Requires: libstdc++
f61693
%else
f61693
Requires: libstdc++ >= 4.4.4-13
f61693
%endif
f61693
Requires: %{?scl_prefix}libstdc++%{!?scl:11}-devel = %{version}-%{release}
f61693
Autoreq: true
f61693
f61693
%description c++
f61693
This package adds C++ support to the GNU Compiler Collection
f61693
version 11.  It includes support for most of the current C++ specification
f61693
and a lot of support for the upcoming C++ specification.
f61693
f61693
%package -n libstdc++
f61693
Summary: GNU Standard C++ Library
f61693
Autoreq: true
f61693
Requires: glibc >= 2.10.90-7
f61693
f61693
%description -n libstdc++
f61693
The libstdc++ package contains a rewritten standard compliant GCC Standard
f61693
C++ Library.
f61693
f61693
%package -n %{?scl_prefix}libstdc++%{!?scl:11}-devel
f61693
Summary: Header files and libraries for C++ development
f61693
%if 0%{?rhel} >= 7
f61693
Requires: libstdc++
f61693
%else
f61693
Requires: libstdc++ >= 4.4.4-13
f61693
%endif
f61693
Requires: libstdc++%{?_isa}
f61693
Autoreq: true
f61693
f61693
%description -n %{?scl_prefix}libstdc++%{!?scl:11}-devel
f61693
This is the GNU implementation of the standard C++ libraries.  This
f61693
package includes the header files and libraries needed for C++
f61693
development. This includes rewritten implementation of STL.
f61693
f61693
%package -n %{?scl_prefix}libstdc++%{!?scl:11}-docs
f61693
Summary: Documentation for the GNU standard C++ library
f61693
Autoreq: true
f61693
f61693
%description -n %{?scl_prefix}libstdc++%{!?scl:11}-docs
f61693
Manual, doxygen generated API information and Frequently Asked Questions
f61693
for the GNU standard C++ library.
f61693
f61693
%package gfortran
f61693
Summary: Fortran support for GCC 11
f61693
Requires: %{?scl_prefix}gcc%{!?scl:11} = %{version}-%{release}
f61693
%if 0%{?rhel} > 7
f61693
Requires: libgfortran >= 8.1.1
f61693
%else
f61693
Requires: libgfortran5 >= 8.1.1
f61693
%endif
f61693
%if %{build_libquadmath}
f61693
%if 0%{!?scl:1}
f61693
Requires: libquadmath
f61693
%endif
f61693
Requires: %{?scl_prefix}libquadmath-devel = %{version}-%{release}
f61693
%endif
f61693
Autoreq: true
f61693
f61693
%description gfortran
f61693
The %{?scl_prefix}gcc%{!?scl:10}-gfortran package provides support for compiling Fortran
f61693
programs with the GNU Compiler Collection.
f61693
f61693
f61693
%package gdb-plugin
f61693
Summary: GCC 11 plugin for GDB
f61693
Requires: %{?scl_prefix}gcc%{!?scl:11} = %{version}-%{release}
f61693
f61693
%description gdb-plugin
f61693
This package contains GCC 11 plugin for GDB C expression evaluation.
f61693
f61693
%package -n %{?scl_prefix}libgccjit
f61693
Summary: Library for embedding GCC inside programs and libraries
f61693
Requires: %{?scl_prefix}gcc%{!?scl:11} = %{version}-%{release}
f61693
f61693
%description -n %{?scl_prefix}libgccjit
f61693
This package contains shared library with GCC 11 JIT front-end.
f61693
f61693
%package -n %{?scl_prefix}libgccjit-devel
f61693
Summary: Support for embedding GCC inside programs and libraries
f61693
Group: Development/Libraries
f61693
Requires: %{?scl_prefix}libgccjit = %{version}-%{release}
f61693
Requires: %{?scl_prefix}libgccjit-docs = %{version}-%{release}
f61693
f61693
%description -n %{?scl_prefix}libgccjit-devel
f61693
This package contains header files for GCC 11 JIT front end.
f61693
f61693
%package -n %{?scl_prefix}libgccjit-docs
f61693
Summary: Documentation for embedding GCC inside programs and libraries
f61693
Group: Development/Libraries
f61693
%if 0%{?rhel} > 7
f61693
BuildRequires: python3-sphinx
f61693
%else
f61693
BuildRequires: python-sphinx
f61693
%endif
f61693
Requires(post): /sbin/install-info
f61693
Requires(preun): /sbin/install-info
f61693
f61693
%description -n %{?scl_prefix}libgccjit-docs
f61693
This package contains documentation for GCC 11 JIT front-end.
f61693
f61693
%package -n libquadmath
f61693
Summary: GCC 11 __float128 shared support library
f61693
Requires(post): /sbin/install-info
f61693
Requires(preun): /sbin/install-info
f61693
f61693
%description -n libquadmath
f61693
This package contains GCC shared support library which is needed
f61693
for __float128 math support and for Fortran REAL*16 support.
f61693
f61693
%package -n %{?scl_prefix}libquadmath-devel
f61693
Summary: GCC 11 __float128 support
f61693
Group: Development/Libraries
f61693
%if 0%{!?scl:1}
f61693
Requires: %{?scl_prefix}libquadmath%{_isa} = %{version}-%{release}
f61693
%else
f61693
%if 0%{?rhel} >= 7
f61693
Requires: libquadmath%{_isa}
f61693
%endif
f61693
%endif
f61693
Requires: %{?scl_prefix}gcc%{!?scl:11} = %{version}-%{release}
f61693
f61693
%description -n %{?scl_prefix}libquadmath-devel
f61693
This package contains headers for building Fortran programs using
f61693
REAL*16 and programs using __float128 math.
f61693
f61693
%package -n libitm
f61693
Summary: The GNU Transactional Memory library
f61693
Group: System Environment/Libraries
f61693
Requires(post): /sbin/install-info
f61693
Requires(preun): /sbin/install-info
f61693
f61693
%description -n libitm
f61693
This package contains the GNU Transactional Memory library
f61693
which is a GCC transactional memory support runtime library.
f61693
f61693
%package -n %{?scl_prefix}libitm-devel
f61693
Summary: The GNU Transactional Memory support
f61693
Requires: libitm%{_isa} >= 4.7.0-1
f61693
Requires: %{?scl_prefix}gcc%{!?scl:11} = %{version}-%{release}
f61693
f61693
%description -n %{?scl_prefix}libitm-devel
f61693
This package contains headers and support files for the
f61693
GNU Transactional Memory library.
f61693
f61693
%package plugin-devel
f61693
Summary: Support for compiling GCC plugins
f61693
Requires: %{?scl_prefix}gcc%{!?scl:11} = %{version}-%{release}
f61693
%if 0%{?rhel} >= 7
f61693
Requires: gmp-devel >= 4.3.2
f61693
Requires: mpfr-devel >= 3.1.0
f61693
Requires: libmpc-devel >= 0.8.1
f61693
%endif
f61693
f61693
%description plugin-devel
f61693
This package contains header files and other support files
f61693
for compiling GCC 11 plugins.  The GCC plugin ABI is currently
f61693
not stable, so plugins must be rebuilt any time GCC is updated.
f61693
f61693
%package -n libatomic
f61693
Summary: The GNU Atomic library
f61693
Group: System Environment/Libraries
f61693
Requires(post): /sbin/install-info
f61693
Requires(preun): /sbin/install-info
f61693
f61693
%description -n libatomic
f61693
This package contains the GNU Atomic library
f61693
which is a GCC support runtime library for atomic operations not supported
f61693
by hardware.
f61693
f61693
%package -n %{?scl_prefix}libatomic-devel
f61693
Summary: The GNU Atomic static library
f61693
Requires: libatomic%{_isa} >= 4.8.0
f61693
f61693
%description -n %{?scl_prefix}libatomic-devel
f61693
This package contains GNU Atomic static libraries.
f61693
f61693
%package -n libasan6
f61693
Summary: The Address Sanitizer runtime library from GCC 11
f61693
Group: System Environment/Libraries
f61693
Requires(post): /sbin/install-info
f61693
Requires(preun): /sbin/install-info
f61693
f61693
%description -n libasan6
f61693
This package contains the Address Sanitizer library from GCC 11
f61693
which is used for -fsanitize=address instrumented programs.
f61693
f61693
%package -n %{?scl_prefix}libasan-devel
f61693
Summary: The Address Sanitizer static library
f61693
%if 0%{?rhel} > 8
f61693
Requires: libasan%{_isa} >= 8.3.1
f61693
%else
f61693
Requires: libasan6%{_isa} >= 10.2.1
f61693
%endif
f61693
Obsoletes: libasan5 <= 8.3.1
f61693
f61693
%description -n %{?scl_prefix}libasan-devel
f61693
This package contains Address Sanitizer static runtime library.
f61693
f61693
%package -n libtsan
f61693
Summary: The Thread Sanitizer runtime library
f61693
Requires(post): /sbin/install-info
f61693
Requires(preun): /sbin/install-info
f61693
f61693
%description -n libtsan
f61693
This package contains the Thread Sanitizer library
f61693
which is used for -fsanitize=thread instrumented programs.
f61693
f61693
%package -n %{?scl_prefix}libtsan-devel
f61693
Summary: The Thread Sanitizer static library
f61693
Requires: libtsan%{_isa} >= 5.1.1
f61693
f61693
%description -n %{?scl_prefix}libtsan-devel
f61693
This package contains Thread Sanitizer static runtime library.
f61693
f61693
%package -n libubsan1
f61693
Summary: The Undefined Behavior Sanitizer runtime library
f61693
Requires(post): /sbin/install-info
f61693
Requires(preun): /sbin/install-info
f61693
f61693
%description -n libubsan1
f61693
This package contains the Undefined Behavior Sanitizer library
f61693
which is used for -fsanitize=undefined instrumented programs.
f61693
f61693
%package -n %{?scl_prefix}libubsan-devel
f61693
Summary: The Undefined Behavior Sanitizer static library
f61693
%if 0%{?rhel} > 7
f61693
Requires: libubsan%{_isa} >= 8.3.1
f61693
Obsoletes: libubsan1 <= 8.3.1
f61693
%else
f61693
Requires: libubsan1%{_isa} >= 8.3.1
f61693
%endif
f61693
f61693
%description -n %{?scl_prefix}libubsan-devel
f61693
This package contains Undefined Behavior Sanitizer static runtime library.
f61693
f61693
%package -n liblsan
f61693
Summary: The Leak Sanitizer runtime library
f61693
Requires(post): /sbin/install-info
f61693
Requires(preun): /sbin/install-info
f61693
f61693
%description -n liblsan
f61693
This package contains the Leak Sanitizer library
f61693
which is used for -fsanitize=leak instrumented programs.
f61693
f61693
%package -n %{?scl_prefix}liblsan-devel
f61693
Summary: The Leak Sanitizer static library
f61693
Requires: liblsan%{_isa} >= 5.1.1
f61693
f61693
%description -n %{?scl_prefix}liblsan-devel
f61693
This package contains Leak Sanitizer static runtime library.
f61693
f61693
%package -n %{?scl_prefix}offload-nvptx
f61693
Summary: Offloading compiler to NVPTX
f61693
Requires: gcc >= 8.3.1
f61693
Requires: libgomp-offload-nvptx >= 8.3.1
f61693
f61693
%description -n %{?scl_prefix}offload-nvptx
f61693
The gcc-offload-nvptx package provides offloading support for
f61693
NVidia PTX.  OpenMP and OpenACC programs linked with -fopenmp will
f61693
by default add PTX code into the binaries, which can be offloaded
f61693
to NVidia PTX capable devices if available.
f61693
f61693
%prep
f61693
%if 0%{?rhel} >= 7
f61693
%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 4 -a 5
f61693
%else
f61693
%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2 -a 3 -a 7 -a 8
f61693
%endif
f61693
%patch0 -p0 -b .hack~
f61693
%patch2 -p0 -b .sparc-config-detection~
f61693
%patch3 -p0 -b .libgomp-omp_h-multilib~
f61693
%patch4 -p0 -b .libtool-no-rpath~
f61693
%if %{build_isl}
f61693
%patch5 -p0 -b .isl-dl~
f61693
%patch6 -p0 -b .isl-dl2~
f61693
%endif
f61693
%if %{build_libstdcxx_docs}
f61693
%patch7 -p0 -b .libstdc++-docs~
f61693
%endif
f61693
%patch8 -p0 -b .no-add-needed~
f61693
%patch9 -p0 -b .foffload-default~
f61693
%patch10 -p0 -b .Wno-format-security~
f61693
%if 0%{?fedora} >= 29 || 0%{?rhel} > 7
f61693
%patch11 -p0 -b .rh1574936~
f61693
%endif
f61693
%patch12 -p0 -b .d-shared-libphobos~
4c2713
%patch13 -p1 -b .bidi~
f61693
f61693
%patch100 -p1 -b .fortran-fdec-duplicates~
f61693
%patch101 -p1 -b .fortran-flogical-as-integer~
f61693
%patch102 -p1 -b .fortran-fdec-ichar~
f61693
%patch103 -p1 -b .fortran-fdec-non-integer-index~
f61693
%patch104 -p1 -b .fortran-fdec-old-init~
f61693
%patch105 -p1 -b .fortran-fdec-override-kind~
f61693
%patch106 -p1 -b .fortran-fdec-non-logical-if~
f61693
%patch107 -p1 -b .fortran-fdec-promotion~
f61693
%patch108 -p1 -b .fortran-fdec-sequence~
f61693
%patch109 -p1 -b .fortran-fdec-add-missing-indexes~
f61693
f61693
%patch1000 -p0 -b .libstdc++-compat~
f61693
%ifarch %{ix86} x86_64
f61693
%if 0%{?rhel} < 7
f61693
# On i?86/x86_64 there are some incompatibilities in _Decimal* as well as
f61693
# aggregates containing larger vector passing.
f61693
%patch1001 -p0 -b .alt-compat-test~
f61693
%endif
f61693
%endif
f61693
%patch1002 -p0 -b .libgfortran-compat~
f61693
f61693
%if %{build_libstdcxx_docs}
f61693
%if 0%{?rhel} < 7
f61693
cd doxygen-%{doxygen_version}
f61693
%patch2001 -p1 -b .config~
f61693
%patch2002 -p1 -b .timestamp~
f61693
%patch2003 -p1 -b .rh856725~
f61693
cd ..
f61693
%endif
f61693
%endif
f61693
f61693
f61693
find gcc/testsuite -name \*.pr96939~ | xargs rm -f
f61693
f61693
echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
f61693
f61693
%if 0%{?rhel} == 6
f61693
# Default to -gdwarf-3 rather than -gdwarf-5
f61693
sed -i '/UInteger Var(dwarf_version)/s/Init(5)/Init(3)/' gcc/common.opt
f61693
sed -i 's/\(version for most targets is \)5 /\13 /' gcc/doc/invoke.texi
f61693
%endif
f61693
%if 0%{?rhel} <= 8
f61693
# Default to -gdwarf-4 rather than -gdwarf-5
f61693
sed -i '/UInteger Var(dwarf_version)/s/Init(5)/Init(4)/' gcc/common.opt
f61693
sed -i 's/\(version for most targets is \)5 /\14 /' gcc/doc/invoke.texi
f61693
%endif
f61693
f61693
cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h
f61693
cp -a libstdc++-v3/config/cpu/i{4,3}86/opt
f61693
echo 'TM_H += $(srcdir)/config/rs6000/rs6000-modes.h' >> gcc/config/rs6000/t-rs6000
f61693
f61693
./contrib/gcc_update --touch
f61693
f61693
LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
f61693
f61693
sed -i -e 's/Common Driver Var(flag_report_bug)/& Init(1)/' gcc/common.opt
f61693
f61693
%ifarch ppc
f61693
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
f61693
  mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
f61693
  mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{,64/}baseline_symbols.txt
f61693
  mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{32/,}baseline_symbols.txt
f61693
  rm -rf libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32
f61693
fi
f61693
%endif
f61693
%ifarch sparc
f61693
if [ -d libstdc++-v3/config/abi/post/sparc64-linux-gnu ]; then
f61693
  mkdir -p libstdc++-v3/config/abi/post/sparc64-linux-gnu/64
f61693
  mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{,64/}baseline_symbols.txt
f61693
  mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{32/,}baseline_symbols.txt
f61693
  rm -rf libstdc++-v3/config/abi/post/sparc64-linux-gnu/32
f61693
fi
f61693
%endif
f61693
f61693
# This test causes fork failures, because it spawns way too many threads
f61693
rm -f gcc/testsuite/go.test/test/chan/goroutines.go
f61693
f61693
# These tests get stuck and don't timeout.
f61693
%ifarch ppc ppc64 ppc64le
f61693
rm -f libgomp/testsuite/libgomp.c/target-*.c
f61693
rm -rf libgomp/testsuite/libgomp.oacc*
f61693
rm -rf libgomp/testsuite/libgomp.graphite*
f61693
%endif
f61693
# This test gets stuck.
f61693
%ifarch %{ix86} ppc64 s390x
f61693
rm -f libstdc++-v3/testsuite/30_threads/future/members/poll.cc
f61693
%endif
f61693
f61693
%build
f61693
f61693
# Undo the broken autoconf change in recent Fedora versions
f61693
export CONFIG_SITE=NONE
f61693
f61693
CC=gcc
f61693
CXX=g++
f61693
OPT_FLAGS=`echo %{optflags}|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[12]//g'`
f61693
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-flto=auto//g;s/-flto//g;s/-ffat-lto-objects//g'`
f61693
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'`
f61693
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'`
f61693
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'`
f61693
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Werror=format-security/-Wformat-security/g'`
f61693
%ifarch sparc
f61693
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcpu=v[78]//g'`
f61693
%endif
f61693
%ifarch %{ix86}
f61693
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i.86//g'`
f61693
%endif
f61693
OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'`
f61693
case "$OPT_FLAGS" in
f61693
  *-fasynchronous-unwind-tables*)
f61693
    sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables /' \
f61693
      libgcc/Makefile.in
f61693
    ;;
f61693
esac
f61693
f61693
%if %{build_offload_nvptx}
f61693
mkdir obji
f61693
IROOT=`pwd`/obji
f61693
cd nvptx-tools-%{nvptx_tools_gitrev}
f61693
rm -rf obj-%{gcc_target_platform}
f61693
mkdir obj-%{gcc_target_platform}
f61693
cd obj-%{gcc_target_platform}
f61693
CC="$CC" CXX="$CXX" CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" \
f61693
../configure --prefix=%{_prefix}
f61693
make %{?_smp_mflags}
f61693
make install prefix=${IROOT}%{_prefix}
f61693
cd ../..
f61693
f61693
ln -sf newlib-cygwin-%{newlib_cygwin_gitrev}/newlib newlib
f61693
rm -rf obj-offload-nvptx-none
f61693
mkdir obj-offload-nvptx-none
f61693
f61693
cd obj-offload-nvptx-none
f61693
CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
f61693
	CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \
f61693
		  | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \
f61693
	XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
f61693
	../configure --disable-bootstrap --disable-sjlj-exceptions \
f61693
	--enable-newlib-io-long-long --with-build-time-tools=${IROOT}%{_prefix}/nvptx-none/bin \
f61693
	--target nvptx-none --enable-as-accelerator-for=%{gcc_target_platform} \
f61693
	--enable-languages=c,c++,fortran,lto \
f61693
	--prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
f61693
	--with-bugurl=http://bugzilla.redhat.com/bugzilla \
f61693
	--enable-checking=release --with-system-zlib \
f61693
	--with-gcc-major-version-only --without-isl
f61693
make %{?_smp_mflags}
f61693
cd ..
f61693
rm -f newlib
f61693
%endif
f61693
f61693
rm -rf obj-%{gcc_target_platform}
f61693
mkdir obj-%{gcc_target_platform}
f61693
cd obj-%{gcc_target_platform}
f61693
f61693
%if %{build_libstdcxx_docs}
f61693
f61693
%if 0%{?rhel} < 7
f61693
mkdir doxygen-install
f61693
pushd ../doxygen-%{doxygen_version}
f61693
./configure --prefix `cd ..; pwd`/obj-%{gcc_target_platform}/doxygen-install \
f61693
  --shared --release --english-only
f61693
f61693
make %{?_smp_mflags} all
f61693
make install
f61693
popd
f61693
export PATH=`pwd`/doxygen-install/bin/${PATH:+:${PATH}}
f61693
%endif
f61693
%endif
f61693
f61693
%if 0%{?rhel} < 7
f61693
# Build GMP for RHEL 6.  Build it first because MPC and MPFR need it.
f61693
mkdir gmp gmp-install
f61693
cd gmp
f61693
../../gmp-%{gmp_version}/configure --disable-shared --disable-assembly \
f61693
  CFLAGS="${CFLAGS:-%optflags} -fPIC" CXXFLAGS="${CXXFLAGS:-%optflags} -fPIC" \
f61693
  --prefix=`cd ..; pwd`/gmp-install
f61693
make %{?_smp_mflags}
f61693
make install
f61693
cd ..
f61693
f61693
# It also needs MPFR.
f61693
mkdir mpfr mpfr-install
f61693
cd mpfr
f61693
../../mpfr-%{mpfr_version}/configure --disable-shared \
f61693
  --with-gmp=`cd ..; pwd`/gmp-install \
f61693
  CFLAGS="${CFLAGS:-%optflags} -fPIC" CXXFLAGS="${CXXFLAGS:-%optflags} -fPIC" \
f61693
  --prefix=`cd ..; pwd`/mpfr-install
f61693
make %{?_smp_mflags}
f61693
make install
f61693
cd ..
f61693
f61693
mkdir mpc mpc-install
f61693
cd mpc
f61693
../../mpc-%{mpc_version}/configure --disable-shared \
f61693
  --with-mpfr=`cd ..; pwd`/mpfr-install \
f61693
  --with-gmp=`cd ..; pwd`/gmp-install \
f61693
  CFLAGS="${CFLAGS:-%optflags} -fPIC" CXXFLAGS="${CXXFLAGS:-%optflags} -fPIC" \
f61693
  --prefix=`cd ..; pwd`/mpc-install
f61693
make %{?_smp_mflags}
f61693
make install
f61693
cd ..
f61693
%endif
f61693
f61693
%if %{build_isl}
f61693
mkdir isl-build isl-install
f61693
%ifarch s390 s390x
f61693
ISL_FLAG_PIC=-fPIC
f61693
%else
f61693
ISL_FLAG_PIC=-fpic
f61693
%endif
f61693
cd isl-build
f61693
sed -i 's|libisl|libgcc11privateisl|g' \
f61693
  ../../isl-%{isl_version}/Makefile.{am,in}
f61693
../../isl-%{isl_version}/configure \
f61693
  CC=/usr/bin/gcc CXX=/usr/bin/g++ \
f61693
  CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC" --prefix=`cd ..; pwd`/isl-install
f61693
make %{?_smp_mflags}
f61693
make install
f61693
cd ../isl-install/lib
f61693
rm libgcc11privateisl.so{,.15}
f61693
mv libgcc11privateisl.so.15.3.0 libisl.so.15
f61693
ln -sf libisl.so.15 libisl.so
f61693
cd ../..
f61693
%endif
f61693
f61693
%ifnarch s390
f61693
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
f61693
%endif
f61693
CONFIGURE_OPTS="\
f61693
	--prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
f61693
	--with-bugurl=http://bugzilla.redhat.com/bugzilla \
f61693
	--enable-shared --enable-threads=posix --enable-checking=release \
f61693
%ifarch ppc64le
f61693
	--enable-targets=powerpcle-linux \
f61693
%endif
f61693
%ifarch ppc64le %{mips} s390x
f61693
	--disable-multilib \
f61693
%else
f61693
	--enable-multilib \
f61693
%endif
f61693
	--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \
f61693
	--enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only \
f61693
%ifnarch %{mips}
f61693
	--with-linker-hash-style=gnu \
f61693
%endif
f61693
%if 0%{?rhel} <= 7
f61693
	--with-default-libstdcxx-abi=gcc4-compatible \
f61693
%endif
f61693
	--enable-plugin --enable-initfini-array \
f61693
%if %{build_isl}
f61693
	--with-isl=`pwd`/isl-install \
f61693
%else
f61693
	--without-isl \
f61693
%endif
f61693
%if %{build_offload_nvptx}
f61693
	--enable-offload-targets=nvptx-none \
f61693
	--without-cuda-driver \
f61693
%endif
f61693
%if 0%{?rhel} < 7
f61693
	--with-mpc=`pwd`/mpc-install \
f61693
	--with-mpfr=`pwd`/mpfr-install \
f61693
	--with-gmp=`pwd`/gmp-install \
f61693
%endif
f61693
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 7
f61693
%if %{attr_ifunc}
f61693
	--enable-gnu-indirect-function \
f61693
%endif
f61693
%endif
f61693
%ifarch %{arm}
f61693
	--disable-sjlj-exceptions \
f61693
%endif
f61693
%ifarch ppc ppc64 ppc64le ppc64p7
f61693
	--enable-secureplt \
f61693
%endif
f61693
%ifarch sparc sparcv9 sparc64 ppc ppc64 ppc64le ppc64p7 s390 s390x alpha
f61693
	--with-long-double-128 \
f61693
%endif
f61693
%ifarch sparc
f61693
	--disable-linux-futex \
f61693
%endif
f61693
%ifarch sparc64
f61693
	--with-cpu=ultrasparc \
f61693
%endif
f61693
%ifarch sparc sparcv9
f61693
	--host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7
f61693
%endif
f61693
%ifarch ppc ppc64 ppc64p7
f61693
%if 0%{?rhel} >= 7
f61693
	--with-cpu-32=power7 --with-tune-32=power7 --with-cpu-64=power7 --with-tune-64=power7 \
f61693
%endif
f61693
%if 0%{?rhel} == 6
f61693
	--with-cpu-32=power4 --with-tune-32=power6 --with-cpu-64=power4 --with-tune-64=power6 \
f61693
%endif
f61693
%endif
f61693
%ifarch ppc64le
f61693
%if 0%{?rhel} == 9
f61693
	--with-cpu-32=power9 --with-tune-32=power9 --with-cpu-64=power9 --with-tune-64=power9 \
f61693
%else
f61693
	--with-cpu-32=power8 --with-tune-32=power8 --with-cpu-64=power8 --with-tune-64=power8 \
f61693
%endif
f61693
%endif
f61693
%ifarch ppc
f61693
	--build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32
f61693
%endif
f61693
%ifarch %{ix86} x86_64
f61693
%if 0%{?rhel} >= 8
f61693
	--enable-cet \
f61693
%endif
f61693
	--with-tune=generic \
f61693
%endif
f61693
%if 0%{?rhel} >= 7
f61693
%ifarch %{ix86}
f61693
	--with-arch=x86-64 \
f61693
%endif
f61693
%ifarch x86_64
f61693
%if 0%{?rhel} > 8
f61693
	--with-arch_64=x86-64-v2 \
f61693
%endif
f61693
	--with-arch_32=x86-64 \
f61693
%endif
f61693
%else
f61693
%ifarch %{ix86}
f61693
	--with-arch=i686 \
f61693
%endif
f61693
%ifarch x86_64
f61693
	--with-arch_32=i686 \
f61693
%endif
f61693
%endif
f61693
%ifarch s390 s390x
f61693
%if 0%{?rhel} >= 7
f61693
%if 0%{?rhel} > 7
f61693
%if 0%{?rhel} > 8
f61693
%if 0%{?rhel} == 9
f61693
	--with-arch=z14 --with-tune=z15 \
f61693
%else
f61693
	--with-arch=z13 --with-tune=arch13 \
f61693
%endif
f61693
%else
f61693
	--with-arch=z13 --with-tune=z14 \
f61693
%endif
f61693
%else
f61693
	--with-arch=z196 --with-tune=zEC12 \
f61693
%endif
f61693
%else
f61693
%if 0%{?fedora} >= 26
f61693
	--with-arch=zEC12 --with-tune=z13 \
f61693
%else
f61693
	--with-arch=z9-109 --with-tune=z10 \
f61693
%endif
f61693
%endif
f61693
	--enable-decimal-float \
f61693
%endif
f61693
%ifarch armv7hl
f61693
	--with-tune=generic-armv7-a --with-arch=armv7-a \
f61693
	--with-float=hard --with-fpu=vfpv3-d16 --with-abi=aapcs-linux \
f61693
%endif
f61693
%ifarch mips mipsel
f61693
	--with-arch=mips32r2 --with-fp-32=xx \
f61693
%endif
f61693
%ifarch mips64 mips64el
f61693
	--with-arch=mips64r2 --with-abi=64 \
f61693
%endif
f61693
%ifarch riscv64
f61693
	--with-arch=rv64gc --with-abi=lp64d --with-multilib-list=lp64d \
f61693
%endif
f61693
%ifnarch sparc sparcv9 ppc
f61693
	--build=%{gcc_target_platform} \
f61693
%endif
f61693
%if 0%{?fedora} >= 35
f61693
%ifarch x86_64 %{ix86} ppc64le s390x
f61693
	--with-build-config=bootstrap-lto --enable-link-serialization=1 \
f61693
%endif
f61693
%endif
f61693
	"
f61693
f61693
CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
f61693
	CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \
f61693
		  | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \
f61693
	XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
f61693
	../configure --enable-bootstrap \
f61693
	--enable-languages=c,c++,fortran,lto \
f61693
	$CONFIGURE_OPTS
f61693
f61693
%ifarch sparc sparcv9 sparc64
f61693
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" bootstrap
f61693
%else
f61693
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" profiledbootstrap
f61693
%endif
f61693
f61693
%if 0%{?rhel} <= 8
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared%{nonsharedver} )' \
f61693
  > %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_system.so
f61693
f61693
# Relink libcc1 against -lstdc++_nonshared:
f61693
sed -i -e '/^postdeps/s/-lstdc++/-lstdc++_system/' libcc1/libtool
f61693
rm -f libcc1/libcc1.la
f61693
make -C libcc1 libcc1.la
f61693
%endif
f61693
f61693
CC="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cc`"
f61693
CXX="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cxx` `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-includes`"
f61693
f61693
# Build libgccjit separately, so that normal compiler binaries aren't -fpic
f61693
# unnecessarily.
f61693
mkdir objlibgccjit
f61693
cd objlibgccjit
f61693
CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \
f61693
	CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \
f61693
		  | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \
f61693
	XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
f61693
	../../configure --disable-bootstrap --enable-host-shared \
f61693
	--enable-languages=jit $CONFIGURE_OPTS
f61693
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc
f61693
cp -a gcc/libgccjit.so* ../gcc/
f61693
cd ../gcc/
f61693
ln -sf xgcc %{gcc_target_platform}-gcc-%{gcc_major}
f61693
cp -a Makefile{,.orig}
f61693
sed -i -e '/^CHECK_TARGETS/s/$/ check-jit/' Makefile
f61693
touch -r Makefile.orig Makefile
f61693
rm Makefile.orig
f61693
make jit.sphinx.html
f61693
make jit.sphinx.install-html jit_htmldir=`pwd`/../../rpm.doc/libgccjit-devel/html
f61693
cd ..
f61693
f61693
%if %{build_isl}
f61693
cp -a isl-install/lib/libisl.so.15 gcc/
f61693
%endif
f61693
f61693
# Make generated man pages even if Pod::Man is not new enough
f61693
perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
f61693
for i in ../gcc/doc/*.texi; do
f61693
  cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
f61693
done
f61693
make -C gcc generated-manpages
f61693
for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done
f61693
f61693
# Make generated doxygen pages.
f61693
%if %{build_libstdcxx_docs}
f61693
cd %{gcc_target_platform}/libstdc++-v3
f61693
make doc-html-doxygen
f61693
make doc-man-doxygen
f61693
cd ../..
f61693
%endif
f61693
f61693
# Copy various doc files here and there
f61693
cd ..
f61693
mkdir -p rpm.doc/gfortran rpm.doc/libquadmath rpm.doc/libitm
f61693
mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/jit,libstdc++-v3,libgomp,libcc1,libatomic,libsanitizer}
f61693
f61693
for i in {gcc,gcc/cp,gcc/jit,libstdc++-v3,libgomp,libcc1,libatomic,libsanitizer}/ChangeLog*; do
f61693
	cp -p $i rpm.doc/changelogs/$i
f61693
done
f61693
f61693
(cd gcc/fortran; for i in ChangeLog*; do
f61693
	cp -p $i ../../rpm.doc/gfortran/$i
f61693
done)
f61693
(cd libgfortran; for i in ChangeLog*; do
f61693
	cp -p $i ../rpm.doc/gfortran/$i.libgfortran
f61693
done)
f61693
%if %{build_libquadmath}
f61693
(cd libquadmath; for i in ChangeLog* COPYING.LIB; do
f61693
	cp -p $i ../rpm.doc/libquadmath/$i.libquadmath
f61693
done)
f61693
%endif
f61693
%if %{build_libitm}
f61693
(cd libitm; for i in ChangeLog*; do
f61693
	cp -p $i ../rpm.doc/libitm/$i.libitm
f61693
done)
f61693
%endif
f61693
f61693
rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
f61693
find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
f61693
f61693
# Test the nonshared bits.
f61693
mkdir libstdc++_compat_test
f61693
cd libstdc++_compat_test
f61693
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
f61693
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
f61693
diff -up system.abilist vanilla.abilist | awk '/^\+\+\+/{next}/^\+/{print gensub(/^+(.*)$/,"\\1","1",$0)}' > system2vanilla.abilist.diff
f61693
../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
f61693
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
f61693
echo ====================NONSHARED=========================
f61693
ldd -d -r ./libstdc++_nonshared.so || :
f61693
ldd -u ./libstdc++_nonshared.so || :
f61693
diff -up system2vanilla.abilist.diff nonshared.abilist || :
f61693
readelf -Ws ../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a | grep HIDDEN.*UND | grep -v __dso_handle || :
f61693
echo ====================NONSHARED END=====================
f61693
rm -f libstdc++_nonshared.so
f61693
cd ..
f61693
f61693
%install
f61693
rm -rf %{buildroot}
f61693
f61693
%if %{build_offload_nvptx}
f61693
cd nvptx-tools-%{nvptx_tools_gitrev}
f61693
cd obj-%{gcc_target_platform}
f61693
make install prefix=%{buildroot}%{_prefix}
f61693
cd ../..
f61693
f61693
ln -sf newlib-cygwin-%{newlib_cygwin_gitrev}/newlib newlib
f61693
cd obj-offload-nvptx-none
f61693
make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
f61693
  infodir=%{buildroot}%{_infodir} install
f61693
rm -rf %{buildroot}%{_prefix}/libexec/gcc/nvptx-none/%{gcc_major}/install-tools
f61693
rm -rf %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/{install-tools,plugin,cc1,cc1plus,f951}
f61693
rm -rf %{buildroot}%{_infodir} %{buildroot}%{_mandir}/man7 %{buildroot}%{_prefix}/share/locale
f61693
rm -rf %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/{install-tools,plugin}
f61693
rm -rf %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/{install-tools,plugin,include-fixed}
f61693
rm -rf %{buildroot}%{_prefix}/%{_lib}/libc[cp]1*
f61693
mv -f %{buildroot}%{_prefix}/nvptx-none/lib/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/
f61693
mv -f %{buildroot}%{_prefix}/nvptx-none/lib/mgomp/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/
f61693
mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/
f61693
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/
f61693
find %{buildroot}%{_prefix}/lib/gcc/nvptx-none %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none \
f61693
     %{buildroot}%{_prefix}/nvptx-none/lib -name \*.la | xargs rm
f61693
cd ..
f61693
rm -f newlib
f61693
%endif
f61693
f61693
%if %{build_libstdcxx_docs}
f61693
%if 0%{?rhel} < 7
f61693
export PATH=`pwd`/obj-%{gcc_target_platform}/doxygen-install/bin/${PATH:+:${PATH}}
f61693
%endif
f61693
%endif
f61693
f61693
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
f61693
# Also set LD_LIBRARY_PATH so that DTS eu-strip (called from find-debuginfo.sh)
f61693
# can find the libraries it needs.
f61693
%{?scl:export LD_LIBRARY_PATH=%{_libdir}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}}
f61693
f61693
perl -pi -e \
f61693
  's~href="l(ibstdc|atest)~href="http://gcc.gnu.org/onlinedocs/libstdc++/l\1~' \
f61693
  libstdc++-v3/doc/html/api.html
f61693
f61693
cd obj-%{gcc_target_platform}
f61693
f61693
TARGET_PLATFORM=%{gcc_target_platform}
f61693
f61693
# There are some MP bugs in libstdc++ Makefiles
f61693
make -C %{gcc_target_platform}/libstdc++-v3
f61693
f61693
%if 0%{?scl:1}
f61693
rm -f gcc/libgcc_s.so
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat}
f61693
GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > gcc/libgcc_s.so
f61693
%endif
f61693
f61693
make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
f61693
  infodir=%{buildroot}%{_infodir} install
f61693
f61693
%if 0%{?scl:1}
f61693
rm -f gcc/libgcc_s.so
f61693
ln -sf libgcc_s.so.1 gcc/libgcc_s.so
f61693
%endif
f61693
f61693
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
f61693
%if 0%{?scl:1}
f61693
ln -sf ../../../../bin/ar $FULLEPATH/ar
f61693
ln -sf ../../../../bin/as $FULLEPATH/as
f61693
ln -sf ../../../../bin/ld $FULLEPATH/ld
f61693
ln -sf ../../../../bin/ld.bfd $FULLEPATH/ld.bfd
f61693
ln -sf ../../../../bin/ld.gold $FULLEPATH/ld.gold
f61693
ln -sf ../../../../bin/nm $FULLEPATH/nm
f61693
ln -sf ../../../../bin/objcopy $FULLEPATH/objcopy
f61693
ln -sf ../../../../bin/ranlib $FULLEPATH/ranlib
f61693
ln -sf ../../../../bin/strip $FULLEPATH/strip
f61693
%endif
f61693
f61693
%if %{build_isl}
f61693
cp -a isl-install/lib/libisl.so.15 $FULLPATH/
f61693
%endif
f61693
f61693
# fix some things
f61693
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
f61693
mkdir -p %{buildroot}/lib
f61693
ln -sf ..%{_prefix}/bin/cpp %{buildroot}/lib/cpp
f61693
ln -sf gfortran %{buildroot}%{_prefix}/bin/f95
f61693
rm -f %{buildroot}%{_infodir}/dir
f61693
gzip -9 %{buildroot}%{_infodir}/*.info*
f61693
ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc
f61693
f61693
cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`"
f61693
for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do
f61693
  if ! diff -up $cxxconfig $i; then
f61693
    cat > %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/c++config.h <
f61693
#ifndef _CPP_CPPCONFIG_WRAPPER
f61693
#define _CPP_CPPCONFIG_WRAPPER 1
f61693
#include <bits/wordsize.h>
f61693
#if __WORDSIZE == 32
f61693
%ifarch %{multilib_64_archs}
f61693
`cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)`
f61693
%else
f61693
`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
f61693
%endif
f61693
#else
f61693
%ifarch %{multilib_64_archs}
f61693
`cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)`
f61693
%else
f61693
`cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)`
f61693
%endif
f61693
#endif
f61693
#endif
f61693
EOF
f61693
    break
f61693
  fi
f61693
done
f61693
f61693
for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/ -name c++config.h`; do
f61693
  for i in 1 2 4 8; do
f61693
    sed -i -e 's/#define _GLIBCXX_ATOMIC_BUILTINS_'$i' 1/#ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_'$i'\
f61693
&\
f61693
#endif/' $f
f61693
  done
f61693
%if 0%{?rhel} <= 7
f61693
  # Force the old ABI unconditionally, the new one does not work in the
f61693
  # libstdc++_nonshared.a model against RHEL 6/7 libstdc++.so.6.
f61693
  sed -i -e 's/\(define[[:blank:]]*_GLIBCXX_USE_DUAL_ABI[[:blank:]]*\)1/\10/' $f
f61693
%endif
f61693
done
f61693
f61693
# Nuke bits/*.h.gch dirs
f61693
# 1) there is no bits/*.h header installed, so when gch file can't be
f61693
#    used, compilation fails
f61693
# 2) sometimes it is hard to match the exact options used for building
f61693
#    libstdc++-v3 or they aren't desirable
f61693
# 3) there are multilib issues, conflicts etc. with this
f61693
# 4) it is huge
f61693
# People can always precompile on their own whatever they want, but
f61693
# shipping this for everybody is unnecessary.
f61693
rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/*.h.gch
f61693
f61693
%if %{build_libstdcxx_docs}
f61693
libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen
f61693
mkdir -p ../rpm.doc/libstdc++-v3
f61693
cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html
f61693
cp -r -p $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api
f61693
mkdir -p %{buildroot}%{_mandir}/man3
f61693
cp -r -p $libstdcxx_doc_builddir/man/man3/* %{buildroot}%{_mandir}/man3/
f61693
find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
f61693
%endif
f61693
f61693
%ifarch sparcv9 sparc64
f61693
ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \
f61693
  %{buildroot}%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc
f61693
%endif
f61693
%ifarch ppc ppc64 ppc64p7
f61693
ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \
f61693
  %{buildroot}%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc
f61693
%endif
f61693
f61693
%ifarch sparcv9 ppc
f61693
FULLLPATH=$FULLPATH/lib32
f61693
%endif
f61693
%ifarch sparc64 ppc64 ppc64p7
f61693
FULLLPATH=$FULLPATH/lib64
f61693
%endif
f61693
if [ -n "$FULLLPATH" ]; then
f61693
  mkdir -p $FULLLPATH
f61693
else
f61693
  FULLLPATH=$FULLPATH
f61693
fi
f61693
f61693
find %{buildroot} -name \*.la | xargs rm -f
f61693
f61693
mv %{buildroot}%{_prefix}/%{_lib}/libgfortran.spec $FULLPATH/
f61693
%if %{build_libitm}
f61693
mv %{buildroot}%{_prefix}/%{_lib}/libitm.spec $FULLPATH/
f61693
%endif
f61693
%if %{build_libasan}
f61693
mv %{buildroot}%{_prefix}/%{_lib}/libsanitizer.spec $FULLPATH/
f61693
%endif
f61693
f61693
mkdir -p %{buildroot}/%{_lib}
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1
f61693
chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1
f61693
ln -sf libgcc_s-%{gcc_major}-%{DATE}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
f61693
ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
f61693
%ifarch sparcv9 ppc
f61693
ln -sf /lib64/libgcc_s.so.1 $FULLPATH/64/libgcc_s.so
f61693
%endif
f61693
%ifarch %{multilib_64_archs}
f61693
ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
f61693
%endif
f61693
f61693
rm -f $FULLPATH/libgcc_s.so
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat}
f61693
GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so
f61693
%ifarch sparcv9 ppc
f61693
rm -f $FULLPATH/64/libgcc_s.so
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat2}
f61693
GROUP ( /lib64/libgcc_s.so.1 libgcc.a )' > $FULLPATH/64/libgcc_s.so
f61693
%endif
f61693
%ifarch %{multilib_64_archs}
f61693
rm -f $FULLPATH/32/libgcc_s.so
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat2}
f61693
GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so
f61693
%endif
f61693
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/
f61693
cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \
f61693
  $FULLLPATH/libstdc++_nonshared.a
f61693
cp -a %{gcc_target_platform}/libgfortran/.libs/libgfortran_nonshared80.a \
f61693
  $FULLLPATH/libgfortran_nonshared.a
f61693
f61693
%if 0%{?rhel} <= 7
f61693
# Build libgomp_nonshared.a with the system compiler.  Use -O2 to
f61693
# get tailcalls.
f61693
gcc %{SOURCE6} -O2 -c
f61693
ar rcs libgomp_nonshared.a libgomp_nonshared.o
f61693
cp -a libgomp_nonshared.a $FULLLPATH
f61693
%ifarch x86_64
f61693
# Only need this for -m32 on x86_64.  devtoolset-N-gcc isn't multilib,
f61693
# and we don't have a devtoolset-N-libgomp-devel subpackage.
f61693
gcc %{SOURCE6} -O2 -c -m32 -o libgomp_nonshared32.o
f61693
ar rcs libgomp_nonshared32.a libgomp_nonshared32.o
f61693
cp -a libgomp_nonshared32.a $FULLLPATH/32/libgomp_nonshared.a
f61693
%endif
f61693
%endif
f61693
f61693
mkdir -p %{buildroot}%{_prefix}/libexec/getconf
f61693
if gcc/xgcc -B gcc/ -E -P -dD -xc /dev/null | grep '__LONG_MAX__.*\(2147483647\|0x7fffffff\($\|[LU]\)\)'; then
f61693
  ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
f61693
else
f61693
  ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
f61693
fi
f61693
f61693
mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++*gdb.py* \
f61693
      %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/
f61693
pushd ../libstdc++-v3/python
f61693
for i in `find . -name \*.py`; do
f61693
  touch -r $i %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/$i
f61693
done
f61693
touch -r hook.in %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc++*gdb.py
f61693
popd
f61693
for f in `find %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/ \
f61693
	       %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/ -name \*.py`; do
f61693
  r=${f/$RPM_BUILD_ROOT/}
f61693
%if 0%{?rhel} <= 7
f61693
  %{__python} -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")'
f61693
  %{__python} -O -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")'
f61693
%else
f61693
  %{__python3} -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")'
f61693
  %{__python3} -O -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")'
f61693
%endif
f61693
done
f61693
f61693
rm -f $FULLEPATH/libgccjit.so
f61693
mkdir -p %{buildroot}%{_prefix}/%{_lib}/
f61693
cp -a objlibgccjit/gcc/libgccjit.so.* %{buildroot}%{_prefix}/%{_lib}/
f61693
rm -f $FULLPATH/libgccjit.so
f61693
echo '/* GNU ld script */
f61693
%{oformat}
f61693
INPUT ( %{_prefix}/%{_lib}/libgccjit.so.0 )' > $FULLPATH/libgccjit.so
f61693
cp -a ../gcc/jit/libgccjit*.h $FULLPATH/include/
f61693
/usr/bin/install -c -m 644 objlibgccjit/gcc/doc/libgccjit.info %{buildroot}/%{_infodir}/
f61693
gzip -9 %{buildroot}/%{_infodir}/libgccjit.info
f61693
f61693
pushd $FULLPATH
f61693
%if 0%{?rhel} <= 7
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgomp.so.1 -lgomp_nonshared )' > libgomp.so
f61693
%else
f61693
echo '/* GNU ld script */
f61693
%{oformat}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgomp.so.1 )' > libgomp.so
f61693
%endif
f61693
f61693
%if 0%{?rhel} <= 8
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' > libstdc++.so
f61693
%else
f61693
echo '%{oformat}
f61693
INPUT ( %{_root_prefix}/%{_lib}/libstdc++.so.6 )' > libstdc++.so
f61693
%endif
f61693
rm -f libgfortran.so
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgfortran.so.5 -lgfortran_nonshared )' > libgfortran.so
f61693
%if %{build_libquadmath}
f61693
rm -f libquadmath.so
f61693
echo '/* GNU ld script */
f61693
%{oformat}
f61693
%if 0%{!?scl:1}
f61693
INPUT ( %{_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so
f61693
%else
f61693
%if 0%{?rhel} >= 7
f61693
INPUT ( %{_root_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so
f61693
%else
f61693
INPUT ( libquadmath.a )' > libquadmath.so
f61693
%endif
f61693
%endif
f61693
%endif
f61693
%if %{build_libitm}
f61693
rm -f libitm.so
f61693
echo '/* GNU ld script */
f61693
%{oformat}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libitm.so.1 )' > libitm.so
f61693
%endif
f61693
%if %{build_libatomic}
f61693
rm -f libatomic.so
f61693
echo '/* GNU ld script */
f61693
%{oformat}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libatomic.so.1 )' > libatomic.so
f61693
%endif
f61693
%if %{build_libasan}
f61693
rm -f libasan.so
f61693
echo '/* GNU ld script */
f61693
%{oformat}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libasan.so.6 )' > libasan.so
f61693
%endif
f61693
%if %{build_libtsan}
f61693
rm -f libtsan.so
f61693
echo '/* GNU ld script */
f61693
%{oformat}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libtsan.so.0 )' > libtsan.so
f61693
%endif
f61693
%if %{build_libubsan}
f61693
rm -f libubsan.so
f61693
echo '/* GNU ld script */
f61693
%{oformat}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libubsan.so.1 )' > libubsan.so
f61693
%endif
f61693
%if %{build_liblsan}
f61693
rm -f liblsan.so
f61693
echo '/* GNU ld script */
f61693
%{oformat}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/liblsan.so.0 )' > liblsan.so
f61693
%endif
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++fs.*a $FULLLPATH/
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a .
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a .
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a .
f61693
%if %{build_libquadmath}
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/
f61693
%endif
f61693
%if %{build_libitm}
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libitm.*a $FULLLPATH/
f61693
%endif
f61693
%if %{build_libatomic}
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libatomic.*a $FULLLPATH/
f61693
%endif
f61693
%if %{build_libasan}
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libasan.*a $FULLLPATH/
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libasan_preinit.o $FULLLPATH/
f61693
%endif
f61693
%if %{build_libtsan}
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan.*a $FULLPATH/
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan_preinit.o $FULLPATH/
f61693
%endif
f61693
%if %{build_libubsan}
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/libubsan.*a $FULLLPATH/
f61693
%endif
f61693
%if %{build_liblsan}
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan.*a $FULLPATH/
f61693
mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan_preinit.o $FULLPATH/
f61693
%endif
f61693
f61693
%ifarch sparcv9 ppc
f61693
%if 0%{?rhel} <= 8
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libstdc++.so.6 -lstdc++_nonshared )' > 64/libstdc++.so
f61693
%else
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat2}
f61693
INPUT ( %{_root_prefix}/lib64/libstdc++.so.6 )' > 64/libstdc++.so
f61693
%endif
f61693
rm -f 64/libgfortran.so
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libgfortran.so.5 -lgfortran_nonshared )' > 64/libgfortran.so
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libgomp.so.1 )' > 64/libgomp.so
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
INPUT ( %{_prefix}/lib64/libgccjit.so.0 )' > 64/libgccjit.so
f61693
%if %{build_libquadmath}
f61693
rm -f 64/libquadmath.so
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
%if 0%{!?scl:1}
f61693
INPUT ( %{_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so
f61693
%else
f61693
%if 0%{?rhel} >= 7
f61693
INPUT ( %{_root_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so
f61693
%else
f61693
INPUT ( libquadmath.a )' > 64/libquadmath.so
f61693
%endif
f61693
%endif
f61693
%endif
f61693
%if %{build_libitm}
f61693
rm -f 64/libitm.so
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libitm.so.1 )' > 64/libitm.so
f61693
%endif
f61693
%if %{build_libatomic}
f61693
rm -f 64/libatomic.so
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libatomic.so.1 )' > 64/libatomic.so
f61693
%endif
f61693
%if %{build_libasan}
f61693
rm -f 64/libasan.so
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libasan.so.6 )' > 64/libasan.so
f61693
%endif
f61693
%if %{build_libubsan}
f61693
rm -f 64/libubsan.so
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libubsan.so.1 )' > 64/libubsan.so
f61693
%endif
f61693
mv -f %{buildroot}%{_prefix}/lib64/libsupc++.*a 64/
f61693
mv -f %{buildroot}%{_prefix}/lib64/libgfortran.*a 64/
f61693
mv -f %{buildroot}%{_prefix}/lib64/libgomp.*a 64/
f61693
%if %{build_libquadmath}
f61693
mv -f %{buildroot}%{_prefix}/lib64/libquadmath.*a 64/
f61693
%endif
f61693
ln -sf lib32/libstdc++.a libstdc++.a
f61693
ln -sf ../lib64/libstdc++.a 64/libstdc++.a
f61693
ln -sf lib32/libstdc++fs.a libstdc++fs.a
f61693
ln -sf ../lib64/libstdc++fs.a 64/libstdc++fs.a
f61693
ln -sf lib32/libstdc++_nonshared.a libstdc++_nonshared.a
f61693
ln -sf ../lib64/libstdc++_nonshared.a 64/libstdc++_nonshared.a
f61693
%if %{build_libquadmath}
f61693
ln -sf lib32/libquadmath.a libquadmath.a
f61693
ln -sf ../lib64/libquadmath.a 64/libquadmath.a
f61693
%endif
f61693
%if %{build_libitm}
f61693
ln -sf lib32/libitm.a libitm.a
f61693
ln -sf ../lib64/libitm.a 64/libitm.a
f61693
%endif
f61693
%if %{build_libatomic}
f61693
ln -sf lib32/libatomic.a libatomic.a
f61693
ln -sf ../lib64/libatomic.a 64/libatomic.a
f61693
%endif
f61693
%if %{build_libasan}
f61693
ln -sf lib32/libasan.a libasan.a
f61693
ln -sf ../lib64/libasan.a 64/libasan.a
f61693
ln -sf lib32/libasan_preinit.o libasan_preinit.o
f61693
ln -sf ../lib64/libasan_preinit.o 64/libasan_preinit.o
f61693
%endif
f61693
%if %{build_libubsan}
f61693
ln -sf lib32/libubsan.a libubsan.a
f61693
ln -sf ../lib64/libubsan.a 64/libubsan.a
f61693
%endif
f61693
%endif
f61693
%ifarch %{multilib_64_archs}
f61693
mkdir -p 32
f61693
%if 0%{?rhel} <= 8
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libstdc++.so.6 -lstdc++_nonshared )' > 32/libstdc++.so
f61693
%else
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat2}
f61693
INPUT ( %{_root_prefix}/lib/libstdc++.so.6 )' > 32/libstdc++.so
f61693
%endif
f61693
rm -f 32/libgfortran.so
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgfortran.so.5 -lgfortran_nonshared )' > 32/libgfortran.so
f61693
f61693
%if 0%{?rhel} <= 7
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgomp.so.1 -lgomp_nonshared )' > 32/libgomp.so
f61693
%else
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgomp.so.1 )' > 32/libgomp.so
f61693
%endif
f61693
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
INPUT ( %{_prefix}/lib/libgccjit.so.0 )' > 32/libgccjit.so
f61693
%if %{build_libquadmath}
f61693
rm -f 32/libquadmath.so
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
%if 0%{!?scl:1}
f61693
INPUT ( %{_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so
f61693
%else
f61693
%if 0%{?rhel} >= 7
f61693
INPUT ( %{_root_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so
f61693
%else
f61693
INPUT ( libquadmath.a )' > 32/libquadmath.so
f61693
%endif
f61693
%endif
f61693
%endif
f61693
%if %{build_libitm}
f61693
rm -f 32/libitm.so
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libitm.so.1 )' > 32/libitm.so
f61693
%endif
f61693
%if %{build_libatomic}
f61693
rm -f 32/libatomic.so
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libatomic.so.1 )' > 32/libatomic.so
f61693
%endif
f61693
%if %{build_libasan}
f61693
rm -f 32/libasan.so
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libasan.so.6 )' > 32/libasan.so
f61693
%endif
f61693
%if %{build_libubsan}
f61693
rm -f 32/libubsan.so
f61693
echo '/* GNU ld script */
f61693
%{oformat2}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libubsan.so.1 )' > 32/libubsan.so
f61693
%endif
f61693
mv -f %{buildroot}%{_prefix}/lib/libsupc++.*a 32/
f61693
mv -f %{buildroot}%{_prefix}/lib/libgfortran.*a 32/
f61693
mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/
f61693
%if %{build_libquadmath}
f61693
mv -f %{buildroot}%{_prefix}/lib/libquadmath.*a 32/
f61693
%endif
f61693
%endif
f61693
%ifarch sparc64 ppc64
f61693
ln -sf ../lib32/libstdc++.a 32/libstdc++.a
f61693
ln -sf lib64/libstdc++.a libstdc++.a
f61693
ln -sf ../lib32/libstdc++fs.a 32/libstdc++fs.a
f61693
ln -sf lib64/libstdc++fs.a libstdc++fs.a
f61693
%if 0%{?rhel} <= 8
f61693
ln -sf ../lib32/libstdc++_nonshared.a 32/libstdc++_nonshared.a
f61693
ln -sf lib64/libstdc++_nonshared.a libstdc++_nonshared.a
f61693
%endif
f61693
%if 0%{?rhel} <= 8
f61693
ln -sf ../lib32/libgfortran_nonshared.a 32/libgfortran_nonshared.a
f61693
ln -sf lib64/libgfortran_nonshared.a libgfortran_nonshared.a
f61693
ln -sf lib64/libgomp_nonshared.a libgomp_nonshared.a
f61693
%endif
f61693
%if %{build_libquadmath}
f61693
ln -sf ../lib32/libquadmath.a 32/libquadmath.a
f61693
ln -sf lib64/libquadmath.a libquadmath.a
f61693
%endif
f61693
%if %{build_libitm}
f61693
ln -sf ../lib32/libitm.a 32/libitm.a
f61693
ln -sf lib64/libitm.a libitm.a
f61693
%endif
f61693
%if %{build_libatomic}
f61693
ln -sf ../lib32/libatomic.a 32/libatomic.a
f61693
ln -sf lib64/libatomic.a libatomic.a
f61693
%endif
f61693
%if %{build_libasan}
f61693
ln -sf ../lib32/libasan.a 32/libasan.a
f61693
ln -sf lib64/libasan.a libasan.a
f61693
ln -sf ../lib32/libasan_preinit.o 32/libasan_preinit.o
f61693
ln -sf lib64/libasan_preinit.o libasan_preinit.o
f61693
%endif
f61693
%if %{build_libubsan}
f61693
ln -sf ../lib32/libubsan.a 32/libubsan.a
f61693
mv -f lib64/libubsan.a libubsan.a
f61693
%endif
f61693
%else
f61693
%ifarch %{multilib_64_archs}
f61693
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libstdc++.a 32/libstdc++.a
f61693
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libstdc++fs.a 32/libstdc++fs.a
f61693
%if 0%{?rhel} <= 8
f61693
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libstdc++_nonshared.a 32/libstdc++_nonshared.a
f61693
%endif
f61693
%if 0%{?rhel} <= 8
f61693
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libgfortran_nonshared.a 32/libgfortran_nonshared.a
f61693
%endif
f61693
%if %{build_libquadmath}
f61693
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libquadmath.a 32/libquadmath.a
f61693
%endif
f61693
%if %{build_libitm}
f61693
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libitm.a 32/libitm.a
f61693
%endif
f61693
%if %{build_libatomic}
f61693
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libatomic.a 32/libatomic.a
f61693
%endif
f61693
%if %{build_libasan}
f61693
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libasan.a 32/libasan.a
f61693
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libasan_preinit.o 32/libasan_preinit.o
f61693
%endif
f61693
%if %{build_libubsan}
f61693
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libubsan.a 32/libubsan.a
f61693
%endif
f61693
%endif
f61693
%endif
f61693
f61693
# If we are building a debug package then copy all of the static archives
f61693
# into the debug directory to keep them as unstripped copies.
f61693
%if 0%{?_enable_debug_packages}
f61693
mkdir -p $RPM_BUILD_ROOT%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
adirs="$FULLPATH"
f61693
if [ $FULLLPATH -ne $FULLPATH ]; then
f61693
  adirs="$adirs $FULLLPATH"
f61693
fi
f61693
for f in `find $adirs -maxdepth 1 -a \
f61693
		 \( -name libgfortran.a -o -name libgomp.a \
f61693
		    -o -name libgcc.a -o -name libgcc_eh.a -o -name libgcov.a \
f61693
		    -o -name libquadmath.a -o -name libitm.a \
f61693
		    -o -name libatomic.a -o -name libasan.a \
f61693
		    -o -name libtsan.a -o -name libubsan.a \
f61693
		    -o -name liblsan.a \
f61693
		    -o -name libcc1.a \
f61693
		    -o -name libstdc++_nonshared.a \
f61693
		    -o -name libgomp_nonshared.a \
f61693
		    -o -name libgfortran_nonshared.a \
f61693
		    -o -name libsupc++.a \
f61693
		    -o -name libstdc++.a -o -name libcaf_single.a \
f61693
		    -o -name libstdc++fs.a \) -a -type f`; do
f61693
  cp -a $f $RPM_BUILD_ROOT%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/
f61693
done
f61693
%endif
f61693
f61693
# Strip debug info from Fortran/ObjC/Java static libraries
f61693
strip -g `find . \( -name libgfortran.a  -o -name libgomp.a \
f61693
		    -o -name libgcc.a -o -name libgcov.a \
f61693
		    -o -name libquadmath.a -o -name libitm.a \
f61693
		    -o -name libatomic.a -o -name libasan.a \
f61693
		    -o -name libtsan.a -o -name libubsan.a \
f61693
		    -o -name liblsan.a \
f61693
		    -o -name libcc1.a \) -a -type f`
f61693
popd
f61693
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.5.*
f61693
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.*
f61693
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.*
f61693
%if %{build_libquadmath}
f61693
%if 0%{!?scl:1}
f61693
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.*
f61693
%endif
f61693
%endif
f61693
%if %{build_libitm}
f61693
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.*
f61693
%if 0%{?scl:1}
f61693
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
f61693
mv %{buildroot}%{_prefix}/%{_lib}/libitm.so.1* %{buildroot}%{_root_prefix}/%{_lib}/
f61693
mkdir -p %{buildroot}%{_root_infodir}
f61693
%if 0%{?rhel} <= 7
f61693
mv %{buildroot}%{_infodir}/libitm.info* %{buildroot}%{_root_infodir}/
f61693
%endif
f61693
%endif
f61693
%endif
f61693
%if %{build_libatomic}
f61693
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1.*
f61693
%if 0%{?scl:1}
f61693
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
f61693
mv %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1* %{buildroot}%{_root_prefix}/%{_lib}/
f61693
mkdir -p %{buildroot}%{_root_infodir}
f61693
%endif
f61693
%endif
f61693
%if %{build_libasan}
f61693
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.6.*
f61693
%if 0%{?scl:1}
f61693
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
f61693
mv %{buildroot}%{_prefix}/%{_lib}/libasan.so.6* %{buildroot}%{_root_prefix}/%{_lib}/
f61693
mkdir -p %{buildroot}%{_root_infodir}
f61693
%endif
f61693
%endif
f61693
%if %{build_libtsan}
f61693
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0.*
f61693
%if 0%{?scl:1}
f61693
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
f61693
mv %{buildroot}%{_prefix}/%{_lib}/libtsan.so.0* %{buildroot}%{_root_prefix}/%{_lib}/
f61693
mkdir -p %{buildroot}%{_root_infodir}
f61693
%endif
f61693
%endif
f61693
%if %{build_libubsan}
f61693
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.*
f61693
%if 0%{?scl:1}
f61693
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
f61693
mv %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1* %{buildroot}%{_root_prefix}/%{_lib}/
f61693
mkdir -p %{buildroot}%{_root_infodir}
f61693
%endif
f61693
%endif
f61693
%if %{build_liblsan}
f61693
chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.*
f61693
%if 0%{?scl:1}
f61693
mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/
f61693
mv %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0* %{buildroot}%{_root_prefix}/%{_lib}/
f61693
mkdir -p %{buildroot}%{_root_infodir}
f61693
%endif
f61693
%endif
f61693
f61693
mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h
f61693
mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h
f61693
for h in `find $FULLPATH/include -name \*.h`; do
f61693
  if grep -q 'It has been auto-edited by fixincludes from' $h; then
f61693
    rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'`
f61693
    diff -up $rh $h || :
f61693
    rm -f $h
f61693
  fi
f61693
done
f61693
f61693
f61693
cd ..
f61693
f61693
%if 0%{!?scl:1}
f61693
for i in %{buildroot}%{_prefix}/bin/{*gcc,*++,gcov,gfortran,gcc-ar,gcc-nm,gcc-ranlib}; do
f61693
  mv -f $i ${i}5
f61693
done
f61693
%endif
f61693
f61693
# Remove binaries we will not be including, so that they don't end up in
f61693
# gcc-debuginfo
f61693
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a,libstdc++*,libgfortran*} || :
f61693
%if 0%{?scl:1}
f61693
rm -f %{buildroot}%{_prefix}/%{_lib}/{libquadmath*,libitm*,libatomic*,libasan*,libtsan*,libubsan*,liblsan*}
f61693
%else
f61693
%if 0%{?rhel} >= 7
f61693
rm -f %{buildroot}%{_prefix}/%{_lib}/{libitm*,libatomic*}
f61693
%endif
f61693
%endif
f61693
rm -f %{buildroot}%{_prefix}/%{_lib}/libgomp*
f61693
rm -f %{buildroot}/%{_lib}/libgcc_s*
f61693
rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
f61693
rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a
f61693
rm -f %{buildroot}%{_prefix}/%{_lib}/libssp*
f61693
rm -f %{buildroot}%{_prefix}/%{_lib}/libvtv* || :
f61693
rm -f %{buildroot}/lib/cpp
f61693
rm -f %{buildroot}/%{_lib}/libgcc_s*
f61693
rm -f %{buildroot}%{_prefix}/bin/{f95,gccbug,gnatgcc*}
f61693
rm -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gfortran
f61693
%if 0%{!?scl:1}
f61693
rm -f %{buildroot}%{_prefix}/bin/{*c++*,cc,cpp}
f61693
%endif
f61693
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gfortran || :
f61693
f61693
%ifarch %{multilib_64_archs}
f61693
# Remove libraries for the other arch on multilib arches
f61693
rm -f %{buildroot}%{_prefix}/lib/lib*.so*
f61693
rm -f %{buildroot}%{_prefix}/lib/lib*.a
f61693
rm -f %{buildroot}/lib/libgcc_s*.so*
f61693
%else
f61693
%ifarch sparcv9 ppc
f61693
rm -f %{buildroot}%{_prefix}/lib64/lib*.so*
f61693
rm -f %{buildroot}%{_prefix}/lib64/lib*.a
f61693
rm -f %{buildroot}/lib64/libgcc_s*.so*
f61693
%endif
f61693
%endif
f61693
f61693
%ifnarch sparc64 ppc64
f61693
%ifarch %{multilib_64_archs}
f61693
cat <<\EOF > %{buildroot}%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major}
f61693
#!/bin/sh
f61693
%ifarch s390x
f61693
exec %{gcc_target_platform}-gcc-%{gcc_major} -m31 "$@"
f61693
%else
f61693
exec %{gcc_target_platform}-gcc-%{gcc_major} -m32 "$@"
f61693
%endif
f61693
EOF
f61693
chmod 755 %{buildroot}%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major}
f61693
%endif
f61693
%endif
f61693
f61693
# Help plugins find out nvra.
f61693
echo gcc-%{version}-%{release}.%{arch} > $FULLPATH/rpmver
f61693
f61693
# Add symlink to lto plugin in the binutils plugin directory.
f61693
%{__mkdir_p} %{buildroot}%{_libdir}/bfd-plugins/
f61693
ln -s ../../libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so \
f61693
  %{buildroot}%{_libdir}/bfd-plugins/
f61693
f61693
%check
f61693
cd obj-%{gcc_target_platform}
f61693
f61693
%ifarch s390x ppc64
f61693
exit 0
f61693
%endif
f61693
f61693
%{?scl:PATH=%{_bindir}${PATH:+:${PATH}}}
f61693
%if 0%{?rhel} <= 8
f61693
# Test against the system libstdc++.so.6 + libstdc++_nonshared.a combo
f61693
mv %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6{,.not_here}
f61693
mv %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so{,.not_here}
f61693
ln -sf %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 \
f61693
  %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6
f61693
echo '/* GNU ld script
f61693
   Use the shared library, but some functions are only in
f61693
   the static library, so try that secondarily.  */
f61693
%{oformat}
f61693
INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' \
f61693
  > %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so
f61693
cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \
f61693
  %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared.a
f61693
%endif
f61693
f61693
# run the tests.
f61693
LC_ALL=C make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ \
f61693
%if 0%{?fedora} >= 20 || 0%{?rhel} > 7
f61693
     RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector-strong}'" || :
f61693
%else
f61693
%ifnarch ppc ppc64 ppc64le s390x
f61693
     RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || :
f61693
%else
f61693
    || :
f61693
%endif
f61693
%endif
f61693
( LC_ALL=C ../contrib/test_summary -t || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' > testresults
f61693
rm -rf gcc/testsuite.prev
f61693
mv gcc/testsuite{,.prev}
f61693
rm -f gcc/site.exp
f61693
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" || :
f61693
mv gcc/testsuite/gcc/gcc.sum{,.sent}
f61693
mv gcc/testsuite/g++/g++.sum{,.sent}
f61693
( 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
f61693
rm -rf gcc/testsuite.compat
f61693
mv gcc/testsuite{,.compat}
f61693
mv gcc/testsuite{.prev,}
f61693
echo ====================TESTING=========================
f61693
cat testresults
f61693
echo ===`gcc --version | head -1` compatibility tests====
f61693
cat testresults2
f61693
echo ====================TESTING END=====================
f61693
mkdir testlogs-%{_target_platform}-%{version}-%{release}
f61693
for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats.*/tests/'`; do
f61693
  ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
f61693
done
f61693
for i in `find gcc/testsuite.compat -name \*.log | grep -v 'config.log\|acats.*/tests/'`; do
f61693
  ln $i testlogs-%{_target_platform}-%{version}-%{release}/`basename $i`.compat || :
f61693
done
f61693
tar cf - testlogs-%{_target_platform}-%{version}-%{release} | bzip2 -9c \
f61693
  | uuencode testlogs-%{_target_platform}.tar.bz2 || :
f61693
rm -rf testlogs-%{_target_platform}-%{version}-%{release}
f61693
f61693
f61693
%if 0%{?scl:1}
f61693
%post gfortran
f61693
if [ -f %{_infodir}/gfortran.info.gz ]; then
f61693
  /sbin/install-info \
f61693
    --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
f61693
fi
f61693
f61693
%preun gfortran
f61693
if [ $1 = 0 -a -f %{_infodir}/gfortran.info.gz ]; then
f61693
  /sbin/install-info --delete \
f61693
    --info-dir=%{_infodir} %{_infodir}/gfortran.info.gz || :
f61693
fi
f61693
%endif
f61693
f61693
%post gdb-plugin -p /sbin/ldconfig
f61693
f61693
%postun gdb-plugin -p /sbin/ldconfig
f61693
f61693
%post -n %{?scl_prefix}libgccjit -p /sbin/ldconfig
f61693
f61693
%postun -n %{?scl_prefix}libgccjit -p /sbin/ldconfig
f61693
f61693
%post -n %{?scl_prefix}libgccjit-docs
f61693
if [ -f %{_infodir}/libgccjit.info.gz ]; then
f61693
  /sbin/install-info \
f61693
    --info-dir=%{_infodir} %{_infodir}/libgccjit.info.gz || :
f61693
fi
f61693
f61693
%preun -n %{?scl_prefix}libgccjit-docs
f61693
if [ $1 = 0 -a -f %{_infodir}/libgccjit.info.gz ]; then
f61693
  /sbin/install-info --delete \
f61693
    --info-dir=%{_infodir} %{_infodir}/libgccjit.info.gz || :
f61693
fi
f61693
f61693
%post -n libquadmath
f61693
/sbin/ldconfig
f61693
if [ -f %{_infodir}/libquadmath.info.gz ]; then
f61693
  /sbin/install-info \
f61693
    --info-dir=%{_infodir} %{_infodir}/libquadmath.info.gz || :
f61693
fi
f61693
f61693
%preun -n libquadmath
f61693
if [ $1 = 0 -a -f %{_infodir}/libquadmath.info.gz ]; then
f61693
  /sbin/install-info --delete \
f61693
    --info-dir=%{_infodir} %{_infodir}/libquadmath.info.gz || :
f61693
fi
f61693
f61693
%postun -n libquadmath -p /sbin/ldconfig
f61693
f61693
%post -n libitm
f61693
/sbin/ldconfig
f61693
if [ -f %{_infodir}/libitm.info.gz ]; then
f61693
  /sbin/install-info \
f61693
    --info-dir=%{_infodir} %{_infodir}/libitm.info.gz || :
f61693
fi
f61693
f61693
%preun -n libitm
f61693
if [ $1 = 0 -a -f %{_infodir}/libitm.info.gz ]; then
f61693
  /sbin/install-info --delete \
f61693
    --info-dir=%{_infodir} %{_infodir}/libitm.info.gz || :
f61693
fi
f61693
f61693
%postun -n libitm -p /sbin/ldconfig
f61693
f61693
%post -n libatomic -p /sbin/ldconfig
f61693
f61693
%postun -n libatomic -p /sbin/ldconfig
f61693
f61693
%post -n libasan6 -p /sbin/ldconfig
f61693
f61693
%postun -n libasan6 -p /sbin/ldconfig
f61693
f61693
%post -n libtsan -p /sbin/ldconfig
f61693
f61693
%postun -n libtsan -p /sbin/ldconfig
f61693
f61693
%post -n libubsan1 -p /sbin/ldconfig
f61693
f61693
%postun -n libubsan1 -p /sbin/ldconfig
f61693
f61693
%post -n liblsan -p /sbin/ldconfig
f61693
f61693
%postun -n liblsan -p /sbin/ldconfig
f61693
f61693
%files
f61693
%{_prefix}/bin/gcc%{!?scl:11}
f61693
%{_prefix}/bin/gcov%{!?scl:11}
f61693
%{_prefix}/bin/gcov-tool%{!?scl:11}
f61693
%{_prefix}/bin/gcov-dump%{!?scl:11}
f61693
%{_prefix}/bin/gcc-ar%{!?scl:11}
f61693
%{_prefix}/bin/gcc-nm%{!?scl:11}
f61693
%{_prefix}/bin/gcc-ranlib%{!?scl:11}
f61693
%ifarch ppc
f61693
%{_prefix}/bin/%{_target_platform}-gcc%{!?scl:11}
f61693
%endif
f61693
%ifarch sparc64 sparcv9
f61693
%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}%{?_gnu}-gcc%{!?scl:11}
f61693
%endif
f61693
%ifarch ppc64 ppc64p7
f61693
%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}%{?_gnu}-gcc%{!?scl:11}
f61693
%endif
f61693
%{_prefix}/bin/%{gcc_target_platform}-gcc%{!?scl:11}
f61693
%{_prefix}/bin/%{gcc_target_platform}-gcc-%{gcc_major}
f61693
%ifnarch sparc64 ppc64
f61693
%ifarch %{multilib_64_archs}
f61693
%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major}
f61693
%endif
f61693
%endif
f61693
%if 0%{?scl:1}
f61693
%{_prefix}/bin/cc
f61693
%{_prefix}/bin/cpp
f61693
%{_mandir}/man1/gcc.1*
f61693
%{_mandir}/man1/cpp.1*
f61693
%{_mandir}/man1/gcov.1*
f61693
%{_mandir}/man1/gcov-tool.1*
f61693
%{_mandir}/man1/gcov-dump.1*
f61693
%{_infodir}/gcc*
f61693
%{_infodir}/cpp*
f61693
%endif
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%dir %{_prefix}/libexec/gcc
f61693
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto1
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto-wrapper
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so*
f61693
%{_libdir}/bfd-plugins/liblto_plugin.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/rpmver
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stddef.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdarg.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdfix.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/varargs.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/float.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/limits.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdbool.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/iso646.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/syslimits.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/unwind.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/omp.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/openacc.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/acc_prof.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint-gcc.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdalign.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdnoreturn.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdatomic.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/gcov.h
f61693
%ifarch %{ix86} x86_64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xmmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/emmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pmmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tmmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ammintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/smmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/nmmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/wmmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/immintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86intrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fma4intrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xopintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lwpintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/popcntintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmiintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tbmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia32intrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx2intrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmi2intrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/f16cintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fmaintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lzcntintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rtmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xtestintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/adxintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/prfchwintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rdseedintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fxsrintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsaveintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsaveoptintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512cdintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512erintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512pfintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/shaintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm_malloc.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm3dnow.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cpuid.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cross-stdarg.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bwintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512dqintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512ifmaintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512ifmavlintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmiintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmivlintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vlbwintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vldqintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vlintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clflushoptintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clwbintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mwaitxintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsavecintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsavesintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clzerointrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pkuintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx5124fmapsintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx5124vnniwintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vpopcntdqintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sgxintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/gfniintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cetintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cet.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmi2intrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmi2vlintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vnniintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vnnivlintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vaesintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vpclmulqdqintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vpopcntdqvlintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bitalgintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pconfigintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/wbnoinvdintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/movdirintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/waitpkgintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cldemoteintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bf16vlintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bf16intrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/enqcmdintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vp2intersectintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vp2intersectvlintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/serializeintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tsxldtrkintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxtileintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxint8intrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxbf16intrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86gprintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/uintrintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/hresetintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/keylockerintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxvnniintrin.h
f61693
%endif
f61693
%ifarch ia64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia64intrin.h
f61693
%endif
f61693
%ifarch ppc ppc64 ppc64le ppc64p7
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppc-asm.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/altivec.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppu_intrinsics.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/si2vmx.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/spu2vmx.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vec_types.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmi2intrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmiintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xmmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm_malloc.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/emmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86intrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pmmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tmmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/smmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amo.h
f61693
%endif
f61693
%ifarch %{arm}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/unwind-arm-common.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_acle.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_cmse.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_fp16.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_bf16.h
f61693
%endif
f61693
%ifarch aarch64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_acle.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_fp16.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_bf16.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_sve.h
f61693
%endif
f61693
%ifarch sparc sparcv9 sparc64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/visintrin.h
f61693
%endif
f61693
%ifarch s390 s390x
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/s390intrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vecintrin.h
f61693
%endif
f61693
%if %{build_libasan}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sanitizer
f61693
%endif
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/collect2
f61693
%if 0%{?scl:1}
f61693
%if 0%{?rhel} <= 7
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ar
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/as
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld.bfd
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld.gold
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/nm
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/objcopy
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ranlib
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/strip
f61693
%endif
f61693
%endif
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/crt*.o
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcov.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc_eh.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc_s.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.spec
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.so
f61693
%if 0%{?rhel} <= 7
f61693
%ifnarch ppc
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp_nonshared.a
f61693
%endif
f61693
%endif
f61693
%if %{build_libitm}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.spec
f61693
%endif
f61693
%if %{build_libasan}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsanitizer.spec
f61693
%endif
f61693
%ifarch sparcv9 sparc64 ppc ppc64
f61693
%if %{build_libquadmath}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
f61693
%endif
f61693
%endif
f61693
%if %{build_isl}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libisl.so.*
f61693
%endif
f61693
%ifarch sparcv9 ppc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/crt*.o
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcov.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc_eh.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc_s.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgomp.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgomp.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgccjit.so
f61693
%if %{build_libquadmath}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.so
f61693
%endif
f61693
%if %{build_libitm}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.so
f61693
%endif
f61693
%if %{build_libatomic}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.so
f61693
%endif
f61693
%if %{build_libasan}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan_preinit.o
f61693
%endif
f61693
%if %{build_libubsan}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.so
f61693
%endif
f61693
%endif
f61693
%ifarch %{multilib_64_archs}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/crt*.o
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcov.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_eh.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_s.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.so
f61693
f61693
# Add libgomp_nonshared.a
f61693
%if 0%{?rhel} <= 7
f61693
%ifarch x86_64
f61693
# Need it for -m32.
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp_nonshared.a
f61693
%endif
f61693
%ifarch ppc64
f61693
# We've created a symlink to lib64/libgomp_nonshared.a, so add it.
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgomp_nonshared.a
f61693
%endif
f61693
%endif
f61693
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgccjit.so
f61693
%if %{build_libquadmath}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.so
f61693
%endif
f61693
%if %{build_libitm}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.so
f61693
%endif
f61693
%if %{build_libatomic}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.so
f61693
%endif
f61693
%if %{build_libasan}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan_preinit.o
f61693
%endif
f61693
%if %{build_libubsan}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.so
f61693
%endif
f61693
%endif
f61693
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
f61693
%if %{build_libquadmath}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
f61693
%endif
f61693
%if %{build_libitm}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so
f61693
%endif
f61693
%if %{build_libatomic}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so
f61693
%endif
f61693
%if %{build_libasan}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o
f61693
%endif
f61693
%if %{build_libubsan}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so
f61693
%endif
f61693
%if %{build_libtsan}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so
f61693
%endif
f61693
%if %{build_liblsan}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so
f61693
%endif
f61693
%endif
f61693
%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING* COPYING.RUNTIME
f61693
f61693
%files c++
f61693
%{_prefix}/bin/%{gcc_target_platform}-g++%{!?scl:11}
f61693
%{_prefix}/bin/g++%{!?scl:11}
f61693
%if 0%{?scl:1}
f61693
%{_prefix}/bin/%{gcc_target_platform}-c++
f61693
%{_prefix}/bin/c++
f61693
%{_mandir}/man1/g++.1*
f61693
%endif
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%dir %{_prefix}/libexec/gcc
f61693
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1plus
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/g++-mapper-server
f61693
%ifarch sparcv9 ppc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++fs.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++_nonshared.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libsupc++.a
f61693
%endif
f61693
%ifarch %{multilib_64_archs}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++fs.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++_nonshared.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libsupc++.a
f61693
%endif
f61693
%ifarch sparcv9 ppc %{multilib_64_archs}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a
f61693
%endif
f61693
%ifarch sparcv9 sparc64 ppc ppc64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_nonshared.a
f61693
%endif
f61693
%doc rpm.doc/changelogs/gcc/cp/ChangeLog*
f61693
f61693
%files -n %{?scl_prefix}libstdc++%{!?scl:11}-devel
f61693
%defattr(-,root,root,-)
f61693
%dir %{_prefix}/include/c++
f61693
%{_prefix}/include/c++/%{gcc_major}
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%ifarch sparcv9 ppc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++fs.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++_nonshared.a
f61693
%endif
f61693
%ifarch sparc64 ppc64
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++fs.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++_nonshared.a
f61693
%endif
f61693
%ifnarch sparcv9 sparc64 ppc ppc64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++_nonshared.a
f61693
%endif
f61693
%ifnarch sparcv9 ppc %{multilib_64_archs}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a
f61693
%endif
f61693
%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README*
f61693
f61693
f61693
%if %{build_libstdcxx_docs}
f61693
%files -n %{?scl_prefix}libstdc++%{!?scl:11}-docs
f61693
%{_mandir}/man3/*
f61693
%doc rpm.doc/libstdc++-v3/html
f61693
%endif
f61693
f61693
%files gfortran
f61693
%{_prefix}/bin/gfortran%{!?scl:11}
f61693
%if 0%{?scl:1}
f61693
%{_mandir}/man1/gfortran.1*
f61693
%{_infodir}/gfortran*
f61693
%endif
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%dir %{_prefix}/libexec/gcc
f61693
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ISO_Fortran_binding.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.f90
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.mod
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib_kinds.mod
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc.f90
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc.mod
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc_kinds.mod
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc_lib.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_arithmetic.mod
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_exceptions.mod
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_features.mod
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/f951
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.spec
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcaf_single.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran_nonshared.a
f61693
%ifarch sparcv9 ppc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libcaf_single.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgfortran.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgfortran.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/finclude
f61693
%endif
f61693
%ifarch %{multilib_64_archs}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libcaf_single.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran_nonshared.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/finclude
f61693
%endif
f61693
%ifarch ppc64
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgfortran_nonshared.a
f61693
%endif
f61693
%doc rpm.doc/gfortran/*
f61693
f61693
%if %{build_libquadmath}
f61693
%files -n %{?scl_prefix}libquadmath-devel
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/quadmath.h
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/quadmath_weak.h
f61693
%ifarch sparcv9 ppc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libquadmath.a
f61693
%endif
f61693
%ifarch sparc64 ppc64 ppc64p7
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libquadmath.a
f61693
%endif
f61693
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
f61693
%endif
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%ifarch %{ix86}
f61693
# Need it for -m32.
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran_nonshared.a
f61693
%endif
f61693
%doc rpm.doc/libquadmath/ChangeLog*
f61693
%endif
f61693
f61693
%if %{build_libitm}
f61693
%files -n %{?scl_prefix}libitm-devel
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%ifarch sparcv9 ppc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libitm.a
f61693
%endif
f61693
%ifarch sparc64 ppc64 ppc64p7
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libitm.a
f61693
%endif
f61693
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a
f61693
%endif
f61693
%doc rpm.doc/libitm/ChangeLog*
f61693
%endif
f61693
f61693
%if %{build_libatomic}
f61693
%files -n %{?scl_prefix}libatomic-devel
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%ifarch sparcv9 ppc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libatomic.a
f61693
%endif
f61693
%ifarch sparc64 ppc64 ppc64p7
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libatomic.a
f61693
%endif
f61693
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a
f61693
%endif
f61693
%doc rpm.doc/changelogs/libatomic/ChangeLog*
f61693
%endif
f61693
f61693
%if %{build_libasan}
f61693
%files -n libasan6
f61693
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libasan.so.6*
f61693
f61693
%files -n %{?scl_prefix}libasan-devel
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%ifarch sparcv9 ppc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libasan.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libasan_preinit.o
f61693
%endif
f61693
%ifarch sparc64 ppc64 ppc64p7
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libasan.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libasan_preinit.o
f61693
%endif
f61693
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o
f61693
%endif
f61693
%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
f61693
%endif
f61693
f61693
%if %{build_libtsan}
f61693
# Use the system libtsan.
f61693
%if 0%{?rhel} < 8
f61693
%files -n libtsan
f61693
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libtsan.so.0*
f61693
%endif
f61693
f61693
%files -n %{?scl_prefix}libtsan-devel
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan_preinit.o
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.a
f61693
%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
f61693
%endif
f61693
f61693
%if %{build_libubsan}
f61693
# GTS 11 libubsan1 would clash with the system RHEL 8 libubsan.
f61693
%if 0%{?rhel} < 8
f61693
%files -n libubsan1
f61693
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libubsan.so.1*
f61693
%endif
f61693
f61693
%files -n %{?scl_prefix}libubsan-devel
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a
f61693
%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
f61693
%endif
f61693
f61693
%if %{build_liblsan}
f61693
# Use the system liblsan.
f61693
%if 0%{?rhel} < 8
f61693
%files -n liblsan
f61693
%{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/liblsan.so.0*
f61693
%endif
f61693
f61693
%files -n %{?scl_prefix}liblsan-devel
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan_preinit.o
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.a
f61693
%doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT
f61693
%endif
f61693
f61693
%files -n %{?scl_prefix}libgccjit
f61693
%{_prefix}/%{_lib}/libgccjit.so*
f61693
%doc rpm.doc/changelogs/gcc/jit/ChangeLog*
f61693
f61693
%files -n %{?scl_prefix}libgccjit-devel
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgccjit.so
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/libgccjit*.h
f61693
f61693
%files -n %{?scl_prefix}libgccjit-docs
f61693
%{_infodir}/libgccjit.info*
f61693
%doc rpm.doc/libgccjit-devel/*
f61693
%doc gcc/jit/docs/examples
f61693
f61693
%files plugin-devel
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/gtype.state
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/include
f61693
%dir %{_prefix}/libexec/gcc
f61693
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
f61693
f61693
%files gdb-plugin
f61693
%{_prefix}/%{_lib}/libcc1.so*
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcc1plugin.so*
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcp1plugin.so*
f61693
%doc rpm.doc/changelogs/libcc1/ChangeLog*
f61693
f61693
%if %{build_offload_nvptx}
f61693
%files -n %{?scl_prefix}offload-nvptx
f61693
%{_prefix}/bin/nvptx-none-*
f61693
%{_prefix}/bin/%{gcc_target_platform}-accel-nvptx-none-gcc
f61693
%{_prefix}/bin/%{gcc_target_platform}-accel-nvptx-none-lto-dump
f61693
%dir %{_prefix}/lib/gcc
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel
f61693
%dir %{_prefix}/libexec/gcc
f61693
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
f61693
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
f61693
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel
f61693
%{_prefix}/lib/gcc/nvptx-none
f61693
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none
f61693
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none
f61693
%dir %{_prefix}/nvptx-none
f61693
%{_prefix}/nvptx-none/bin
f61693
%{_prefix}/nvptx-none/include
f61693
 %endif
f61693
f61693
%changelog
4c2713
* Fri Oct 29 2021 Marek Polacek <polacek@redhat.com> 11.2.1-1.2
4c2713
- add -Wbidirectional patch
4c2713
f61693
* Mon Aug 16 2021 Marek Polacek <polacek@redhat.com> 11.2.1-1.1
f61693
- add .hidden for _ZNSt10filesystem9_Dir_base7advanceEbRSt10error_code
f61693
f61693
* Wed Jul 28 2021 Marek Polacek <polacek@redhat.com> 11.2.1-1
f61693
- update from releases/gcc-11-branch (#1986841)
f61693
  - GCC 11.2 release
f61693
  - PRs middle-end/101586, rtl-optimization/101562
f61693
f61693
* Wed Jul  7 2021 Marek Polacek <polacek@redhat.com> 11.1.1-6.1
f61693
- provide libubsan.a on ppc64 in libubsan-devel (#1977855)
f61693
f61693
* Wed Jun 23 2021 Marek Polacek <polacek@redhat.com> 11.1.1-6
f61693
- update from Fedora gcc 11.1.1-6 (#1957522)
f61693
  - PRs c++/100876, c++/100879, c++/101106, c/100619, c/100783, fortran/95501,
f61693
   fortran/95502, fortran/100283, fortran/101123, inline-asm/100785,
f61693
   libstdc++/91488, libstdc++/95833, libstdc++/100806, libstdc++/100940,
f61693
   middle-end/100250, middle-end/100307, middle-end/100574,
f61693
   middle-end/100684, middle-end/100732, middle-end/100876,
f61693
   middle-end/101062, middle-end/101167, target/99842, target/99939,
f61693
   target/100310, target/100777, target/100856, target/100871,
f61693
   target/101016
f61693
f61693
* Mon Jun 21 2021 Marek Polacek <polacek@redhat.com> 11.1.1-5
f61693
- update from Fedora gcc 11.1.1-5 (#1957522)
f61693
- default to -gdwarf-4 (#1974428)
f61693
f61693
* Wed Jun  2 2021 Marek Polacek <polacek@redhat.com> 11.1.1-3
f61693
- update from Fedora gcc 11.1.1-3 (#1957522)
f61693
f61693
* Wed May 12 2021 Marek Polacek <polacek@redhat.com> 11.1.1-2
f61693
- update from Fedora gcc 11.1.1-2
f61693
- fix up mausezahn miscompilation (PR tree-optimization/100566)
f61693
- fix build with removed linux/cyclades.h header (PR sanitizer/100379)
f61693
f61693
* Tue May 11 2021 Marek Polacek <polacek@redhat.com> 11.1.1-1
f61693
- update to GCC 11 (#1957522)
f61693
f61693
* Thu Mar 18 2021 Marek Polacek <polacek@redhat.com> 10.2.1-11.1
f61693
- update libgomp_nonshared.c with new symbols
f61693
f61693
* Tue Feb 16 2021 Marek Polacek <polacek@redhat.com> 10.2.1-11
f61693
- update from Fedora gcc 10.2.1-11
f61693
- apply gcc10-SIZE_MAX.patch
f61693
f61693
* Tue Feb 16 2021 Marek Polacek <polacek@redhat.com> 10.2.1-10.4
f61693
- package 32/libgfortran_nonshared.a (#1927579)
f61693
f61693
* Mon Feb 15 2021 Marek Polacek <polacek@redhat.com> 10.2.1-10.3
f61693
- actually use libgfortran_nonshared.a (#1927579)
f61693
f61693
* Mon Jan 25 2021 Marek Polacek <polacek@redhat.com> 10.2.1-10.2
f61693
- require make
f61693
- apply PR97524 fix (#1896092)
f61693
f61693
* Tue Jan 19 2021 Marek Polacek <polacek@redhat.com> 10.2.1-10.1
f61693
- update from Fedora gcc 10.2.1-10 (#1872051)
f61693
- drop gcc10-pr96385.patch
f61693
f61693
* Mon Aug 17 2020 Marek Polacek <polacek@redhat.com> 10.2.1-2.1
f61693
- re-enable Fortran patches (#1860413)
f61693
f61693
* Tue Aug  4 2020 Marek Polacek <polacek@redhat.com> 10.2.1-2
f61693
- update from Fedora gcc 10.2.1-2
f61693
- emit debug info for C/C++ external function declarations used in the TU
f61693
  (PR debug/96383)
f61693
- discard SHN_UNDEF global symbols from LTO debuginfo (PR lto/96385)
f61693
- strip also -flto=auto from optflags
f61693
f61693
* Sun Aug  2 2020 Marek Polacek <polacek@redhat.com> 10.2.1-1.2
f61693
- avoid stack overflow in std::vector (PR libstdc++/94540, #1859670)
f61693
- apply gcc10-libgfortran-compat-2.patch
f61693
f61693
* Sat Aug  1 2020 Marek Polacek <polacek@redhat.com> 10.2.1-1.1
f61693
- add various .hidden symbols to gcc10-libstdc++-compat.patch
f61693
f61693
* Mon Jul 27 2020 Marek Polacek <polacek@redhat.com> 10.2.1-1
f61693
- GCC 10.2 release
f61693
- add symlink to liblto_plugin.so in /usr/lib/bfd-plugins
f61693
- disable -flto in %%{optflags}, lto bootstrap will be enabled the GCC way
f61693
  later
f61693
- require MPFR Library version 3.1.0 (or later)
f61693
f61693
* Wed Jul 22 2020 Marek Polacek <polacek@redhat.com> 10.1.1-1.1
f61693
- require libasan6
f61693
f61693
* Mon Jul 13 2020 Marek Polacek <polacek@redhat.com> 10.1.1-1
f61693
- update to GCC 10.1.0 release (#1851053)
f61693
f61693
* Thu Jun  4 2020 Marek Polacek <polacek@redhat.com> 9.3.1-2.1
f61693
- bump for rebuild on ppc/s390
f61693
f61693
* Wed Apr  8 2020 Marek Polacek <polacek@redhat.com> 9.3.1-2
f61693
- update from Fedora gcc-9.3.1-2
f61693
f61693
* Tue Apr 7 2020 Marek Polacek <polacek@redhat.com> 9.3.1-1.1
f61693
- include the c++/93597 fix
f61693
- remove several .hidden symbols from gcc9-libstdc++-compat
f61693
f61693
* Wed Mar 18 2020 Marek Polacek <polacek@redhat.com> 9.3.1-1
f61693
- update from Fedora gcc-9.3.1-1 (#1812147)
f61693
f61693
* Thu Feb  6 2020 Marek Polacek <polacek@redhat.com> 9.2.1-3.8
f61693
- remove a few *codecvt_utf8* symbols from gcc9-libstdc++-compat
f61693
f61693
* Wed Jan 29 2020 Marek Polacek <polacek@redhat.com> 9.2.1-3.7
f61693
- gcc9-libstdc++-compat fix: move _ZSt19__throw_ios_failurePKc
f61693
f61693
* Wed Jan 29 2020 Marek Polacek <polacek@redhat.com> 9.2.1-3.6
f61693
- update from Fedora gcc-9.2.1-3 (#1783475)
f61693
f61693
* Thu Nov 21 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2.6
f61693
- fix libgomp_nonshared.a symlink on ppc64
f61693
f61693
* Tue Nov 19 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2.5
f61693
- add libgomp_nonshared.a (#1769957)
f61693
f61693
* Thu Aug 15 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2.4
f61693
- require binutils >= 2.31 so that gcc supports -mpltseq
f61693
f61693
* Fri Aug  9 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2.3
f61693
- fix visibility of symbols in gcc9-libstdc++-compat.patch (#1738677)
f61693
f61693
* Mon Jul 22 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2.2
f61693
- small fixes for the Fortran patches (#1728355)
f61693
f61693
* Mon Jul 22 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2.1
f61693
- updates from GTS 9 gcc
f61693
f61693
* Fri Jul 19 2019 Marek Polacek <polacek@redhat.com> 9.1.1-2
f61693
- fix Release
f61693
f61693
* Thu Jul 18 2019 Marek Polacek <polacek@redhat.com> 9.1.1-1.1
f61693
- fix out-of-ssa with unsupported vector types (PR rtl-optimization/90756,
f61693
  #1727979)
f61693
- apply Fortran patches (#1728355)
f61693
f61693
* Tue Jul  9 2019 Marek Polacek <polacek@redhat.com> 9.1.1-1
f61693
- new package
f61693
- fix library requires: use %{_isa} (#1697655)