%global scl 1 %global vendor %{?_vendor:%{_vendor}}%{!?_vendor:openEuler} %global gcc_major 12 %global _unpackaged_files_terminate_build 0 %global _performance_build 1 # Hardening slows the compiler way too much. %undefine _hardened_build %undefine _auto_set_build_flags %undefine _annotated_build %if 0%{?scl:1} %global scl_prefix gcc-toolset-12- %global _prefix /opt/%{vendor}/gcc-toolset-12/root/usr %global gcc_ver %{nil} %define binsuffix %{nil} %define __provides_exclude ^lib.*$ %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 %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 ppc64le %global build_libquadmath 1 %else %global build_libquadmath 0 %endif %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %global build_libasan 1 %else %global build_libasan 0 %endif %ifarch x86_64 ppc64 ppc64le aarch64 s390x %global build_libtsan 1 %else %global build_libtsan 0 %endif %ifarch x86_64 ppc64 ppc64le aarch64 s390x %global build_liblsan 1 %else %global build_liblsan 0 %endif %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %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 %global build_libitm 1 %else %global build_libitm 0 %endif %ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} %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: 12.3.1 Release: 18 # libgcc, libgfortran, libgomp, libstdc++ and crtstuff have # GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD Source0: https://ftp.gnu.org/gnu/gcc/gcc-12.3.0/gcc-12.3.0.tar.xz URL: http://gcc.gnu.org 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 %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 Requires: %{?scl_prefix}cpp%{gcc_ver} = %{version}-%{release} Requires: binutils >= 2.31 Conflicts: gdb < 5.1-2 Requires: glibc-devel >= 2.17 Requires: %{?scl_prefix}libgcc%{gcc_ver} >= %{version}-%{release} Requires: %{?scl_prefix}libgomp%{gcc_ver} = %{version}-%{release} %if %{build_libasan} Requires: %{?scl_prefix}libasan%{gcc_ver} = %{version}-%{release} %endif # lto-wrapper invokes make Requires: make AutoReq: true #Provides: bundled(libiberty) #Provides: bundled(libbacktrace) #Provides: bundled(libffi) Provides: %{?scl_prefix}gcc%{gcc_ver}(major) = %{gcc_major} # OpenEuler Patch Naming Rules # https://gitee.com/openeuler/TC/blob/master/oEEP/oEEP-0012%20openEuler%E8%BD%AF%E4%BB%B6%E5%8C%85%E9%9D%9Eupstream%E6%94%AF%E6%8C%81%E5%A4%9A%E6%9E%B6%E6%9E%84%E4%BB%A3%E7%A0%81%E6%8F%90%E4%BA%A4%E8%A7%84%E5%88%99.md # Patch 3000 - 4999 Patch3001: backport-Add-attribute-hot-judgement-for-INLINE_HINT_known_ho.patch Patch3002: backport-Enable-small-loop-unrolling-for-O2.patch Patch3003: backport-i386-Only-enable-small-loop-unrolling-in-backend-PR-.patch # SME Patch3004: SME-0001-AArch64-Cleanup-CPU-option-processing-code.patch Patch3005: SME-0002-AArch64-Cleanup-option-processing-code.patch Patch3006: SME-0003-aarch64-Add-march-support-for-Armv9.1-A-Armv9.2-A-Ar.patch Patch3007: SME-0004-Revert-aarch64-Define-__ARM_FEATURE_RCPC.patch Patch3008: SME-0005-Revert-Ampere-1-and-Ampere-1A-core-definition-in-aar.patch Patch3009: SME-0006-aarch64-Rename-AARCH64_ISA-architecture-level-macros.patch Patch3010: SME-0007-aarch64-Rename-AARCH64_FL-architecture-level-macros.patch Patch3011: SME-0008-aarch64-Rename-AARCH64_FL_FOR_ARCH-macros.patch Patch3012: SME-0009-aarch64-Add-V-to-aarch64-arches.def-names.patch Patch3013: SME-0010-aarch64-Small-config.gcc-cleanups.patch Patch3014: SME-0011-aarch64-Avoid-redundancy-in-aarch64-cores.def.patch Patch3015: SME-0012-aarch64-Remove-AARCH64_FL_RCPC8_4-PR107025.patch Patch3016: SME-0013-aarch64-Fix-transitive-closure-of-features.patch Patch3017: SME-0014-aarch64-Reorder-an-entry-in-aarch64-option-extension.patch Patch3018: SME-0015-aarch64-Simplify-feature-definitions.patch Patch3019: SME-0016-aarch64-Simplify-generation-of-.arch-strings.patch Patch3020: SME-0017-aarch64-Avoid-std-string-in-static-data.patch Patch3021: SME-0018-aarch64-Tweak-constness-of-option-related-data.patch Patch3022: SME-0019-aarch64-Make-more-use-of-aarch64_feature_flags.patch Patch3023: SME-0020-aarch64-Tweak-contents-of-flags_on-off-fields.patch Patch3024: SME-0021-aarch64-Tweak-handling-of-mgeneral-regs-only.patch Patch3025: SME-0022-aarch64-Remove-redundant-TARGET_-checks.patch Patch3026: SME-0023-aarch64-Define-__ARM_FEATURE_RCPC.patch Patch3027: SME-0024-Add-Ampere-1-and-Ampere-1A-core-definition-in-aarch6.patch Patch3028: SME-0025-aarch64-Fix-nosimd-handling-of-FPR-moves.patch Patch3029: SME-0026-aarch64-Commonise-some-folding-code.patch Patch3030: SME-0027-aarch64-Add-a-Z-operand-modifier-for-SVE-registers.patch Patch3031: SME-0028-mode-switching-Remove-unused-bbnum-field.patch Patch3032: SME-0029-mode-switching-Tweak-the-macro-hook-documentation.patch Patch3033: SME-0030-mode-switching-Add-note-problem.patch Patch3034: SME-0031-mode-switching-Avoid-quadractic-list-operation.patch Patch3035: SME-0032-mode-switching-Fix-the-mode-passed-to-the-emit-hook.patch Patch3036: SME-0033-mode-switching-Simplify-recording-of-transparency.patch Patch3037: SME-0034-mode-switching-Tweak-entry-exit-handling.patch Patch3038: SME-0035-mode-switching-Allow-targets-to-set-the-mode-for-EH-.patch Patch3039: SME-0036-mode-switching-Pass-set-of-live-registers-to-the-nee.patch Patch3040: SME-0037-mode-switching-Pass-the-set-of-live-registers-to-the.patch Patch3041: SME-0038-mode-switching-Use-1-based-edge-aux-fields.patch Patch3042: SME-0039-mode-switching-Add-a-target-configurable-confluence-.patch Patch3043: SME-0040-mode-switching-Add-a-backprop-hook.patch Patch3044: SME-0041-aarch64-Add-a-result_mode-helper-function.patch Patch3045: SME-0042-rtl-Try-to-remove-EH-edges-after-pro-epi-logue-gener.patch Patch3046: SME-0043-Fix-PR-middle-end-107705-ICE-after-reclaration-error.patch Patch3047: SME-0044-function-Change-return-type-of-predicate-function-fr.patch Patch3048: SME-0045-Allow-prologues-and-epilogues-to-be-inserted-later.patch Patch3049: SME-0046-Add-a-target-hook-for-sibcall-epilogues.patch Patch3050: SME-0047-Add-a-new-target-hook-TARGET_START_CALL_ARGS.patch Patch3051: SME-0048-Allow-targets-to-add-USEs-to-asms.patch Patch3052: SME-0049-New-compact-syntax-for-insn-and-insn_split-in-Machin.patch Patch3053: SME-0050-recog-Improve-parser-for-pattern-new-compact-syntax.patch Patch3054: SME-0051-recog-Support-space-in-cons.patch Patch3055: SME-0052-aarch64-Generalise-require_immediate_lane_index.patch Patch3056: SME-0053-aarch64-Add-backend-support-for-DFP.patch Patch3057: SME-0054-aarch64-Vector-move-fixes-for-nosimd.patch Patch3058: SME-0055-aarch64-Simplify-output-template-emission-code-for-a.patch Patch3059: SME-0056-Improve-immediate-expansion-PR106583.patch Patch3060: SME-0057-AArch64-Cleanup-move-immediate-code.patch Patch3061: SME-0058-AArch64-convert-some-patterns-to-compact-MD-syntax.patch Patch3062: SME-0059-aarch64-Use-SVE-s-RDVL-instruction.patch Patch3063: SME-0060-aarch64-Make-AARCH64_FL_SVE-requirements-explicit.patch Patch3064: SME-0061-aarch64-Add-group-suffixes-to-SVE-intrinsics.patch Patch3065: SME-0062-aarch64-Add-sve_type-to-SVE-builtins-code.patch Patch3066: SME-0063-aarch64-Generalise-some-SVE-ACLE-error-messages.patch Patch3067: SME-0064-aarch64-Replace-vague-previous-arguments-message.patch Patch3068: SME-0065-aarch64-Make-more-use-of-sve_type-in-ACLE-code.patch Patch3069: SME-0066-aarch64-Tweak-error-message-for-tuple-vector-pairs.patch Patch3070: SME-0067-aarch64-Add-tuple-forms-of-svreinterpret.patch Patch3071: SME-0068-attribs-Use-existing-traits-for-excl_hash_traits.patch Patch3072: SME-0069-Allow-target-attributes-in-non-gnu-namespaces.patch Patch3073: SME-0070-aarch64-Fix-plugin-header-install.patch Patch3074: SME-0071-aarch64-Add-arm_streaming-_compatible-attributes.patch Patch3075: SME-0072-aarch64-Add-sme.patch Patch3076: SME-0073-aarch64-Add-r-m-and-m-r-alternatives-to-64-bit-vecto.patch Patch3077: SME-0074-AArch64-Rewrite-simd-move-immediate-patterns-to-new-.patch Patch3078: SME-0075-AArch64-remove-test-comment-from-mov-mode-_aarch64.patch Patch3079: SME-0076-aarch64-Distinguish-streaming-compatible-AdvSIMD-ins.patch Patch3080: SME-0077-aarch64-Mark-relevant-SVE-instructions-as-non-stream.patch Patch3081: SME-0078-AArch64-Support-new-tbranch-optab.patch Patch3082: SME-0079-aarch64-Use-local-frame-vars-in-shrink-wrapping-code.patch Patch3083: SME-0080-aarch64-Avoid-a-use-of-callee_offset.patch Patch3084: SME-0081-aarch64-Explicitly-handle-frames-with-no-saved-regis.patch Patch3085: SME-0082-aarch64-Add-bytes_below_saved_regs-to-frame-info.patch Patch3086: SME-0083-aarch64-Add-bytes_below_hard_fp-to-frame-info.patch Patch3087: SME-0084-aarch64-Robustify-stack-tie-handling.patch Patch3088: SME-0085-aarch64-Tweak-aarch64_save-restore_callee_saves.patch Patch3089: SME-0086-aarch64-Only-calculate-chain_offset-if-there-is-a-ch.patch Patch3090: SME-0087-aarch64-Rename-locals_offset-to-bytes_above_locals.patch Patch3091: SME-0088-aarch64-Rename-hard_fp_offset-to-bytes_above_hard_fp.patch Patch3092: SME-0089-aarch64-Tweak-frame_size-comment.patch Patch3093: SME-0090-aarch64-Measure-reg_offset-from-the-bottom-of-the-fr.patch Patch3094: SME-0091-aarch64-Simplify-top-of-frame-allocation.patch Patch3095: SME-0092-aarch64-Minor-initial-adjustment-tweak.patch Patch3096: SME-0093-aarch64-Tweak-stack-clash-boundary-condition.patch Patch3097: SME-0094-aarch64-Put-LR-save-probe-in-first-16-bytes.patch Patch3098: SME-0095-aarch64-Simplify-probe-of-final-frame-allocation.patch Patch3099: SME-0096-aarch64-Explicitly-record-probe-registers-in-frame-i.patch Patch3100: SME-0097-aarch64-Remove-below_hard_fp_saved_regs_size.patch Patch3101: SME-0098-aarch64-Make-stack-smash-canary-protect-saved-regist.patch Patch3102: SME-0099-Handle-epilogues-that-contain-jumps.patch Patch3103: SME-0100-aarch64-Use-vecs-to-store-register-save-order.patch Patch3104: SME-0101-aarch64-Put-LR-save-slot-first-in-more-cases.patch Patch3105: SME-0102-aarch64-Switch-PSTATE.SM-around-calls.patch Patch3106: SME-0103-aarch64-Add-support-for-SME-ZA-attributes.patch Patch3107: SME-0104-aarch64-Add-a-register-class-for-w12-w15.patch Patch3108: SME-0105-aarch64-Add-a-VNx1TI-mode.patch Patch3109: SME-0106-aarch64-Generalise-unspec_based_function_base.patch Patch3110: SME-0107-aarch64-Generalise-_m-rules-for-SVE-intrinsics.patch Patch3111: SME-0108-aarch64-Add-support-for-arm_sme.h.patch Patch3112: SME-0109-aarch64-Add-support-for-__arm_locally_streaming.patch Patch3113: SME-0110-aarch64-Handle-PSTATE.SM-across-abnormal-edges.patch Patch3114: SME-0111-aarch64-Enforce-inlining-restrictions-for-SME.patch Patch3115: SME-0112-aarch64-Update-sibcall-handling-for-SME.patch Patch3116: SME-0113-libgcc-aarch64-Configure-check-for-.variant_pcs-supp.patch Patch3117: SME-0114-libgcc-aarch64-Configure-check-for-__getauxval.patch Patch3118: SME-0115-libgcc-aarch64-Add-SME-runtime-support.patch Patch3119: SME-0116-libgcc-aarch64-Add-SME-unwinder-support.patch Patch3120: SME-0117-libgcc-Fix-config.in.patch Patch3121: SME-0118-aarch64-Add-funwind-tables-to-some-tests.patch Patch3122: SME-0119-aarch64-Skip-some-SME-register-save-tests-on-BE.patch Patch3123: SME-0120-Add-OPTIONS_H_EXTRA-to-GTFILES.patch Patch3124: SME-0121-aarch64-Add-V1DI-mode.patch Patch3125: SME-0122-Allow-md-iterators-to-include-other-iterators.patch Patch3126: SME-0123-riscv-Add-support-for-strlen-inline-expansion.patch Patch3127: SME-0124-attribs-Add-overloads-with-namespace-name.patch Patch3128: SME-0125-vec-Add-array_slice-constructors-from-non-const-and-.patch Patch3129: SME-0126-A-couple-of-va_gc_atomic-tweaks.patch Patch3130: SME-0127-middle-end-Fix-issue-of-poly_uint16-1-1-in-self-test.patch Patch3131: SME-0128-Add-missing-header-file-in-aarch64.cc.patch Patch3132: SME-0129-c-Add-support-for-__extension__.patch Patch3133: SME-0130-lra-Updates-of-biggest-mode-for-hard-regs-PR112278.patch Patch3134: SME-0131-c-Support-C2x-empty-initializer-braces.patch Patch3135: SME-0132-aarch64-Update-sizeless-tests-for-recent-GNU-C-chang.patch Patch3136: SME-0133-attribs-Namespace-aware-lookup_attribute_spec.patch Patch3137: SME-0134-c-family-ICE-with-gnu-nocf_check-PR106937.patch Patch3138: SME-0135-AArch64-Fix-assert-in-aarch64_move_imm-PR108006.patch Patch3139: SME-0136-testsuite-Only-run-fcf-protection-test-on-i-86-x86_6.patch Patch3140: SME-0137-Fix-PRs-106764-106765-and-107307-all-ICE-after-inval.patch Patch3141: SME-0138-aarch64-Remove-expected-error-for-compound-literals.patch Patch3142: SME-0139-aarch64-Remove-redundant-builtins-code.patch Patch3143: SME-0140-AArch64-Fix-Armv9-a-warnings-that-get-emitted-whenev.patch Patch3144: SME-0141-Canonicalize-X-Y-as-X-Y-in-match.pd-when-Y-is-0-1.patch Patch3145: SME-0142-middle-end-Add-new-tbranch-optab-to-add-support-for-.patch Patch3146: SME-0143-explow-Allow-dynamic-allocations-after-vregs.patch Patch3147: SME-0144-PR105169-Fix-references-to-discarded-sections.patch Patch3148: SME-0145-RISC-V-autovec-Verify-that-GET_MODE_NUNITS-is-a-mult.patch Patch3149: SME-0146-Add-operator-to-gimple_stmt_iterator-and-gphi_iterat.patch Patch3150: SME-0147-tree-optimization-110221-SLP-and-loop-mask-len.patch # Patch 5000 - Patch5001: change-gcc-version.patch Patch5002: SME-Adapt-some-testsuites.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.21.* \ 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.21.* \ 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 12. %package -n %{?scl_prefix}libgcc%{gcc_ver} Summary: GCC version 12 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 c++ Summary: C++ support for GCC Requires: %{?scl_prefix}gcc%{gcc_ver} = %{version}-%{release} Requires: %{?scl_prefix}libstdc++%{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 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 %{?scl_prefix}libstdc++%{gcc_ver} Summary: GNU Standard C++ Library Autoreq: true Requires: glibc >= 2.10.90-7 %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}%{?_isa} = %{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}-static Summary: Static libraries for the GNU standard C++ library Requires: %{?scl_prefix}libstdc++%{gcc_ver}-devel = %{version}-%{release} Autoreq: true %description -n %{?scl_prefix}libstdc++%{gcc_ver}-static Static libraries for the GNU standard C++ library. %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 gfortran Summary: Fortran support Requires: %{?scl_prefix}gcc%{gcc_ver} = %{version}-%{release} Requires: %{?scl_prefix}libgfortran%{gcc_ver} = %{version}-%{release} %if %{build_libquadmath} Requires: %{?scl_prefix}libquadmath%{gcc_ver} = %{version}-%{release} Requires: %{?scl_prefix}libquadmath%{gcc_ver}-devel = %{version}-%{release} %endif Provides: %{?scl_prefix}gcc%{gcc_ver}-fortran = %{version}-%{release} Provides: %{?scl_prefix}gfortran%{gcc_ver} = %{version}-%{release} Autoreq: true %description gfortran The gcc-gfortran package provides support for compiling Fortran programs with the GNU Compiler Collection. %package -n %{?scl_prefix}libgfortran%{gcc_ver} Summary: Fortran runtime Autoreq: true %if %{build_libquadmath} Requires: %{?scl_prefix}libquadmath%{gcc_ver} = %{version}-%{release} %endif %description -n %{?scl_prefix}libgfortran%{gcc_ver} This package contains Fortran shared library which is needed to run Fortran dynamically linked programs. %package -n %{?scl_prefix}libgfortran%{gcc_ver}-static Summary: Static Fortran libraries Requires: %{?scl_prefix}libgfortran%{gcc_ver} = %{version}-%{release} Requires: %{?scl_prefix}gcc%{gcc_ver} = %{version}-%{release} %if %{build_libquadmath} Requires: %{?scl_prefix}libquadmath%{gcc_ver}-static = %{version}-%{release} %endif %description -n %{?scl_prefix}libgfortran%{gcc_ver}-static This package contains static Fortran libraries. %package gdc Summary: D support Requires: %{?scl_prefix}gcc%{gcc_ver} = %{version}-%{release} Requires: %{?scl_prefix}libgphobos%{gcc_ver} = %{version}-%{release} Provides: %{?scl_prefix}gcc%{gcc_ver}-d = %{version}-%{release} Provides: %{?scl_prefix}gdc%{gcc_ver} = %{version}-%{release} Autoreq: true %description gdc The gcc-gdc package provides support for compiling D programs with the GNU Compiler Collection. %package -n %{?scl_prefix}libgphobos%{gcc_ver} Summary: D runtime Autoreq: true %description -n %{?scl_prefix}libgphobos%{gcc_ver} This package contains D shared library which is needed to run D dynamically linked programs. %package -n %{?scl_prefix}libgphobos%{gcc_ver}-static Summary: Static D libraries Requires: %{?scl_prefix}libgphobos%{gcc_ver} = %{version}-%{release} Requires: %{?scl_prefix}gcc%{gcc_ver}-gdc = %{version}-%{release} %description -n %{?scl_prefix}libgphobos%{gcc_ver}-static This package contains static D libraries. %package -n %{?scl_prefix}libgomp%{gcc_ver} Summary: GCC OpenMP v4.5 shared support library %description -n %{?scl_prefix}libgomp%{gcc_ver} This package contains GCC shared support library which is needed for OpenMP v4.5 support. %package gdb-plugin Summary: GCC plugin for GDB Requires: %{?scl_prefix}gcc%{gcc_ver} = %{version}-%{release} %description gdb-plugin This package contains GCC 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 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} %description -n %{?scl_prefix}libgccjit%{gcc_ver}-devel This package contains header files and documentation for GCC JIT front-end. %package -n %{?scl_prefix}libquadmath%{gcc_ver} Summary: GCC __float128 shared support library %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 __float128 support Requires: %{?scl_prefix}libquadmath%{gcc_ver} = %{version}-%{release} 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}libquadmath%{gcc_ver}-static Summary: Static libraries for __float128 support Requires: %{?scl_prefix}libquadmath%{gcc_ver}-devel = %{version}-%{release} %description -n %{?scl_prefix}libquadmath%{gcc_ver}-static This package contains static libraries 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 %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}libitm%{gcc_ver} = %{version}-%{release} 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}libitm%{gcc_ver}-static Summary: The GNU Transactional Memory static library Requires: %{?scl_prefix}libitm%{gcc_ver}-devel = %{version}-%{release} %description -n %{?scl_prefix}libitm%{gcc_ver}-static This package contains GNU Transactional Memory static libraries. %package -n %{?scl_prefix}libatomic%{gcc_ver} Summary: The GNU Atomic library %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}-static Summary: The GNU Atomic static library Requires: %{?scl_prefix}libatomic%{gcc_ver} = %{version}-%{release} %description -n %{?scl_prefix}libatomic%{gcc_ver}-static 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}-static Summary: The Address Sanitizer static library Requires: %{?scl_prefix}libasan%{gcc_ver} = %{version}-%{release} %description -n %{?scl_prefix}libasan%{gcc_ver}-static This package contains 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}-static Summary: The Thread Sanitizer static library Requires: %{?scl_prefix}libtsan%{gcc_ver} = %{version}-%{release} %description -n %{?scl_prefix}libtsan%{gcc_ver}-static 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}-static Summary: The Undefined Behavior Sanitizer static library Requires: %{?scl_prefix}libubsan%{gcc_ver} = %{version}-%{release} %description -n %{?scl_prefix}libubsan%{gcc_ver}-static This package contains Undefined Behavior Sanitizer static runtime library. %package -n %{?scl_prefix}liblsan%{gcc_ver} Summary: The Leak Sanitizer runtime library %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}-static Summary: The Leak Sanitizer static library Requires: %{?scl_prefix}liblsan%{gcc_ver} = %{version}-%{release} %description -n %{?scl_prefix}liblsan%{gcc_ver}-static This package contains Leak Sanitizer static runtime library. %package -n %{?scl_prefix}cpp%{gcc_ver} Summary: The C Preprocessor Requires: filesystem >= 3 Autoreq: true %description -n %{?scl_prefix}cpp%{gcc_ver} 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: %{?scl_prefix}gcc%{gcc_ver} = %{version}-%{release} Requires: %{?scl_prefix}libgnat%{gcc_ver} = %{version}-%{release} Requires: %{?scl_prefix}libgnat%{gcc_ver}-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 %{?scl_prefix}libgnat%{gcc_ver} Summary: GNU Ada 83, 95, 2005 and 2012 runtime shared libraries Autoreq: true %description -n %{?scl_prefix}libgnat%{gcc_ver} 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 %{?scl_prefix}libgnat%{gcc_ver}-devel Summary: GNU Ada 83, 95, 2005 and 2012 libraries Autoreq: true %description -n %{?scl_prefix}libgnat%{gcc_ver}-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 %{?scl_prefix}libgnat%{gcc_ver}-static Summary: GNU Ada 83, 95, 2005 and 2012 static libraries Requires: %{?scl_prefix}libgnat-devel%{gcc_ver} = %{version}-%{release} Autoreq: true %description -n %{?scl_prefix}libgnat%{gcc_ver}-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: %{?scl_prefix}gcc = %{version}-%{release} Requires: %{?scl_prefix}libgo = %{version}-%{release} Requires: %{?scl_prefix}libgo-devel = %{version}-%{release} #Requires(post): %%{_sbindir}/update-alternatives #Requires(postun): %%{_sbindir}/update-alternatives Provides: %{?scl_prefix}gccgo = %{version}-%{release} Autoreq: true %description go The gcc-go package provides support for compiling Go programs with the GNU Compiler Collection. %package -n %{?scl_prefix}libgo Summary: Go runtime Autoreq: true %description -n %{?scl_prefix}libgo This package contains Go shared library which is needed to run Go dynamically linked programs. %package -n %{?scl_prefix}libgo-devel Summary: Go development libraries Requires: %{?scl_prefix}libgo = %{version}-%{release} Autoreq: true %description -n %{?scl_prefix}libgo-devel This package includes libraries and support files for compiling Go programs. %package -n %{?scl_prefix}libgo-static Summary: Static Go libraries Requires: %{?scl_prefix}libgo = %{version}-%{release} Requires: %{?scl_prefix}gcc = %{version}-%{release} %description -n %{?scl_prefix}libgo-static This package contains static Go libraries. %package plugin-devel Summary: Support for compiling GCC plugins Requires: %{?scl_prefix}gcc%{gcc_ver} = %{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. %prep %setup -q -n gcc-12.3.0 %autopatch -p1 echo '%{vendor} %{version}-%{release}' > gcc/DEV-PHASE 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=`echo %{optflags}|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/-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} 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 CONFIGURE_OPTS="\ --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \ --with-bugurl=https://gitee.com/src-openeuler/gcc/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_32=x86-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%{?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 \ --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 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 /'`" \ 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 --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 .. # 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 # Copy various doc files here and there cd .. mkdir -p rpm.doc/gfortran rpm.doc/objc rpm.doc/gdc rpm.doc/libphobos 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_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 %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 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 FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major} # fix some things ln -sf gcc%{binsuffix} %{buildroot}%{_prefix}/bin/cc rm -f %{buildroot}%{_prefix}/lib/cpp ln -sf ../bin/cpp%{binsuffix} %{buildroot}/%{_prefix}/lib/cpp ln -sf gfortran%{binsuffix} %{buildroot}%{_prefix}/bin/f95 rm -f %{buildroot}%{_infodir}/dir gzip -9 %{buildroot}%{_infodir}/*.info* ln -sf gcc%{binsuffix} %{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) there is no bits/*.h header installed, so when gch file can't be # used, compilation fails # 2) sometimes it is hard to match the exact options used for building # libstdc++-v3 or they aren't desirable # 3) there are multilib issues, conflicts etc. with this # 4) 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 %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}%{_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 %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 ( %{_prefix}/%{_lib}/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so %else ln -sf %{_prefix}/%{_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 ( %{_prefix}/lib64/libgcc_s.so.1 libgcc.a )' > $FULLPATH/64/libgcc_s.so %else ln -sf %{_prefix}/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 ( %{_prefix}/lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so %else ln -sf %{_prefix}/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 /usr/libexec/getconf/POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default else ln -sf /usr/libexec/getconf/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 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.21.* libgo.so %endif %if %{build_libquadmath} ln -sf ../../../libquadmath.so.0.* libquadmath.so %endif %if %{build_d} ln -sf ../../../libgdruntime.so.3.* libgdruntime.so ln -sf ../../../libgphobos.so.3.* libgphobos.so %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.21.* libgo.so %endif %if %{build_libquadmath} ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so %endif %if %{build_d} ln -sf ../../../../%{_lib}/libgdruntime.so.3.* libgdruntime.so ln -sf ../../../../%{_lib}/libgphobos.so.3.* libgphobos.so %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_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++_libbacktrace.*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_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_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-12.so ln -sf ../../../../../libgnat-*.so libgnat.so ln -sf ../../../../../libgnat-*.so libgnat-12.so else ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-12.so ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-12.so fi popd else pushd $FULLPATH/adalib if [ "%{_lib}" = "lib" ]; then ln -sf ../../../../libgnarl-*.so libgnarl.so ln -sf ../../../../libgnarl-*.so libgnarl-12.so ln -sf ../../../../libgnat-*.so libgnat.so ln -sf ../../../../libgnat-*.so libgnat-12.so else ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-12.so ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-12.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.21.* | sed 's,^.*libg,libg,'`' )' > libgo.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.21.* | 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.3.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgdruntime.so.3.* | sed 's,^.*libg,libg,'`' )' > 64/libgdruntime.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgphobos.so.3.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgphobos.so.3.* | sed 's,^.*libg,libg,'`' )' > 64/libgphobos.so %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++_libbacktrace.a libstdc++_libbacktrace.a ln -sf ../lib64/libstdc++_libbacktrace.a 64/libstdc++_libbacktrace.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_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.21.* | sed 's,^.*libg,libg,'`' )' > libgo.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.21.* | 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.3.* | sed 's,^.*libg,libg,'`' )' > libgdruntime.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgdruntime.so.3.* | sed 's,^.*libg,libg,'`' )' > 32/libgdruntime.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgphobos.so.3.* | sed 's,^.*libg,libg,'`' )' > libgphobos.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgphobos.so.3.* | sed 's,^.*libg,libg,'`' )' > 32/libgphobos.so %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++_libbacktrace.a 32/libstdc++_libbacktrace.a ln -sf lib64/libstdc++_libbacktrace.a libstdc++_libbacktrace.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_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++_libbacktrace.a 32/libstdc++_libbacktrace.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_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 libquadmath.a -o -name libstdc++.a \ -o -name libstdc++fs.a -o -name libstdc++_libbacktrace.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 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.* chrpath -d %{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.3.* chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgphobos.so.3.* %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.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/libasan.so.8.* %endif %if %{build_libubsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.* %endif %if %{build_libtsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2.* %endif %if %{build_liblsan} chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.* %endif %if %{build_go} # Avoid stripping these libraries and binaries. chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.21.* 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 mv $FULLPATH/include-fixed/syslimits.h $FULLPATH/include/syslimits.h mv $FULLPATH/include-fixed/limits.h $FULLPATH/include/limits.h 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 .. # 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 || : %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/ %ifarch aarch64 chmod 755 %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.* chrpath -d %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.* %endif %check %if 0 cd obj-%{gcc_target_platform} %endif %post go %{_sbindir}/update-alternatives --install \ %{_prefix}/bin/go go %{_prefix}/bin/go%{binsuffix}.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%{binsuffix}.gcc fi # 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} %ldconfig_scriptlets -n %{?scl_prefix}libobjc%{gcc_ver} %ldconfig_scriptlets -n %{?scl_prefix}libgfortran%{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} %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 %{_prefix}/bin/cc %{_prefix}/bin/c89 %{_prefix}/bin/c99 %{_prefix}/bin/gcc%{binsuffix} %{_prefix}/bin/gcov%{binsuffix} %{_prefix}/bin/gcov-tool%{binsuffix} %{_prefix}/bin/gcov-dump%{binsuffix} %{_prefix}/bin/gcc-ar%{binsuffix} %{_prefix}/bin/gcc-nm%{binsuffix} %{_prefix}/bin/gcc-ranlib%{binsuffix} %{_prefix}/bin/lto-dump%{binsuffix} %ifarch ppc %{_prefix}/bin/%{_target_platform}-gcc%{binsuffix} %endif %ifarch sparc64 sparcv9 %{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc%{binsuffix} %endif %ifarch ppc64 ppc64p7 %{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc%{binsuffix} %endif %{_prefix}/bin/%{gcc_target_platform}-gcc* %{_mandir}/man1/gcc%{binsuffix}.1* %{_mandir}/man1/gcov%{binsuffix}.1* %{_mandir}/man1/gcov-tool%{binsuffix}.1* %{_mandir}/man1/gcov-dump%{binsuffix}.1* %{_mandir}/man1/lto-dump%{binsuffix}.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 %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 %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_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 %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 %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_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 %{?scl_prefix}cpp%{gcc_ver} %{_prefix}/lib/cpp %{_prefix}/bin/cpp%{binsuffix} %{_mandir}/man1/cpp%{binsuffix}.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 %{?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 c++ %{_prefix}/bin/%{gcc_target_platform}-*++%{binsuffix} %{_prefix}/bin/g++%{binsuffix} %{_prefix}/bin/c++%{binsuffix} %{_mandir}/man1/g++%{binsuffix}.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++_libbacktrace.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++_libbacktrace.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++_libbacktrace.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a %endif %doc rpm.doc/changelogs/gcc/cp/ChangeLog* %files -n %{?scl_prefix}libstdc++%{gcc_ver} %{_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 %{?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} %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++_libbacktrace.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++_libbacktrace.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++_libbacktrace.a %endif %doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README* %files -n %{?scl_prefix}libstdc++%{gcc_ver}-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_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 %{?scl_prefix}libobjc%{gcc_ver} %{_prefix}/%{_lib}/libobjc.so.4* %endif %files gfortran %{_prefix}/bin/gfortran%{binsuffix} %{_prefix}/bin/f95 %{_mandir}/man1/gfortran%{binsuffix}.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 %{?scl_prefix}libgfortran%{gcc_ver} %{_prefix}/%{_lib}/libgfortran.so.5* %files -n %{?scl_prefix}libgfortran%{gcc_ver}-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 %{?scl_prefix}libgphobos%{gcc_ver} %{_prefix}/%{_lib}/libgdruntime.so.3* %{_prefix}/%{_lib}/libgphobos.so.3* %doc rpm.doc/libphobos/* %files -n %{?scl_prefix}libgphobos%{gcc_ver}-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_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 %{?scl_prefix}libgnat%{gcc_ver} %{_prefix}/%{_lib}/libgnat-*.so %{_prefix}/%{_lib}/libgnarl-*.so %files -n %{?scl_prefix}libgnat%{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/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 %{?scl_prefix}libgnat%{gcc_ver}-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 %{?scl_prefix}libgomp%{gcc_ver} %{_prefix}/%{_lib}/libgomp.so.1* %{_infodir}/libgomp.info* %doc rpm.doc/changelogs/libgomp/ChangeLog* %if %{build_libquadmath} %files -n %{?scl_prefix}libquadmath%{gcc_ver} %{_prefix}/%{_lib}/libquadmath.so.0* %{_infodir}/libquadmath.info* %{!?_licensedir:%global license %%doc} %license rpm.doc/libquadmath/COPYING* %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 %ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so %endif %doc rpm.doc/libquadmath/ChangeLog* %files -n %{?scl_prefix}libquadmath%{gcc_ver}-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 %{?scl_prefix}libitm%{gcc_ver} %{_prefix}/%{_lib}/libitm.so.1* %{_infodir}/libitm.info* %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} %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 %{?scl_prefix}libitm%{gcc_ver}-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 %{?scl_prefix}libatomic%{gcc_ver} %{_prefix}/%{_lib}/libatomic.so.1* %ifarch sparcv9 ppc %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.so %endif %ifarch %{multilib_64_archs} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.so %endif %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so %files -n %{?scl_prefix}libatomic%{gcc_ver}-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 %{?scl_prefix}libasan%{gcc_ver} %{_prefix}/%{_lib}/libasan.so.8* %files -n %{?scl_prefix}libasan%{gcc_ver}-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 %{?scl_prefix}libubsan%{gcc_ver} %{_prefix}/%{_lib}/libubsan.so.1* %ifarch sparcv9 ppc %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libubsan.so %endif %ifarch %{multilib_64_archs} %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libubsan.so %endif %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so %files -n %{?scl_prefix}libubsan%{gcc_ver}-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 %{?scl_prefix}libtsan%{gcc_ver} %{_prefix}/%{_lib}/libtsan.so.2* %files -n %{?scl_prefix}libtsan%{gcc_ver}-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_liblsan} %files -n %{?scl_prefix}liblsan%{gcc_ver} %{_prefix}/%{_lib}/liblsan.so.0* %files -n %{?scl_prefix}liblsan%{gcc_ver}-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 %{?scl_prefix}libgo %attr(755,root,root) %{_prefix}/%{_lib}/libgo.so.21* %doc rpm.doc/libgo/* %files -n %{?scl_prefix}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 %{?scl_prefix}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 %{?scl_prefix}libgccjit%{gcc_ver} %{_prefix}/%{_lib}/libgccjit.so.* %doc rpm.doc/changelogs/gcc/jit/ChangeLog* %files -n %{?scl_prefix}libgccjit%{gcc_ver}-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* %changelog * Tue Apr 09 2024 eastb233 12.3.1-18 - AArch64: Fix issue https://gitee.com/src-openeuler/gcc-12/issues/I9DE8T * Sat Mar 09 2024 eastb233 12.3.1-17 - AArch64: Support SME intrinsics * Thu Dec 14 2023 zhangxianting - 12.3.1-16 - fix chrpath error * Mon Nov 20 2023 Shujian Zhao 12.3.1-15 - Upgrade GCC version 12.2.1 to 12.3.1 * Wed Dec 14 2022 Hongyu Wang 12.2.1-14 - i386: Avoid fma_chain for -march=alderlake and sapphirerapids * Tue Nov 29 2022 Hongyu Wang 12.2.1-13 - i386: Only enable small loop unrolling in backend [PR 107692] * Tue Nov 29 2022 Hongyu Wang 12.2.1-12 - Enable small loop unrolling for O2 * Fri Nov 18 2022 Chenxi Mao 12.2.1-11 - Support --program-suffix configuration * Thu Nov 17 2022 Chenxi Mao 12.2.1-10 - Customized package name * Mon Nov 14 2022 Chenxi Mao 12.2.1-9 - Fix invalid link file issue * Wed Nov 09 2022 Cui Lili 12.2.1-8 - Add attribute hot judgement for INLINE_HINT_known_hot hint * Wed Nov 09 2022 Cui Lili 12.2.1-7 - Remove AVX512_VP2INTERSECT from PTA_SAPPHIRERAPIDS * Wed Nov 09 2022 Haochen Jiang 12.2.1-6 - i386: Add syscall to enable AMX for latest kernels * Wed Nov 02 2022 liyancheng <412998149@qq.com> 12.2.1-5 - Change isl dependency from Source to BuildRequire * Wed Nov 02 2022 liyancheng <412998149@qq.com> 12.2.1-4 - Upgrade GCC to 12.2.1 * Thu Aug 25 2022 eastb233 12.1.1-3 - delete bundled(*) Provides in case of conflict with default gcc * Wed Aug 24 2022 eastb233 12.1.1-2 - delete the Provides of lib.* files in rpm package * Tue Aug 09 2022 eastb233 12.1.1-1 - Init gcc toolset gcc 12.1.1