%global DATE 20251022 %global gitrev 7cb09bad6a2ef6c95cdcb57821f7f01f477c5437 %global gcc_version 14.3.1 %global gcc_major 14 # Note, gcc_release must be integer, if you want to add suffixes to # %%{release}, append them after %%{gcc_release} on Release: line. %global gcc_release 4 %global nvptx_tools_gitrev 87ce9dc5999e5fca2e1d3478a30888d9864c9804 %global newlib_cygwin_gitrev d45261f62a15f8abd94a1031020b9a9f455e4eed %global _unpackaged_files_terminate_build 0 %if 0%{?fedora:1} %global _performance_build 1 # Hardening slows the compiler way too much. %undefine _hardened_build %endif %undefine _auto_set_build_flags %if 0%{?fedora} > 27 || 0%{?rhel} > 7 # Until annobin is fixed (#1519165). %undefine _annotated_build %endif # Strip will fail on nvptx-none *.a archives and the brp-* scripts will # fail randomly depending on what is stripped last. %if 0%{?__brp_strip_static_archive:1} %global __brp_strip_static_archive %{__brp_strip_static_archive} || : %endif %if 0%{?__brp_strip_lto:1} %global __brp_strip_lto %{__brp_strip_lto} || : %endif %if 0%{?fedora} < 32 && 0%{?rhel} < 8 %global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64 %else %global multilib_64_archs sparc64 ppc64 ppc64p7 x86_64 %endif %if 0%{?rhel} > 7 %global build_ada 0 %global build_objc 0 %global build_go 0 %global build_d 0 %global build_m2 0 %else %ifarch %{ix86} x86_64 ia64 ppc %{power64} alpha s390x %{arm} aarch64 riscv64 %global build_ada 1 %else %global build_ada 0 %endif %global build_objc 1 %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64 %global build_go 1 %else %global build_go 0 %endif %ifarch %{ix86} x86_64 %{arm} aarch64 %{mips} s390 s390x riscv64 %global build_d 1 %else %global build_d 0 %endif %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64 %global build_m2 1 %else %global build_m2 0 %endif %endif %ifarch %{ix86} x86_64 ia64 ppc64le %global build_libquadmath 1 %else %global build_libquadmath 0 %endif %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 riscv64 %global build_libasan 1 %else %global build_libasan 0 %endif %ifarch x86_64 aarch64 %global build_libhwasan 1 %else %global build_libhwasan 0 %endif %ifarch x86_64 ppc64 ppc64le aarch64 s390x riscv64 %global build_libtsan 1 %else %global build_libtsan 0 %endif %ifarch x86_64 ppc64 ppc64le aarch64 s390x riscv64 %global build_liblsan 1 %else %global build_liblsan 0 %endif %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 riscv64 %global build_libubsan 1 %else %global build_libubsan 0 %endif %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64 %global build_libatomic 1 %else %global build_libatomic 0 %endif %ifarch %{ix86} x86_64 %{arm} alpha ppc ppc64 ppc64le ppc64p7 s390 s390x aarch64 riscv64 %global build_libitm 1 %else %global build_libitm 0 %endif %if 0%{?rhel} > 8 %global build_isl 0 %else %global build_isl 1 %endif %global build_libstdcxx_docs 1 %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64 %global attr_ifunc 1 %else %global attr_ifunc 0 %endif %ifarch x86_64 ppc64le %global build_offload_nvptx 1 %else %global build_offload_nvptx 0 %endif %ifarch x86_64 %global build_offload_amdgcn 1 %else %global build_offload_amdgcn 0 %endif %if 0%{?fedora} < 32 && 0%{?rhel} < 8 %ifarch s390x %global multilib_32_arch s390 %endif %endif %ifarch sparc64 %global multilib_32_arch sparcv9 %endif %ifarch ppc64 ppc64p7 %global multilib_32_arch ppc %endif %ifarch x86_64 %global multilib_32_arch i686 %endif %if 0%{?fedora} >= 36 || 0%{?rhel} >= 10 %global build_annobin_plugin 1 %else %global build_annobin_plugin 0 %endif %if 0%{?rhel} == 10 %ifarch x86_64 %global build_cross 1 %else %global build_cross 0 %endif %else %dnl rhel != 10 %global build_cross 0 %endif %global cross_targets aarch64-redhat-linux ppc64le-redhat-linux s390x-redhat-linux # sysroot package support (taken from that for glibc). These contain # arch-specific packages, so turn off the rpmbuild check. %global _binaries_in_noarch_packages_terminate_build 0 # Variant of %%dist that contains just the distribution release, no affixes. %{?fedora:%global sysroot_dist fc%{fedora}} %{?rhel:%global sysroot_dist el%{rhel}} %{?!sysroot_dist:%global sysroot_dist root} # The name of the sysroot package (suffixed with a library name). %global sysroot_package_arch sysroot-%{_arch}-%{sysroot_dist} # Installed path for the sysroot tree. Must contain /sys-root/, which # triggers filtering. %global sysroot_prefix /usr/%{_arch}-redhat-linux/sys-root/%{sysroot_dist} Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} Release: %{gcc_release}%{?dist} # License notes for some of the less obvious ones: # gcc/doc/cppinternals.texi: Linux-man-pages-copyleft-2-para # isl: MIT, BSD-2-Clause # libcody: Apache-2.0 # libphobos/src/etc/c/curl.d: curl # All of the remaining license soup is in newlib. License: GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel # The source for this package was pulled from upstream's vcs. # %%{gitrev} is some commit from the # https://gcc.gnu.org/git/?p=gcc.git;h=refs/vendors/redhat/heads/gcc-%%{gcc_major}-branch # branch. Use the following command to generate the tarball: # ./update-gcc.sh %%{gitrev} # optionally if say /usr/src/gcc/.git/ is an existing gcc git clone # ./update-gcc.sh %%{gitrev} /usr/src/gcc/.git/ # to speed up the clone operations. Note, %%{gitrev} macro in # gcc.spec shouldn't be updated before running the script, the script # will update it, fill in some %%changelog details etc. Source0: gcc-%{version}-%{DATE}.tar.xz # The source for nvptx-tools package was pulled from upstream's vcs. Use the # following commands to generate the tarball: # git clone --depth 1 https://github.com/MentorEmbedded/nvptx-tools.git nvptx-tools-dir.tmp # git --git-dir=nvptx-tools-dir.tmp/.git fetch --depth 1 origin %%{nvptx_tools_gitrev} # 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 # rm -rf nvptx-tools-dir.tmp Source1: nvptx-tools-%{nvptx_tools_gitrev}.tar.xz # The source for nvptx-newlib package was pulled from upstream's vcs. Use the # following commands to generate the tarball: # git clone https://sourceware.org/git/newlib-cygwin.git newlib-cygwin-dir.tmp # 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 # rm -rf newlib-cygwin-dir.tmp Source2: newlib-cygwin-%{newlib_cygwin_gitrev}.tar.xz %global isl_version 0.24 Source3: https://gcc.gnu.org/pub/gcc/infrastructure/isl-%{isl_version}.tar.bz2 URL: http://gcc.gnu.org # Need binutils with -pie support >= 2.14.90.0.4-4 # Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4 # Need binutils which handle -msecure-plt on ppc >= 2.16.91.0.2-2 # Need binutils which support .weakref >= 2.16.91.0.3-1 # Need binutils which support --hash-style=gnu >= 2.17.50.0.2-7 # Need binutils which support mffgpr and mftgpr >= 2.17.50.0.2-8 # Need binutils which support --build-id >= 2.17.50.0.17-3 # Need binutils which support %%gnu_unique_object >= 2.19.51.0.14 # Need binutils which support .cfi_sections >= 2.19.51.0.14-33 # Need binutils which support --no-add-needed >= 2.20.51.0.2-12 # Need binutils which support -plugin # Need binutils which support .loc view >= 2.30 # Need binutils which support --generate-missing-build-notes=yes >= 2.31 %if 0%{?fedora} >= 29 || 0%{?rhel} > 7 BuildRequires: binutils >= 2.31 %else BuildRequires: binutils >= 2.24 %endif # While gcc doesn't include statically linked binaries, during testing # -static is used several times. BuildRequires: glibc-static BuildRequires: zlib-devel, gettext, dejagnu, bison, flex, sharutils BuildRequires: texinfo, texinfo-tex, /usr/bin/pod2man BuildRequires: systemtap-sdt-devel >= 1.3 BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 3.1.0, libmpc-devel >= 0.8.1 BuildRequires: python3-devel, /usr/bin/python BuildRequires: gcc, gcc-c++, make %if %{build_go} BuildRequires: hostname, procps %endif # For VTA guality testing BuildRequires: gdb # Make sure pthread.h doesn't contain __thread tokens # Make sure glibc supports stack protector # Make sure glibc supports DT_GNU_HASH BuildRequires: glibc-devel >= 2.4.90-13 BuildRequires: elfutils-devel >= 0.147 BuildRequires: elfutils-libelf-devel >= 0.147 BuildRequires: libzstd-devel %ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha # Make sure glibc supports TFmode long double BuildRequires: glibc >= 2.3.90-35 %endif %ifarch %{multilib_64_archs} BuildRequires: (glibc32 or glibc-devel(%{__isa_name}-32)) %endif %ifarch sparcv9 ppc BuildRequires: (glibc64 or glibc-devel(%{__isa_name}-64)) %endif %if %{build_ada} # Ada requires Ada to build BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1 %endif %if %{build_d} # D requires D to build BuildRequires: gcc-gdc >= 11.0.0, libgphobos-static >= 11.0.0 %endif %ifarch ia64 BuildRequires: libunwind >= 0.98 %endif %if %{build_libstdcxx_docs} BuildRequires: doxygen >= 1.7.1 BuildRequires: graphviz, dblatex, texlive-collection-latex, docbook5-style-xsl %endif %if %{build_offload_amdgcn} BuildRequires: llvm >= 15, lld >= 15 %endif Requires: cpp = %{version}-%{release} # Need .eh_frame ld optimizations # Need proper visibility support # Need -pie support # Need --as-needed/--no-as-needed support # On ppc64, need omit dot symbols support and --non-overlapping-opd # Need binutils that owns /usr/bin/c++filt # Need binutils that support .weakref # Need binutils that supports --hash-style=gnu # Need binutils that support mffgpr/mftgpr # Need binutils that support --build-id # Need binutils that support %%gnu_unique_object # Need binutils that support .cfi_sections # Need binutils that support --no-add-needed # Need binutils that support -plugin # Need binutils that support .loc view >= 2.30 # Need binutils which support --generate-missing-build-notes=yes >= 2.31 %if 0%{?fedora} >= 29 || 0%{?rhel} > 7 Requires: binutils >= 2.31 %else Requires: binutils >= 2.24 %endif # Make sure gdb will understand DW_FORM_strp Conflicts: gdb < 5.1-2 Requires: glibc-devel >= 2.2.90-12 %ifarch ppc ppc64 ppc64le ppc64p7 s390 s390x sparc sparcv9 alpha # Make sure glibc supports TFmode long double Requires: glibc >= 2.3.90-35 %endif %if 0%{?fedora} >= 18 || 0%{?rhel} >= 7 %ifarch %{arm} Requires: glibc >= 2.16 %endif %endif Requires: libgcc >= %{version}-%{release} Requires: libgomp = %{version}-%{release} # lto-wrapper invokes make Requires: make %if !%{build_ada} Obsoletes: gcc-gnat < %{version}-%{release} %endif Obsoletes: gcc-java < %{version}-%{release} AutoReq: true Provides: bundled(libiberty) Provides: bundled(libbacktrace) Provides: bundled(libffi) Provides: gcc(major) = %{gcc_major} Patch0: gcc14-hack.patch Patch2: gcc14-sparc-config-detection.patch Patch3: gcc14-libgomp-omp_h-multilib.patch Patch4: gcc14-libtool-no-rpath.patch Patch5: gcc14-isl-dl.patch Patch6: gcc14-isl-dl2.patch Patch7: gcc14-libstdc++-docs.patch Patch8: gcc14-no-add-needed.patch Patch9: gcc14-Wno-format-security.patch Patch10: gcc14-rh1574936.patch Patch11: gcc14-d-shared-libphobos.patch Patch12: gcc14-pr101523.patch Patch50: isl-rh2155127.patch Patch100: gcc14-fortran-fdec-duplicates.patch # Pretty printer updates for GTS Patch1000: gcc14-libstdc++-prettyprinter-update-15.patch Patch1001: gcc14-libstdc++-prettyprinter-update-15-tests.patch # Backports Patch2000: gcc14-gcov-function-summaries.patch # On ARM EABI systems, we do want -gnueabi to be part of the # target triple. %ifnarch %{arm} %global _gnu %{nil} %else %global _gnu -gnueabi %endif %ifarch sparcv9 %global gcc_target_platform sparc64-%{_vendor}-%{_target_os} %endif %ifarch ppc ppc64p7 %global gcc_target_platform ppc64-%{_vendor}-%{_target_os} %endif %ifnarch sparcv9 ppc ppc64p7 %global gcc_target_platform %{_target_platform} %endif %if %{build_go} # Avoid stripping these libraries and binaries. %global __os_install_post \ chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.23.* \ chmod 644 %{buildroot}%{_prefix}/bin/go.gcc \ chmod 644 %{buildroot}%{_prefix}/bin/gofmt.gcc \ chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo \ chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/buildid \ chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/test2json \ chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/vet \ %__os_install_post \ chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.23.* \ chmod 755 %{buildroot}%{_prefix}/bin/go.gcc \ chmod 755 %{buildroot}%{_prefix}/bin/gofmt.gcc \ chmod 755 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo \ chmod 755 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/buildid \ chmod 755 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/test2json \ chmod 755 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/vet \ %{nil} %endif %description The gcc package contains the GNU Compiler Collection version %{gcc_major}. You'll need this package in order to compile C code. %package -n libgcc Summary: GCC version %{gcc_major} shared support library Autoreq: false %if !%{build_ada} Obsoletes: libgnat < %{version}-%{release} %endif Obsoletes: libmudflap Obsoletes: libmudflap-devel Obsoletes: libmudflap-static Obsoletes: libgcj < %{version}-%{release} Obsoletes: libgcj-devel < %{version}-%{release} Obsoletes: libgcj-src < %{version}-%{release} %ifarch %{ix86} x86_64 Obsoletes: libcilkrts Obsoletes: libcilkrts-static Obsoletes: libmpx Obsoletes: libmpx-static %endif %description -n libgcc This package contains GCC shared support library which is needed e.g. for exception handling support. %package c++ Summary: C++ support for GCC Requires: gcc = %{version}-%{release} Requires: libstdc++ = %{version}-%{release} Requires: libstdc++-devel = %{version}-%{release} Provides: gcc-g++ = %{version}-%{release} Provides: g++ = %{version}-%{release} Autoreq: true %description c++ This package adds C++ support to the GNU Compiler Collection. It includes support for most of the current C++ specification, including templates and exception handling. %package -n libstdc++ Summary: GNU Standard C++ Library Autoreq: true Requires: glibc >= 2.10.90-7 BuildRequires: tzdata >= 2017c %if 0%{?fedora} > 38 || 0%{?rhel} > 9 Recommends: tzdata >= 2017c %else Requires: tzdata >= 2017c %endif %description -n libstdc++ The libstdc++ package contains a rewritten standard compliant GCC Standard C++ Library. %package -n libstdc++-devel Summary: Header files and libraries for C++ development Requires: libstdc++%{?_isa} = %{version}-%{release} Autoreq: true %description -n libstdc++-devel This is the GNU implementation of the standard C++ libraries. This package includes the header files and libraries needed for C++ development. This includes rewritten implementation of STL. %package -n libstdc++-static Summary: Static libraries for the GNU standard C++ library Requires: libstdc++-devel = %{version}-%{release} Autoreq: true %description -n libstdc++-static Static libraries for the GNU standard C++ library. %package -n libstdc++-docs Summary: Documentation for the GNU standard C++ library Autoreq: true %description -n libstdc++-docs Manual, doxygen generated API information and Frequently Asked Questions for the GNU standard C++ library. %package objc Summary: Objective-C support for GCC Requires: gcc = %{version}-%{release} Requires: libobjc = %{version}-%{release} Autoreq: true %description objc gcc-objc provides Objective-C support for the GCC. Mainly used on systems running NeXTSTEP, Objective-C is an object-oriented derivative of the C language. %package objc++ Summary: Objective-C++ support for GCC Requires: gcc-c++ = %{version}-%{release}, gcc-objc = %{version}-%{release} Autoreq: true %description objc++ gcc-objc++ package provides Objective-C++ support for the GCC. %package -n libobjc Summary: Objective-C runtime Autoreq: true %description -n libobjc This package contains Objective-C shared library which is needed to run Objective-C dynamically linked programs. %package gfortran Summary: Fortran support Requires: gcc = %{version}-%{release} Requires: libgfortran = %{version}-%{release} %if %{build_libquadmath} Requires: libquadmath = %{version}-%{release} Requires: libquadmath-devel = %{version}-%{release} %endif Provides: gcc-fortran = %{version}-%{release} Provides: gfortran = %{version}-%{release} Autoreq: true %description gfortran The gcc-gfortran package provides support for compiling Fortran programs with the GNU Compiler Collection. %package -n libgfortran Summary: Fortran runtime Autoreq: true %if 0%{?fedora} < 28 && 0%{?rhel} < 8 %if %{build_libquadmath} Requires: libquadmath = %{version}-%{release} %endif %endif %description -n libgfortran This package contains Fortran shared library which is needed to run Fortran dynamically linked programs. %package -n libgfortran-static Summary: Static Fortran libraries Requires: libgfortran = %{version}-%{release} Requires: gcc = %{version}-%{release} %if %{build_libquadmath} Requires: libquadmath-static = %{version}-%{release} %endif %description -n libgfortran-static This package contains static Fortran libraries. %package gdc Summary: D support Requires: gcc = %{version}-%{release} Requires: libgphobos = %{version}-%{release} Provides: gcc-d = %{version}-%{release} Provides: gdc = %{version}-%{release} Autoreq: true %description gdc The gcc-gdc package provides support for compiling D programs with the GNU Compiler Collection. %package -n libgphobos Summary: D runtime Autoreq: true %description -n libgphobos This package contains D shared library which is needed to run D dynamically linked programs. %package -n libgphobos-static Summary: Static D libraries Requires: libgphobos = %{version}-%{release} Requires: gcc-gdc = %{version}-%{release} %description -n libgphobos-static This package contains static D libraries. %package gm2 Summary: Modula-2 support Requires: gcc = %{version}-%{release} Requires: libgm2 = %{version}-%{release} Provides: gcc-m2 = %{version}-%{release} Provides: gm2 = %{version}-%{release} Autoreq: true %description gm2 The gcc-gm2 package provides support for compiling Modula-2 programs with the GNU Compiler Collection. %package -n libgm2 Summary: Modula-2 runtime Autoreq: true %description -n libgm2 This package contains Modula-2 shared libraries which are needed to run Modula-2 dynamically linked programs. %package -n libgm2-static Summary: Static Modula-2 libraries Requires: libgm2 = %{version}-%{release} Requires: gcc-gm2 = %{version}-%{release} %description -n libgm2-static This package contains static Modula-2 libraries. %package -n libgomp Summary: GCC OpenMP v4.5 shared support library %description -n libgomp This package contains GCC shared support library which is needed for OpenMP v4.5 support. %package -n libgomp-offload-nvptx Summary: GCC OpenMP v4.5 plugin for offloading to NVPTX Requires: libgomp = %{version}-%{release} %description -n libgomp-offload-nvptx This package contains libgomp plugin for offloading to NVidia PTX. The plugin needs libcuda.so.1 shared library that has to be installed separately. %package -n libgomp-offload-amdgcn Summary: GCC OpenMP v4.5 plugin for offloading to AMD GCN Requires: libgomp = %{version}-%{release} %if 0%{?fedora:1} Requires: rocm-runtime >= 6.0.0 %endif %description -n libgomp-offload-amdgcn This package contains libgomp plugin for offloading to AMD ROCm capable devices. %package gdb-plugin Summary: GCC plugin for GDB Requires: gcc = %{version}-%{release} %description gdb-plugin This package contains GCC plugin for GDB C expression evaluation. %package -n libgccjit Summary: Library for embedding GCC inside programs and libraries Requires: gcc = %{version}-%{release} %description -n libgccjit This package contains shared library with GCC JIT front-end. %package -n libgccjit-devel Summary: Support for embedding GCC inside programs and libraries %if 0%{?fedora} > 27 || 0%{?rhel} > 7 BuildRequires: python3-sphinx %else BuildRequires: python-sphinx %endif Requires: libgccjit = %{version}-%{release} %description -n libgccjit-devel This package contains header files and documentation for GCC JIT front-end. %package -n libquadmath Summary: GCC __float128 shared support library %description -n libquadmath This package contains GCC shared support library which is needed for __float128 math support and for Fortran REAL*16 support. %package -n libquadmath-devel Summary: GCC __float128 support Requires: libquadmath = %{version}-%{release} Requires: gcc = %{version}-%{release} %description -n libquadmath-devel This package contains headers for building Fortran programs using REAL*16 and programs using __float128 math. %package -n libquadmath-static Summary: Static libraries for __float128 support Requires: libquadmath-devel = %{version}-%{release} %description -n libquadmath-static This package contains static libraries for building Fortran programs using REAL*16 and programs using __float128 math. %package -n libitm Summary: The GNU Transactional Memory library %description -n libitm This package contains the GNU Transactional Memory library which is a GCC transactional memory support runtime library. %package -n libitm-devel Summary: The GNU Transactional Memory support Requires: libitm = %{version}-%{release} Requires: gcc = %{version}-%{release} %description -n libitm-devel This package contains headers and support files for the GNU Transactional Memory library. %package -n libitm-static Summary: The GNU Transactional Memory static library Requires: libitm-devel = %{version}-%{release} %description -n libitm-static This package contains GNU Transactional Memory static libraries. %package -n libatomic Summary: The GNU Atomic library %description -n libatomic This package contains the GNU Atomic library which is a GCC support runtime library for atomic operations not supported by hardware. %package -n libatomic-static Summary: The GNU Atomic static library Requires: libatomic = %{version}-%{release} %description -n libatomic-static This package contains GNU Atomic static libraries. %package -n libasan Summary: The Address Sanitizer runtime library %description -n libasan This package contains the Address Sanitizer library which is used for -fsanitize=address instrumented programs. %package -n libasan-static Summary: The Address Sanitizer static library Requires: libasan = %{version}-%{release} %description -n libasan-static This package contains Address Sanitizer static runtime library. %package -n libhwasan Summary: The Hardware-assisted Address Sanitizer runtime library %description -n libhwasan This package contains the Hardware-assisted Address Sanitizer library which is used for -fsanitize=hwaddress instrumented programs. %package -n libhwasan-static Summary: The Hardware-assisted Address Sanitizer static library Requires: libhwasan = %{version}-%{release} %description -n libhwasan-static This package contains Hardware-assisted Address Sanitizer static runtime library. %package -n libtsan Summary: The Thread Sanitizer runtime library %description -n libtsan This package contains the Thread Sanitizer library which is used for -fsanitize=thread instrumented programs. %package -n libtsan-static Summary: The Thread Sanitizer static library Requires: libtsan = %{version}-%{release} %description -n libtsan-static This package contains Thread Sanitizer static runtime library. %package -n libubsan Summary: The Undefined Behavior Sanitizer runtime library %description -n libubsan This package contains the Undefined Behavior Sanitizer library which is used for -fsanitize=undefined instrumented programs. %package -n libubsan-static Summary: The Undefined Behavior Sanitizer static library Requires: libubsan = %{version}-%{release} %description -n libubsan-static This package contains Undefined Behavior Sanitizer static runtime library. %package -n liblsan Summary: The Leak Sanitizer runtime library %description -n liblsan This package contains the Leak Sanitizer library which is used for -fsanitize=leak instrumented programs. %package -n liblsan-static Summary: The Leak Sanitizer static library Requires: liblsan = %{version}-%{release} %description -n liblsan-static This package contains Leak Sanitizer static runtime library. %package -n cpp Summary: The C Preprocessor Requires: filesystem >= 3 Provides: /lib/cpp Autoreq: true %description -n cpp Cpp is the GNU C-Compatible Compiler Preprocessor. Cpp is a macro processor which is used automatically by the C compiler to transform your program before actual compilation. It is called a macro processor because it allows you to define macros, abbreviations for longer constructs. The C preprocessor provides four separate functionalities: the inclusion of header files (files of declarations that can be substituted into your program); macro expansion (you can define macros, and the C preprocessor will replace the macros with their definitions throughout the program); conditional compilation (using special preprocessing directives, you can include or exclude parts of the program according to various conditions); and line control (if you use a program to combine or rearrange source files into an intermediate file which is then compiled, you can use line control to inform the compiler about where each source line originated). You should install this package if you are a C programmer and you use macros. %package gnat Summary: Ada 83, 95, 2005 and 2012 support for GCC Requires: gcc = %{version}-%{release} Requires: libgnat = %{version}-%{release}, libgnat-devel = %{version}-%{release} Autoreq: true %description gnat GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. This package includes development tools, the documents and Ada compiler. %package -n libgnat Summary: GNU Ada 83, 95, 2005 and 2012 runtime shared libraries Autoreq: true %description -n libgnat GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. This package includes shared libraries, which are required to run programs compiled with the GNAT. %package -n libgnat-devel Summary: GNU Ada 83, 95, 2005 and 2012 libraries Autoreq: true %description -n libgnat-devel GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. This package includes libraries, which are required to compile with the GNAT. %package -n libgnat-static Summary: GNU Ada 83, 95, 2005 and 2012 static libraries Requires: libgnat-devel = %{version}-%{release} Autoreq: true %description -n libgnat-static GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. This package includes static libraries. %package go Summary: Go support Requires: gcc = %{version}-%{release} Requires: libgo = %{version}-%{release} Requires: libgo-devel = %{version}-%{release} Requires(post): %{_sbindir}/update-alternatives Requires(postun): %{_sbindir}/update-alternatives Provides: gccgo = %{version}-%{release} Autoreq: true %description go The gcc-go package provides support for compiling Go programs with the GNU Compiler Collection. %package -n libgo Summary: Go runtime Autoreq: true %description -n libgo This package contains Go shared library which is needed to run Go dynamically linked programs. %package -n libgo-devel Summary: Go development libraries Requires: libgo = %{version}-%{release} Autoreq: true %description -n libgo-devel This package includes libraries and support files for compiling Go programs. %package -n libgo-static Summary: Static Go libraries Requires: libgo = %{version}-%{release} Requires: gcc = %{version}-%{release} %description -n libgo-static This package contains static Go libraries. %package plugin-devel Summary: Support for compiling GCC plugins Requires: gcc = %{version}-%{release} Requires: gmp-devel >= 4.1.2-8, mpfr-devel >= 3.1.0, libmpc-devel >= 0.8.1 %description plugin-devel This package contains header files and other support files for compiling GCC plugins. The GCC plugin ABI is currently not stable, so plugins must be rebuilt any time GCC is updated. %package offload-nvptx Summary: Offloading compiler to NVPTX Requires: gcc = %{version}-%{release} Requires: libgomp-offload-nvptx = %{version}-%{release} %description offload-nvptx The gcc-offload-nvptx package provides offloading support for NVidia PTX. OpenMP and OpenACC programs linked with -fopenmp will by default add PTX code into the binaries, which can be offloaded to NVidia PTX capable devices if available. %package offload-amdgcn Summary: Offloading compiler to AMD GCN Requires: gcc = %{version}-%{release} Requires: libgomp-offload-amdgcn = %{version}-%{release} Requires: llvm >= 15, lld >= 15 %description offload-amdgcn The gcc-offload-amdgcn package provides offloading support for AMD GCN. OpenMP and OpenACC programs linked with -fopenmp will by default add GCN code into the binaries, which can be offloaded to AMD ROCm capable devices if available. %package plugin-annobin Summary: The annobin plugin for gcc, built by the installed version of gcc Requires: gcc = %{version}-%{release} %if %{build_annobin_plugin} BuildRequires: annobin-plugin-gcc >= 10.62, rpm-devel, binutils-devel, xz %endif %description plugin-annobin This package adds a version of the annobin plugin for gcc. This version of the plugin is explicitly built by the same version of gcc that is installed so that there cannot be any synchronization problems. %package -n cross-gcc-aarch64 Summary: Cross targeted AArch64 gcc for developer use. Not intended for production. Provides: cross-gcc-aarch64 = %{version}-%{release} %if %{build_cross} Requires: cross-binutils-aarch64 >= 2.41 BuildRequires: sysroot-aarch64-el10-glibc >= 2.39 BuildRequires: cross-binutils-aarch64 >= 2.41 %endif # Don't provide e.g. liblto_plugin.so()(64bit). AutoReqProv: no %description -n cross-gcc-aarch64 This package contains a version of gcc that can compile code for AArch64 (cross compiler). This cross compiler is intended for developers to use during application development. This cross compiler is not intended for production use, and output binary artifacts should not be used in production. Generated binary artifacts contain binary annotations that mark them as cross compiled. %package -n cross-gcc-c++-aarch64 Summary: Cross targeted AArch64 gcc-c++ for developer use. Not intended for production. Provides: cross-gcc-c++-aarch64 = %{version}-%{release} %if %{build_cross} Requires: cross-gcc-aarch64 = %{version}-%{release} BuildRequires: sysroot-aarch64-el10-glibc >= 2.39 BuildRequires: cross-binutils-aarch64 >= 2.41 %endif # ??? Otherwise this subpackage couldn't be installed, depends on libm.so # and libgcc_s.so AutoReqProv: no %description -n cross-gcc-c++-aarch64 This package contains a version of g++ that can compile code for AArch64 (cross compiler). This cross compiler is intended for developers to use during application development. This cross compiler is not intended for production use, and output binary artifacts should not be used in production. Generated binary artifacts contain binary annotations that mark them as cross compiled. %package -n cross-gcc-ppc64le Summary: Cross targeted PPC64le gcc for developer use. Not intended for production. Provides: cross-gcc-ppc64le = %{version}-%{release} %if %{build_cross} Requires: cross-binutils-ppc64le >= 2.41 BuildRequires: sysroot-ppc64le-el10-glibc >= 2.39 BuildRequires: cross-binutils-ppc64le >= 2.41 %endif # Don't provide e.g. liblto_plugin.so()(64bit). AutoReqProv: no %description -n cross-gcc-ppc64le This package contains a version of gcc that can compile code for PPC64le (cross compiler). This cross compiler is intended for developers to use during application development. This cross compiler is not intended for production use, and output binary artifacts should not be used in production. Generated binary artifacts contain binary annotations that mark them as cross compiled. %package -n cross-gcc-c++-ppc64le Summary: Cross targeted PPC64le gcc-c++ for developer use. Not intended for production. Provides: cross-gcc-c++-ppc64le = %{version}-%{release} %if %{build_cross} Requires: cross-gcc-ppc64le = %{version}-%{release} BuildRequires: sysroot-ppc64le-el10-glibc >= 2.39 BuildRequires: cross-binutils-ppc64le >= 2.41 %endif # ??? Otherwise this subpackage couldn't be installed, depends on libm.so # and libgcc_s.so AutoReqProv: no %description -n cross-gcc-c++-ppc64le This package contains a version of g++ that can compile code for PPC64le (cross compiler). This cross compiler is intended for developers to use during application development. This cross compiler is not intended for production use, and output binary artifacts should not be used in production. Generated binary artifacts contain binary annotations that mark them as cross compiled. %package -n cross-gcc-s390x Summary: Cross targeted S/390 gcc for developer use. Not intended for production. Provides: cross-gcc-s390x = %{version}-%{release} %if %{build_cross} Requires: cross-binutils-s390x >= 2.41 BuildRequires: sysroot-s390x-el10-glibc >= 2.39 BuildRequires: cross-binutils-s390x >= 2.41 %endif # Don't provide e.g. liblto_plugin.so()(64bit). AutoReqProv: no %description -n cross-gcc-s390x This package contains a version of gcc that can compile code for S/390 (cross compiler). This cross compiler is intended for developers to use during application development. This cross compiler is not intended for production use, and output binary artifacts should not be used in production. Generated binary artifacts contain binary annotations that mark them as cross compiled. %package -n cross-gcc-c++-s390x Summary: Cross targeted S/390 gcc-c++ for developer use. Not intended for production. Provides: cross-gcc-c++-s390x = %{version}-%{release} %if %{build_cross} Requires: cross-gcc-s390x = %{version}-%{release} BuildRequires: sysroot-s390x-el10-glibc >= 2.39 BuildRequires: cross-binutils-s390x >= 2.41 %endif # ??? Otherwise this subpackage couldn't be installed, depends on libm.so # and libgcc_s.so AutoReqProv: no %description -n cross-gcc-c++-s390x This package contains a version of g++ that can compile code for S/390 (cross compiler). This cross compiler is intended for developers to use during application development. This cross compiler is not intended for production use, and output binary artifacts should not be used in production. Generated binary artifacts contain binary annotations that mark them as cross compiled. %package -n %{sysroot_package_arch}-libgcc Summary: Sysroot package for libgcc, %{_arch} architecture BuildArch: noarch Provides: sysroot-%{_arch}-libgcc # The files are not usable for execution, so do not provide nor # require anything. AutoReqProv: no %description -n %{sysroot_package_arch}-libgcc This package contains development files for the libgcc package that can be installed across architectures. %package -n %{sysroot_package_arch}-libgomp Summary: Sysroot package for libgomp, %{_arch} architecture BuildArch: noarch Provides: sysroot-%{_arch}-libgomp # The files are not usable for execution, so do not provide nor # require anything. AutoReqProv: no %description -n %{sysroot_package_arch}-libgomp This package contains development files for the libgomp package that can be installed across architectures. %package -n %{sysroot_package_arch}-libstdc++ Summary: Sysroot package for libstdc++, %{_arch} architecture BuildArch: noarch Provides: sysroot-%{_arch}-libstdc++ # The files are not usable for execution, so do not provide nor # require anything. AutoReqProv: no %description -n %{sysroot_package_arch}-libstdc++ This package contains development files for the libstdc++ package that can be installed across architectures. %package -n %{sysroot_package_arch}-libatomic Summary: Sysroot package for libatomic, %{_arch} architecture BuildArch: noarch Provides: sysroot-%{_arch}-libatomic # The files are not usable for execution, so do not provide nor # require anything. AutoReqProv: no %description -n %{sysroot_package_arch}-libatomic This package contains development files for the libatomic package that can be installed across architectures. %package -n %{sysroot_package_arch}-libitm Summary: Sysroot package for libitm, %{_arch} architecture BuildArch: noarch Provides: sysroot-%{_arch}-libitm # The files are not usable for execution, so do not provide nor # require anything. AutoReqProv: no %description -n %{sysroot_package_arch}-libitm This package contains development files for the libitm package that can be installed across architectures. %prep %setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2 -a 3 %patch -P0 -p0 -b .hack~ %patch -P2 -p0 -b .sparc-config-detection~ %patch -P3 -p0 -b .libgomp-omp_h-multilib~ %patch -P4 -p0 -b .libtool-no-rpath~ %if %{build_isl} %patch -P5 -p0 -b .isl-dl~ %patch -P6 -p0 -b .isl-dl2~ %endif %if %{build_libstdcxx_docs} %patch -P7 -p0 -b .libstdc++-docs~ %endif %patch -P8 -p0 -b .no-add-needed~ %patch -P9 -p0 -b .Wno-format-security~ %if 0%{?fedora} >= 29 || 0%{?rhel} > 7 %patch -P10 -p0 -b .rh1574936~ %endif %patch -P11 -p0 -b .d-shared-libphobos~ %patch -P12 -p1 -b .pr101523~ %patch -P50 -p0 -b .rh2155127~ touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4 %if 0%{?rhel} >= 9 %patch -P100 -p1 -b .fortran-fdec-duplicates~ %endif %patch -P1000 -p1 -b .libstdc++-prettyprinter-update-15 %patch -P1001 -p1 -b .libstdc++-prettyprinter-update-15-tests %patch -P2000 -p1 -b .gcov-function-summaries %ifarch %{arm} rm -f gcc/testsuite/go.test/test/fixedbugs/issue19182.go %endif rm -f libphobos/testsuite/libphobos.gc/forkgc2.d #rm -rf libphobos/testsuite/libphobos.gc echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE.native echo 'Red Hat %{version}-%{gcc_release} cross from %{_arch}' > gcc/DEV-PHASE.cross cp -p gcc/DEV-PHASE{.native,} cp -a libstdc++-v3/config/cpu/i{4,3}86/atomicity.h ./contrib/gcc_update --touch LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi sed -i -e 's/Common Driver Var(flag_report_bug)/& Init(1)/' gcc/common.opt sed -i -e 's/m_report_bug = false;/m_report_bug = true;/' gcc/diagnostic.cc %ifarch ppc if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64 mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{,64/}baseline_symbols.txt mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/{32/,}baseline_symbols.txt rm -rf libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32 fi %endif %ifarch sparc if [ -d libstdc++-v3/config/abi/post/sparc64-linux-gnu ]; then mkdir -p libstdc++-v3/config/abi/post/sparc64-linux-gnu/64 mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{,64/}baseline_symbols.txt mv libstdc++-v3/config/abi/post/sparc64-linux-gnu/{32/,}baseline_symbols.txt rm -rf libstdc++-v3/config/abi/post/sparc64-linux-gnu/32 fi %endif # This test causes fork failures, because it spawns way too many threads rm -f gcc/testsuite/go.test/test/chan/goroutines.go %build # Undo the broken autoconf change in recent Fedora versions export CONFIG_SITE=NONE CC=gcc CXX=g++ OPT_FLAGS="%{optflags}" OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=[123]//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/\(-Wp,\)\?-D_FORTIFY_SOURCE=[123]//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/\(-Wp,\)\?-U_FORTIFY_SOURCE//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-flto=auto//g;s/-flto//g;s/-ffat-lto-objects//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-m64//g;s/-m32//g;s/-m31//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-fno-omit-frame-pointer//g;s/-mbackchain//g;s/-mno-omit-leaf-frame-pointer//g'` OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Werror=format-security/-Wformat-security/g'` %ifarch sparc OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mcpu=ultrasparc/-mtune=ultrasparc/g;s/-mcpu=v[78]//g'` %endif %ifarch %{ix86} OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-march=i.86//g'` %endif OPT_FLAGS=`echo "$OPT_FLAGS" | sed -e 's/[[:blank:]]\+/ /g'` case "$OPT_FLAGS" in *-fasynchronous-unwind-tables*) sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables /' \ libgcc/Makefile.in ;; esac %if %{build_offload_nvptx} mkdir obji IROOT=`pwd`/obji cd nvptx-tools-%{nvptx_tools_gitrev} rm -rf obj-%{gcc_target_platform} mkdir obj-%{gcc_target_platform} cd obj-%{gcc_target_platform} CC="$CC" CXX="$CXX" CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" \ ../configure --prefix=%{_prefix} make %{?_smp_mflags} make install prefix=${IROOT}%{_prefix} cd ../.. ln -sf newlib-cygwin-%{newlib_cygwin_gitrev}/newlib newlib rm -rf obj-offload-nvptx-none mkdir obj-offload-nvptx-none cd obj-offload-nvptx-none CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \ CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ ../configure --disable-bootstrap --disable-sjlj-exceptions \ --enable-newlib-io-long-long --with-build-time-tools=${IROOT}%{_prefix}/nvptx-none/bin \ --target nvptx-none --enable-as-accelerator-for=%{gcc_target_platform} \ --enable-languages=c,c++,fortran,lto \ --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ --with-bugurl=http://bugzilla.redhat.com/bugzilla \ --enable-checking=release --with-system-zlib \ --with-gcc-major-version-only --without-isl make %{?_smp_mflags} cd .. rm -f newlib %endif %if %{build_offload_amdgcn} mkdir -p objia%{_prefix}/bin objia%{_prefix}/amdgcn-amdhsa/bin IAROOT=`pwd`/objia ln -sf %{_prefix}/bin/llvm-ar ${IAROOT}%{_prefix}/bin/amdgcn-amdhsa-ar ln -sf %{_prefix}/bin/llvm-ar ${IAROOT}%{_prefix}/bin/amdgcn-amdhsa-ranlib ln -sf %{_prefix}/bin/llvm-mc ${IAROOT}%{_prefix}/bin/amdgcn-amdhsa-as ln -sf %{_prefix}/bin/llvm-nm ${IAROOT}%{_prefix}/bin/amdgcn-amdhsa-nm ln -sf %{_prefix}/bin/lld ${IAROOT}%{_prefix}/bin/amdgcn-amdhsa-ld ln -sf ../../bin/amdgcn-amdhsa-ar ${IAROOT}%{_prefix}/amdgcn-amdhsa/bin/ar ln -sf ../../bin/amdgcn-amdhsa-ranlib ${IAROOT}%{_prefix}/amdgcn-amdhsa/bin/ranlib ln -sf ../../bin/amdgcn-amdhsa-as ${IAROOT}%{_prefix}/amdgcn-amdhsa/bin/as ln -sf ../../bin/amdgcn-amdhsa-nm ${IAROOT}%{_prefix}/amdgcn-amdhsa/bin/nm ln -sf ../../bin/amdgcn-amdhsa-ld ${IAROOT}%{_prefix}/amdgcn-amdhsa/bin/ld ln -sf newlib-cygwin-%{newlib_cygwin_gitrev}/newlib newlib rm -rf obj-offload-amdgcn-amdhsa mkdir obj-offload-amdgcn-amdhsa cd obj-offload-amdgcn-amdhsa CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \ CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ ../configure --disable-bootstrap --disable-sjlj-exceptions \ --with-build-time-tools=${IAROOT}%{_prefix}/amdgcn-amdhsa/bin \ --target amdgcn-amdhsa --enable-as-accelerator-for=%{gcc_target_platform} \ --enable-languages=c,c++,fortran,lto \ --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ --with-bugurl=http://bugzilla.redhat.com/bugzilla \ --enable-checking=release --with-system-zlib \ --with-gcc-major-version-only --without-isl --disable-libquadmath make %{?_smp_mflags} cd .. rm -f newlib %endif rm -rf obj-%{gcc_target_platform} mkdir obj-%{gcc_target_platform} cd obj-%{gcc_target_platform} %if %{build_isl} mkdir isl-build isl-install %ifarch s390 s390x ISL_FLAG_PIC=-fPIC %else ISL_FLAG_PIC=-fpic %endif cd isl-build %ifarch riscv64 # Update config.{sub,guess} scripts for riscv64 (the original ones are too old) cp -f -v /usr/lib/rpm/%{_vendor}/config.guess ../../isl-%{isl_version}/config.guess cp -f -v /usr/lib/rpm/%{_vendor}/config.sub ../../isl-%{isl_version}/config.sub %endif sed -i 's|libisl\([^-]\)|libgcc%{gcc_major}privateisl\1|g' \ ../../isl-%{isl_version}/Makefile.{am,in} ../../isl-%{isl_version}/configure \ CC=/usr/bin/gcc CXX=/usr/bin/g++ \ CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC" --prefix=`cd ..; pwd`/isl-install make %{?_smp_mflags} CFLAGS="${CFLAGS:-%optflags} $ISL_FLAG_PIC" make install cd ../isl-install/lib rm libgcc%{gcc_major}privateisl.so{,.23} mv libgcc%{gcc_major}privateisl.so.23.1.0 libisl.so.23 ln -sf libisl.so.23 libisl.so cd ../.. %endif enablelgo= enablelada= enablelobjc= enableld= %if %{build_objc} enablelobjc=,objc,obj-c++ %endif %if %{build_ada} enablelada=,ada %endif %if %{build_go} enablelgo=,go %endif %if %{build_d} enableld=,d %endif %if %{build_m2} enablelm2=,m2 %endif offloadtgts= %if %{build_offload_nvptx} offloadtgts=nvptx-none %endif %if %{build_offload_amdgcn} offloadtgts=${offloadtgts:+${offloadtgts},}amdgcn-amdhsa %endif # CONFIGURE_OPTS_BASE are the configure options common to the native and cross # builds. E.g., --prefix. This cannot include arch-specific configure options. # CONFIGURE_OPTS_NATIVE are the configure options used for the native build # (that is, the regular non-cross build) and libgccjit. This includes arch-specific # configure options (default -march and such). # CONFIGURE_OPTS = CONFIGURE_OPTS_BASE + CONFIGURE_OPTS_NATIVE # CONFIGURE_OPTS_CROSS are the configure options common to all the cross # builds. E.g., only build C/C++. This shall not be used for the native build. # Each cross compiler's configure options will be: # CONFIGURE_OPTS_BASE + CONFIGURE_OPTS_CROSS + --target= + --with-sysroot= + # It it very important that the arch-specific configure options used in # CONFIGURE_OPTS_NATIVE are in lockstep with the # used in the cross builds. CONFIGURE_OPTS_BASE="\ --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ --with-bugurl=http://bugzilla.redhat.com/bugzilla \ --enable-shared --enable-threads=posix --enable-checking=release \ --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \ --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only \ --enable-plugin --enable-initfini-array \ --enable-libstdcxx-backtrace --with-libstdcxx-zoneinfo=%{_datadir}/zoneinfo \ %if %{build_isl} --with-isl=`pwd`/isl-install \ %else --without-isl \ %endif %if 0%{?rhel:1} --enable-host-pie --enable-host-bind-now \ %endif " # NB: When updating CONFIGURE_OPTS_NATIVE, make sure to update the cross # compiler options as well (look for CONFIGURE_OPTS_FOR_ARCH). CONFIGURE_OPTS_NATIVE="\ %ifarch ppc64le --enable-targets=powerpcle-linux \ %endif %ifarch ppc64le %{mips} s390x %ifarch s390x %if 0%{?fedora} < 32 && 0%{?rhel} < 8 --enable-multilib \ %else --disable-multilib \ %endif %else --disable-multilib \ %endif %else --enable-multilib \ %endif %ifnarch %{mips} --with-linker-hash-style=gnu \ %endif %if %{build_offload_nvptx} || %{build_offload_amdgcn} --enable-offload-targets=$offloadtgts --enable-offload-defaulted \ %endif %if %{build_offload_nvptx} --without-cuda-driver \ %endif %if 0%{?fedora} >= 21 || 0%{?rhel} >= 7 %if %{attr_ifunc} --enable-gnu-indirect-function \ %endif %endif %ifarch %{arm} --disable-sjlj-exceptions \ %endif %ifarch ppc ppc64 ppc64le ppc64p7 --enable-secureplt \ %endif %ifarch sparc sparcv9 sparc64 ppc ppc64 ppc64le ppc64p7 s390 s390x alpha --with-long-double-128 \ %endif %ifarch ppc64le --with-long-double-format=ieee \ %endif %ifarch sparc --disable-linux-futex \ %endif %ifarch sparc64 --with-cpu=ultrasparc \ %endif %ifarch sparc sparcv9 --host=%{gcc_target_platform} --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=v7 %endif %ifarch ppc ppc64 ppc64p7 %if 0%{?rhel} >= 7 --with-cpu-32=power7 --with-tune-32=power7 --with-cpu-64=power7 --with-tune-64=power7 \ %endif %if 0%{?rhel} == 6 --with-cpu-32=power4 --with-tune-32=power6 --with-cpu-64=power4 --with-tune-64=power6 \ %endif %endif %ifarch ppc64le %if 0%{?rhel} >= 9 %if 0%{?rhel} >= 10 --with-cpu-32=power9 --with-tune-32=power10 --with-cpu-64=power9 --with-tune-64=power10 \ %else --with-cpu-32=power9 --with-tune-32=power9 --with-cpu-64=power9 --with-tune-64=power9 \ %endif %else --with-cpu-32=power8 --with-tune-32=power8 --with-cpu-64=power8 --with-tune-64=power8 \ %endif %endif %ifarch ppc --build=%{gcc_target_platform} --target=%{gcc_target_platform} --with-cpu=default32 %endif %ifarch %{ix86} x86_64 --enable-cet \ --with-tune=generic \ %endif %if 0%{?rhel} >= 7 %ifarch %{ix86} --with-arch=x86-64 \ %endif %ifarch x86_64 %if 0%{?rhel} > 8 %if 0%{?rhel} > 9 --with-arch_64=x86-64-v3 \ %else --with-arch_64=x86-64-v2 \ %endif %endif --with-arch_32=x86-64 \ %endif %else %ifarch %{ix86} --with-arch=i686 \ %endif %ifarch x86_64 --with-arch_32=i686 \ %endif %endif %ifarch s390 s390x %if 0%{?rhel} >= 7 %if 0%{?rhel} > 7 %if 0%{?rhel} > 8 %if 0%{?rhel} >= 10 --with-arch=z14 --with-tune=z16 \ %elif 0%{?rhel} >= 9 --with-arch=z14 --with-tune=z15 \ %else --with-arch=z13 --with-tune=arch13 \ %endif %else --with-arch=z13 --with-tune=z14 \ %endif %else --with-arch=z196 --with-tune=zEC12 \ %endif %else %if 0%{?fedora} >= 38 --with-arch=z13 --with-tune=z14 \ %else %if 0%{?fedora} >= 26 --with-arch=zEC12 --with-tune=z13 \ %else --with-arch=z9-109 --with-tune=z10 \ %endif %endif %endif --enable-decimal-float \ %endif %ifarch armv7hl --with-tune=generic-armv7-a --with-arch=armv7-a \ --with-float=hard --with-fpu=vfpv3-d16 --with-abi=aapcs-linux \ %endif %ifarch mips mipsel --with-arch=mips32r2 --with-fp-32=xx \ %endif %ifarch mips64 mips64el --with-arch=mips64r2 --with-abi=64 \ %endif %ifarch riscv64 --with-arch=rv64gc --with-abi=lp64d --with-multilib-list=lp64d \ %endif %ifnarch sparc sparcv9 ppc --build=%{gcc_target_platform} \ %endif %if 0%{?fedora} >= 35 || 0%{?rhel} >= 9 %ifnarch %{arm} --with-build-config=bootstrap-lto --enable-link-serialization=1 \ %endif %endif " CONFIGURE_OPTS="$CONFIGURE_OPTS_BASE $CONFIGURE_OPTS_NATIVE" CONFIGURE_OPTS_CROSS="\ --enable-languages=c,c++ --disable-bootstrap --disable-libsanitizer \ --host=%{gcc_target_platform} --build=%{gcc_target_platform} \ --disable-multilib --disable-libstdcxx-pch --disable-libcc1 \ " CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \ CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ ../configure --enable-bootstrap \ --enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo}${enableld}${enablelm2},lto \ $CONFIGURE_OPTS %ifarch sparc sparcv9 sparc64 make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now bootstrap %else make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now profiledbootstrap %endif CC="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cc`" CXX="`%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cxx` `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-includes`" # Build libgccjit separately, so that normal compiler binaries aren't -fpic # unnecessarily. mkdir objlibgccjit cd objlibgccjit CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \ CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ ../../configure --disable-bootstrap --enable-host-shared \ --enable-languages=jit $CONFIGURE_OPTS make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" all-gcc cp -a gcc/libgccjit.so* ../gcc/ cd ../gcc/ ln -sf xgcc %{gcc_target_platform}-gcc-%{gcc_major} cp -a Makefile{,.orig} sed -i -e '/^CHECK_TARGETS/s/$/ check-jit/' Makefile touch -r Makefile.orig Makefile rm Makefile.orig make jit.sphinx.html make jit.sphinx.install-html jit_htmldir=`pwd`/../../rpm.doc/libgccjit-devel/html cd .. # Build cross compilers here. %if %{build_cross} echo ==================== BUILD CROSS ========================= # Get out of obj-%{gcc_target_platform}. pushd .. for crossarch in %{cross_targets}; do mkdir obj-$crossarch cd obj-$crossarch case $crossarch in aarch64*) CONFIGURE_OPTS_FOR_ARCH="" ;; s390x*) CONFIGURE_OPTS_FOR_ARCH="--with-arch=z14 --with-tune=z16" ;; ppc64le*) CONFIGURE_OPTS_FOR_ARCH="--with-cpu-32=power9 --with-tune-32=power10 --with-cpu-64=power9 --with-tune-64=power10" ;; *) echo >&2 "ERROR: unknown cross arch $crossarch" exit 1 ;; esac # Temporarily replace DEV-PHASE. cp -p ../gcc/DEV-PHASE{.cross,} CC="$CC" CXX="$CXX" CFLAGS="$OPT_FLAGS" \ CXXFLAGS="`echo " $OPT_FLAGS " | sed 's/ -Wall / /g;s/ -fexceptions / /g' \ | sed 's/ -Wformat-security / -Wformat -Wformat-security /'`" \ XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \ ../configure $CONFIGURE_OPTS_BASE $CONFIGURE_OPTS_CROSS \ --with-sysroot=/usr/$crossarch/sys-root/el10/ \ --with-gxx-include-dir="/usr/$crossarch/sys-root/el10/%{_prefix}/include/c++/%{gcc_major}" \ --target=$crossarch \ $CONFIGURE_OPTS_FOR_ARCH make %{?_smp_mflags} LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now # Restore DEV-PHASE. cp -p ../gcc/DEV-PHASE{.native,} # Out of obj-$crossarch. cd .. done # Go back to obj-%{gcc_target_platform}. popd echo ==================== BUILD CROSS END ========================= %endif %if %{build_isl} cp -a isl-install/lib/libisl.so.23 gcc/ %endif # Make generated man pages even if Pod::Man is not new enough perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl for i in ../gcc/doc/*.texi; do cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i done make -C gcc generated-manpages for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done # Make generated doxygen pages. %if %{build_libstdcxx_docs} cd %{gcc_target_platform}/libstdc++-v3 make doc-html-doxygen make doc-man-doxygen cd ../.. %endif # Copy various doc files here and there cd .. mkdir -p rpm.doc/{gfortran,objc,gdc,libphobos,gm2,libgm2} mkdir -p rpm.doc/go rpm.doc/libgo rpm.doc/libquadmath rpm.doc/libitm mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer} for i in {gcc,gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer}/ChangeLog*; do cp -p $i rpm.doc/changelogs/$i done (cd gcc/fortran; for i in ChangeLog*; do cp -p $i ../../rpm.doc/gfortran/$i done) (cd libgfortran; for i in ChangeLog*; do cp -p $i ../rpm.doc/gfortran/$i.libgfortran done) %if %{build_objc} (cd libobjc; for i in README*; do cp -p $i ../rpm.doc/objc/$i.libobjc done) %endif %if %{build_d} (cd gcc/d; for i in ChangeLog*; do cp -p $i ../../rpm.doc/gdc/$i.gdc done) (cd libphobos; for i in ChangeLog*; do cp -p $i ../rpm.doc/libphobos/$i.libphobos done cp -a src/LICENSE*.txt libdruntime/LICENSE.txt ../rpm.doc/libphobos/) %endif %if %{build_m2} (cd gcc/m2; for i in ChangeLog*; do cp -p $i ../../rpm.doc/gm2/$i.gm2 done) (cd libgm2; for i in ChangeLog*; do cp -p $i ../rpm.doc/libgm2/$i.libgm2 done) %endif %if %{build_libquadmath} (cd libquadmath; for i in ChangeLog* COPYING.LIB; do cp -p $i ../rpm.doc/libquadmath/$i.libquadmath done) %endif %if %{build_libitm} (cd libitm; for i in ChangeLog*; do cp -p $i ../rpm.doc/libitm/$i.libitm done) %endif %if %{build_go} (cd gcc/go; for i in README* ChangeLog*; do cp -p $i ../../rpm.doc/go/$i done) (cd libgo; for i in LICENSE* PATENTS* README; do cp -p $i ../rpm.doc/libgo/$i.libgo done) %endif rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9] find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9 %if %{build_annobin_plugin} mkdir annobin-plugin cd annobin-plugin tar xf %{_usrsrc}/annobin/latest-annobin.tar.xz cd annobin* touch aclocal.m4 configure Makefile.in */configure */config.h.in */Makefile.in ANNOBIN_FLAGS=../../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags ANNOBIN_CFLAGS1="%build_cflags -I %{_builddir}/gcc-%{version}-%{DATE}/gcc" ANNOBIN_CFLAGS1="$ANNOBIN_CFLAGS1 -I %{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/gcc" ANNOBIN_CFLAGS2="-I %{_builddir}/gcc-%{version}-%{DATE}/include -I %{_builddir}/gcc-%{version}-%{DATE}/libcpp/include" ANNOBIN_LDFLAGS="%build_ldflags -L%{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs" CC="`$ANNOBIN_FLAGS --build-cc`" CXX="`$ANNOBIN_FLAGS --build-cxx`" \ CFLAGS="$ANNOBIN_CFLAGS1 $ANNOBIN_CFLAGS2 $ANNOBIN_LDFLAGS" \ CXXFLAGS="$ANNOBIN_CFLAGS1 `$ANNOBIN_FLAGS --build-includes` $ANNOBIN_CFLAGS2 $ANNOBIN_LDFLAGS" \ ./configure --with-gcc-plugin-dir=%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin \ --without-annocheck --without-tests --without-docs --disable-rpath --without-debuginfod \ --without-clang-plugin --without-llvm-plugin make cd ../.. %endif %install rm -rf %{buildroot} mkdir -p %{buildroot} # RISC-V ABI wants to install everything in /lib64/lp64d or /usr/lib64/lp64d. # Make these be symlinks to /lib64 or /usr/lib64 respectively. See: # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/DRHT5YTPK4WWVGL3GIN5BF2IKX2ODHZ3/ %ifarch riscv64 for d in %{buildroot}%{_libdir} %{buildroot}/%{_lib} \ %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib} \ %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/%{_lib}; do mkdir -p $d (cd $d && ln -sf . lp64d) done %endif %if %{build_offload_nvptx} cd nvptx-tools-%{nvptx_tools_gitrev} cd obj-%{gcc_target_platform} make install prefix=%{buildroot}%{_prefix} cd ../.. ln -sf newlib-cygwin-%{newlib_cygwin_gitrev}/newlib newlib cd obj-offload-nvptx-none make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \ infodir=%{buildroot}%{_infodir} install rm -rf %{buildroot}%{_prefix}/libexec/gcc/nvptx-none/%{gcc_major}/install-tools rm -rf %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/{install-tools,plugin,cc1,cc1plus,f951} rm -rf %{buildroot}%{_infodir} %{buildroot}%{_mandir}/man7 %{buildroot}%{_prefix}/share/locale rm -rf %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/{install-tools,plugin} rm -rf %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/{install-tools,plugin,include-fixed} rm -rf %{buildroot}%{_prefix}/%{_lib}/libc[cp]1* mv -f %{buildroot}%{_prefix}/nvptx-none/lib/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/ mv -f %{buildroot}%{_prefix}/nvptx-none/lib/mgomp/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/ mv -f %{buildroot}%{_prefix}/nvptx-none/lib/mptx-3.1/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mptx-3.1/ mv -f %{buildroot}%{_prefix}/nvptx-none/lib/mgomp/mptx-3.1/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/mptx-3.1/ mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/ 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/ mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/mptx-3.1/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mptx-3.1/ mv -f %{buildroot}%{_prefix}/lib/gcc/nvptx-none/%{gcc_major}/mgomp/mptx-3.1/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none/mgomp/mptx-3.1/ find %{buildroot}%{_prefix}/lib/gcc/nvptx-none %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none \ %{buildroot}%{_prefix}/nvptx-none/lib -name \*.la | xargs rm cd .. rm -f newlib %endif %if %{build_offload_amdgcn} mkdir -p %{buildroot}%{_prefix}/bin %{buildroot}%{_prefix}/amdgcn-amdhsa/bin ln -sf llvm-ar %{buildroot}%{_prefix}/bin/amdgcn-amdhsa-ar ln -sf llvm-ar %{buildroot}%{_prefix}/bin/amdgcn-amdhsa-ranlib ln -sf llvm-mc %{buildroot}%{_prefix}/bin/amdgcn-amdhsa-as ln -sf llvm-nm %{buildroot}%{_prefix}/bin/amdgcn-amdhsa-nm ln -sf lld %{buildroot}%{_prefix}/bin/amdgcn-amdhsa-ld ln -sf ../../bin/amdgcn-amdhsa-ar %{buildroot}%{_prefix}/amdgcn-amdhsa/bin/ar ln -sf ../../bin/amdgcn-amdhsa-ranlib %{buildroot}%{_prefix}/amdgcn-amdhsa/bin/ranlib ln -sf ../../bin/amdgcn-amdhsa-as %{buildroot}%{_prefix}/amdgcn-amdhsa/bin/as ln -sf ../../bin/amdgcn-amdhsa-nm %{buildroot}%{_prefix}/amdgcn-amdhsa/bin/nm ln -sf ../../bin/amdgcn-amdhsa-ld %{buildroot}%{_prefix}/amdgcn-amdhsa/bin/ld ln -sf newlib-cygwin-%{newlib_cygwin_gitrev}/newlib newlib cd obj-offload-amdgcn-amdhsa make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \ infodir=%{buildroot}%{_infodir} install rm -rf %{buildroot}%{_prefix}/libexec/gcc/amdgcn-amdhsa/%{gcc_major}/install-tools rm -rf %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/{install-tools,plugin,cc1,cc1plus,f951} rm -rf %{buildroot}%{_infodir} %{buildroot}%{_mandir}/man7 %{buildroot}%{_prefix}/share/locale rm -rf %{buildroot}%{_prefix}/lib/gcc/amdgcn-amdhsa/%{gcc_major}/{install-tools,plugin} rm -rf %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/{install-tools,plugin,include-fixed} rm -rf %{buildroot}%{_prefix}/%{_lib}/libc[cp]1* mv -f %{buildroot}%{_prefix}/amdgcn-amdhsa/lib/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/ mv -f %{buildroot}%{_prefix}/lib/gcc/amdgcn-amdhsa/%{gcc_major}/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/ pushd %{buildroot}%{_prefix}/amdgcn-amdhsa/lib for i in gfx*; do mv -f %{buildroot}%{_prefix}/amdgcn-amdhsa/lib/$i/*.{a,spec} %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/$i/ mv -f %{buildroot}%{_prefix}/lib/gcc/amdgcn-amdhsa/%{gcc_major}/$i/*.a %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa/$i/ done popd find %{buildroot}%{_prefix}/lib/gcc/amdgcn-amdhsa %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa \ %{buildroot}%{_prefix}/amdgcn-amdhsa/lib -name \*.la | xargs rm cd .. rm -f newlib %endif cd obj-%{gcc_target_platform} TARGET_PLATFORM=%{gcc_target_platform} # There are some MP bugs in libstdc++ Makefiles make -C %{gcc_target_platform}/libstdc++-v3 make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \ infodir=%{buildroot}%{_infodir} install %if %{build_ada} chmod 644 %{buildroot}%{_infodir}/gnat* %endif %if %{build_cross} echo ==================== INSTALL CROSS ========================= # Out of obj-%{gcc_target_platform}. pushd .. for crossarch in %{cross_targets}; do cd obj-$crossarch CROSS_LIBPATH=%{buildroot}%{_prefix}/lib/gcc/$crossarch/%{gcc_major}/ # Temporarily replace DEV-PHASE. cp -p ../gcc/DEV-PHASE{.cross,} # --with-gxx-include-dir= doesn't prefix its argument with $(DESTDIR) # and you can't install things into /usr unless you're root. mkdir scratch scratchdir=`pwd`/scratch pushd $crossarch/libstdc++-v3 for i in `find . -name Makefile`; do cp -a $i $i.save sed -i -e 's?^gxx_include_dir = .*$?gxx_include_dir = '$scratchdir'?' $i touch -r $i.save $i done popd # Use -j1, because build-many-glibcs says: # Parallel "make install" for GCC has race conditions that can # cause it to fail; see # . Such # problems are not known for binutils, but doing the # installation in parallel within a particular toolchain build # (as opposed to installation of one toolchain from # build-many-glibcs.py running in parallel to the installation # of other toolchains being built) is not known to be # significantly beneficial, so it is simplest just to disable # parallel install for cross tools here. make -j1 prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \ infodir=%{buildroot}%{_infodir} install # Restore DEV-PHASE. cp -p ../gcc/DEV-PHASE{.native,} # Restore Makefiles with the old gxx_include_dir. pushd $crossarch/libstdc++-v3 for i in `find . -name Makefile`; do mv -f $i.save $i done popd # We're not shipping C++ headers; nuke 'em. rm -rf $scratchdir # We do not ship therse and GDB fails with: # *** ERROR:: GDB exited with exit status 1 during index generation rm -rf %{buildroot}%{_prefix}/$crossarch/lib64/libssp.so.* rm -rf %{buildroot}%{_prefix}/$crossarch/lib64/libitm.so.* rm -rf %{buildroot}%{_prefix}/$crossarch/lib64/libgomp.so.* rm -rf %{buildroot}%{_prefix}/$crossarch/lib64/libatomic.so.* rm -rf %{buildroot}%{_prefix}/$crossarch/lib64/libstdc++.so.* rm -rf %{buildroot}%{_prefix}/$crossarch/lib64/libquadmath.so.* # Move libgomp.spec to where it belongs for %files. mv $crossarch/libgomp/libgomp.spec $CROSS_LIBPATH # Likewise for libitm.spec %if %{build_libitm} mv $crossarch/libitm/libitm.spec $CROSS_LIBPATH %endif cd .. # No longer present. #pushd $CROSS_LIBPATH #mv include-fixed/syslimits.h include/syslimits.h #mv include-fixed/limits.h include/limits.h #popd case $crossarch in aarch64*) OUTPUT_FORMAT_FOR_ARCH="elf64-littleaarch64" ;; s390x*) OUTPUT_FORMAT_FOR_ARCH="elf64-s390" ;; ppc64le*) OUTPUT_FORMAT_FOR_ARCH="elf64-powerpcle" ;; *) echo >&2 "ERROR: unknown cross arch $crossarch" exit 1 ;; esac # The sysroot package cretion should copy the same files as # referenced in these linker scripts to the sysroot package # location. echo "/* GNU ld script Use the shared library, but some functions are only in the static library. */ OUTPUT_FORMAT($OUTPUT_FORMAT_FOR_ARCH) GROUP ( =/lib64/libgcc_s.so.1 libgcc.a )" > $CROSS_LIBPATH/libgcc_s.so echo "/* GNU ld script Use the shared library from sysroot. */ OUTPUT_FORMAT($OUTPUT_FORMAT_FOR_ARCH) INPUT ( =%{_prefix}/lib64/libgomp.so.1 )" > $CROSS_LIBPATH/libgomp.so echo "/* GNU ld script Use the shared library from sysroot. */ OUTPUT_FORMAT($OUTPUT_FORMAT_FOR_ARCH) INPUT ( =/%{_prefix}/lib64/libstdc++.so.6 )" > $CROSS_LIBPATH/libstdc++.so echo "/* GNU ld script Use the static library from sysroot. */ INPUT( =%{_prefix}/lib/gcc/$crossarch/%{gcc_major}/libstdc++.a )" > $CROSS_LIBPATH/libstdc++.a echo "/* GNU ld script Use the static library from sysroot. */ INPUT( =%{_prefix}/lib/gcc/$crossarch/%{gcc_major}/libsupc++.a )" > $CROSS_LIBPATH/libsupc++.a echo "/* GNU ld script Use the shared library from sysroot. */ OUTPUT_FORMAT($OUTPUT_FORMAT_FOR_ARCH) INPUT ( =%{_prefix}/lib64/libatomic.so.1 )" > $CROSS_LIBPATH/libatomic.so echo "/* GNU ld script Use the static library from sysroot. */ INPUT( =%{_prefix}/lib/gcc/$crossarch/%{gcc_major}/libatomic.a )" > $CROSS_LIBPATH/libatomic.a echo "/* GNU ld script Use the shared library from sysroot. */ OUTPUT_FORMAT($OUTPUT_FORMAT_FOR_ARCH) INPUT ( =%{_prefix}/lib64/libitm.so.1 )" > $CROSS_LIBPATH/libitm.so echo "/* GNU ld script Use the static library from sysroot. */ INPUT( =%{_prefix}/lib/gcc/$crossarch/%{gcc_major}/libitm.a )" > $CROSS_LIBPATH/libitm.a # Help plugins find out nvra. echo gcc-%{version}-%{release}.%{_arch} > $CROSS_LIBPATH/rpmver # TODO # Add symlink to lto plugin in the binutils plugin directory. #%{__mkdir_p} %{buildroot}%{_libdir}/bfd-plugins/ #ln -s ../../libexec/gcc/$crossarch/%{gcc_major}/liblto_plugin.so \ # %{buildroot}%{_libdir}/$crossarch/bfd-plugins/ done # Back to obj-%{gcc_target_platform}. popd echo ==================== INSTALL CROSS END ========================= %endif FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %if %{build_isl} cp -a isl-install/lib/libisl.so.23 $FULLPATH/ %endif # fix some things ln -sf gcc %{buildroot}%{_prefix}/bin/cc rm -f %{buildroot}%{_prefix}/lib/cpp ln -sf ../bin/cpp %{buildroot}/%{_prefix}/lib/cpp ln -sf gfortran %{buildroot}%{_prefix}/bin/f95 rm -f %{buildroot}%{_infodir}/dir gzip -9 %{buildroot}%{_infodir}/*.info* ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc mkdir -p %{buildroot}%{_fmoddir} %if %{build_go} mv %{buildroot}%{_prefix}/bin/go{,.gcc} mv %{buildroot}%{_prefix}/bin/gofmt{,.gcc} ln -sf /etc/alternatives/go %{buildroot}%{_prefix}/bin/go ln -sf /etc/alternatives/gofmt %{buildroot}%{_prefix}/bin/gofmt %endif cxxconfig="`find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h`" for i in `find %{gcc_target_platform}/[36]*/libstdc++-v3/include -name c++config.h 2>/dev/null`; do if ! diff -up $cxxconfig $i; then cat > %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/c++config.h < #if __WORDSIZE == 32 %ifarch %{multilib_64_archs} `cat $(find %{gcc_target_platform}/32/libstdc++-v3/include -name c++config.h)` %else `cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)` %endif #else %ifarch %{multilib_64_archs} `cat $(find %{gcc_target_platform}/libstdc++-v3/include -name c++config.h)` %else `cat $(find %{gcc_target_platform}/64/libstdc++-v3/include -name c++config.h)` %endif #endif #endif EOF break fi done for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/ -name c++config.h`; do for i in 1 2 4 8; do sed -i -e 's/#define _GLIBCXX_ATOMIC_BUILTINS_'$i' 1/#ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_'$i'\ &\ #endif/' $f done done # Nuke bits/*.h.gch dirs # 1) sometimes it is hard to match the exact options used for building # libstdc++-v3 or they aren't desirable # 2) there are multilib issues, conflicts etc. with this # 3) it is huge # People can always precompile on their own whatever they want, but # shipping this for everybody is unnecessary. rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/*.h.gch %if %{build_libstdcxx_docs} libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen mkdir -p ../rpm.doc/libstdc++-v3 cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html cp -r -p $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api mkdir -p %{buildroot}%{_mandir}/man3 cp -r -p $libstdcxx_doc_builddir/man/man3/* %{buildroot}%{_mandir}/man3/ find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm %endif %ifarch sparcv9 sparc64 ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \ %{buildroot}%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc %endif %ifarch ppc ppc64 ppc64p7 ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \ %{buildroot}%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc %endif FULLLSUBDIR= %ifarch sparcv9 ppc FULLLSUBDIR=lib32 %endif %ifarch sparc64 ppc64 ppc64p7 FULLLSUBDIR=lib64 %endif if [ -n "$FULLLSUBDIR" ]; then FULLLPATH=$FULLPATH/$FULLLSUBDIR mkdir -p $FULLLPATH else FULLLPATH=$FULLPATH fi find %{buildroot} -name \*.la | xargs rm -f mv %{buildroot}%{_prefix}/%{_lib}/libgfortran.spec $FULLPATH/ %if %{build_d} mv %{buildroot}%{_prefix}/%{_lib}/libgphobos.spec $FULLPATH/ %endif %if %{build_libitm} mv %{buildroot}%{_prefix}/%{_lib}/libitm.spec $FULLPATH/ %endif %if %{build_libasan} mv %{buildroot}%{_prefix}/%{_lib}/libsanitizer.spec $FULLPATH/ %endif mkdir -p %{buildroot}/%{_lib} mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1 chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1 ln -sf libgcc_s-%{gcc_major}-%{DATE}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1 %ifarch %{ix86} x86_64 ppc ppc64 ppc64p7 ppc64le %{arm} aarch64 riscv64 rm -f $FULLPATH/libgcc_s.so echo '/* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT('`gcc -Wl,--print-output-format -nostdlib -r -o /dev/null`') GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so %else ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so %endif %ifarch sparcv9 ppc %ifarch ppc rm -f $FULLPATH/64/libgcc_s.so echo '/* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT('`gcc -m64 -Wl,--print-output-format -nostdlib -r -o /dev/null`') GROUP ( /lib64/libgcc_s.so.1 libgcc.a )' > $FULLPATH/64/libgcc_s.so %else ln -sf /lib64/libgcc_s.so.1 $FULLPATH/64/libgcc_s.so %endif %endif %ifarch %{multilib_64_archs} %ifarch x86_64 ppc64 ppc64p7 rm -f $FULLPATH/64/libgcc_s.so echo '/* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ OUTPUT_FORMAT('`gcc -m32 -Wl,--print-output-format -nostdlib -r -o /dev/null`') GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so %else ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so %endif %endif mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/ %if %{build_ada} mv -f $FULLPATH/adalib/libgnarl-*.so %{buildroot}%{_prefix}/%{_lib}/ mv -f $FULLPATH/adalib/libgnat-*.so %{buildroot}%{_prefix}/%{_lib}/ rm -f $FULLPATH/adalib/libgnarl.so* $FULLPATH/adalib/libgnat.so* %endif mkdir -p %{buildroot}%{_prefix}/libexec/getconf if gcc/xgcc -B gcc/ -E -P -dD -xc /dev/null | grep '__LONG_MAX__.*\(2147483647\|0x7fffffff\($\|[LU]\)\)'; then ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default else ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default fi mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib} mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++*gdb.py* \ %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/ %py_byte_compile %{python3} %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/ %py_byte_compile %{python3} %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/ rm -f $FULLEPATH/libgccjit.so cp -a objlibgccjit/gcc/libgccjit.so* %{buildroot}%{_prefix}/%{_lib}/ cp -a ../gcc/jit/libgccjit*.h %{buildroot}%{_prefix}/include/ /usr/bin/install -c -m 644 objlibgccjit/gcc/doc/libgccjit.info %{buildroot}/%{_infodir}/ gzip -9 %{buildroot}/%{_infodir}/libgccjit.info pushd $FULLPATH if [ "%{_lib}" = "lib" ]; then %if %{build_objc} ln -sf ../../../libobjc.so.4 libobjc.so %endif ln -sf ../../../libstdc++.so.6.*[0-9] libstdc++.so ln -sf ../../../libgfortran.so.5.* libgfortran.so ln -sf ../../../libgomp.so.1.* libgomp.so %if %{build_go} ln -sf ../../../libgo.so.23.* libgo.so %endif %if %{build_libquadmath} ln -sf ../../../libquadmath.so.0.* libquadmath.so %endif %if %{build_d} ln -sf ../../../libgdruntime.so.5.* libgdruntime.so ln -sf ../../../libgphobos.so.5.* libgphobos.so %endif %if %{build_m2} for i in cor iso log min pim; do ln -sf ../../../libm2$i.so.19.* libm2$i.so done %endif %if %{build_libitm} ln -sf ../../../libitm.so.1.* libitm.so %endif %if %{build_libatomic} ln -sf ../../../libatomic.so.1.* libatomic.so %endif %if %{build_libasan} ln -sf ../../../libasan.so.8.* libasan.so mv ../../../libasan_preinit.o libasan_preinit.o %endif %if %{build_libubsan} ln -sf ../../../libubsan.so.1.* libubsan.so %endif else %if %{build_objc} ln -sf ../../../../%{_lib}/libobjc.so.4 libobjc.so %endif ln -sf ../../../../%{_lib}/libstdc++.so.6.*[0-9] libstdc++.so ln -sf ../../../../%{_lib}/libgfortran.so.5.* libgfortran.so ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so %if %{build_go} ln -sf ../../../../%{_lib}/libgo.so.23.* libgo.so %endif %if %{build_libquadmath} ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so %endif %if %{build_d} ln -sf ../../../../%{_lib}/libgdruntime.so.5.* libgdruntime.so ln -sf ../../../../%{_lib}/libgphobos.so.5.* libgphobos.so %endif %if %{build_m2} for i in cor iso log min pim; do ln -sf ../../../../%{_lib}/libm2$i.so.19.* libm2$i.so done %endif %if %{build_libitm} ln -sf ../../../../%{_lib}/libitm.so.1.* libitm.so %endif %if %{build_libatomic} ln -sf ../../../../%{_lib}/libatomic.so.1.* libatomic.so %endif %if %{build_libasan} ln -sf ../../../../%{_lib}/libasan.so.8.* libasan.so mv ../../../../%{_lib}/libasan_preinit.o libasan_preinit.o %endif %if %{build_libubsan} ln -sf ../../../../%{_lib}/libubsan.so.1.* libubsan.so %endif %if %{build_libtsan} rm -f libtsan.so echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/libtsan.so.2.* | sed 's,^.*libt,libt,'`' )' > libtsan.so mv ../../../../%{_lib}/libtsan_preinit.o libtsan_preinit.o %endif %if %{build_libhwasan} rm -f libhwasan.so echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/libhwasan.so.0.* | sed 's,^.*libh,libh,'`' )' > libhwasan.so mv ../../../../%{_lib}/libhwasan_preinit.o libhwasan_preinit.o %endif %if %{build_liblsan} rm -f liblsan.so echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/liblsan.so.0.* | sed 's,^.*libl,libl,'`' )' > liblsan.so mv ../../../../%{_lib}/liblsan_preinit.o liblsan_preinit.o %endif fi mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++fs.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++exp.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a $FULLLPATH/ %if %{build_objc} mv -f %{buildroot}%{_prefix}/%{_lib}/libobjc.*a . %endif mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a . %if %{build_libquadmath} mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/ %endif %if %{build_d} mv -f %{buildroot}%{_prefix}/%{_lib}/libgdruntime.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libgphobos.*a $FULLLPATH/ %endif %if %{build_m2} for i in cor iso log min pim; do mv -f %{buildroot}%{_prefix}/%{_lib}/libm2$i.*a $FULLLPATH/ rm -f m2/m2$i/*.{a,la} ln -sf ../../libm2$i.so m2/m2$i/ ln -sf ../../libm2$i.a m2/m2$i/ done %endif %if %{build_libitm} mv -f %{buildroot}%{_prefix}/%{_lib}/libitm.*a $FULLLPATH/ %endif %if %{build_libatomic} mv -f %{buildroot}%{_prefix}/%{_lib}/libatomic.*a $FULLLPATH/ %endif %if %{build_libasan} mv -f %{buildroot}%{_prefix}/%{_lib}/libasan.*a $FULLLPATH/ %endif %if %{build_libubsan} mv -f %{buildroot}%{_prefix}/%{_lib}/libubsan.*a $FULLLPATH/ %endif %if %{build_libtsan} mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan.*a $FULLPATH/ %endif %if %{build_libhwasan} mv -f %{buildroot}%{_prefix}/%{_lib}/libhwasan.*a $FULLPATH/ %endif %if %{build_liblsan} mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan.*a $FULLPATH/ %endif %if %{build_go} mv -f %{buildroot}%{_prefix}/%{_lib}/libgo.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libgobegin.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libgolibbegin.*a $FULLLPATH/ %endif %if %{build_ada} %ifarch sparcv9 ppc rm -rf $FULLPATH/64/ada{include,lib} %endif %ifarch %{multilib_64_archs} rm -rf $FULLPATH/32/ada{include,lib} %endif if [ "$FULLPATH" != "$FULLLPATH" ]; then mv -f $FULLPATH/ada{include,lib} $FULLLPATH/ pushd $FULLLPATH/adalib if [ "%{_lib}" = "lib" ]; then ln -sf ../../../../../libgnarl-*.so libgnarl.so ln -sf ../../../../../libgnarl-*.so libgnarl-%{gcc_major}.so ln -sf ../../../../../libgnat-*.so libgnat.so ln -sf ../../../../../libgnat-*.so libgnat-%{gcc_major}.so else ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-%{gcc_major}.so ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-%{gcc_major}.so fi popd else pushd $FULLPATH/adalib if [ "%{_lib}" = "lib" ]; then ln -sf ../../../../libgnarl-*.so libgnarl.so ln -sf ../../../../libgnarl-*.so libgnarl-%{gcc_major}.so ln -sf ../../../../libgnat-*.so libgnat.so ln -sf ../../../../libgnat-*.so libgnat-%{gcc_major}.so else ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-%{gcc_major}.so ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-%{gcc_major}.so fi popd fi %endif %ifarch sparcv9 ppc %if %{build_objc} ln -sf ../../../../../lib64/libobjc.so.4 64/libobjc.so %endif ln -sf ../`echo ../../../../lib/libstdc++.so.6.*[0-9] | sed s~/lib/~/lib64/~` 64/libstdc++.so ln -sf ../`echo ../../../../lib/libgfortran.so.5.* | sed s~/lib/~/lib64/~` 64/libgfortran.so ln -sf ../`echo ../../../../lib/libgomp.so.1.* | sed s~/lib/~/lib64/~` 64/libgomp.so %if %{build_go} rm -f libgo.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgo.so.23.* | sed 's,^.*libg,libg,'`' )' > libgo.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.23.* | sed 's,^.*libg,libg,'`' )' > 64/libgo.so %endif %if %{build_libquadmath} rm -f libquadmath.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > libquadmath.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > 64/libquadmath.so %endif %if %{build_d} rm -f libgdruntime.so libgphobos.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgdruntime.so.5.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgdruntime.so.5.* | sed 's,^.*libg,libg,'`' )' > 64/libgdruntime.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgphobos.so.5.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgphobos.so.5.* | sed 's,^.*libg,libg,'`' )' > 64/libgphobos.so %endif %if %{build_m2} for i in cor iso log min pim; do rm -f libm2$i.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libm2$i.so.19.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libm2$i.so.19.* | sed 's,^.*libm,libm,'`' )' > 64/libm2$i.so rm -f 64/m2/m2$i/*.{a,la} ln -sf ../../libm2$i.so 64/m2/m2$i/ ln -sf ../../libm2$i.a 64/m2/m2$i/ done %endif %if %{build_libitm} rm -f libitm.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > libitm.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > 64/libitm.so %endif %if %{build_libatomic} rm -f libatomic.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > libatomic.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > 64/libatomic.so %endif %if %{build_libasan} rm -f libasan.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libasan.so.8.* | sed 's,^.*liba,liba,'`' )' > libasan.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libasan.so.8.* | sed 's,^.*liba,liba,'`' )' > 64/libasan.so mv ../../../../lib64/libasan_preinit.o 64/libasan_preinit.o %endif %if %{build_libubsan} rm -f libubsan.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libubsan.so.1.* | sed 's,^.*libu,libu,'`' )' > libubsan.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libubsan.so.1.* | sed 's,^.*libu,libu,'`' )' > 64/libubsan.so %endif ln -sf lib32/libgfortran.a libgfortran.a ln -sf ../lib64/libgfortran.a 64/libgfortran.a %if %{build_objc} mv -f %{buildroot}%{_prefix}/lib64/libobjc.*a 64/ %endif mv -f %{buildroot}%{_prefix}/lib64/libgomp.*a 64/ ln -sf lib32/libstdc++.a libstdc++.a ln -sf ../lib64/libstdc++.a 64/libstdc++.a ln -sf lib32/libstdc++fs.a libstdc++fs.a ln -sf ../lib64/libstdc++fs.a 64/libstdc++fs.a ln -sf lib32/libstdc++exp.a libstdc++exp.a ln -sf ../lib64/libstdc++exp.a 64/libstdc++exp.a ln -sf lib32/libsupc++.a libsupc++.a ln -sf ../lib64/libsupc++.a 64/libsupc++.a %if %{build_libquadmath} ln -sf lib32/libquadmath.a libquadmath.a ln -sf ../lib64/libquadmath.a 64/libquadmath.a %endif %if %{build_d} ln -sf lib32/libgdruntime.a libgdruntime.a ln -sf ../lib64/libgdruntime.a 64/libgdruntime.a ln -sf lib32/libgphobos.a libgphobos.a ln -sf ../lib64/libgphobos.a 64/libgphobos.a %endif %if %{build_m2} for i in cor iso log min pim; do ln -sf lib32/libm2$i.a libm2$i.a ln -sf ../lib64/libm2$i.a 64/libm2$i.a done %endif %if %{build_libitm} ln -sf lib32/libitm.a libitm.a ln -sf ../lib64/libitm.a 64/libitm.a %endif %if %{build_libatomic} ln -sf lib32/libatomic.a libatomic.a ln -sf ../lib64/libatomic.a 64/libatomic.a %endif %if %{build_libasan} ln -sf lib32/libasan.a libasan.a ln -sf ../lib64/libasan.a 64/libasan.a %endif %if %{build_libubsan} ln -sf lib32/libubsan.a libubsan.a ln -sf ../lib64/libubsan.a 64/libubsan.a %endif %if %{build_go} ln -sf lib32/libgo.a libgo.a ln -sf ../lib64/libgo.a 64/libgo.a ln -sf lib32/libgobegin.a libgobegin.a ln -sf ../lib64/libgobegin.a 64/libgobegin.a ln -sf lib32/libgolibbegin.a libgolibbegin.a ln -sf ../lib64/libgolibbegin.a 64/libgolibbegin.a %endif %if %{build_ada} ln -sf lib32/adainclude adainclude ln -sf ../lib64/adainclude 64/adainclude ln -sf lib32/adalib adalib ln -sf ../lib64/adalib 64/adalib %endif %endif %ifarch %{multilib_64_archs} mkdir -p 32 %if %{build_objc} ln -sf ../../../../libobjc.so.4 32/libobjc.so %endif ln -sf ../`echo ../../../../lib64/libstdc++.so.6.*[0-9] | sed s~/../lib64/~/~` 32/libstdc++.so ln -sf ../`echo ../../../../lib64/libgfortran.so.5.* | sed s~/../lib64/~/~` 32/libgfortran.so ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so %if %{build_go} rm -f libgo.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.23.* | sed 's,^.*libg,libg,'`' )' > libgo.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.23.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so %endif %if %{build_libquadmath} rm -f libquadmath.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > libquadmath.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libquadmath.so.0.* | sed 's,^.*libq,libq,'`' )' > 32/libquadmath.so %endif %if %{build_d} rm -f libgdruntime.so libgphobos.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgdruntime.so.5.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgdruntime.so.5.* | sed 's,^.*libg,libg,'`' )' > 32/libgdruntime.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgphobos.so.5.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgphobos.so.5.* | sed 's,^.*libg,libg,'`' )' > 32/libgphobos.so %endif %if %{build_m2} for i in cor iso log min pim; do rm -f libm2$i.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libm2$i.so.19.* | sed 's,^.*libm,libm,'`' )' > libm2$i.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libm2$i.so.19.* | sed 's,^.*libm,libm,'`' )' > 32/libm2$i.so rm -f 32/m2/m2$i/*.{a,la} ln -sf ../../libm2$i.so 32/m2/m2$i/ ln -sf ../../libm2$i.a 32/m2/m2$i/ done %endif %if %{build_libitm} rm -f libitm.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > libitm.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libitm.so.1.* | sed 's,^.*libi,libi,'`' )' > 32/libitm.so %endif %if %{build_libatomic} rm -f libatomic.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > libatomic.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libatomic.so.1.* | sed 's,^.*liba,liba,'`' )' > 32/libatomic.so %endif %if %{build_libasan} rm -f libasan.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libasan.so.8.* | sed 's,^.*liba,liba,'`' )' > libasan.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libasan.so.8.* | sed 's,^.*liba,liba,'`' )' > 32/libasan.so mv ../../../../lib/libasan_preinit.o 32/libasan_preinit.o %endif %if %{build_libubsan} rm -f libubsan.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libubsan.so.1.* | sed 's,^.*libu,libu,'`' )' > libubsan.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libubsan.so.1.* | sed 's,^.*libu,libu,'`' )' > 32/libubsan.so %endif %if %{build_objc} mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/ %endif mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/ %endif %ifarch sparc64 ppc64 ppc64p7 ln -sf ../lib32/libgfortran.a 32/libgfortran.a ln -sf lib64/libgfortran.a libgfortran.a ln -sf ../lib32/libstdc++.a 32/libstdc++.a ln -sf lib64/libstdc++.a libstdc++.a ln -sf ../lib32/libstdc++fs.a 32/libstdc++fs.a ln -sf lib64/libstdc++fs.a libstdc++fs.a ln -sf ../lib32/libstdc++exp.a 32/libstdc++exp.a ln -sf lib64/libstdc++exp.a libstdc++exp.a ln -sf ../lib32/libsupc++.a 32/libsupc++.a ln -sf lib64/libsupc++.a libsupc++.a %if %{build_libquadmath} ln -sf ../lib32/libquadmath.a 32/libquadmath.a ln -sf lib64/libquadmath.a libquadmath.a %endif %if %{build_d} ln -sf ../lib32/libgdruntime.a 32/libgdruntime.a ln -sf lib64/libgdruntime.a libgdruntime.a ln -sf ../lib32/libgphobos.a 32/libgphobos.a ln -sf lib64/libgphobos.a libgphobos.a %endif %if %{build_m2} for i in cor iso log min pim; do ln -sf ../lib32/libm2$i.a 32/libm2$i.a ln -sf lib64/libm2$i.a libm2$i.a done %endif %if %{build_libitm} ln -sf ../lib32/libitm.a 32/libitm.a ln -sf lib64/libitm.a libitm.a %endif %if %{build_libatomic} ln -sf ../lib32/libatomic.a 32/libatomic.a ln -sf lib64/libatomic.a libatomic.a %endif %if %{build_libasan} ln -sf ../lib32/libasan.a 32/libasan.a ln -sf lib64/libasan.a libasan.a %endif %if %{build_libubsan} ln -sf ../lib32/libubsan.a 32/libubsan.a ln -sf lib64/libubsan.a libubsan.a %endif %if %{build_go} ln -sf ../lib32/libgo.a 32/libgo.a ln -sf lib64/libgo.a libgo.a ln -sf ../lib32/libgobegin.a 32/libgobegin.a ln -sf lib64/libgobegin.a libgobegin.a ln -sf ../lib32/libgolibbegin.a 32/libgolibbegin.a ln -sf lib64/libgolibbegin.a libgolibbegin.a %endif %if %{build_ada} ln -sf ../lib32/adainclude 32/adainclude ln -sf lib64/adainclude adainclude ln -sf ../lib32/adalib 32/adalib ln -sf lib64/adalib adalib %endif %else %ifarch %{multilib_64_archs} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgfortran.a 32/libgfortran.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++.a 32/libstdc++.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++fs.a 32/libstdc++fs.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libstdc++exp.a 32/libstdc++exp.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libsupc++.a 32/libsupc++.a %if %{build_libquadmath} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libquadmath.a 32/libquadmath.a %endif %if %{build_d} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgdruntime.a 32/libgdruntime.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgphobos.a 32/libgphobos.a %endif %if %{build_m2} for i in cor iso log min pim; do ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libm2$i.a 32/libm2$i.a done %endif %if %{build_libitm} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libitm.a 32/libitm.a %endif %if %{build_libatomic} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libatomic.a 32/libatomic.a %endif %if %{build_libasan} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libasan.a 32/libasan.a %endif %if %{build_libubsan} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libubsan.a 32/libubsan.a %endif %if %{build_go} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgo.a 32/libgo.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgobegin.a 32/libgobegin.a ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libgolibbegin.a 32/libgolibbegin.a %endif %if %{build_ada} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/adainclude 32/adainclude ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/adalib 32/adalib %endif %endif %endif # If we are building a debug package then copy all of the static archives # into the debug directory to keep them as unstripped copies. %if 0%{?_enable_debug_packages} for d in . $FULLLSUBDIR; do mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/$d for f in `find $d -maxdepth 1 -a \ \( -name libasan.a -o -name libatomic.a \ -o -name libcaf_single.a \ -o -name libgcc.a -o -name libgcc_eh.a \ -o -name libgcov.a -o -name libgfortran.a \ -o -name libgo.a -o -name libgobegin.a \ -o -name libgolibbegin.a -o -name libgomp.a \ -o -name libitm.a -o -name liblsan.a \ -o -name libobjc.a -o -name libgdruntime.a -o -name libgphobos.a \ -o -name libm2\*.a -o -name libquadmath.a -o -name libstdc++.a \ -o -name libstdc++fs.a -o -name libstdc++exp.a \ -o -name libsupc++.a \ -o -name libtsan.a -o -name libubsan.a \) -a -type f`; do cp -a $f $RPM_BUILD_ROOT%{_prefix}/lib/debug%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/$d/ done done %endif # Strip debug info from Fortran/ObjC/Java static libraries strip -g `find . \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \ -o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \ -o -name libgdruntime.a -o -name libgphobos.a -o -name libm2\*.a \ -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \ -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \ -o -name libubsan.a -o -name liblsan.a -o -name libcc1.a \) \ -a -type f` popd chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.5.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.* %if %{build_libquadmath} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.* %endif %if %{build_d} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgdruntime.so.5.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgphobos.so.5.* %endif %if %{build_m2} for i in cor iso log min pim; do chmod 755 %{buildroot}%{_prefix}/%{_lib}/libm2$i.so.19.* done %endif %if %{build_libitm} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.* %endif %if %{build_libatomic} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1.* %endif %if %{build_libasan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.8.* %endif %if %{build_libubsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.* %endif %if %{build_libtsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2.* %endif %if %{build_libhwasan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.* %endif %if %{build_liblsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.* %endif %if %{build_go} # Avoid stripping these libraries and binaries. chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.23.* chmod 644 %{buildroot}%{_prefix}/bin/go.gcc chmod 644 %{buildroot}%{_prefix}/bin/gofmt.gcc chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/buildid chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/test2json chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/vet %endif %if %{build_objc} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.4.* %endif %if %{build_ada} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnarl*so* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnat*so* %endif for h in `find $FULLPATH/include -name \*.h`; do if grep -q 'It has been auto-edited by fixincludes from' $h; then rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'` diff -up $rh $h || : rm -f $h fi done cat > %{buildroot}%{_prefix}/bin/c89 <<"EOF" #!/bin/sh fl="-std=c89" for opt; do case "$opt" in -ansi|-std=c89|-std=iso9899:1990) fl="";; -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2 exit 1;; esac done exec gcc $fl ${1+"$@"} EOF cat > %{buildroot}%{_prefix}/bin/c99 <<"EOF" #!/bin/sh fl="-std=c99" for opt; do case "$opt" in -std=c99|-std=iso9899:1999) fl="";; -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2 exit 1;; esac done exec gcc $fl ${1+"$@"} EOF chmod 755 %{buildroot}%{_prefix}/bin/c?9 cd .. %find_lang %{name} %find_lang cpplib # Remove binaries we will not be including, so that they don't end up in # gcc-debuginfo rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a} || : rm -f $FULLEPATH/install-tools/{mkheaders,fixincl} rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a rm -f %{buildroot}%{_prefix}/%{_lib}/libssp* rm -f %{buildroot}%{_prefix}/%{_lib}/libvtv* || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gfortran || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gccgo || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcj || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-ar || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-nm || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-ranlib || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gdc || : rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gm2 || : %ifarch %{multilib_64_archs} # Remove libraries for the other arch on multilib arches rm -f %{buildroot}%{_prefix}/lib/lib*.so* rm -f %{buildroot}%{_prefix}/lib/lib*.a rm -f %{buildroot}/lib/libgcc_s*.so* %if %{build_go} rm -rf %{buildroot}%{_prefix}/lib/go/%{gcc_major}/%{gcc_target_platform} %ifnarch sparc64 ppc64 ppc64p7 ln -sf %{multilib_32_arch}-%{_vendor}-%{_target_os} %{buildroot}%{_prefix}/lib/go/%{gcc_major}/%{gcc_target_platform} %endif %endif %else %ifarch sparcv9 ppc rm -f %{buildroot}%{_prefix}/lib64/lib*.so* rm -f %{buildroot}%{_prefix}/lib64/lib*.a rm -f %{buildroot}/lib64/libgcc_s*.so* %if %{build_go} rm -rf %{buildroot}%{_prefix}/lib64/go/%{gcc_major}/%{gcc_target_platform} %endif %endif %endif rm -f %{buildroot}%{mandir}/man3/ffi* # Help plugins find out nvra. echo gcc-%{version}-%{release}.%{_arch} > $FULLPATH/rpmver # Add symlink to lto plugin in the binutils plugin directory. %{__mkdir_p} %{buildroot}%{_libdir}/bfd-plugins/ ln -s ../../libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so \ %{buildroot}%{_libdir}/bfd-plugins/ %if %{build_annobin_plugin} mkdir -p $FULLPATH/plugin rm -f $FULLPATH/plugin/gcc-annobin* cp -a %{_builddir}/gcc-%{version}-%{DATE}/annobin-plugin/annobin*/gcc-plugin/.libs/annobin.so.0.0.0 \ $FULLPATH/plugin/gcc-annobin.so.0.0.0 ln -sf gcc-annobin.so.0.0.0 $FULLPATH/plugin/gcc-annobin.so.0 ln -sf gcc-annobin.so.0.0.0 $FULLPATH/plugin/gcc-annobin.so %endif ############################################################################### # Sysroot package creation. ############################################################################### mkdir -p %{buildroot}/%{sysroot_prefix} pushd %{buildroot}/%{sysroot_prefix} mkdir -p usr/lib usr/lib64 ln -s usr/lib lib ln -s usr/lib64 lib64 # These match the files referenced in linker scripts generated for cross # compilers. for f in /lib64/libgcc_s.so.1 \ %{_prefix}/lib64/libgomp.so.1 \ %{_prefix}/lib64/libstdc++.so.6 \ %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a \ %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a \ %{_prefix}/lib64/libatomic.so.1 \ %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a \ %{_prefix}/lib64/libitm.so.1 \ %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a; do mkdir -p %{buildroot}/%{sysroot_prefix}/$(dirname $f) cp %{buildroot}$f %{buildroot}/%{sysroot_prefix}/$f done mkdir -p usr/include cp -a %{buildroot}%{_prefix}/include/c++ usr/include/c++ popd %check cd obj-%{gcc_target_platform} # run the tests. LC_ALL=C make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ \ %if 0%{?fedora} >= 20 || 0%{?rhel} > 7 RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector-strong}'" || : %else RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || : %endif %if !%{build_annobin_plugin} if [ -f %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/annobin.so ]; then # Test whether current annobin plugin won't fail miserably with the newly built gcc. echo -e '#include \nint main () { printf ("Hello, world!\\n"); return 0; }' > annobin-test.c echo -e '#include \nint main () { std::cout << "Hello, world!" << std::endl; return 0; }' > annobin-test.C `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cc` \ -O2 -g -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS \ -fexceptions -fstack-protector-strong -grecord-gcc-switches -o annobin-test{c,.c} \ -Wl,-rpath,%{gcc_target_platform}/libgcc/ \ -fplugin=%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/annobin.so \ 2> ANNOBINOUT1 || echo Annobin test 1 FAIL > ANNOBINOUT2; `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-cxx` \ `%{gcc_target_platform}/libstdc++-v3/scripts/testsuite_flags --build-includes` \ -O2 -g -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS \ -fexceptions -fstack-protector-strong -grecord-gcc-switches -o annobin-test{C,.C} \ -Wl,-rpath,%{gcc_target_platform}/libgcc/:%{gcc_target_platform}/libstdc++-v3/src/.libs/ \ -fplugin=%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/annobin.so \ -B %{gcc_target_platform}/libstdc++-v3/src/.libs/ \ 2> ANNOBINOUT3 || echo Annobin test 2 FAIL > ANNOBINOUT4; [ -f ./annobin-testc ] || echo Annobin test 1 MISSING > ANNOBINOUT5; [ -f ./annobin-testc ] && \ ( ./annobin-testc > ANNOBINRES1 2>&1 || echo Annobin test 1 RUNFAIL > ANNOBINOUT6 ); [ -f ./annobin-testC ] || echo Annobin test 2 MISSING > ANNOBINOUT7; [ -f ./annobin-testC ] && \ ( ./annobin-testC > ANNOBINRES2 2>&1 || echo Annobin test 2 RUNFAIL > ANNOBINOUT8 ); cat ANNOBINOUT[1-8] > ANNOBINOUT touch ANNOBINRES1 ANNOBINRES2 [ -s ANNOBINOUT ] && echo Annobin testing FAILed > ANNOBINRES cat ANNOBINOUT ANNOBINRES[12] >> ANNOBINRES rm -f ANNOBINOUT* ANNOBINRES[12] annobin-test{c,C} fi %endif echo ====================TESTING========================= ( LC_ALL=C ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}' %if !%{build_annobin_plugin} [ -f ANNOBINRES ] && cat ANNOBINRES %endif echo ====================TESTING END===================== mkdir testlogs-%{_target_platform}-%{version}-%{release} for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats.*/tests/'`; do ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || : done tar cf - testlogs-%{_target_platform}-%{version}-%{release} | xz -9e \ | uuencode testlogs-%{_target_platform}.tar.xz || : rm -rf testlogs-%{_target_platform}-%{version}-%{release} %post go %{_sbindir}/update-alternatives --install \ %{_prefix}/bin/go go %{_prefix}/bin/go.gcc 92 \ --slave %{_prefix}/bin/gofmt gofmt %{_prefix}/bin/gofmt.gcc %preun go if [ $1 = 0 ]; then %{_sbindir}/update-alternatives --remove go %{_prefix}/bin/go.gcc fi # Because glibc Prereq's libgcc and /sbin/ldconfig # comes from glibc, it might not exist yet when # libgcc is installed %post -n libgcc -p if posix.access ("/sbin/ldconfig", "x") then local pid = posix.fork () if pid == 0 then posix.exec ("/sbin/ldconfig") elseif pid ~= -1 then posix.wait (pid) end end %postun -n libgcc -p if posix.access ("/sbin/ldconfig", "x") then local pid = posix.fork () if pid == 0 then posix.exec ("/sbin/ldconfig") elseif pid ~= -1 then posix.wait (pid) end end %ldconfig_scriptlets -n libstdc++ %ldconfig_scriptlets -n libobjc %ldconfig_scriptlets -n libgfortran %ldconfig_scriptlets -n libgphobos %ldconfig_scriptlets -n libgm2 %ldconfig_scriptlets -n libgnat %ldconfig_scriptlets -n libgomp %ldconfig_scriptlets gdb-plugin %ldconfig_scriptlets -n libgccjit %ldconfig_scriptlets -n libquadmath %ldconfig_scriptlets -n libitm %ldconfig_scriptlets -n libatomic %ldconfig_scriptlets -n libasan %ldconfig_scriptlets -n libubsan %ldconfig_scriptlets -n libtsan %ldconfig_scriptlets -n liblsan %ldconfig_scriptlets -n libgo %files -f %{name}.lang %{_prefix}/bin/cc %{_prefix}/bin/c89 %{_prefix}/bin/c99 %{_prefix}/bin/gcc %{_prefix}/bin/gcov %{_prefix}/bin/gcov-tool %{_prefix}/bin/gcov-dump %{_prefix}/bin/gcc-ar %{_prefix}/bin/gcc-nm %{_prefix}/bin/gcc-ranlib %{_prefix}/bin/lto-dump %ifarch ppc %{_prefix}/bin/%{_target_platform}-gcc %endif %ifarch sparc64 sparcv9 %{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc %endif %ifarch ppc64 ppc64p7 %{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc %endif %{_prefix}/bin/%{gcc_target_platform}-gcc %{_prefix}/bin/%{gcc_target_platform}-gcc-%{gcc_major} %{_mandir}/man1/gcc.1* %{_mandir}/man1/gcov.1* %{_mandir}/man1/gcov-tool.1* %{_mandir}/man1/gcov-dump.1* %{_mandir}/man1/lto-dump.1* %{_infodir}/gcc* %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto1 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/lto-wrapper %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so* %{_libdir}/bfd-plugins/liblto_plugin.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/rpmver %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stddef.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdarg.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdfix.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/varargs.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/float.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/limits.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdbool.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/iso646.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/syslimits.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/unwind.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/omp.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/openacc.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/acc_prof.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint-gcc.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdalign.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdnoreturn.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdatomic.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/gcov.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdckdint.h %ifarch %{ix86} x86_64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xmmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/emmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pmmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tmmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ammintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/smmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/nmmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/wmmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/immintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fma4intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xopintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lwpintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/popcntintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmiintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tbmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia32intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx2intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmi2intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/f16cintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fmaintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lzcntintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rtmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xtestintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/adxintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/prfchwintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rdseedintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/fxsrintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsaveintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsaveoptintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512cdintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512erintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512pfintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/shaintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm_malloc.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm3dnow.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cpuid.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cross-stdarg.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bwintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512dqintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512ifmaintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512ifmavlintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmiintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmivlintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vlbwintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vldqintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vlintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clflushoptintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clwbintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mwaitxintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsavecintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xsavesintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/clzerointrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pkuintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx5124fmapsintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx5124vnniwintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vpopcntdqintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sgxintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/gfniintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cetintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cet.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmi2intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vbmi2vlintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vnniintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vnnivlintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vaesintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vpclmulqdqintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vpopcntdqvlintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bitalgintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pconfigintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/wbnoinvdintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/movdirintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/waitpkgintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cldemoteintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bf16vlintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bf16intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/enqcmdintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vp2intersectintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512vp2intersectvlintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/serializeintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tsxldtrkintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxtileintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxint8intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxbf16intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86gprintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/uintrintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/hresetintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/keylockerintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxvnniintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mwaitintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fp16intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512fp16vlintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxifmaintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxvnniint8intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxneconvertintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/cmpccxaddintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxfp16intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/prfchiintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/raointintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amxcomplexintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avx512bitalgvlintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/avxvnniint16intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sha512intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sm3intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sm4intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/usermsrintrin.h %endif %ifarch ia64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia64intrin.h %endif %ifarch ppc ppc64 ppc64le ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppc-asm.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/altivec.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ppu_intrinsics.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/si2vmx.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/spu2vmx.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vec_types.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmi2intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/bmiintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/xmmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mm_malloc.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/emmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/pmmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/tmmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/smmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/amo.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/nmmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/immintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/x86gprintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/rs6000-vecdefines.h %endif %ifarch %{arm} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/unwind-arm-common.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/mmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_acle.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_cmse.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_fp16.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_bf16.h %endif %ifarch aarch64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_acle.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_fp16.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_bf16.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_sve.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_neon_sve_bridge.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/arm_sme.h %endif %ifarch sparc sparcv9 sparc64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/visintrin.h %endif %ifarch s390 s390x %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/s390intrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/htmxlintrin.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/vecintrin.h %endif %ifarch riscv64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/riscv_vector.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/riscv_crypto.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/riscv_bitmanip.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/riscv_th_vector.h %endif %if %{build_libasan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/sanitizer %endif %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/collect2 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/crt*.o %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcov.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc_eh.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgcc_s.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.spec %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgomp.so %if %{build_libitm} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.spec %endif %if %{build_libasan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsanitizer.spec %endif %if %{build_isl} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libisl.so.* %endif %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/crt*.o %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcov.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc_eh.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgcc_s.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgomp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgomp.so %if %{build_libquadmath} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.so %endif %if %{build_libitm} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.so %endif %if %{build_libatomic} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.so %endif %if %{build_libasan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libasan_preinit.o %endif %if %{build_libubsan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.so %endif %endif %ifarch %{multilib_64_archs} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/crt*.o %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcov.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_eh.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgcc_s.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgomp.so %if %{build_libquadmath} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.so %endif %if %{build_libitm} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.so %endif %if %{build_libatomic} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.so %endif %if %{build_libasan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libasan_preinit.o %endif %if %{build_libubsan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.so %endif %endif %ifarch sparcv9 sparc64 ppc ppc64 ppc64p7 %if %{build_libquadmath} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so %endif %if %{build_libitm} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so %endif %if %{build_libatomic} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so %endif %if %{build_libasan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o %endif %if %{build_libubsan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so %endif %else %if %{build_libatomic} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so %endif %if %{build_libasan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o %endif %if %{build_libubsan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so %endif %endif %if %{build_libtsan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan_preinit.o %endif %if %{build_libhwasan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libhwasan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libhwasan_preinit.o %endif %if %{build_liblsan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan_preinit.o %endif %{_prefix}/libexec/getconf/default %doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* %{!?_licensedir:%global license %%doc} %license gcc/COPYING* COPYING.RUNTIME %files -n cpp -f cpplib.lang %{_prefix}/lib/cpp %{_prefix}/bin/cpp %{_mandir}/man1/cpp.1* %{_infodir}/cpp* %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1 %files -n libgcc /%{_lib}/libgcc_s-%{gcc_major}-%{DATE}.so.1 /%{_lib}/libgcc_s.so.1 %{!?_licensedir:%global license %%doc} %license gcc/COPYING* COPYING.RUNTIME %files c++ %{_prefix}/bin/%{gcc_target_platform}-*++ %{_prefix}/bin/g++ %{_prefix}/bin/c++ %{_mandir}/man1/g++.1* %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1plus %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/g++-mapper-server %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++fs.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libstdc++exp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libsupc++.a %endif %ifarch %{multilib_64_archs} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++fs.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libstdc++exp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libsupc++.a %endif %ifarch sparcv9 ppc %{multilib_64_archs} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so %endif %ifarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++exp.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a %endif %doc rpm.doc/changelogs/gcc/cp/ChangeLog* %files -n libstdc++ %{_prefix}/%{_lib}/libstdc++.so.6* %dir %{_datadir}/gdb %dir %{_datadir}/gdb/auto-load %dir %{_datadir}/gdb/auto-load/%{_prefix} %dir %{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/ # Package symlink to keep compatibility %ifarch riscv64 %{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/lp64d %endif %{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py* %{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/__pycache__ %dir %{_prefix}/share/gcc-%{gcc_major} %dir %{_prefix}/share/gcc-%{gcc_major}/python %{_prefix}/share/gcc-%{gcc_major}/python/libstdcxx %files -n libstdc++-devel %dir %{_prefix}/include/c++ %{_prefix}/include/c++/%{gcc_major} %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifnarch sparcv9 ppc %{multilib_64_archs} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so %endif %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++fs.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++exp.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++fs.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++exp.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++fs.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++exp.a %endif %doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README* %files -n libstdc++-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libsupc++.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libsupc++.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a %endif %if %{build_libstdcxx_docs} %files -n libstdc++-docs %{_mandir}/man3/* %doc rpm.doc/libstdc++-v3/html %endif %if %{build_objc} %files objc %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/objc %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1obj %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libobjc.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libobjc.so %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libobjc.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libobjc.so %endif %ifarch %{multilib_64_archs} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libobjc.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libobjc.so %endif %doc rpm.doc/objc/* %doc libobjc/THREADS* rpm.doc/changelogs/libobjc/ChangeLog* %files objc++ %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1objplus %files -n libobjc %{_prefix}/%{_lib}/libobjc.so.4* %endif %files gfortran %{_prefix}/bin/gfortran %{_prefix}/bin/f95 %{_mandir}/man1/gfortran.1* %{_infodir}/gfortran* %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ISO_Fortran_binding.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.f90 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib.mod %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/omp_lib_kinds.mod %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc.f90 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc.mod %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc_kinds.mod %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/openacc_lib.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_arithmetic.mod %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_exceptions.mod %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/ieee_features.mod %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/f951 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.spec %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcaf_single.a %ifarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a %endif %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.so %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libcaf_single.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgfortran.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgfortran.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/finclude %endif %ifarch %{multilib_64_archs} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libcaf_single.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/finclude %endif %dir %{_fmoddir} %doc rpm.doc/gfortran/* %files -n libgfortran %{_prefix}/%{_lib}/libgfortran.so.5* %files -n libgfortran-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgfortran.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgfortran.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a %endif %if %{build_d} %files gdc %{_prefix}/bin/gdc %{_mandir}/man1/gdc.1* %{_infodir}/gdc* %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/d %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/d21 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.spec %ifarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgdruntime.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.a %endif %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgdruntime.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.so %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgdruntime.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgphobos.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgdruntime.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgphobos.so %endif %ifarch %{multilib_64_archs} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgdruntime.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgphobos.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgdruntime.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgphobos.so %endif %doc rpm.doc/gdc/* %files -n libgphobos %{_prefix}/%{_lib}/libgdruntime.so.5* %{_prefix}/%{_lib}/libgphobos.so.5* %doc rpm.doc/libphobos/* %files -n libgphobos-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgdruntime.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgphobos.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgdruntime.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgphobos.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgdruntime.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.a %endif %endif %if %{build_m2} %files gm2 %{_prefix}/bin/gm2 %{_mandir}/man1/gm2.1* %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/m2 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1gm2 %ifarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libm2*.a %endif %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libm2*.so %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/m2 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libm2*.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libm2*.so %endif %ifarch %{multilib_64_archs} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/m2 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libm2*.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libm2*.so %endif %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/m2rte.so %doc rpm.doc/gm2/* %files -n libgm2 %{_prefix}/%{_lib}/libm2*.so.19* %doc rpm.doc/libgm2/* %files -n libgm2-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libm2*.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libm2*.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libm2*.a %endif %endif %if %{build_ada} %files gnat %{_prefix}/bin/gnat %{_prefix}/bin/gnat[^i]* %{_infodir}/gnat* %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/adainclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/adalib %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/ada_target_properties %endif %ifarch %{multilib_64_archs} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/adainclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/adalib %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/ada_target_properties %endif %ifarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adainclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib %endif %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/ada_target_properties %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/gnat1 %doc rpm.doc/changelogs/gcc/ada/ChangeLog* %files -n libgnat %{_prefix}/%{_lib}/libgnat-*.so %{_prefix}/%{_lib}/libgnarl-*.so %files -n libgnat-devel %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adainclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adalib %exclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adalib/libgnat.a %exclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adalib/libgnarl.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adainclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adalib %exclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adalib/libgnat.a %exclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adalib/libgnarl.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adainclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib %exclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib/libgnat.a %exclude %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib/libgnarl.a %endif %files -n libgnat-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adalib %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adalib/libgnat.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/adalib/libgnarl.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adalib %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adalib/libgnat.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/adalib/libgnarl.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib/libgnat.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib/libgnarl.a %endif %endif %files -n libgomp %{_prefix}/%{_lib}/libgomp.so.1* %{_infodir}/libgomp.info* %doc rpm.doc/changelogs/libgomp/ChangeLog* %if %{build_libquadmath} %files -n libquadmath %{_prefix}/%{_lib}/libquadmath.so.0* %{_infodir}/libquadmath.info* %{!?_licensedir:%global license %%doc} %license rpm.doc/libquadmath/COPYING* %files -n libquadmath-devel %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/quadmath.h %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/quadmath_weak.h %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so %endif %doc rpm.doc/libquadmath/ChangeLog* %files -n libquadmath-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libquadmath.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libquadmath.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a %endif %endif %if %{build_libitm} %files -n libitm %{_prefix}/%{_lib}/libitm.so.1* %{_infodir}/libitm.info* %files -n libitm-devel %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include #%%{_prefix}/lib/gcc/%%{gcc_target_platform}/%%{gcc_major}/include/itm.h #%%{_prefix}/lib/gcc/%%{gcc_target_platform}/%%{gcc_major}/include/itm_weak.h %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so %endif %doc rpm.doc/libitm/ChangeLog* %files -n libitm-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libitm.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libitm.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a %endif %endif %if %{build_libatomic} %files -n libatomic %{_prefix}/%{_lib}/libatomic.so.1* %files -n libatomic-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libatomic.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libatomic.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a %endif %doc rpm.doc/changelogs/libatomic/ChangeLog* %endif %if %{build_libasan} %files -n libasan %{_prefix}/%{_lib}/libasan.so.8* %files -n libasan-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libasan.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libasan.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a %endif %doc rpm.doc/changelogs/libsanitizer/ChangeLog* %{!?_licensedir:%global license %%doc} %license libsanitizer/LICENSE.TXT %endif %if %{build_libubsan} %files -n libubsan %{_prefix}/%{_lib}/libubsan.so.1* %files -n libubsan-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libubsan.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libubsan.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a %endif %doc rpm.doc/changelogs/libsanitizer/ChangeLog* %{!?_licensedir:%global license %%doc} %license libsanitizer/LICENSE.TXT %endif %if %{build_libtsan} %files -n libtsan %{_prefix}/%{_lib}/libtsan.so.2* %files -n libtsan-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.a %doc rpm.doc/changelogs/libsanitizer/ChangeLog* %{!?_licensedir:%global license %%doc} %license libsanitizer/LICENSE.TXT %endif %if %{build_libhwasan} %files -n libhwasan %{_prefix}/%{_lib}/libhwasan.so.0* %files -n libhwasan-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libhwasan.a %doc rpm.doc/changelogs/libsanitizer/ChangeLog* %{!?_licensedir:%global license %%doc} %license libsanitizer/LICENSE.TXT %endif %if %{build_liblsan} %files -n liblsan %{_prefix}/%{_lib}/liblsan.so.0* %files -n liblsan-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.a %doc rpm.doc/changelogs/libsanitizer/ChangeLog* %{!?_licensedir:%global license %%doc} %license libsanitizer/LICENSE.TXT %endif %if %{build_go} %files go %ghost %{_prefix}/bin/go %attr(755,root,root) %{_prefix}/bin/go.gcc %{_prefix}/bin/gccgo %ghost %{_prefix}/bin/gofmt %attr(755,root,root) %{_prefix}/bin/gofmt.gcc %{_mandir}/man1/gccgo.1* %{_mandir}/man1/go.1* %{_mandir}/man1/gofmt.1* %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/go1 %attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo %attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/buildid %attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/test2json %attr(755,root,root) %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/vet %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgo.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgo.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgobegin.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libgolibbegin.a %endif %ifarch %{multilib_64_archs} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgo.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgo.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgobegin.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgolibbegin.a %endif %ifarch sparcv9 ppc %{multilib_64_archs} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgo.so %endif %ifarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgo.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgobegin.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgolibbegin.a %endif %doc rpm.doc/go/* %files -n libgo %attr(755,root,root) %{_prefix}/%{_lib}/libgo.so.23* %doc rpm.doc/libgo/* %files -n libgo-devel %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/%{_lib}/go %dir %{_prefix}/%{_lib}/go/%{gcc_major} %{_prefix}/%{_lib}/go/%{gcc_major}/%{gcc_target_platform} %ifarch %{multilib_64_archs} %ifnarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/go %dir %{_prefix}/lib/go/%{gcc_major} %{_prefix}/lib/go/%{gcc_major}/%{gcc_target_platform} %endif %endif %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgobegin.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgolibbegin.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgobegin.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgolibbegin.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgobegin.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgolibbegin.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgo.so %endif %files -n libgo-static %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgo.a %endif %ifarch sparc64 ppc64 ppc64p7 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgo.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgo.a %endif %endif %files -n libgccjit %{_prefix}/%{_lib}/libgccjit.so.* %doc rpm.doc/changelogs/gcc/jit/ChangeLog* %files -n libgccjit-devel %{_prefix}/%{_lib}/libgccjit.so %{_prefix}/include/libgccjit*.h %{_infodir}/libgccjit.info* %doc rpm.doc/libgccjit-devel/* %doc gcc/jit/docs/examples %files plugin-devel %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/gtype.state %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/include %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/plugin %files gdb-plugin %{_prefix}/%{_lib}/libcc1.so* %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcc1plugin.so* %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcp1plugin.so* %doc rpm.doc/changelogs/libcc1/ChangeLog* %if %{build_offload_nvptx} %files offload-nvptx %{_prefix}/bin/nvptx-none-* %{_prefix}/bin/%{gcc_target_platform}-accel-nvptx-none-gcc %{_prefix}/bin/%{gcc_target_platform}-accel-nvptx-none-lto-dump %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel %{_prefix}/lib/gcc/nvptx-none %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/nvptx-none %dir %{_prefix}/nvptx-none %{_prefix}/nvptx-none/bin %{_prefix}/nvptx-none/include %files -n libgomp-offload-nvptx %{_prefix}/%{_lib}/libgomp-plugin-nvptx.so.* %endif %if %{build_offload_amdgcn} %files offload-amdgcn %{_prefix}/bin/amdgcn-amdhsa-* %{_prefix}/bin/%{gcc_target_platform}-accel-amdgcn-amdhsa-gcc %{_prefix}/bin/%{gcc_target_platform}-accel-amdgcn-amdhsa-lto-dump %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel %dir %{_prefix}/libexec/gcc %dir %{_prefix}/libexec/gcc/%{gcc_target_platform} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel %{_prefix}/lib/gcc/amdgcn-amdhsa %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/accel/amdgcn-amdhsa %dir %{_prefix}/amdgcn-amdhsa %{_prefix}/amdgcn-amdhsa/bin %{_prefix}/amdgcn-amdhsa/include %files -n libgomp-offload-amdgcn %{_prefix}/%{_lib}/libgomp-plugin-gcn.so.* %endif %if %{build_annobin_plugin} %files plugin-annobin %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/%{gcc_target_platform} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/gcc-annobin.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/gcc-annobin.so.0 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/gcc-annobin.so.0.0.0 %endif %if %{build_cross} %files -n cross-gcc-aarch64 %{_prefix}/bin/aarch64-redhat-linux-cpp %{_prefix}/bin/aarch64-redhat-linux-gcc %{_prefix}/bin/aarch64-redhat-linux-gcc-%{gcc_major} %{_prefix}/bin/aarch64-redhat-linux-gcc-ar %{_prefix}/bin/aarch64-redhat-linux-gcc-nm %{_prefix}/bin/aarch64-redhat-linux-gcc-ranlib %{_prefix}/bin/aarch64-redhat-linux-gcov* %{_prefix}/bin/aarch64-redhat-linux-lto-dump %{_prefix}/libexec/gcc/aarch64-redhat-linux/%{gcc_major}/cc1 %{_prefix}/libexec/gcc/aarch64-redhat-linux/%{gcc_major}/collect2 %{_prefix}/libexec/gcc/aarch64-redhat-linux/%{gcc_major}/lto1 %{_prefix}/libexec/gcc/aarch64-redhat-linux/%{gcc_major}/lto-wrapper %{_prefix}/libexec/gcc/aarch64-redhat-linux/%{gcc_major}/liblto_plugin.so %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/aarch64-redhat-linux %dir %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major} %dir %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/include %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/crt*.o %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libgcc.a %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libgcc_eh.a %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libgcov.a %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/include/*.h %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/rpmver # These are here for ld(1) purposes only. %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libgcc_s.so %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libgomp.so %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libgomp.spec %if %{build_libatomic} %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libatomic.so %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libatomic.a %endif %if %{build_libitm} %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libitm.so %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libitm.a %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libitm.spec %endif %files -n cross-gcc-c++-aarch64 %{_prefix}/bin/aarch64-redhat-linux-c++ %{_prefix}/bin/aarch64-redhat-linux-g++ %{_prefix}/libexec/gcc/aarch64-redhat-linux/%{gcc_major}/cc1plus %{_prefix}/libexec/gcc/aarch64-redhat-linux/%{gcc_major}/g++-mapper-server # For ld(1) purposes only. %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libstdc++.so %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libstdc++.a %{_prefix}/lib/gcc/aarch64-redhat-linux/%{gcc_major}/libsupc++.a %files -n cross-gcc-ppc64le %{_prefix}/bin/ppc64le-redhat-linux-cpp %{_prefix}/bin/ppc64le-redhat-linux-gcc %{_prefix}/bin/ppc64le-redhat-linux-gcc-%{gcc_major} %{_prefix}/bin/ppc64le-redhat-linux-gcc-ar %{_prefix}/bin/ppc64le-redhat-linux-gcc-nm %{_prefix}/bin/ppc64le-redhat-linux-gcc-ranlib %{_prefix}/bin/ppc64le-redhat-linux-gcov* %{_prefix}/bin/ppc64le-redhat-linux-lto-dump %{_prefix}/libexec/gcc/ppc64le-redhat-linux/%{gcc_major}/cc1 %{_prefix}/libexec/gcc/ppc64le-redhat-linux/%{gcc_major}/collect2 %{_prefix}/libexec/gcc/ppc64le-redhat-linux/%{gcc_major}/lto1 %{_prefix}/libexec/gcc/ppc64le-redhat-linux/%{gcc_major}/lto-wrapper %{_prefix}/libexec/gcc/ppc64le-redhat-linux/%{gcc_major}/liblto_plugin.so %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/ppc64le-redhat-linux %dir %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major} %dir %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/include %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/crt*.o %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libgcc.a %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libgcc_eh.a %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libgcov.a %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/include/*.h %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/rpmver # These are here for ld(1) purposes only. %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libgcc_s.so %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libgomp.so %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libgomp.spec %if %{build_libatomic} %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libatomic.so %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libatomic.a %endif %if %{build_libitm} %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libitm.so %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libitm.a %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libitm.spec %endif %files -n cross-gcc-c++-ppc64le %{_prefix}/bin/ppc64le-redhat-linux-c++ %{_prefix}/bin/ppc64le-redhat-linux-g++ %{_prefix}/libexec/gcc/ppc64le-redhat-linux/%{gcc_major}/cc1plus %{_prefix}/libexec/gcc/ppc64le-redhat-linux/%{gcc_major}/g++-mapper-server # For ld(1) purposes only. %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libstdc++.so %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libstdc++.a %{_prefix}/lib/gcc/ppc64le-redhat-linux/%{gcc_major}/libsupc++.a %files -n cross-gcc-s390x %{_prefix}/bin/s390x-redhat-linux-cpp %{_prefix}/bin/s390x-redhat-linux-gcc %{_prefix}/bin/s390x-redhat-linux-gcc-%{gcc_major} %{_prefix}/bin/s390x-redhat-linux-gcc-ar %{_prefix}/bin/s390x-redhat-linux-gcc-nm %{_prefix}/bin/s390x-redhat-linux-gcc-ranlib %{_prefix}/bin/s390x-redhat-linux-gcov* %{_prefix}/bin/s390x-redhat-linux-lto-dump %{_prefix}/libexec/gcc/s390x-redhat-linux/%{gcc_major}/cc1 %{_prefix}/libexec/gcc/s390x-redhat-linux/%{gcc_major}/collect2 %{_prefix}/libexec/gcc/s390x-redhat-linux/%{gcc_major}/lto1 %{_prefix}/libexec/gcc/s390x-redhat-linux/%{gcc_major}/lto-wrapper %{_prefix}/libexec/gcc/s390x-redhat-linux/%{gcc_major}/liblto_plugin.so %dir %{_prefix}/lib/gcc %dir %{_prefix}/lib/gcc/s390x-redhat-linux %dir %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major} %dir %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/include %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/crt*.o %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libgcc.a %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libgcc_eh.a %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libgcov.a %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/include/*.h %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/rpmver # These are here for ld(1) purposes only. %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libgcc_s.so %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libgomp.so %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libgomp.spec %if %{build_libatomic} %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libatomic.so %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libatomic.a %endif %if %{build_libitm} %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libitm.so %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libitm.a %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libitm.spec %endif %files -n cross-gcc-c++-s390x %{_prefix}/bin/s390x-redhat-linux-c++ %{_prefix}/bin/s390x-redhat-linux-g++ %{_prefix}/libexec/gcc/s390x-redhat-linux/%{gcc_major}/cc1plus %{_prefix}/libexec/gcc/s390x-redhat-linux/%{gcc_major}/g++-mapper-server # For ld(1) purposes only. %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libstdc++.so %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libstdc++.a %{_prefix}/lib/gcc/s390x-redhat-linux/%{gcc_major}/libsupc++.a %dnl build_cross %endif %files -n %{sysroot_package_arch}-libgcc # Package the symlinks into usr/ here. %{sysroot_prefix}/lib %{sysroot_prefix}/lib64 %{sysroot_prefix}%{_prefix}/lib64/libgcc_s.so.1 %files -n %{sysroot_package_arch}-libgomp %{sysroot_prefix}%{_prefix}/lib64/libgomp.so.1 %files -n %{sysroot_package_arch}-libstdc++ %{sysroot_prefix}%{_prefix}/include/c++ %{sysroot_prefix}%{_prefix}/lib64/libstdc++.so.6 %{sysroot_prefix}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.a %{sysroot_prefix}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a %files -n %{sysroot_package_arch}-libatomic %{sysroot_prefix}%{_prefix}/lib64/libatomic.so.1 %{sysroot_prefix}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a %files -n %{sysroot_package_arch}-libitm %{sysroot_prefix}%{_prefix}/lib64/libitm.so.1 %{sysroot_prefix}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a %changelog * Tue Oct 28 2025 Siddhesh Poyarekar - 14.3.1-4 - update from releases/gcc-14 branch - PRs ada/107536, ada/113536, analyzer/118300, c/122188, c++/120620, c++/120757, c++/121801, c++/121977, c++/121981, fortran/89092, fortran/120784, fortran/121145, fortran/121263, go/104290, libstdc++/110853, libstdc++/117276, libstdc++/120698, libstdc++/121097, libstdc++/121374, libstdc++/121496, libstdc++/121745, libstdc++/121827, libstdc++/122168, libstdc++/122322, middle-end/121453, middle-end/121828, other/118919, rtl-optimization/121253, target/49857, target/81540, target/118280, target/120442, target/120476, target/120691, target/121118, target/121208, target/121294, target/121414, target/121449, target/121542, target/121599, target/121608, target/121749, target/122177, target/122187, target/122210, target/122220, target/122222, testsuite/118567, tree-optimization/117423, tree-optimization/119085, tree-optimization/120357, tree-optimization/120358, tree-optimization/120654, tree-optimization/120817, tree-optimization/120944, tree-optimization/121059, tree-optimization/121256, tree-optimization/121370, tree-optimization/121772, tree-optimization/121870, tree-optimization/122104 * Wed Oct 22 2025 Joseph Myers - 14.3.1-2.4 - add sysroot packages for use by non-production cross compilers (RHEL-118680) * Thu Oct 16 2025 Marek Polacek 14.3.1-2.3 - add cross compilers for aarch64, ppc64le and s390x for non-production uses (RHEL-114519) * Mon Sep 22 2025 Siddhesh Poyarekar - 14.3.1-2.2 - Add branch, conditions, and calls to gcov function summaries (RHEL-105464) * Mon Jun 23 2025 Siddhesh Poyarekar - 14.3.1-2.1 - Update to latest pretty printers from GTS (RHEL-81976) * Thu Jun 19 2025 Joseph Myers - 14.3.1-2 - update from releases/gcc-14 branch (RHEL-83953) - GCC 14.3 release - PRs ada/112958, ada/118712, ada/119265, c/100420, c/112556, c/113688, c/114014, c/114713, c/114870, c/116284, c/117145, c/117245, c/117391, c/117724, c/117806, c/119000, c/119183, c/119582, c++/79786, c++/86769, c++/98533, c++/98935, c++/99214, c++/99546, c++/100476, c++/101180, c++/102051, c++/105104, c++/105475, c++/106973, c++/106976, c++/107522, c++/109464, c++/109682, c++/109961, c++/110635, c++/110871, c++/110872, c++/111075, c++/111728, c++/112341, c++/113457, c++/113773, c++/113835, c++/113925, c++/114292, c++/114525, c++/114630, c++/114772, c++/114970, c++/114992, c++/115434, c++/115580, c++/115586, c++/115905, c++/115906, c++/116379, c++/116482, c++/116502, c++/116506, c++/116681, c++/116731, c++/116793, c++/116880, c++/116954, c++/116960, c++/117153, c++/117336, c++/117501, c++/117504, c++/117512, c++/117530, c++/117775, c++/117778, c++/117827, c++/117849, c++/117855, c++/118047, c++/118049, c++/118053, c++/118104, c++/118147, c++/118245, c++/118255, c++/118285, c++/118355, c++/118509, c++/118590, c++/118629, c++/118655, c++/118661, c++/118673, c++/118763, c++/118775, c++/118822, c++/118849, c++/119038, c++/119045, c++/119123, c++/119134, c++/119150, c++/119175, c++/119194, c++/119233, c++/119303, c++/119316, c++/119344, c++/119345, c++/119378, c++/119383, c++/119387, c++/119574, c++/119652, c++/119687, c++/119807, c++/119981, c++/120123, c++/120125, c++/120161, d/114434, d/115249, d/116373, d/116961, d/117002, d/117115, d/117621, d/118309, d/118477, d/119112, d/119139, d/119817, d/119826, debug/101533, driver/117739, driver/119727, fortran/59252, fortran/81978, fortran/85750, fortran/98454, fortran/103391, fortran/106692, fortran/106948, fortran/108434, fortran/108454, fortran/109066, fortran/110993, fortran/116706, fortran/117434, fortran/118080, fortran/118640, fortran/118683, fortran/118750, fortran/119054, fortran/119380, fortran/119656, fortran/119986, fortran/120191, gcov-profile/116743, ipa/111245, ipa/113197, ipa/116572, ipa/117432, ipa/118243, ipa/118318, ipa/118400, ipa/119067, ipa/119852, jit/118780, libfortran/118571, libfortran/120196, libgcc/101075, libgcc/119151, libgcc/119796, libstdc++/21334, libstdc++/90389, libstdc++/99832, libstdc++/100249, libstdc++/101527, libstdc++/101587, libstdc++/104395, libstdc++/105258, libstdc++/105609, libstdc++/106612, libstdc++/108487, libstdc++/108760, libstdc++/108846, libstdc++/110498, libstdc++/112490, libstdc++/112803, libstdc++/114758, libstdc++/114945, libstdc++/115046, libstdc++/115285, libstdc++/115939, libstdc++/116212, libstdc++/116440, libstdc++/116471, libstdc++/117121, libstdc++/117921, libstdc++/117983, libstdc++/118083, libstdc++/118158, libstdc++/118160, libstdc++/118185, libstdc++/118413, libstdc++/118699, libstdc++/118811, libstdc++/119121, libstdc++/119135, libstdc++/119429, libstdc++/119469, libstdc++/119593, libstdc++/119671, libstdc++/120198, libstdc++/120548, lto/91299, lto/113207, lto/114501, lto/119625, lto/119792, middle-end/66279, middle-end/101478, middle-end/111285, middle-end/113546, middle-end/114877, middle-end/115871, middle-end/115913, middle-end/117498, middle-end/117811, middle-end/118140, middle-end/118411, middle-end/118819, middle-end/118950, middle-end/119119, middle-end/119204, middle-end/119219, middle-end/119706, middle-end/119808, middle-end/120547, modula2/115032, modula2/115112, modula2/118703, modula2/118761, preprocessor/108900, preprocessor/116047, preprocessor/120061, rtl-optimization/115568, rtl-optimization/116564, rtl-optimization/117186, rtl-optimization/117239, rtl-optimization/117506, rtl-optimization/118320, rtl-optimization/118638, rtl-optimization/118662, rtl-optimization/118739, rtl-optimization/119071, rtl-optimization/119291, rtl-optimization/119689, rtl-optimization/119785, target/86772, target/106544, target/110901, target/113257, target/115258, target/115485, target/116036, target/116086, target/116111, target/116149, target/116240, target/116256, target/116305, target/116308, target/116550, target/116591, target/116592, target/116593, target/116693, target/116720, target/116809, target/116827, target/116927, target/117286, target/117383, target/117483, target/117544, target/117682, target/117878, target/118067, target/118137, target/118154, target/118182, target/118184, target/118329, target/118357, target/118501, target/118531, target/118561, target/118601, target/118623, target/118685, target/118776, target/118813, target/118815, target/118825, target/118835, target/118843, target/118844, target/118892, target/118942, target/119084, target/119133, target/119172, target/119235, target/119327, target/119340, target/119383, target/119386, target/119408, target/119450, target/119533, target/119547, target/119549, target/119572, target/119610, target/119784, target/119834, target/120441, target/120480, testsuite/52641, testsuite/116448, testsuite/118127, testsuite/118597, tree-optimization/117358, tree-optimization/120638 tree-optimization/87984, tree-optimization/98845, tree-optimization/111873, tree-optimization/112859, tree-optimization/113197, tree-optimization/114052, tree-optimization/115347, tree-optimization/115494, tree-optimization/116098, tree-optimization/116125, tree-optimization/116412, tree-optimization/116749, tree-optimization/116906, tree-optimization/116922, tree-optimization/117113, tree-optimization/117119, tree-optimization/117243, tree-optimization/117424, tree-optimization/117919, tree-optimization/117979, tree-optimization/118476, tree-optimization/118522, tree-optimization/118605, tree-optimization/118653, tree-optimization/118689, tree-optimization/118717, tree-optimization/118915, tree-optimization/118922, tree-optimization/118924, tree-optimization/118953, tree-optimization/118976, tree-optimization/119057, tree-optimization/119096, tree-optimization/119145, tree-optimization/119351, tree-optimization/119399, tree-optimization/119417, tree-optimization/119534, tree-optimization/119706, tree-optimization/119707, tree-optimization/119722, tree-optimization/119778, tree-optimization/120048, tree-optimization/120156 * Mon May 26 2025 Siddhesh Poyarekar 14.2.1-8 - Tune for z16 on s390x by default on RHEL10 and later (RHEL-86679) * Tue Jan 21 2025 Marek Polacek 14.2.1-7 - update from releases/gcc-14 branch (RHEL-65532) - PRs ada/113036, ada/113868, ada/115917, ada/117328, ada/117996, analyzer/115724, c/117641, c/117745, c/117802, c++/100358, c++/101463, c++/102594, c++/109859, c++/113108, c++/114854, c++/115008, c++/115430, c++/115657, c++/116108, c++/116634, c++/117158, c++/117317, c++/117614, c++/117615, c++/117792, c++/117825, c++/117845, c++/117880, c++/117925, c++/117985, c++/118060, c++/118069, driver/117942, fortran/84674, fortran/84869, fortran/105054, fortran/109105, fortran/109345, fortran/115070, fortran/115348, fortran/116388, fortran/117730, fortran/117763, fortran/117774, fortran/117791, fortran/117797, fortran/117819, fortran/117820, fortran/117843, fortran/117897, libgomp/117851, libstdc++/89624, libstdc++/106212, libstdc++/106676, libstdc++/108236, libstdc++/109517, libstdc++/109976, libstdc++/112349, libstdc++/112641, libstdc++/117520, libstdc++/117560, libstdc++/117822, libstdc++/117962, libstdc++/117966, libstdc++/118035, libstdc++/118093, middle-end/43374, middle-end/102674, middle-end/116997, middle-end/117433, middle-end/117458, middle-end/117459, middle-end/117847, middle-end/118024, modula2/114529, modula2/115003, modula2/115057, modula2/115164, modula2/115276, modula2/115328, modula2/115536, modula2/115540, modula2/115804, modula2/115823, modula2/115957, modula2/116048, modula2/116181, modula2/116378, modula2/116557, modula2/116918, modula2/117120, modula2/117371, modula2/117555, modula2/117660, modula2/117904, modula2/117948, other/116603, preprocessor/117118, rtl-optimization/113994, rtl-optimization/116799, rtl-optimization/117095, sanitizer/117960, target/64242, target/114801, target/114942, target/116371, target/116629, target/116999, target/117045, target/117105, target/117304, target/117357, target/117408, target/117418, target/117443, target/117500, target/117525, target/117562, target/117564, target/117642, target/117659, target/117675, target/117744, target/117926, testsuite/103298, testsuite/109360, tree-optimization/94589, tree-optimization/112376, tree-optimization/116463, tree-optimization/117142, tree-optimization/117254, tree-optimization/117307, tree-optimization/117333, tree-optimization/117398, tree-optimization/117417, tree-optimization/117439, tree-optimization/117574, tree-optimization/117594, tree-optimization/117612, tree-optimization/117912 - fix up -freport-bug default (#2330362, RHEL-73475) - revert -mearly-ldp-fusion and -mlate-ldp-fusion default to enabled on aarch64 to match upstream (RHEL-73585) - consider TARGET_EXPR invariant like SAVE_EXPR (PR c++/118509) * Wed Nov 6 2024 Joseph Myers - 14.2.1-6 - update from releases/gcc-14 branch - PRs ada/114593, ada/114636, ada/114640, ada/115535, ada/116190, ada/116430, ada/116551, c/116726, c/117230, c++/88313, c++/96097, c++/112288, c++/115296, c++/115361, c++/115656, c++/115987, c++/116071, c++/116219, c++/116223, c++/116276, c++/116320, c++/116327, c++/116369, c++/116384, c++/116418, c++/116424, c++/116449, c++/116476, c++/116492, c++/116534, c++/116567, c++/116606, c++/116636, c++/116676, c++/116678, c++/116929, c++/117054, c++/117107, c++/117259, c++/117274, fortran/79685, fortran/84868, fortran/100273, fortran/108889, fortran/116530, ipa/109985, ipa/115815, ipa/116410, jit/117275, libstdc++/37475, libstdc++/108619, libstdc++/113663, libstdc++/116038, libstdc++/116159, libstdc++/116381, libstdc++/116529, libstdc++/116549, libstdc++/116641, libstdc++/116754, libstdc++/116755, libstdc++/116777, libstdc++/116857, libstdc++/117085, libstdc++/117094, libstdc++/117135, libstdc++/117321, libstdc++/117406, lto/116361, lto/116614, middle-end/115110, middle-end/115426, middle-end/115641, middle-end/116258, middle-end/116259, middle-end/116454, middle-end/116891, middle-end/116898, middle-end/116899, middle-end/117086, middle-end/117249, middle-end/117354, rtl-optimization/116783, rtl-optimization/117327, sanitizer/117209, target/85624, target/112108, target/113384, target/115464, target/115860, target/116007, target/116033, target/116043, target/116174, target/116189, target/116237, target/116287, target/116295, target/116390, target/116407, target/116415, target/116512, target/116617, target/116627, target/116738, target/116839, target/116883, target/116921, target/116953, target/116962, target/117116, target/117159, target/117240, target/117296, target/117318, testsuite/70150, testsuite/116238, tree-optimization/107467, tree-optimization/113281, tree-optimization/116156, tree-optimization/116166, tree-optimization/116224, tree-optimization/116258, tree-optimization/116274, tree-optimization/116290, tree-optimization/116380, tree-optimization/116460, tree-optimization/116481, tree-optimization/116501, tree-optimization/116585, tree-optimization/116610, tree-optimization/116768, tree-optimization/116850, tree-optimization/116879, tree-optimization/116907, tree-optimization/116982, tree-optimization/116990, tree-optimization/117041, tree-optimization/117104, tree-optimization/117287 - add hint #34 to aarch64 sanitizer asm stubs if -mbranch-protection=standard (#2306353) * Tue Oct 29 2024 Troy Dawson - 14.2.1-2.1 - Bump release for October 2024 mass rebuild: Resolves: RHEL-64018 * Wed Sep 25 2024 Siddhesh Poyarekar 14.2.1-2 - Default tuning to power 10 for RHEL10 and later (RHEL-56476). * Thu Aug 1 2024 Jakub Jelinek 14.2.1-1 - update from releases/gcc-14 branch - GCC 14.2 release - PRs analyzer/114899, c++/99241, c++/99242, c++/104981, c++/106760, c++/111890, c++/115165, c++/115476, c++/115550, c++/115561, c++/115583, c++/115623, c++/115754, c++/115783, c++/115865, c++/115897, c++/115900, c++/115986, fortran/59104, fortran/84006, fortran/93635, fortran/98534, fortran/99798, fortran/100027, fortran/103115, fortran/103312, fortran/113363, fortran/115700, ipa/111613, ipa/113291, ipa/113787, ipa/114207, ipa/115033, ipa/115277, ipa/116055, libstdc++/113376, libstdc++/114387, libstdc++/115399, libstdc++/115482, libstdc++/115522, libstdc++/115585, libstdc++/115807, libstdc++/115854, libstdc++/116070, middle-end/115527, middle-end/115836, middle-end/115887, pch/115312, rtl-optimization/115049, rtl-optimization/115565, target/87376, target/88236, target/97367, target/98762, target/105090, target/113715, target/114759, target/114890, target/114936, target/114988, target/115068, target/115153, target/115188, target/115351, target/115389, target/115456, target/115457, target/115459, target/115475, target/115526, target/115554, target/115562, target/115591, target/115611, target/115691, target/115725, target/115726, target/115752, target/115763, target/115840, target/115872, target/115978, target/115981, target/115988, target/116035, testsuite/115826, testsuite/116061, tree-optimization/113673, tree-optimization/115382, tree-optimization/115646, tree-optimization/115669, tree-optimization/115694, tree-optimization/115701, tree-optimization/115723, tree-optimization/115841, tree-optimization/115843, tree-optimization/115867, tree-optimization/115868, tree-optimization/116034, tree-optimization/116057 * Mon Jul 1 2024 Jakub Jelinek 14.1.1-7 - update from releases/gcc-14 branch - PRs c/114930, c/115502, c/115587, c++/115198, c++/115358, c++/115504, c++/115624, fortran/114019, fortran/115390, libstdc++/115454, libstdc++/115575, libstdc++/115668, target/106069, target/114846, target/115342, target/115355, target/115608, tree-optimization/115278, tree-optimization/115508 - revert the August 2016 workaround for python bytecode compilation (#2294381) * Thu Jun 20 2024 Jakub Jelinek 14.1.1-6 - update from releases/gcc-14 branch - PRs ada/114398, ada/114708, c/115290, c++/99678, c++/115239, c++/115283, c++/115378, c++/115511, driver/115440, fortran/83865, jit/115442, libstdc++/114958, libstdc++/115247, libstdc++/115308, rtl-optimization/115281, target/109549, target/111343, target/115253, target/115353, target/115360, tree-optimization/115544 - fix s390x ICEs with vector permutations from memory (#2293207, #2292501) * Fri Jun 7 2024 Jakub Jelinek 14.1.1-5 - update from releases/gcc-14 branch - PRs ada/115270, c/114493, c++/105320, c++/114275, c++/114868, c++/114983, c++/115187, fortran/86100, fortran/115150, libstdc++/109849, libstdc++/111641, libstdc++/114940, libstdc++/115099, libstdc++/115269, libstdc++/115335, middle-end/108789, middle-end/115352, modula2/114886, rtl-optimization/114902, rtl-optimization/115038, rtl-optimization/115092, target/113719, target/115169, target/115297, target/115317, target/115324, tree-optimization/115149, tree-optimization/115192, tree-optimization/115197, tree-optimization/115232, tree-optimization/115307, tree-optimization/115337 * Wed May 22 2024 Jakub Jelinek 14.1.1-4 - update from releases/gcc-14 branch - PRs c++/114901, c++/114903, c++/114974, c++/114994, c++/115114, c++/115139, driver/114980, fortran/114827, fortran/114874, fortran/115039, libstdc++/107800, libstdc++/114866, libstdc++/114891, libstdc++/115015, libstdc++/115063, libstdc++/115119, middle-end/114931, sanitizer/115172, target/69374, target/112959, target/114968, target/114975, target/114981, target/115065, target/115069, tree-optimization/114998, tree-optimization/115143, tree-optimization/115152, tree-optimization/115154 * Tue May 21 2024 Siddhesh Poyarekar 14.1.1-3 - update new SPDX identifiers from all outstanding issues * Thu May 16 2024 Marek Polacek 14.1.1-2 - fix a combinatorial explosion in combine (PR rtl-optimization/101523) * Wed May 8 2024 Jakub Jelinek 14.1.1-1 - update from releases/gcc-14 branch - GCC 14.1.0 release - PRs analyzer/111475, c++/89224, c++/114856, c++/114889, c++/114935, ipa/92606, middle-end/114734, middle-end/114907, modula2/113768, modula2/114133, modula2/114929, rtl-optimization/114924, sanitizer/114956, tree-optimization/114876, tree-optimization/114921, tree-optimization/114965 * Fri May 3 2024 Marek Polacek - enable hardening and configure with --enable-host-pie --enable-host-bind-now on RHEL - don't require rocm-runtime on RHEL * Tue Apr 30 2024 Jakub Jelinek 14.0.1-0.16 - update from trunk and releases/gcc-14 branch - GCC 14.1.0-rc1 - PRs c++/93595, c++/99426, c++/106820, c++/107457, c++/109966, c++/111284, c++/113141, c++/114078, c++/114393, c++/114426, c++/114600, c++/114634, c++/114691, c++/114706, c++/114709, c++/114784, c++/114795, c++/114888, c/92880, c/114780, d/111650, fortran/89462, fortran/93678, fortran/102597, fortran/103471, fortran/103496, fortran/113793, fortran/114739, fortran/114825, fortran/114959, gcov-profile/114715, gcov-profile/114720, libgcc/114689, libgcc/114755, libgcc/114762, libstdc++/93672, libstdc++/113386, libstdc++/114750, libstdc++/114770, libstdc++/114803, libstdc++/114863, lto/113208, lto/114574, middle-end/112938, middle-end/114753, modula2/112893, modula2/114745, modula2/114807, modula2/114811, modula2/114836, other/114738, preprocessor/114748, rtl-optimization/114768, sanitizer/114687, sanitizer/114743, target/110621, target/112431, target/112432, target/114416, target/114668, target/114676, target/114696, target/114714, target/114741, target/114752, target/114783, target/114794, target/114810, target/114837, target/114861, target/114885, testsuite/113706, testsuite/114744, testsuite/114768, tree-optimization/114403, tree-optimization/114666, tree-optimization/114733, tree-optimization/114736, tree-optimization/114749, tree-optimization/114769, tree-optimization/114787, tree-optimization/114792, tree-optimization/114799, tree-optimization/114832, tree-optimization/114883 - switch to --with-arch_64=x86-64-v3 for latest RHEL - remove obsolete reason for not shipping *.gch* files * Thu Apr 11 2024 Jakub Jelinek 14.0.1-0.15 - update from trunk - PRs analyzer/114472, c++/114303, c++/114409, debug/112878, fortran/106500, middle-end/110027, middle-end/114681, target/114639, tree-optimization/109596, tree-optimization/114672 - fix symbol version of std::__basic_file::native_handle() const (PR libstdc++/114692) - emit -Whardened warning even for -fhardened -fcf-protection=none (#2273610, PR target/114606) * Wed Apr 10 2024 Jakub Jelinek 14.0.1-0.14 - update from trunk - PRs analyzer/114588, bootstrap/106472, c++/91079, c++/99377, c++/100667, c++/103825, c++/104040, c++/111132, c++/114377, c++/114462, c++/114479, c++/114537, c++/114561, c++/114562, c++/114572, c++/114580, c/114361, debug/114608, fortran/36337, fortran/50410, fortran/106999, fortran/110987, fortran/112407, fortran/113885, fortran/113956, fortran/114474, fortran/114535, gcov-profile/113765, gcov-profile/114115, gcov-profile/114601, ipa/111571, ipa/113359, ipa/113907, ipa/113964, libquadmath/114533, libquadmath/114623, libstdc++/104606, libstdc++/114519, libstdc++/114633, lto/114655, middle-end/114552, middle-end/114599, middle-end/114604, middle-end/114627, middle-end/114628, modula2/114517, modula2/114520, modula2/114548, modula2/114565, modula2/114617, modula2/114648, rtl-optimization/112560, rtl-optimization/114415, target/88309, target/101865, target/112919, target/113233, target/113986, target/114577, target/114587, target/114590, target/114603, target/114607, testsuite/114034, testsuite/114036, testsuite/114307, testsuite/114614, testsuite/114642, testsuite/114662, tree-optimization/112303, tree-optimization/114115, tree-optimization/114480, tree-optimization/114485, tree-optimization/114551, tree-optimization/114555, tree-optimization/114557, tree-optimization/114566, tree-optimization/114624 - don't emit VEX encoded AES-NI instructions when just -maes and not -mavx is enabled (#2272758, PR target/114576) - fix s390* peephole2 to check mode of constant pool entries and for 64-bit extraction from 128-bit constant pool entry extract the correct half of the value (#2273618, PR target/114605) * Thu Mar 28 2024 Jakub Jelinek 14.0.1-0.13 - update from trunk - PRs analyzer/109251, analyzer/110902, analyzer/110928, analyzer/111305, analyzer/111441, analyzer/112974, analyzer/112975, analyzer/113505, analyzer/113619, analyzer/114286, analyzer/114408, analyzer/114473, bootstrap/114369, c++/59465, c++/100557, c++/110323, c++/111918, c++/112631, c++/112724, c++/114349, c++/114439, c/109619, c/114364, fortran/30802, fortran/55978, fortran/101135, fortran/103715, fortran/107426, fortran/111781, fortran/114475, ipa/108802, ipa/114254, libfortran/107031, libgcc/111731, libgcc/114397, libstdc++/101228, libstdc++/113841, libstdc++/114316, libstdc++/114359, libstdc++/114367, libstdc++/114394, libstdc++/114400, libstdc++/114401, middle-end/111151, middle-end/111632, middle-end/111683, middle-end/113396, middle-end/114347, middle-end/114348, middle-end/114480, modula2/113836, modula2/114296, modula2/114380, modula2/114418, modula2/114422, modula2/114443, modula2/114444, modula2/114478, rtl-optimization/101523, rtl-optimization/112415, sanitizer/111736, target/99829, target/111822, target/112651, target/114049, target/114150, target/114175, target/114194, target/114272, target/114323, target/114334, target/114352, target/114407, target/114431, testsuite/114320, testsuite/114486, tree-optimization/96147, tree-optimization/109925, tree-optimization/111736, tree-optimization/113727, tree-optimization/114057, tree-optimization/114151, tree-optimization/114322, tree-optimization/114329, tree-optimization/114365, tree-optimization/114375, tree-optimization/114396, tree-optimization/114405, tree-optimization/114425, tree-optimization/114433, tree-optimization/114464, tree-optimization/114469, tree-optimization/114471 * Sat Mar 16 2024 Jakub Jelinek 14.0.1-0.12 - update from trunk - PRs ada/113979, analyzer/114159, c++/92687, c++/98356, c++/98645, c++/98688, c++/98881, c++/103994, c++/104919, c++/105512, c++/106009, c++/110025, c++/110031, c++/110347, c++/110730, c++/111224, c++/111710, c++/113629, c++/113802, c++/113976, c++/113987, c++/114005, c++/114114, c++/114138, c++/114170, c++/114229, d/112285, d/112290, d/114171, debug/113519, debug/113777, debug/113918, debug/114015, debug/114186, driver/114314, fortran/82943, fortran/86148, fortran/86268, fortran/87477, fortran/89645, fortran/99065, fortran/103707, fortran/104819, fortran/106987, fortran/110826, fortran/114001, fortran/114141, fortran/114280, fortran/114283, ipa/113757, libbacktrace/114201, libcc1/113977, libfortran/105437, libfortran/114304, libgcc/114327, libgomp/114216, libstdc++/66146, libstdc++/113960, libstdc++/114103, libstdc++/114147, libstdc++/114152, libstdc++/114240, libstdc++/114244, libstdc++/114279, libstdc++/114325, middle-end/95351, middle-end/105533, middle-end/113907, middle-end/114108, middle-end/114136, middle-end/114156, middle-end/114157, middle-end/114196, middle-end/114209, middle-end/114299, middle-end/114313, middle-end/114319, middle-end/114332, modula2/102344, modula2/109969, modula2/114227, modula2/114294, modula2/114295, modula2/114333, preprocessor/80755, preprocessor/110558, rtl-optimization/110079, rtl-optimization/113010, rtl-optimization/114190, rtl-optimization/114211, sanitizer/97696, sanitizer/112709, target/92729, target/101737, target/102250, target/108174, target/111362, target/112337, target/112817, target/112871, target/113001, target/113453, target/113510, target/113542, target/113618, target/113720, target/113790, target/113915, target/113950, target/114100, target/114116, target/114130, target/114132, target/114184, target/114187, target/114200, target/114202, target/114232, target/114233, target/114264, target/114284, target/114288, target/114310, target/114339, testsuite/96109, testsuite/108355, testsuite/113418, testsuite/113428, tree-optimization/98238, tree-optimization/110199, tree-optimization/113466, tree-optimization/113557, tree-optimization/114009, tree-optimization/114071, tree-optimization/114121, tree-optimization/114164, tree-optimization/114192, tree-optimization/114197, tree-optimization/114203, tree-optimization/114231, tree-optimization/114239, tree-optimization/114246, tree-optimization/114249, tree-optimization/114269, tree-optimization/114278, tree-optimization/114293, tree-optimization/114297 * Thu Mar 7 2024 Siddhesh Poyarekar - update License identifier in the spec file * Mon Mar 4 2024 Jakub Jelinek - add --without-clang-plugin --without-llvm-plugin to annobin configure options * Thu Feb 29 2024 David Abdurachmanov - enable support for riscv64 * Wed Feb 28 2024 Jakub Jelinek 14.0.1-0.8 - update from trunk - PRs ada/113893, analyzer/110483, analyzer/110520, analyzer/111289, analyzer/111802, analyzer/111881, analyzer/113983, analyzer/113998, analyzer/113999, c++/113083, c++/113966, c++/113970, c/114007, c/114042, fortran/105658, fortran/107071, fortran/114012, fortran/114024, ipa/61159, ipa/70582, ipa/111960, ipa/113476, libfortran/105456, libfortran/105473, middle-end/112344, middle-end/114070, middle-end/114073, middle-end/114084, modula2/113749, modula2/113889, modula2/114026, modula2/114055, other/109668, other/113957, rtl-optimization/54052, rtl-optimization/114044, rtl-optimization/114054, target/90785, target/108120, target/109987, target/112103, target/112375, target/112397, target/113220, target/113295, target/113613, target/113696, target/113805, target/113912, target/113971, target/113995, target/114017, target/114028, target/114094, target/114097, target/114098, testsuite/111462, tree-optimization/91567, tree-optimization/109804, tree-optimization/113205, tree-optimization/113967, tree-optimization/113988, tree-optimization/113993, tree-optimization/114027, tree-optimization/114038, tree-optimization/114040, tree-optimization/114041, tree-optimization/114048, tree-optimization/114068, tree-optimization/114074, tree-optimization/114081, tree-optimization/114090, tree-optimization/114099 - fix up handling of C++ inline var specializations (#2264986, PR c++/114013) - punt on vectorization of +- with non-integral emulated vectors (#2265489, PR tree-optimization/114075) - fix up handling of references of comdat local symbols forced into memory (#2260416, PR rtl-optimization/113617) * Sat Feb 17 2024 Jakub Jelinek 14.0.1-0.7 - update from trunk - PRs analyzer/111266, c++/97202, c++/97990, c++/98388, c++/99573, c++/107126, c++/111682, c++/112436, c++/112580, c++/113158, c++/113332, c++/113545, c++/113612, c++/113649, c++/113658, c++/113674, c++/113706, c++/113708, c++/113760, c++/113789, c++/113834, c++/113853, c++/113908, c++/113929, d/104739, d/113125, d/113667, d/113758, d/113772, fortran/99210, fortran/105847, fortran/113799, fortran/113866, fortran/113883, fortran/113911, ipa/98237, libfortran/107068, libgcc/113850, libgomp/113843, libstdc++/87744, libstdc++/99117, libstdc++/100147, libstdc++/113294, libstdc++/113806, libstdc++/113807, libstdc++/113811, libstdc++/113931, libstdc++/113961, middle-end/107385, middle-end/110754, middle-end/113415, middle-end/113508, middle-end/113576, middle-end/113904, middle-end/113921, modula2/113848, modula2/113888, other/113336, sanitizer/113785, target/106543, target/109349, target/113742, target/113780, target/113855, target/113871, target/113876, target/113909, target/113927, testsuite/113278, testsuite/113448, testsuite/113861, testsuite/113899, tree-optimization/108355, tree-optimization/111054, tree-optimization/111156, tree-optimization/113567, tree-optimization/113734, tree-optimization/113774, tree-optimization/113783, tree-optimization/113818, tree-optimization/113831, tree-optimization/113849, tree-optimization/113863, tree-optimization/113895, tree-optimization/113896, tree-optimization/113898, tree-optimization/113902, tree-optimization/113910 - fix bugs in Fortran allocatable character component assignments (#2261826, PR fortran/113503) * Thu Feb 8 2024 Jakub Jelinek 14.0.1-0.6 - update from trunk - PRs c++/113814, c/113776, target/113711, target/113733, target/113824, testsuite/113710, tree-optimization/113735, tree-optimization/113808 * Wed Feb 7 2024 Jakub Jelinek 14.0.1-0.5 - update from trunk - PRs analyzer/113253, analyzer/113509, analyzer/113654, c++/94231, c++/107291, c++/107594, c++/109359, c++/110006, c++/110084, c++/110358, c++/111286, c++/112437, c++/112439, c++/112737, c++/112769, c++/112846, c++/113451, c++/113531, c++/113544, c++/113638, c++/113640, c++/113644, c++/113788, c/111059, c/111911, c/112571, c/113438, c/113740, debug/103047, debug/113394, debug/113637, fortran/104908, libfortran/111022, libgcc/113337, libgcc/113402, libgcc/113403, libgcc/113604, libstdc++/109203, libstdc++/113309, libstdc++/113335, libstdc++/90276, middle-end/101195, middle-end/110176, middle-end/112917, middle-end/113100, middle-end/113607, middle-end/113622, middle-end/113699, middle-end/113705, middle-end/113722, modula2/111627, modula2/112506, modula2/113730, rtl-optimization/113656, sanitizer/110676, sanitizer/112644, target/38534, target/59778, target/103503, target/105576, target/108933, target/111677, target/112577, target/112861, target/112862, target/112863, target/112864, target/112950, target/113059, target/113249, target/113255, target/113312, target/113560, target/113615, target/113616, target/113623, target/113636, target/113655, target/113657, target/113689, target/113690, target/113697, target/113700, target/113701, target/113763, target/113766, testsuite/113502, tree-optimization/110603, tree-optimization/111268, tree-optimization/111444, tree-optimization/113467, tree-optimization/113568, tree-optimization/113588, tree-optimization/113603, tree-optimization/113614, tree-optimization/113630, tree-optimization/113639, tree-optimization/113659, tree-optimization/113670, tree-optimization/113691, tree-optimization/113692, tree-optimization/113693, tree-optimization/113707, tree-optimization/113731, tree-optimization/113736, tree-optimization/113737, tree-optimization/113750, tree-optimization/113753, tree-optimization/113756, tree-optimization/113759, tree-optimization/113796 - fix PCH writing assertion (#2259912) * Sat Jan 27 2024 Jakub Jelinek 14.0.1-0.4 - update from trunk - PRs analyzer/112969, c++/109227, c++/112899, c++/113580, c++/113598, c++/113599, middle-end/112971, other/113575, preprocessor/105608, target/100204, target/100212, target/112987, target/113469, target/113526, target/113538, target/113601, testsuite/113558, tree-optimization/113602 - temporarily disable -mearly-ldp-fusion -mlate-ldp-fusion on aarch64 again (#2260449, #2260560, #2260562) - use gcc_major macro in the spec some more - require llvm >= 15 and lld >= 15 for the amdgcn offloading where they are used as assembler and linker * Thu Jan 25 2024 Jakub Jelinek 14.0.1-0.3 - update from trunk - PRs analyzer/111361, analyzer/112705, analyzer/112811, analyzer/112927, analyzer/112977, bootstrap/113554, c++/67898, c++/90463, c++/90464, c++/100707, c++/102607, c++/104594, c++/109640, c++/109642, c++/111357, c++/111410, c++/111607, c++/112594, c++/112632, c++/112820, c++/113256, c++/113347, c++/113405, c++/113498, c++/113529, c/102998, c/107942, c/109708, c/110029, c/113492, c/113518, debug/107058, debug/112718, debug/113382, debug/113488, fortran/48776, fortran/111291, fortran/113377, fortran/113471, ipa/108007, ipa/108470, ipa/110705, ipa/112616, ipa/113490, libstdc++/113500, libstdc++/113512, middle-end/88345, middle-end/112684, middle-end/113574, modula2/113559, other/111966, rtl-optimization/111267, rtl-optimization/113255, target/82420, target/100942, target/108521, target/108640, target/109092, target/109636, target/110934, target/111279, target/112989, target/113030, target/113070, target/113089, target/113095, target/113114, target/113356, target/113420, target/113485, target/113486, target/113495, target/113550, target/113556, target/113572, testsuite/113437, testsuite/113548, tree-optimization/69807, tree-optimization/113364, tree-optimization/113373, tree-optimization/113459, tree-optimization/113462, tree-optimization/113463, tree-optimization/113464, tree-optimization/113491, tree-optimization/113494, tree-optimization/113552, tree-optimization/113576 - add offloading support for AMD GCN ROCm capable devices * Thu Jan 18 2024 Jakub Jelinek 14.0.1-0.2 - update from trunk - PRs ada/113397, analyzer/106229, analyzer/113150, analyzer/113333, bootstrap/113445, c++/99493, c++/104634, c++/109899, c++/110065, c++/112588, c++/113242, c++/113292, c++/113307, c++/113340, c++/113389, c/111693, fortran/67277, fortran/113305, libstdc++/108822, libstdc++/108827, libstdc++/109536, libstdc++/111327, libstdc++/113318, libstdc++/113450, middle-end/90348, middle-end/110115, middle-end/110847, middle-end/111422, middle-end/111659, middle-end/113354, middle-end/113406, middle-end/113409, middle-end/113410, modula2/111956, other/113399, rtl-optimization/96388, rtl-optimization/111554, rtl-optimization/113048, rust/108111, target/105522, target/107201, target/112573, target/112944, target/112973, target/113122, target/113156, target/113221, target/113247, target/113281, target/113393, target/113404, target/113429, testsuite/109705, testsuite/111850, testsuite/113366, testsuite/113369, testsuite/113446, testsuite/113452, translation/108890, tree-optimization/91624, tree-optimization/107823, tree-optimization/110251, tree-optimization/110422, tree-optimization/110450, tree-optimization/110768, tree-optimization/110794, tree-optimization/110841, tree-optimization/110852, tree-optimization/110941, tree-optimization/112774, tree-optimization/113091, tree-optimization/113287, tree-optimization/113361, tree-optimization/113370, tree-optimization/113371, tree-optimization/113372, tree-optimization/113374, tree-optimization/113385, tree-optimization/113408, tree-optimization/113421, tree-optimization/113431, tree-optimization/113475 * Sat Jan 13 2024 Jakub Jelinek 14.0.1-0.1 - new package