%global scl 1 %global vendor %{?_vendor:%{_vendor}}%{!?_vendor:openEuler} %global gcc_major 14 %global _unpackaged_files_terminate_build 0 %global _performance_build 1 # Hardening slows the compiler way too much. %undefine _hardened_build %undefine _annotated_build %if 0%{?scl:1} %global _scl_prefix gcc-toolset-14- %global _scl_path /opt/%{vendor}/gcc-toolset-14 %global _scl_root /opt/%{vendor}/gcc-toolset-14/root %global _prefix %{_scl_root}/usr %global _bindir %{_prefix}/bin %global gcc_ver %{nil} %define binsuffix %{nil} %define __provides_exclude ^lib.*$ %global _root_infodir /usr/share/info %global _root_prefix /usr %global _root_sysconfdir /etc %global _enable_debug_packages 0 %endif %global multilib_64_archs sparc64 ppc64 ppc64p7 %global build_ada 0 %global build_objc 0 %global build_go 0 %global build_d 0 %ifarch %{ix86} x86_64 ia64 ppc ppc64 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 %global build_libstdcxx_docs 0 %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 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 Summary: Various compilers (C, C++, Objective-C, ...) Name: %{?_scl_prefix}gcc%{gcc_ver} Version: 14.2.1 Release: 2 # libgcc, libgfortran, libgomp, libstdc++ and crtstuff have # GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD ExcludeArch: loongarch64 Source0: https://ftp.gnu.org/gnu/gcc/gcc-14.2.0/gcc-14.2.0.tar.xz URL: http://gcc.gnu.org BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: binutils >= 2.31 BuildRequires: glibc-headers BuildRequires: libtool, zlib-devel, texinfo, gettext, flex, bison, sharutils BuildRequires: gmp-devel >= 4.1.2, mpfr-devel >= 3.1.0, libmpc-devel >= 0.8.1, isl-devel >= 0.15.0 BuildRequires: gcc, gcc-c++, make, chrpath BuildRequires: gdb BuildRequires: glibc-devel >= 2.17 %ifarch %{multilib_64_archs} sparcv9 ppc # Ensure glibc{,-devel} is installed for both multilib arches BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so %endif %ifarch ia64 BuildRequires: libunwind >= 0.98 %endif Requires: binutils >= 2.31 Conflicts: gdb < 5.1-2 Requires: glibc-devel >= 2.17 %if %{build_libstdcxx_docs} BuildRequires: libxml2 BuildRequires: graphviz BuildRequires: doxygen >= 1.7.1 BuildRequires: dblatex, texlive-collection-latex, docbook-style-xsl %endif %if %{build_libasan} Requires: %{?_scl_prefix}libasan%{gcc_ver} = %{version}-%{release} %endif Requires: libgcc >= 4.1.2-43 Requires: libgomp >= 4.4.4-13 # lto-wrapper invokes make Requires: make AutoReq: true # Various libraries are imported. #1859893 asks us to list them all. Provides: %{?_scl_prefix}gcc%{gcc_ver}(major) = %{gcc_major} %global oformat %{nil} %global oformat2 %{nil} %ifarch %{ix86} %global oformat OUTPUT_FORMAT(elf32-i386) %endif %ifarch x86_64 %global oformat OUTPUT_FORMAT(elf64-x86-64) %global oformat2 OUTPUT_FORMAT(elf32-i386) %endif %ifarch ppc %global oformat OUTPUT_FORMAT(elf32-powerpc) %global oformat2 OUTPUT_FORMAT(elf64-powerpc) %endif %ifarch ppc64 %global oformat OUTPUT_FORMAT(elf64-powerpc) %global oformat2 OUTPUT_FORMAT(elf32-powerpc) %endif %ifarch s390 %global oformat OUTPUT_FORMAT(elf32-s390) %endif %ifarch s390x %global oformat OUTPUT_FORMAT(elf64-s390) %global oformat2 OUTPUT_FORMAT(elf32-s390) %endif %ifarch ia64 %global oformat OUTPUT_FORMAT(elf64-ia64-little) %endif %ifarch ppc64le %global oformat OUTPUT_FORMAT(elf64-powerpcle) %endif %ifarch aarch64 %global oformat OUTPUT_FORMAT(elf64-littleaarch64) %endif Patch1001: GCC14-1001-libstdc++-compat.patch Patch1002: GCC14-1002-change-gcc-version.patch Patch1003: GCC14-1003-i386-Add-non-optimize-prefetchi-intrins.patch # On ARM EABI systems, we do want -gnueabi to be part of the # target triple. %global nonsharedver 48 %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 %description The %{?_scl_prefix}gcc%{!?scl:14} package contains the GNU Compiler Collection version 14. %package -n %{?_scl_prefix}libgcc%{gcc_ver} Summary: GCC version 14 shared support library Autoreq: false %description -n %{?_scl_prefix}libgcc%{gcc_ver} This package contains GCC shared support library which is needed e.g. for exception handling support. %package -n %{?_scl_prefix}c++%{gcc_ver} Summary: C++ support for GCC Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} Requires: %{?_scl_prefix}libstdc++%{gcc_ver}-devel = %{version}-%{release} Provides: %{?_scl_prefix}gcc-g++%{gcc_ver} = %{version}-%{release} Provides: %{?_scl_prefix}g++%{gcc_ver} = %{version}-%{release} Autoreq: true %description -n %{?_scl_prefix}c++%{gcc_ver} This package adds C++ support to the GNU Compiler Collection version 14. It includes support for most of the current C++ specification and a lot of support for the upcoming C++ specification. %package -n %{?_scl_prefix}libstdc++%{gcc_ver} Summary: GNU Standard C++ Library Autoreq: true %description -n %{?_scl_prefix}libstdc++%{gcc_ver} The libstdc++ package contains a rewritten standard compliant GCC Standard C++ Library. %package -n %{?_scl_prefix}libstdc++%{gcc_ver}-devel Summary: Header files and libraries for C++ development Requires: %{?_scl_prefix}libstdc++%{gcc_ver}-devel = %{version}-%{release} Autoreq: true %description -n %{?_scl_prefix}libstdc++%{gcc_ver}-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 %{?_scl_prefix}libstdc++%{gcc_ver}-docs Summary: Documentation for the GNU standard C++ library Autoreq: true %description -n %{?_scl_prefix}libstdc++%{gcc_ver}-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: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} Requires: %{?_scl_prefix}libobjc%{gcc_ver} = %{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: %{?_scl_prefix}gcc%{gcc_ver}-c++ = %{version}-%{release} Requires: %{?_scl_prefix}gcc%{gcc_ver}-objc = %{version}-%{release} Autoreq: true %description objc++ gcc-objc++ package provides Objective-C++ support for the GCC. %package -n %{?_scl_prefix}libobjc%{gcc_ver} Summary: Objective-C runtime Autoreq: true %description -n %{?_scl_prefix}libobjc%{gcc_ver} This package contains Objective-C shared library which is needed to run Objective-C dynamically linked programs. %package -n %{?_scl_prefix}gfortran%{gcc_ver} Summary: Fortran support for GCC 14 Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} %if %{build_libquadmath} Requires: %{?_scl_prefix}libquadmath%{gcc_ver}-devel = %{version}-%{release} %endif Autoreq: true %description -n %{?_scl_prefix}gfortran%{gcc_ver} This package provides support for compiling Fortran programs with the GNU Compiler Collection. %package -n %{?_scl_prefix}libgfortran%{gcc_ver}-devel Summary: Static Fortran libraries Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} %if %{build_libquadmath} %if 0%{!?scl:1} Requires: libquadmath %endif Requires: %{?_scl_prefix}libquadmath%{gcc_ver}-devel = %{version}-%{release} %endif %description -n %{?_scl_prefix}libgfortran%{gcc_ver}-devel This package contains static Fortran libraries. %if %{build_libquadmath} Requires: %{?_scl_prefix}libquadmath%{gcc_ver}-devel = %{version}-%{release} %endif Autoreq: true %package gdb-plugin Summary: GCC 14 plugin for GDB Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} %description gdb-plugin This package contains GCC 14 plugin for GDB C expression evaluation. %package -n %{?_scl_prefix}libgccjit%{gcc_ver} Summary: Library for embedding GCC inside programs and libraries Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} %description -n %{?_scl_prefix}libgccjit%{gcc_ver} This package contains shared library with GCC 14 JIT front-end. %package -n %{?_scl_prefix}libgccjit%{gcc_ver}-devel Summary: Support for embedding GCC inside programs and libraries BuildRequires: python3-sphinx Requires: %{?_scl_prefix}libgccjit%{gcc_ver} = %{version}-%{release} Requires(post): /sbin/install-info Requires(preun): /sbin/install-info %description -n %{?_scl_prefix}libgccjit%{gcc_ver}-devel This package contains header files for GCC 14 JIT front end. Requires: %{?_scl_prefix}libgccjit%{gcc_ver} = %{version}-%{release} %package -n %{?_scl_prefix}libquadmath%{gcc_ver} Summary: GCC 14 __float128 shared support library Requires(post): /sbin/install-info Requires(preun): /sbin/install-info %description -n %{?_scl_prefix}libquadmath%{gcc_ver} This package contains GCC shared support library which is needed for __float128 math support and for Fortran REAL*16 support. %package -n %{?_scl_prefix}libquadmath%{gcc_ver}-devel Summary: GCC 14 __float128 support Requires: libquadmath Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} %description -n %{?_scl_prefix}libquadmath%{gcc_ver}-devel This package contains headers for building Fortran programs using REAL*16 and programs using __float128 math. %package -n %{?_scl_prefix}libitm%{gcc_ver} Summary: The GNU Transactional Memory library Requires(post): /sbin/install-info Requires(preun): /sbin/install-info %description -n %{?_scl_prefix}libitm%{gcc_ver} This package contains the GNU Transactional Memory library which is a GCC transactional memory support runtime library. %package -n %{?_scl_prefix}libitm%{gcc_ver}-devel Summary: The GNU Transactional Memory support Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} %description -n %{?_scl_prefix}libitm%{gcc_ver}-devel This package contains headers and support files for the GNU Transactional Memory library. %package -n %{?_scl_prefix}plugin%{gcc_ver}-devel Summary: Support for compiling GCC plugins Requires: %{?_scl_prefix}gcc%{gcc_ver} = %{version}-%{release} Requires: gmp-devel >= 4.3.2 Requires: mpfr-devel >= 3.1.0 Requires: libmpc-devel >= 0.8.1 %description -n %{?_scl_prefix}plugin%{gcc_ver}-devel This package contains header files and other support files for compiling GCC 14 plugins. The GCC plugin ABI is currently not stable, so plugins must be rebuilt any time GCC is updated. %package -n %{?_scl_prefix}libatomic%{gcc_ver} Summary: The GNU Atomic library Requires(post): /sbin/install-info Requires(preun): /sbin/install-info %description -n %{?_scl_prefix}libatomic%{gcc_ver} This package contains the GNU Atomic library which is a GCC support runtime library for atomic operations not supported by hardware. %package -n %{?_scl_prefix}libatomic%{gcc_ver}-devel Summary: The GNU Atomic static library %description -n %{?_scl_prefix}libatomic%{gcc_ver}-devel This package contains GNU Atomic static libraries. %package -n %{?_scl_prefix}libasan%{gcc_ver} Summary: The Address Sanitizer runtime library %description -n %{?_scl_prefix}libasan%{gcc_ver} This package contains the Address Sanitizer library which is used for -fsanitize=address instrumented programs. %package -n %{?_scl_prefix}libasan%{gcc_ver}-devel Summary: The Address Sanitizer static library Requires: %{?_scl_prefix}libasan%{gcc_ver} = %{version}-%{release} %description -n %{?_scl_prefix}libasan%{gcc_ver}-devel This package contains Address Sanitizer static runtime library. %package -n %{?_scl_prefix}libhwasan%{gcc_ver} Summary: The Hardware-assisted Address Sanitizer runtime library %description -n %{?_scl_prefix}libhwasan%{gcc_ver} This package contains the Hardware-assisted Address Sanitizer library which is used for -fsanitize=hwaddress instrumented programs. %package -n %{?_scl_prefix}libhwasan%{gcc_ver}-devel Summary: The Hardware-assisted Address Sanitizer static library Requires: %{?_scl_prefix}libhwasan%{gcc_ver} = %{version}-%{release} %description -n %{?_scl_prefix}libhwasan%{gcc_ver}-devel This package contains Hardware-assisted Address Sanitizer static runtime library. %package -n %{?_scl_prefix}libtsan%{gcc_ver} Summary: The Thread Sanitizer runtime library %description -n %{?_scl_prefix}libtsan%{gcc_ver} This package contains the Thread Sanitizer library which is used for -fsanitize=thread instrumented programs. %package -n %{?_scl_prefix}libtsan%{gcc_ver}-devel Summary: The Thread Sanitizer static library Requires: %{?_scl_prefix}libtsan%{gcc_ver} = %{version}-%{release} %description -n %{?_scl_prefix}libtsan%{gcc_ver}-devel This package contains Thread Sanitizer static runtime library. %package -n %{?_scl_prefix}libubsan%{gcc_ver} Summary: The Undefined Behavior Sanitizer runtime library %description -n %{?_scl_prefix}libubsan%{gcc_ver} This package contains the Undefined Behavior Sanitizer library which is used for -fsanitize=undefined instrumented programs. %package -n %{?_scl_prefix}libubsan%{gcc_ver}-devel Summary: The Undefined Behavior Sanitizer static library Requires: %{?_scl_prefix}libubsan%{gcc_ver} = %{version}-%{release} %description -n %{?_scl_prefix}libubsan%{gcc_ver}-devel This package contains Undefined Behavior Sanitizer static runtime library. %package -n %{?_scl_prefix}liblsan%{gcc_ver} Summary: The Leak Sanitizer runtime library Requires(post): /sbin/install-info Requires(preun): /sbin/install-info %description -n %{?_scl_prefix}liblsan%{gcc_ver} This package contains the Leak Sanitizer library which is used for -fsanitize=leak instrumented programs. %package -n %{?_scl_prefix}liblsan%{gcc_ver}-devel Summary: The Leak Sanitizer static library Requires: %{?_scl_prefix}liblsan%{gcc_ver} = %{version}-%{release} %description -n %{?_scl_prefix}liblsan%{gcc_ver}-devel This package contains Leak Sanitizer static runtime library. %prep %autosetup -p1 -n gcc-14.2.0 echo '%{vendor} %{version}-%{release}' > gcc/DEV-PHASE # Default to -gdwarf-4 rather than -gdwarf-5 sed -i '/UInteger Var(dwarf_version)/s/Init(5)/Init(4)/' gcc/common.opt sed -i 's/\(version for most targets is \)5 /\14 /' gcc/doc/invoke.texi 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/context->report_bug = false;/context->report_bug = true;/' gcc/diagnostic.cc %build 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/ /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 rm -rf obj-%{gcc_target_platform} mkdir obj-%{gcc_target_platform} cd obj-%{gcc_target_platform} %if %{build_objc} enablelobjc=,objc,obj-c++ %endif %if %{build_go} enablelgo=,go %endif %if %{build_d} enableld=,d %endif CONFIGURE_OPTS="\ --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ --with-bugurl=https://gitee.com/src-openeuler/gcc-14/issues \ --enable-shared --enable-threads=posix --enable-checking=release --with-isl \ %ifarch aarch64 riscv64 --enable-multilib \ %else --disable-multilib \ %endif --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions \ --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only \ --enable-libstdcxx-backtrace \ %ifnarch %{mips} --with-linker-hash-style=gnu \ %endif --enable-plugin --enable-initfini-array \ %if %{attr_ifunc} --enable-gnu-indirect-function \ %endif %ifarch %{arm} --disable-sjlj-exceptions \ %endif %ifarch aarch64 --with-multilib-list=lp64 \ %endif %ifarch %{ix86} x86_64 --enable-cet \ --with-tune=generic \ %endif %ifarch %{ix86} --with-arch=x86-64 \ %endif %ifarch x86_64 --with-arch_64=x86-64-v2 \ %endif %ifarch riscv64 --with-arch=rv64gc --with-abi=lp64d --disable-libquadmath \ %endif %ifnarch sparc sparcv9 ppc --build=%{gcc_target_platform} \ %endif %if 0%{?scl:1} --program-suffix=%{binsuffix} %endif " # Add Secure Compilation Options OPT_FLAGS="$OPT_FLAGS -O2 -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fPIE -Wl,-z,relro,-z,now" OPT_LDFLAGS="$OPT_LDFLAGS -Wl,-z,relro,-z,now" # Disable bootstrap for saving compilation time export extra_ldflags_libobjc="-Wl,-z,relro,-z,now" export FCFLAGS="$OPT_FLAGS" 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 /'`" \ LDFLAGS="$OPT_LDFLAGS" \ CFLAGS_FOR_TARGET="$OPT_FLAGS" \ CXXFLAGS_FOR_TARGET="$OPT_FLAGS" \ XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" GCJFLAGS="$OPT_FLAGS" \ ../configure --disable-bootstrap --without-cloog\ --enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo}${enableld},lto \ $CONFIGURE_OPTS %ifarch sparc sparcv9 sparc64 make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now %else make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now %endif echo '/* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ %{oformat} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared%{nonsharedver} )' \ > %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_system.so 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 # No longer works. See #2213635/#2213634. #make jit.sphinx.html #make jit.sphinx.install-html jit_htmldir=`pwd`/../../rpm.doc/libgccjit-devel/html cd .. # 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 %{?_smp_mflags} -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 rpm.doc/libquadmath rpm.doc/libitm mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/jit,libstdc++-v3,libgomp,libcc1,libatomic,libsanitizer} for i in {gcc,gcc/cp,gcc/jit,libstdc++-v3,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_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 rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9] find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9 # Test the nonshared bits. mkdir libstdc++_compat_test cd libstdc++_compat_test readelf -Ws %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | sed 's/ UNIQUE / GLOBAL /;s/ WEAK / GLOBAL /;s/@@GLIBCXX_\(LDBL_\)\?[0-9.]*//;s/@@CXXABI_TM_[0-9.]*//;s/@@CXXABI_FLOAT128//;s/@@CXXABI_\(LDBL_\)\?[0-9.]*//' | LC_ALL=C sort -u > system.abilist readelf -Ws ../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6 | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | sed 's/ UNIQUE / GLOBAL /;s/ WEAK / GLOBAL /;s/@@GLIBCXX_\(LDBL_\)\?[0-9.]*//;s/@@CXXABI_TM_[0-9.]*//;s/@@CXXABI_FLOAT128//;s/@@CXXABI_\(LDBL_\)\?[0-9.]*//' | LC_ALL=C sort -u > vanilla.abilist diff -up system.abilist vanilla.abilist | awk '/^\+\+\+/{next}/^\+/{print gensub(/^+(.*)$/,"\\1","1",$0)}' > system2vanilla.abilist.diff ../obj-%{gcc_target_platform}/gcc/xgcc -B ../obj-%{gcc_target_platform}/gcc/ -shared -o libstdc++_nonshared.so -Wl,--whole-archive ../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a -Wl,--no-whole-archive %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 readelf -Ws libstdc++_nonshared.so | sed -n '/\.symtab/,$d;/ UND /d;/@GLIBC_PRIVATE/d;/\(GLOBAL\|WEAK\|UNIQUE\)/p' | awk '{ if ($4 == "OBJECT") { printf "%s %s %s %s %s\n", $8, $4, $5, $6, $3 } else { printf "%s %s %s %s\n", $8, $4, $5, $6 }}' | sed 's/ UNIQUE / GLOBAL /;s/ WEAK / GLOBAL /;s/@@GLIBCXX_\(LDBL_\)\?[0-9.]*//;s/@@CXXABI_TM_[0-9.]*//;s/@@CXXABI_FLOAT128//;s/@@CXXABI_\(LDBL_\)\?[0-9.]*//' | LC_ALL=C sort -u > nonshared.abilist echo ====================NONSHARED========================= ldd -d -r ./libstdc++_nonshared.so || : ldd -u ./libstdc++_nonshared.so || : diff -up system2vanilla.abilist.diff nonshared.abilist || : readelf -Ws ../obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a | grep HIDDEN.*UND | grep -v __dso_handle || : echo ====================NONSHARED END===================== rm -f libstdc++_nonshared.so cd .. %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 %{?scl:PATH=%{_bindir}${PATH:+:${PATH}}} # Also set LD_LIBRARY_PATH so that DTS eu-strip (called from find-debuginfo.sh) # can find the libraries it needs. %{?scl:export LD_LIBRARY_PATH=%{_libdir}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}} cd obj-%{gcc_target_platform} TARGET_PLATFORM=%{gcc_target_platform} # There are some MP bugs in libstdc++ Makefiles make %{?_smp_mflags} -C %{gcc_target_platform}/libstdc++-v3 %if 0%{?scl:1} rm -f gcc/libgcc_s.so echo '/* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ %{oformat} GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > gcc/libgcc_s.so %endif make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \ infodir=%{buildroot}%{_infodir} install %if 0%{?scl:1} rm -f gcc/libgcc_s.so ln -sf libgcc_s.so.1 gcc/libgcc_s.so %endif FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} %if 0%{?scl:1} ln -sf ../../../../bin/ar $FULLEPATH/ar ln -sf ../../../../bin/as $FULLEPATH/as ln -sf ../../../../bin/ld $FULLEPATH/ld ln -sf ../../../../bin/ld.bfd $FULLEPATH/ld.bfd ln -sf ../../../../bin/ld.gold $FULLEPATH/ld.gold ln -sf ../../../../bin/nm $FULLEPATH/nm ln -sf ../../../../bin/objcopy $FULLEPATH/objcopy ln -sf ../../../../bin/ranlib $FULLEPATH/ranlib ln -sf ../../../../bin/strip $FULLEPATH/strip %endif # fix some things ln -sf gcc %{buildroot}%{_prefix}/bin/cc mkdir -p %{buildroot}/lib ln -sf ..%{_prefix}/bin/cpp %{buildroot}/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} 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 %ifarch sparcv9 ppc FULLLPATH=$FULLPATH/lib32 %endif %ifarch sparc64 ppc64 ppc64p7 FULLLPATH=$FULLPATH/lib64 %endif if [ -n "$FULLLPATH" ]; then mkdir -p $FULLLPATH else FULLLPATH=$FULLPATH fi find %{buildroot} -name \*.la | xargs rm -f mv %{buildroot}%{_prefix}/%{_lib}/libgfortran.spec $FULLPATH/ %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}%{_prefix}/%{_lib}/libgcc_s-%{gcc_major}.so.1 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgcc_s-%{gcc_major}.so.1 ln -sf libgcc_s-%{gcc_major}.so.1 %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so %ifarch %{multilib_64_archs} ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so %endif %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. */ %{oformat} GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so %endif %ifarch sparcv9 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. */ %{oformat2} GROUP ( /lib64/libgcc_s.so.1 libgcc.a )' > $FULLPATH/64/libgcc_s.so %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. */ %{oformat2} 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/ cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \ $FULLLPATH/libstdc++_nonshared.a 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}/ pushd ../libstdc++-v3/python for i in `find . -name \*.py`; do touch -r $i %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/$i done touch -r hook.in %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc++*gdb.py popd for f in `find %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/ \ %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/ -name \*.py`; do r=${f/$RPM_BUILD_ROOT/} %{__python3} -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")' %{__python3} -O -c 'import py_compile; py_compile.compile("'$f'", dfile="'$r'")' done rm -f $FULLEPATH/libgccjit.so mkdir -p %{buildroot}%{_prefix}/%{_lib}/ cp -a objlibgccjit/gcc/libgccjit.so.* %{buildroot}%{_prefix}/%{_lib}/ rm -f $FULLPATH/libgccjit.so echo '/* GNU ld script */ %{oformat} INPUT ( %{_prefix}/%{_lib}/libgccjit.so.0 )' > $FULLPATH/libgccjit.so cp -a ../gcc/jit/libgccjit*.h $FULLPATH/include/ /usr/bin/install -c -m 644 objlibgccjit/gcc/doc/libgccjit.info %{buildroot}/%{_infodir}/ gzip -9 %{buildroot}/%{_infodir}/libgccjit.info pushd $FULLPATH echo '/* GNU ld script */ %{oformat} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgomp.so.1 )' > libgomp.so echo '/* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ %{oformat} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' > libstdc++.so rm -f libgfortran.so echo '/* GNU ld script */ %{oformat} INPUT ( %{?scl:%{_prefix}}/%{_lib}/libgfortran.so.5 )' > libgfortran.so %if %{build_libquadmath} rm -f libquadmath.so echo '/* GNU ld script */ %{oformat} %if 0%{!?scl:1} INPUT ( %{_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so %else INPUT ( %{_root_prefix}/%{_lib}/libquadmath.so.0 )' > libquadmath.so %endif %endif %if %{build_libitm} rm -f libitm.so echo '/* GNU ld script */ %{oformat} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libitm.so.1 )' > libitm.so %endif %if %{build_libatomic} rm -f libatomic.so echo '/* GNU ld script */ %{oformat} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libatomic.so.1 )' > libatomic.so %endif %if %{build_libasan} rm -f libasan.so echo '/* GNU ld script */ %{oformat} INPUT ( %{?scl:%{_prefix}}/%{_lib}/libasan.so.8 )' > libasan.so %endif %if %{build_libtsan} rm -f libtsan.so echo '/* GNU ld script */ %{oformat} INPUT ( %{?scl:%{_prefix}}/%{_lib}/libtsan.so.2 )' > libtsan.so %endif %if %{build_libubsan} rm -f libubsan.so echo '/* GNU ld script */ %{oformat} INPUT ( %{?scl:%{_prefix}}/%{_lib}/libubsan.so.1 )' > libubsan.so %endif %if %{build_libhwasan} rm -f libhwasan.so echo 'INPUT ( %{?scl:%{_prefix}}/%{_lib}/'`echo ../../../../%{_lib}/libhwasan.so.0.* | sed 's,^.*libh,libh,'`' )' > libhwasan.so %endif %if %{build_liblsan} rm -f liblsan.so echo '/* GNU ld script */ %{oformat} INPUT ( %{?scl:%{_prefix}}/%{_lib}/liblsan.so.0 )' > liblsan.so %endif mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++fs.*a $FULLLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a . mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a . mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a . %if %{build_libquadmath} mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/ %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/ mv -f %{buildroot}%{_prefix}/%{_lib}/libasan_preinit.o $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/ mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan_preinit.o $FULLPATH/ %endif %if %{build_libhwasan} mv -f %{buildroot}%{_prefix}/%{_lib}/libhwasan.*a $FULLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/libhwasan_preinit.o $FULLPATH/ %endif %if %{build_liblsan} mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan.*a $FULLPATH/ mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan_preinit.o $FULLPATH/ %endif %ifarch sparcv9 ppc echo '/* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libstdc++.so.6 -lstdc++_nonshared )' > 64/libstdc++.so rm -f 64/libgfortran.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{_prefix}/lib64/libgfortran.so.5 )' > 64/libgfortran.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libgomp.so.1 )' > 64/libgomp.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{_prefix}/lib64/libgccjit.so.0 )' > 64/libgccjit.so %if %{build_libquadmath} rm -f 64/libquadmath.so echo '/* GNU ld script */ %{oformat2} %if 0%{!?scl:1} INPUT ( %{_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so %else INPUT ( %{_root_prefix}/lib64/libquadmath.so.0 )' > 64/libquadmath.so %endif %endif %if %{build_libitm} rm -f 64/libitm.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libitm.so.1 )' > 64/libitm.so %endif %if %{build_libatomic} rm -f 64/libatomic.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libatomic.so.1 )' > 64/libatomic.so %endif %if %{build_libasan} rm -f 64/libasan.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libasan.so.8 )' > 64/libasan.so %endif %if %{build_libubsan} rm -f 64/libubsan.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libubsan.so.1 )' > 64/libubsan.so %endif mv -f %{buildroot}%{_prefix}/lib64/libsupc++.*a 64/ mv -f %{buildroot}%{_prefix}/lib64/libgfortran.*a 64/ mv -f %{buildroot}%{_prefix}/lib64/libgomp.*a 64/ %if %{build_libquadmath} mv -f %{buildroot}%{_prefix}/lib64/libquadmath.*a 64/ %endif 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++_nonshared.a libstdc++_nonshared.a ln -sf ../lib64/libstdc++_nonshared.a 64/libstdc++_nonshared.a %if %{build_libquadmath} ln -sf lib32/libquadmath.a libquadmath.a ln -sf ../lib64/libquadmath.a 64/libquadmath.a %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 ln -sf lib32/libasan_preinit.o libasan_preinit.o ln -sf ../lib64/libasan_preinit.o 64/libasan_preinit.o %endif %if %{build_libubsan} ln -sf lib32/libubsan.a libubsan.a ln -sf ../lib64/libubsan.a 64/libubsan.a %endif %endif %ifarch %{multilib_64_archs} mkdir -p 32 echo '/* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libstdc++.so.6 -lstdc++_nonshared )' > 32/libstdc++.so rm -f 32/libgfortran.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{_prefix}}/lib/libgfortran.so.5 )' > 32/libgfortran.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgomp.so.1 )' > 32/libgomp.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{_prefix}/lib/libgccjit.so.0 )' > 32/libgccjit.so %if %{build_libquadmath} rm -f 32/libquadmath.so echo '/* GNU ld script */ %{oformat2} %if 0%{!?scl:1} INPUT ( %{_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so %else INPUT ( %{_root_prefix}/lib/libquadmath.so.0 )' > 32/libquadmath.so %endif %endif %if %{build_libitm} rm -f 32/libitm.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libitm.so.1 )' > 32/libitm.so %endif %if %{build_libatomic} rm -f 32/libatomic.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libatomic.so.1 )' > 32/libatomic.so %endif %if %{build_libasan} rm -f 32/libasan.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libasan.so.8 )' > 32/libasan.so %endif %if %{build_libubsan} rm -f 32/libubsan.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libubsan.so.1 )' > 32/libubsan.so %endif mv -f %{buildroot}%{_prefix}/lib/libsupc++.*a 32/ mv -f %{buildroot}%{_prefix}/lib/libgfortran.*a 32/ mv -f %{buildroot}%{_prefix}/lib/libgomp.*a 32/ %if %{build_libquadmath} mv -f %{buildroot}%{_prefix}/lib/libquadmath.*a 32/ %endif %endif %ifarch sparc64 ppc64 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++_nonshared.a 32/libstdc++_nonshared.a ln -sf lib64/libstdc++_nonshared.a libstdc++_nonshared.a %if %{build_libquadmath} ln -sf ../lib32/libquadmath.a 32/libquadmath.a ln -sf lib64/libquadmath.a libquadmath.a %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 ln -sf ../lib32/libasan_preinit.o 32/libasan_preinit.o ln -sf lib64/libasan_preinit.o libasan_preinit.o %endif %if %{build_libubsan} ln -sf ../lib32/libubsan.a 32/libubsan.a # BZ #2027391 mv -f lib64/libubsan.a libubsan.a %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}%{?_gnu}/%{gcc_major}/libstdc++_nonshared.a 32/libstdc++_nonshared.a %if %{build_libquadmath} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libquadmath.a 32/libquadmath.a %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 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libasan_preinit.o 32/libasan_preinit.o %endif %if %{build_libubsan} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libubsan.a 32/libubsan.a %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 libgfortran.a -o -name libgomp.a \ -o -name libgcc.a -o -name libgcc_eh.a -o -name libgcov.a \ -o -name libquadmath.a -o -name libitm.a \ -o -name libatomic.a -o -name libasan.a \ -o -name libtsan.a -o -name libubsan.a \ -o -name liblsan.a \ -o -name libstdc++_nonshared.a \ -o -name libsupc++.a \ -o -name libstdc++.a -o -name libcaf_single.a \ -o -name libstdc++fs.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 libgomp.a \ -o -name libgcc.a -o -name libgcov.a \ -o -name libquadmath.a -o -name libitm.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.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.5.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgomp.so.1.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/libcc1.so.0.* chmod 755 %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcc1plugin.so* chrpath -d %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcc1plugin.so* chmod 755 %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcp1plugin.so* chrpath -d %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/libcp1plugin.so* %if %{build_libquadmath} %if 0%{!?scl:1} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libquadmath.so.0.* %endif %endif %if %{build_libitm} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libitm.so.1.* %if 0%{?scl:1} mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/ mv %{buildroot}%{_prefix}/%{_lib}/libitm.so.1* %{buildroot}%{_root_prefix}/%{_lib}/ mkdir -p %{buildroot}%{_root_infodir} mv %{buildroot}%{_infodir}/libitm.info* %{buildroot}%{_root_infodir}/ %endif %endif %if %{build_libatomic} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1.* %if 0%{?scl:1} mkdir -p %{buildroot}%{_root_prefix}/%{_lib}/ mv %{buildroot}%{_prefix}/%{_lib}/libatomic.so.1* %{buildroot}%{_root_prefix}/%{_lib}/ mkdir -p %{buildroot}%{_root_infodir} %endif %endif %if %{build_libasan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libasan.so.8.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/libasan.so.8.* %endif %if %{build_libtsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2.* %endif %if %{build_libubsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.* %endif %if %{build_libhwasan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.* %endif %if %{build_liblsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.* %endif %ifarch aarch64 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.* %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 cat < %{buildroot}%{_scl_path}/enable # General environment variables export PATH=%{_bindir}\${PATH:+:\${PATH}} export MANPATH=%{_mandir}:\${MANPATH} export INFOPATH=%{_infodir}\${INFOPATH:+:\${INFOPATH}} export PCP_DIR=%{_scl_root} # bz847911 workaround: # we need to evaluate rpm's installed run-time % { _libdir }, not rpmbuild time # or else /etc/ld.so.conf.d files? rpmlibdir=\$(rpm --eval "%%{_libdir}") # bz1017604: On 64-bit hosts, we should include also the 32-bit library path. if [ "\$rpmlibdir" != "\${rpmlibdir/lib64/}" ]; then rpmlibdir32=":%{_scl_root}\${rpmlibdir/lib64/lib}" fi export LD_LIBRARY_PATH=%{_scl_root}\$rpmlibdir\$rpmlibdir32\${LD_LIBRARY_PATH:+:\${LD_LIBRARY_PATH}} export LD_LIBRARY_PATH=%{_scl_root}\$rpmlibdir\$rpmlibdir32:%{_scl_root}\$rpmlibdir/dyninst\$rpmlibdir32/dyninst\${LD_LIBRARY_PATH:+:\${LD_LIBRARY_PATH}} EOF chmod 755 %{buildroot}%{_scl_path}/enable cat < %{buildroot}%{_bindir}/sudo #! /bin/sh # TODO: parse & pass-through sudo options from \$@ sudo_options="-E" for arg in "\$@" do case "\$arg" in *\'*) arg=`echo "\$arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac cmd_options="\$cmd_options '\$arg'" done exec /usr/bin/sudo \$sudo_options LD_LIBRARY_PATH=\$LD_LIBRARY_PATH PATH=\$PATH scl enable %{scl} "\$cmd_options" EOF chmod 775 %{buildroot}%{_bindir}/sudo cd .. # 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,libstdc++*,libgfortran*} || : %if 0%{?scl:1} rm -f %{buildroot}%{_prefix}/%{_lib}/{libquadmath*,libitm*,libatomic*,libasan.so,libtsan.so,libubsan.so,liblsan.so} %else rm -f %{buildroot}%{_prefix}/%{_lib}/{libitm*,libatomic*} %endif rm -f %{buildroot}%{_prefix}/%{_lib}/libgomp* rm -f %{buildroot}/%{_lib}/libgcc_s* 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}/lib/cpp rm -f %{buildroot}/%{_lib}/libgcc_s* rm -f %{buildroot}%{_prefix}/bin/{gccbug,gnatgcc*} rm -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gfortran %if 0%{!?scl:1} rm -f %{buildroot}%{_prefix}/bin/{*c++*,cc,cpp} %endif rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gfortran || : %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* %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* %endif %endif rm -f %{buildroot}%{mandir}/man3/ffi* %ifnarch sparc64 ppc64 %ifarch %{multilib_64_archs} cat <<\EOF > %{buildroot}%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major} #!/bin/sh %ifarch s390x exec %{gcc_target_platform}-gcc-%{gcc_major} -m31 "$@" %else exec %{gcc_target_platform}-gcc-%{gcc_major} -m32 "$@" %endif EOF chmod 755 %{buildroot}%{_prefix}/bin/%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}-gcc-%{gcc_major} %endif %endif # 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/ %check cd obj-%{gcc_target_platform} %{?scl:PATH=%{_bindir}${PATH:+:${PATH}}} # Test against the system libstdc++.so.6 + libstdc++_nonshared.a combo mv %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6{,.not_here} mv %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so{,.not_here} ln -sf %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 \ %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so.6 echo '/* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ %{oformat} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libstdc++.so.6 -lstdc++_nonshared )' \ > %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++.so cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \ %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared.a # Because glibc Prereq's libgcc and /sbin/ldconfig # comes from glibc, it might not exist yet when # libgcc is installed %post -n %{?_scl_prefix}libgcc%{gcc_ver} -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 %{?_scl_prefix}libgcc%{gcc_ver} -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 %{?_scl_prefix}libstdc++%{gcc_ver}-devel %ldconfig_scriptlets -n %{?_scl_prefix}libobjc%{gcc_ver} %ldconfig_scriptlets -n %{?_scl_prefix}gfortran%{gcc_ver} %ldconfig_scriptlets -n %{?_scl_prefix}libgphobos%{gcc_ver} %ldconfig_scriptlets -n %{?_scl_prefix}libgnat%{gcc_ver} %ldconfig_scriptlets -n %{?_scl_prefix}libgomp%{gcc_ver} %ldconfig_scriptlets gdb-plugin %ldconfig_scriptlets -n %{?_scl_prefix}libgccjit%{gcc_ver} %ldconfig_scriptlets -n %{?_scl_prefix}libquadmath%{gcc_ver}-devel %ldconfig_scriptlets -n %{?_scl_prefix}libitm%{gcc_ver} %ldconfig_scriptlets -n %{?_scl_prefix}libatomic%{gcc_ver} %ldconfig_scriptlets -n %{?_scl_prefix}libasan%{gcc_ver} %ldconfig_scriptlets -n %{?_scl_prefix}libubsan%{gcc_ver} %ldconfig_scriptlets -n %{?_scl_prefix}libtsan%{gcc_ver} %ldconfig_scriptlets -n %{?_scl_prefix}liblsan%{gcc_ver} %ldconfig_scriptlets -n %{?_scl_prefix}libgo%{gcc_ver} %files %{_scl_path}/enable %{_prefix}/bin/sudo %{_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* %if 0%{?scl:1} %{_prefix}/bin/cc %{_prefix}/bin/cpp %{_mandir}/man1/gcc.1* %{_mandir}/man1/cpp.1* %{_mandir}/man1/gcov.1* %{_mandir}/man1/gcov-tool.1* %{_mandir}/man1/gcov-dump.1* %{_mandir}/man1/lto-dump.1* %{_infodir}/gcc* %{_infodir}/cpp* %endif %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 %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 %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}/cc1 %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/collect2 %if 0%{?scl:1} %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ar %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/as %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld.bfd %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ld.gold %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/nm %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/objcopy %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/ranlib %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/strip %endif %{_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 %ifarch sparcv9 sparc64 ppc ppc64 %if %{build_libquadmath} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so %endif %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 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgccjit.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 %if %{build_libatomic} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so %endif %if %{build_libtsan} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so %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.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so %endif %endif %doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog* gcc/COPYING* COPYING.RUNTIME %files -n %{?_scl_prefix}libgcc%{gcc_ver} %{_prefix}/%{_lib}/libgcc_s-%{gcc_major}.so.1 %{_prefix}/%{_lib}/libgcc_s.so.1 %{!?_licensedir:%global license %%doc} %license gcc/COPYING* COPYING.RUNTIME %files -n %{?_scl_prefix}c++%{gcc_ver} %{_prefix}/bin/%{gcc_target_platform}-g++ %{_prefix}/bin/g++ %if 0%{?scl:1} %{_prefix}/bin/%{gcc_target_platform}-c++ %{_prefix}/bin/c++ %{_mandir}/man1/g++.1* %endif %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++_nonshared.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++_nonshared.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 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a %endif %ifarch sparcv9 sparc64 ppc ppc64 %{_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++_nonshared.a %endif %doc rpm.doc/changelogs/gcc/cp/ChangeLog* %files -n %{?_scl_prefix}libstdc++%{gcc_ver}-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} %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/libstdc++fs.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libstdc++_nonshared.a %endif %ifarch sparc64 ppc64 %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/libstdc++fs.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libstdc++_nonshared.a %endif %ifnarch sparcv9 sparc64 ppc ppc64 %{_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++_nonshared.a %endif %ifnarch sparcv9 ppc %{multilib_64_archs} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a %endif %doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README* %if %{build_libstdcxx_docs} %files -n %{?_scl_prefix}libstdc++%{gcc_ver}-docs %{_mandir}/man3/* %doc rpm.doc/libstdc++-v3/html %endif %files -n %{?_scl_prefix}gfortran%{gcc_ver} %{_prefix}/bin/gfortran %{_prefix}/bin/f95 %if 0%{?scl:1} %{_mandir}/man1/gfortran.1* %{_infodir}/gfortran* %endif %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 %{?_scl_prefix}libgfortran%{gcc_ver}-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/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_libquadmath} %files -n %{?_scl_prefix}libquadmath%{gcc_ver}-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 %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 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so %endif %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} %doc rpm.doc/libquadmath/ChangeLog* %endif %if %{build_libitm} %files -n %{?_scl_prefix}libitm%{gcc_ver}-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/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.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a %endif %doc rpm.doc/libitm/ChangeLog* %endif %if %{build_libatomic} %files -n %{?_scl_prefix}libatomic%{gcc_ver}-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/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.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a %endif %doc rpm.doc/changelogs/libatomic/ChangeLog* %endif %if %{build_libasan} %files -n %{?_scl_prefix}libasan%{gcc_ver} %{_prefix}/%{_lib}/libasan.so* %files -n %{?_scl_prefix}libasan%{gcc_ver}-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/libasan.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libasan_preinit.o %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 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libasan_preinit.o %endif %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o %endif %doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT %endif %if %{build_libtsan} %files -n %{?_scl_prefix}libtsan%{gcc_ver} %{_prefix}/%{_lib}/libtsan.so* %files -n %{?_scl_prefix}libtsan%{gcc_ver}-devel %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.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan_preinit.o %{_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_libubsan} %files -n %{?_scl_prefix}libubsan%{gcc_ver} %{_prefix}/%{_lib}/libubsan.so* %files -n %{?_scl_prefix}libubsan%{gcc_ver}-devel %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}/libubsan.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a %doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT %endif %if %{build_libhwasan} %files -n %{?_scl_prefix}libhwasan%{gcc_ver} %{_prefix}/%{_lib}/libhwasan.so.0* %files -n %{?_scl_prefix}libhwasan%{gcc_ver}-devel %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.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libhwasan_preinit.o %{_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 %{?_scl_prefix}liblsan%{gcc_ver} %{_prefix}/%{_lib}/liblsan.so* %files -n %{?_scl_prefix}liblsan%{gcc_ver}-devel %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.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan_preinit.o %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.a %doc rpm.doc/changelogs/libsanitizer/ChangeLog* libsanitizer/LICENSE.TXT %endif %files -n %{?_scl_prefix}libgccjit%{gcc_ver} %{_prefix}/%{_lib}/libgccjit.so.* %doc rpm.doc/changelogs/gcc/jit/ChangeLog* %files -n %{?_scl_prefix}libgccjit%{gcc_ver}-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}/libgccjit.so %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/libgccjit*.h %if 0 %files -n %{?_scl_prefix}libgccjit-docs %{_infodir}/libgccjit.info* %doc rpm.doc/libgccjit-devel/* %doc gcc/jit/docs/examples %endif %files -n %{?_scl_prefix}plugin%{gcc_ver}-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* %changelog * Thu Aug 22 2024 Hu, Lin - 14.2.1-2 - [Backport] Backport fix prefetchi from gcc-14.3.0 * Mon Aug 12 2024 zhaoshujian - 14.2.1-1 - Init gcc toolset gcc 14.2.1