gcc/gcc.spec

3363 lines
128 KiB
RPMSpec
Raw Normal View History

2023-07-11 21:25:22 +08:00
%global gcc_version 12.3.1
%global gcc_major 12
# Note, gcc_release must be integer, if you want to add suffixes to
# %%{release}, append them after %%{gcc_release} on Release: line.
%global gcc_release 27
2020-01-19 17:29:40 +08:00
%global _unpackaged_files_terminate_build 0
2020-05-14 10:48:46 +08:00
%global _performance_build 1
# Hardening slows the compiler way too much.
2020-05-14 10:48:46 +08:00
%undefine _hardened_build
%undefine _auto_set_build_flags
2020-05-14 10:48:46 +08:00
%undefine _annotated_build
2020-01-19 17:29:40 +08:00
%global multilib_64_archs sparc64 ppc64 ppc64p7
2020-01-19 17:29:40 +08:00
%global build_ada 0
2020-05-14 10:48:46 +08:00
%global build_objc 1
2020-01-19 17:29:40 +08:00
%global build_go 0
2020-05-14 10:48:46 +08:00
%global build_d 0
2023-07-17 09:36:54 +08:00
%ifarch %{ix86} x86_64 ia64 ppc64le aarch64
2020-01-19 17:29:40 +08:00
%global build_libquadmath 1
2020-05-14 10:48:46 +08:00
%else
%global build_libquadmath 0
2020-01-19 17:29:40 +08:00
%endif
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 loongarch64 riscv64
2020-01-19 17:29:40 +08:00
%global build_libasan 1
2020-05-14 10:48:46 +08:00
%else
%global build_libasan 0
%endif
%ifarch x86_64 ppc64 ppc64le aarch64 s390x loongarch64
2020-05-14 10:48:46 +08:00
%global build_libtsan 1
%else
%global build_libtsan 0
%endif
%ifarch x86_64 ppc64 ppc64le aarch64 s390x loongarch64
2020-05-14 10:48:46 +08:00
%global build_liblsan 1
%else
%global build_liblsan 0
%endif
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 loongarch64 riscv64
2020-05-14 10:48:46 +08:00
%global build_libubsan 1
%else
%global build_libubsan 0
%endif
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} riscv64 loongarch64
2020-01-19 17:29:40 +08:00
%global build_libatomic 1
2020-05-14 10:48:46 +08:00
%else
%global build_libatomic 0
%endif
%ifarch %{ix86} x86_64 %{arm} alpha ppc ppc64 ppc64le ppc64p7 s390 s390x aarch64 loongarch64
2020-01-19 17:29:40 +08:00
%global build_libitm 1
2020-05-14 10:48:46 +08:00
%else
%global build_libitm 0
%endif
2020-01-19 17:29:40 +08:00
%global build_libstdcxx_docs 0
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le ppc64p7 s390 s390x %{arm} aarch64 %{mips} loongarch64
2020-05-14 10:48:46 +08:00
%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
%ifarch riscv64
%global _lib lib
%global _smp_mflags -j8
%endif
%ifarch loongarch64
%global _lib lib
%endif
2020-01-19 17:29:40 +08:00
%global isl_enable 1
%global check_enable 0
2020-05-14 10:48:46 +08:00
Summary: Various compilers (C, C++, Objective-C, ...)
2020-01-19 17:29:40 +08:00
Name: gcc
2020-05-14 10:48:46 +08:00
Version: %{gcc_version}
Release: %{gcc_release}
# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
# GCC Runtime Exception.
2020-01-19 17:29:40 +08:00
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
2020-10-20 09:45:39 +08:00
URL: https://gcc.gnu.org
Source0: https://ftp.gnu.org/gnu/gcc/gcc-12.3.0/gcc-12.3.0.tar.xz
2020-10-20 09:45:39 +08:00
2020-05-14 10:48:46 +08:00
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
%if %{isl_enable}
BuildRequires: isl >= 0.15.0, isl-devel >= 0.15.0
%endif
BuildRequires: gcc, gcc-c++, make, chrpath
2020-05-14 10:48:46 +08:00
%if %{build_go}
BuildRequires: hostname, procps
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
BuildRequires: gdb
BuildRequires: glibc-devel >= 2.17
2020-05-14 10:48:46 +08:00
%ifarch %{multilib_64_archs} sparcv9 ppc
# Ensure glibc{,-devel} is installed for both multilib arches
2020-05-14 10:48:46 +08:00
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
2020-05-14 10:48:46 +08:00
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
2020-05-14 10:48:46 +08:00
%ifarch ia64
BuildRequires: libunwind >= 0.98
%endif
%if %{build_libstdcxx_docs}
BuildRequires: doxygen >= 1.7.1
BuildRequires: graphviz, dblatex, texlive-collection-latex, docbook5-style-xsl
2020-01-19 17:29:40 +08:00
%endif
Requires: cpp = %{version}-%{release}
2020-05-14 10:48:46 +08:00
Requires: binutils >= 2.31
Conflicts: gdb < 5.1-2
Requires: glibc-devel >= 2.17
2020-01-19 17:29:40 +08:00
Requires: libgcc >= %{version}-%{release}
Requires: libgomp = %{version}-%{release}
# lto-wrapper invokes make
Requires: make
2020-05-14 10:48:46 +08:00
%if !%{build_ada}
Obsoletes: gcc-gnat < %{version}-%{release}
%endif
Obsoletes: gcc-java < %{version}-%{release}
2020-01-19 17:29:40 +08:00
AutoReq: true
2020-05-14 10:48:46 +08:00
Provides: bundled(libiberty)
Provides: bundled(libbacktrace)
Provides: bundled(libffi)
2020-05-14 10:48:46 +08:00
Provides: gcc(major) = %{gcc_major}
Patch1: 0001-Version-Set-version-to-12.3.1.patch
Patch2: 0002-RISCV-Backport-inline-subword-atomic-patches.patch
Patch3: 0003-CONFIG-Regenerate-configure-file.patch
Patch4: 0004-libquadmath-Enable-libquadmath-on-kunpeng.patch
Patch6: 0006-MULL64-1-3-Add-A-B-op-CST-B-match-and-simplify-optim.patch
Patch7: 0007-MULL64-2-3-Fold-series-of-instructions-into-mul.patch
Patch8: 0008-MULL64-3-3-Fold-series-of-instructions-into-umulh.patch
Patch9: 0009-MULL64-Disable-mull64-transformation-by-default.patch
Patch10: 0010-Version-Clear-DATESTAMP_s.patch
Patch11: 0011-Add-attribute-hot-judgement-for-INLINE_HINT_known_ho.patch
Patch12: 0012-Enable-small-loop-unrolling-for-O2.patch
Patch13: 0013-i386-Only-enable-small-loop-unrolling-in-backend-PR-.patch
Patch14: 0014-Array-widen-compare-Add-a-new-optimization-for-array.patch
Patch15: 0015-Backport-Structure-reorganization-optimization.patch
Patch16: 0016-CompleteStructRelayout-Complete-Structure-Relayout.patch
Patch17: 0017-StructReorg-Some-bugfix-for-structure-reorganization.patch
Patch18: 0018-ccmp-Add-another-optimization-opportunity-for-ccmp-i.patch
Patch19: 0019-fp-model-Enable-fp-model-on-kunpeng.patch
Patch20: 0020-simdmath-Enable-simdmath-on-kunpeng.patch
Patch21: 0021-StructReorderFields-Structure-reorder-fields.patch
Patch22: 0022-DFE-Add-Dead-Field-Elimination-in-Struct-Reorg.patch
Patch23: 0023-PGO-kernel-Add-fkernel-pgo-option-to-support-PGO-ker.patch
Patch24: 0024-Struct-Reorg-Refactoring-and-merge-reorder-fields-in.patch
Patch25: 0025-AArch64-Rewrite-the-tsv110-option.patch
Patch26: 0026-GOMP-Enabling-moutline-atomics-improves-libgomp-perf.patch
Patch27: 0027-LoopElim-Redundant-loop-elimination-optimization.patch
Patch28: 0028-Array-widen-compare-Fix-the-return-value-match-after.patch
2024-04-11 14:48:33 +08:00
Patch29: 0029-Struct-Reorg-Add-Safe-Structure-Pointer-Compression.patch
Patch30: 0030-Struct-Reorg-Add-unsafe-structure-pointer-compressio.patch
Patch31: 0031-AutoBOLT-Support-saving-feedback-count-info-to-ELF-s.patch
Patch32: 0032-AutoBOLT-Add-bolt-linker-plugin-2-3.patch
Patch33: 0033-AutoBOLT-Enable-BOLT-linker-plugin-on-aarch64-3-3.patch
Patch34: 0034-Autofdo-Enable-discrimibator-and-MCF-algorithm-on-Au.patch
2024-04-11 19:37:37 +08:00
Patch35: 0035-Add-insn-defs-and-correct-costs-for-cmlt-generation.patch
Patch36: 0036-rtl-ifcvt-introduce-rtl-ifcvt-enchancements.patch
Patch37: 0037-Perform-early-if-conversion-of-simple-arithmetic.patch
Patch38: 0038-Add-option-to-allow-matching-uaddsub-overflow-for-wi.patch
Patch39: 0039-Match-double-sized-mul-pattern.patch
Patch40: 0040-Port-icp-patch-to-GCC-12.patch
Patch41: 0041-Port-fixes-in-icp-to-GCC-12.patch
Patch42: 0042-Add-split-complex-instructions-pass.patch
Patch43: 0043-Extending-and-refactoring-of-pass_split_complex_inst.patch
Patch44: 0044-Port-maxmin-patch-to-GCC-12.patch
Patch45: 0045-Port-moving-minmask-pattern-to-gimple-to-GCC-12.patch
Patch46: 0046-Add-new-pattern-to-pass-the-maxmin-tests.patch
Patch47: 0047-AES-Implement-AES-pattern-matching.patch
Patch48: 0048-crypto-accel-add-optimization-level-requirement-to-t.patch
Patch49: 0049-Add-more-flexible-check-for-pointer-aliasing-during-.patch
Patch50: 0050-Port-IPA-prefetch-to-GCC-12.patch
Patch51: 0051-Port-fixes-for-IPA-prefetch-to-GCC-12.patch
Patch52: 0052-Fix-fails-in-IPA-prefetch-src-openEuler-gcc-I96ID7.patch
Patch53: 0053-struct-reorg-Add-Semi-Relayout.patch
Patch54: 0054-Struct-Reorg-Bugfix-for-structure-pointer-compressio.patch
2024-04-12 15:10:59 +08:00
Patch55: 0055-Struct-Reorg-Port-bugfixes-to-GCC-12.3.1.patch
2024-04-24 12:57:04 +08:00
Patch56: 0056-Fix-bug-that-verifying-gimple-failed-when-reorg-leve.patch
Patch57: 0057-AutoFdo-Fix-memory-leaks-in-autofdo.patch
Patch86: 0086-Modfify-cost-calculation-for-dealing-with-equivalenc.patch
Patch87: 0087-Add-cost-calculation-for-reg-equivalence-invariants.patch
Patch88: 0088-BUGFIX-Fix-the-configure-file-of-BOLT.patch
# Part 3000 ~ 4999
%ifarch loongarch64
Patch3001: loongarch-add-alternatives-for-idiv-insns-to-improve.patch
Patch3002: loongarch-avoid-unnecessary-sign-extend-after-32-bit.patch
Patch3003: LoongArch-Subdivision-symbol-type-add-SYMBOL_PCREL-s.patch
Patch3004: LoongArch-Support-split-symbol.patch
Patch3005: LoongArch-Modify-the-output-message-string-of-the-wa.patch
Patch3006: LoongArch-adjust-the-default-of-mexplicit-relocs-by-.patch
Patch3007: LoongArch-document-m-no-explicit-relocs.patch
Patch3008: LoongArch-Define-the-macro-ASM_PREFERRED_EH_DATA_FOR.patch
Patch3009: LoongArch-Provide-fmin-fmax-RTL-pattern.patch
Patch3010: LoongArch-Get-__tls_get_addr-address-through-got-tab.patch
Patch3011: LoongArch-Add-support-code-model-extreme.patch
Patch3012: LoongArch-Add-new-code-model-medium.patch
Patch3013: LoongArch-Avoid-RTL-flag-check-failure-in-loongarch_.patch
Patch3014: LoongArch-add-model-attribute.patch
Patch3015: LoongArch-testsuite-refine-__tls_get_addr-tests-with.patch
Patch3016: LoongArch-add-mdirect-extern-access-option.patch
Patch3017: LoongArch-Fix-pr106828-by-define-hook-TARGET_ASAN_SH.patch
Patch3018: LoongArch-Prepare-static-PIE-support.patch
Patch3019: LoongArch-Libitm-add-LoongArch-support.patch
Patch3020: LoongArch-Fixed-a-typo-in-the-comment-information-of.patch
Patch3021: LoongArch-Use-UNSPEC-for-fmin-fmax-RTL-pattern-PR105.patch
Patch3022: LoongArch-Fixed-a-bug-in-the-loongarch-architecture-.patch
Patch3023: LoongArch-implement-count_-leading-trailing-_zeros.patch
Patch3024: Libvtv-Add-loongarch-support.patch
Patch3025: LoongArch-Add-fcopysign-instructions.patch
Patch3026: LoongArch-fix-signed-overflow-in-loongarch_emit_int_.patch
Patch3027: LoongArch-Rename-frint_-fmt-to-rint-mode-2.patch
Patch3028: LoongArch-Add-ftint-rm-rp-.-w-l-.-s-d-instructions.patch
Patch3029: LoongArch-Add-fscaleb.-s-d-instructions-as-ldexp-sf-.patch
Patch3030: LoongArch-Add-flogb.-s-d-instructions-and-expand-log.patch
Patch3031: LoongArch-Add-prefetch-instructions.patch
Patch3032: LoongArch-Optimize-immediate-load.patch
Patch3033: LoongArch-Optimize-the-implementation-of-stack-check.patch
Patch3034: LoongArch-Fixed-a-compilation-failure-with-c-in-inli.patch
Patch3035: LoongArch-Don-t-add-crtfastmath.o-for-shared.patch
Patch3036: LoongArch-Generate-bytepick.-wd-for-suitable-bit-ope.patch
Patch3037: LoongArch-Change-the-value-of-macro-TRY_EMPTY_VM_SPA.patch
Patch3038: LoongArch-testsuite-Disable-stack-protector-for-some.patch
Patch3039: LoongArch-Add-built-in-functions-description-of-Loon.patch
Patch3040: LoongArch-Remove-the-definition-of-the-macro-LOGICAL.patch
Patch3041: LoongArch-Optimize-additions-with-immediates.patch
Patch3042: LoongArch-Improve-GAR-store-for-va_list.patch
Patch3043: LoongArch-Improve-cpymemsi-expansion-PR109465.patch
Patch3044: LoongArch-Fix-MUSL_DYNAMIC_LINKER.patch
Patch3045: LoongArch-Enable-shrink-wrapping.patch
Patch3046: LoongArch-Change-the-default-value-of-LARCH_CALL_RAT.patch
Patch3047: LoongArch-Set-default-alignment-for-functions-and-la.patch
Patch3048: LoongArch-Avoid-non-returning-indirect-jumps-through.patch
Patch3049: Loongarch-Fix-plugin-header-missing-install.patch
Patch3050: libffi-Backport-of-LoongArch-support-for-libffi.patch
Patch3051: LoongArch-Remove-redundant-sign-extension-instructio.patch
Patch3052: LoongArch-Enable-free-starting-at-O2.patch
Patch3053: LoongArch-Fix-bug-in-loongarch_emit_stack_tie-PR1104.patch
Patch3054: LoongArch-Implement-128-bit-floating-point-functions.patch
Patch3056: LoongArch-Optimize-switch-with-sign-extended-index.patch
Patch3057: LoongArch-Support-storing-floating-point-zero-into-M.patch
Patch3058: LoongArch-improved-target-configuration-interface.patch
Patch3059: LoongArch-define-preprocessing-macros-__loongarch_-a.patch
Patch3060: LoongArch-add-new-configure-option-with-strict-align.patch
Patch3061: LoongArch-support-loongarch-elf-target.patch
Patch3062: LoongArch-initial-ada-support-on-linux.patch
Patch3063: LoongArch-Add-Loongson-SX-base-instruction-support.patch
Patch3064: LoongArch-Add-Loongson-SX-directive-builtin-function.patch
Patch3065: LoongArch-Add-Loongson-ASX-base-instruction-support.patch
Patch3066: LoongArch-Add-Loongson-ASX-directive-builtin-functio.patch
Patch3067: LoongArch-Fix-unintentionally-breakage-in-r14-3665.patch
Patch3068: LoongArch-Use-bstrins-instruction-for-a-mask-and-a-m.patch
Patch3069: LoongArch-Adjust-C-multilib-header-layout.patch
Patch3070: LoongArch-Fix-unintentional-bash-ism-in-r14-3665.patch
Patch3071: LoongArch-Enable-fsched-pressure-by-default-at-O1-an.patch
Patch3072: LoongArch-Use-LSX-and-LASX-for-block-move.patch
Patch3073: LoongArch-Slightly-simplify-loongarch_block_move_str.patch
Patch3074: LoongArch-Optimized-multiply-instruction-generation.patch
Patch3075: LoongArch-Fix-up-memcpy-vec-3.c-test-case.patch
Patch3076: LoongArch-Add-tests-of-mstrict-align-option.patch
Patch3077: LoongArch-Add-testsuite-framework-for-Loongson-SX-AS.patch
Patch3078: LoongArch-Add-tests-for-Loongson-SX-builtin-function.patch
Patch3079: LoongArch-Add-tests-for-SX-vector-floating-point-ins.patch
Patch3080: LoongArch-Add-tests-for-SX-vector-addition-instructi.patch
Patch3081: LoongArch-Add-tests-for-SX-vector-subtraction-instru.patch
Patch3082: LoongArch-Add-tests-for-SX-vector-addition-vsadd-ins.patch
Patch3083: LoongArch-Add-tests-for-the-SX-vector-multiplication.patch
Patch3084: LoongArch-Add-tests-for-SX-vector-vavg-vavgr-instruc.patch
Patch3085: LoongArch-Add-tests-for-SX-vector-vmax-vmaxi-vmin-vm.patch
Patch3086: LoongArch-Add-tests-for-SX-vector-vexth-vextl-vldi-v.patch
Patch3087: LoongArch-Add-tests-for-SX-vector-vabsd-vmskgez-vmsk.patch
Patch3088: LoongArch-Add-tests-for-SX-vector-vdiv-vmod-instruct.patch
Patch3089: LoongArch-Add-tests-for-SX-vector-vsll-vslli-vsrl-vs.patch
Patch3090: LoongArch-Add-tests-for-SX-vector-vrotr-vrotri-vsra-.patch
Patch3091: LoongArch-Add-tests-for-SX-vector-vssran-vssrani-vss.patch
Patch3092: LoongArch-Add-tests-for-SX-vector-vbitclr-vbitclri-v.patch
Patch3093: LoongArch-Add-tests-for-SX-vector-floating-point-ari.patch
Patch3094: LoongArch-Add-tests-for-SX-vector-vfrstp-vfrstpi-vse.patch
Patch3095: LoongArch-Add-tests-for-SX-vector-vfcmp-instructions.patch
Patch3096: LoongArch-Add-tests-for-SX-vector-handling-and-shuff.patch
Patch3097: LoongArch-Add-tests-for-SX-vector-vand-vandi-vandn-v.patch
Patch3098: LoongArch-Add-tests-for-SX-vector-vfmadd-vfnmadd-vld.patch
Patch3099: LoongArch-Add-tests-for-ASX-vector-xvadd-xvadda-xvad.patch
Patch3100: LoongArch-Add-tests-for-ASX-vector-xvhadd-xvhaddw-xv.patch
Patch3101: LoongArch-Add-tests-for-ASX-vector-subtraction-instr.patch
Patch3102: LoongArch-Add-tests-for-ASX-vector-xvmul-xvmod-xvdiv.patch
Patch3103: LoongArch-Add-tests-for-ASX-vector-xvmax-xvmaxi-xvmi.patch
Patch3104: LoongArch-Add-tests-for-ASX-vector-xvldi-xvmskgez-xv.patch
Patch3105: LoongArch-Add-tests-for-ASX-vector-xvand-xvandi-xvan.patch
Patch3106: LoongArch-Add-tests-for-ASX-vector-xvsll-xvsrl-instr.patch
Patch3107: LoongArch-Add-tests-for-ASX-vector-xvextl-xvsra-xvsr.patch
Patch3108: LoongArch-Add-tests-for-ASX-vector-xvbitclr-xvbitclr.patch
Patch3109: LoongArch-Add-tests-for-ASX-builtin-functions.patch
Patch3110: LoongArch-Add-tests-for-ASX-xvldrepl-xvstelm-instruc.patch
Patch3111: LoongArch-Add-tests-for-ASX-vector-floating-point-op.patch
Patch3112: LoongArch-Add-tests-for-ASX-vector-floating-point-co.patch
Patch3113: LoongArch-Add-tests-for-ASX-vector-comparison-and-se.patch
Patch3114: LoongArch-Add-tests-for-ASX-vector-xvfnmadd-xvfrstp-.patch
Patch3115: LoongArch-Add-tests-for-ASX-vector-xvabsd-xvavg-xvav.patch
Patch3116: LoongArch-Add-tests-for-ASX-vector-xvfcmp-caf-ceq-cl.patch
Patch3117: LoongArch-Add-tests-for-ASX-vector-xvfcmp-saf-seq-sl.patch
Patch3118: LoongArch-Add-tests-for-ASX-vector-xvext2xv-xvexth-x.patch
Patch3119: LoongArch-Add-tests-for-ASX-vector-xvpackev-xvpackod.patch
Patch3120: LoongArch-Add-tests-for-ASX-vector-xvssrln-xvssrlni-.patch
Patch3121: LoongArch-Add-tests-for-ASX-vector-xvssran-xvssrani-.patch
Patch3122: LoongArch-Fix-bug-of-optab-di3_fake.patch
Patch3123: LoongArch-Change-the-value-of-branch_cost-from-2-to-.patch
Patch3124: libsanitizer-add-LoongArch-support.patch
Patch3125: LoongArch-fix-error-building.patch
Patch3126: libjccjit-do-not-link-objects-contained-same-element.patch
Patch3127: LoongArch-Use-finer-grained-DBAR-hints.patch
Patch3128: LoongArch-Add-LA664-support.patch
Patch3129: LoongArch-Fix-internal-error-running-gcc-march-nativ.patch
Patch3130: LoongArch-Fix-lsx-vshuf.c-and-lasx-xvshuf_b.c-tests-.patch
%endif
# 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
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%if %{build_go}
# Avoid stripping these libraries and binaries.
%global __os_install_post \
chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.21.* \
2020-05-14 10:48:46 +08:00
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.* \
2020-05-14 10:48:46 +08:00
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
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%description
The gcc package contains the GNU Compiler Collection version 12.
2020-05-14 10:48:46 +08:00
You'll need this package in order to compile C code.
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%package -n libgcc
Summary: GCC version 12 shared support library
2020-01-19 17:29:40 +08:00
Autoreq: false
2020-05-14 10:48:46 +08:00
%if !%{build_ada}
Obsoletes: libgnat < %{version}-%{release}
%endif
Obsoletes: libgcj < %{version}-%{release}
Obsoletes: libgcj-devel < %{version}-%{release}
Obsoletes: libgcj-src < %{version}-%{release}
%ifarch %{ix86} x86_64
Obsoletes: libcilkrts
Obsoletes: libcilkrts-static
Obsoletes: libmpx
Obsoletes: libmpx-static
%endif
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%description -n libgcc
2020-01-19 17:29:40 +08:00
This package contains GCC shared support library which is needed
e.g. for exception handling support.
%package c++
Summary: C++ support for GCC
Requires: gcc = %{version}-%{release}
Requires: libstdc++ = %{version}-%{release}
Requires: libstdc++-devel = %{version}-%{release}
2020-05-14 10:48:46 +08:00
Provides: gcc-g++ = %{version}-%{release}
Provides: g++ = %{version}-%{release}
2020-01-19 17:29:40 +08:00
Autoreq: true
%description c++
This package adds C++ support to the GNU Compiler Collection.
It includes support for most of the current C++ specification,
including templates and exception handling.
%package -n libstdc++
Summary: GNU Standard C++ Library
Autoreq: true
Requires: glibc >= 2.10.90-7
%description -n libstdc++
The libstdc++ package contains a rewritten standard compliant GCC Standard
C++ Library.
%package -n libstdc++-devel
Summary: Header files and libraries for C++ development
Requires: libstdc++%{?_isa} = %{version}-%{release}
Autoreq: true
%description -n libstdc++-devel
This is the GNU implementation of the standard C++ libraries. This
package includes the header files and libraries needed for C++
development. This includes rewritten implementation of STL.
%package -n libstdc++-static
Summary: Static libraries for the GNU standard C++ library
Requires: libstdc++-devel = %{version}-%{release}
Autoreq: true
%description -n libstdc++-static
Static libraries for the GNU standard C++ library.
2020-05-14 10:48:46 +08:00
%package -n libstdc++-docs
Summary: Documentation for the GNU standard C++ library
2020-01-19 17:29:40 +08:00
Autoreq: true
2020-05-14 10:48:46 +08:00
%description -n libstdc++-docs
Manual, doxygen generated API information and Frequently Asked Questions
for the GNU standard C++ library.
2020-01-19 17:29:40 +08:00
%package objc
Summary: Objective-C support for GCC
Requires: gcc = %{version}-%{release}
Requires: libobjc = %{version}-%{release}
Autoreq: true
%description objc
gcc-objc provides Objective-C support for the GCC.
Mainly used on systems running NeXTSTEP, Objective-C is an
object-oriented derivative of the C language.
%package objc++
Summary: Objective-C++ support for GCC
Requires: gcc-c++ = %{version}-%{release}, gcc-objc = %{version}-%{release}
Autoreq: true
%description objc++
gcc-objc++ package provides Objective-C++ support for the GCC.
%package -n libobjc
Summary: Objective-C runtime
Autoreq: true
%description -n libobjc
This package contains Objective-C shared library which is needed to run
Objective-C dynamically linked programs.
2020-05-14 10:48:46 +08:00
%package gfortran
Summary: Fortran support
Requires: gcc = %{version}-%{release}
Requires: libgfortran = %{version}-%{release}
%if %{build_libquadmath}
Requires: libquadmath = %{version}-%{release}
Requires: libquadmath-devel = %{version}-%{release}
%endif
Provides: gcc-fortran = %{version}-%{release}
Provides: gfortran = %{version}-%{release}
2020-01-19 17:29:40 +08:00
Autoreq: true
2020-05-14 10:48:46 +08:00
%description gfortran
The gcc-gfortran package provides support for compiling Fortran
programs with the GNU Compiler Collection.
%package -n libgfortran
Summary: Fortran runtime
Autoreq: true
%if %{build_libquadmath}
Requires: libquadmath = %{version}-%{release}
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%description -n libgfortran
This package contains Fortran shared library which is needed to run
Fortran dynamically linked programs.
%package -n libgfortran-static
Summary: Static Fortran libraries
Requires: libgfortran = %{version}-%{release}
Requires: gcc = %{version}-%{release}
%if %{build_libquadmath}
Requires: libquadmath-static = %{version}-%{release}
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%description -n libgfortran-static
This package contains static Fortran libraries.
%package gdc
Summary: D support
Requires: gcc = %{version}-%{release}
Requires: libgphobos = %{version}-%{release}
Provides: gcc-d = %{version}-%{release}
Provides: gdc = %{version}-%{release}
Autoreq: true
%description gdc
The gcc-gdc package provides support for compiling D
programs with the GNU Compiler Collection.
%package -n libgphobos
Summary: D runtime
Autoreq: true
%description -n libgphobos
This package contains D shared library which is needed to run
D dynamically linked programs.
%package -n libgphobos-static
Summary: Static D libraries
Requires: libgphobos = %{version}-%{release}
Requires: gcc-gdc = %{version}-%{release}
%description -n libgphobos-static
This package contains static D libraries.
%package -n libgomp
Summary: GCC OpenMP v4.5 shared support library
%description -n libgomp
This package contains GCC shared support library which is needed
for OpenMP v4.5 support.
%package gdb-plugin
Summary: GCC plugin for GDB
Requires: gcc = %{version}-%{release}
%description gdb-plugin
This package contains GCC plugin for GDB C expression evaluation.
2022-07-08 15:05:53 +08:00
%package -n libgccjit
Summary: Library for embedding GCC inside programs and libraries
Requires: gcc = %{version}-%{release}
%description -n libgccjit
This package contains shared library with GCC JIT front-end.
%package -n libgccjit-devel
Summary: Support for embedding GCC inside programs and libraries
BuildRequires: python3-sphinx
Requires: libgccjit = %{version}-%{release}
%description -n libgccjit-devel
This package contains header files and documentation for GCC JIT front-end.
2020-05-14 10:48:46 +08:00
%package -n libquadmath
Summary: GCC __float128 shared support library
%description -n libquadmath
This package contains GCC shared support library which is needed
for __float128 math support and for Fortran REAL*16 support.
%package -n libquadmath-devel
Summary: GCC __float128 support
Requires: libquadmath = %{version}-%{release}
Requires: gcc = %{version}-%{release}
%description -n libquadmath-devel
This package contains headers for building Fortran programs using
REAL*16 and programs using __float128 math.
%package -n libquadmath-static
Summary: Static libraries for __float128 support
Requires: libquadmath-devel = %{version}-%{release}
%description -n libquadmath-static
This package contains static libraries for building Fortran programs
using REAL*16 and programs using __float128 math.
2020-01-19 17:29:40 +08:00
%package -n libitm
Summary: The GNU Transactional Memory library
%description -n libitm
This package contains the GNU Transactional Memory library
which is a GCC transactional memory support runtime library.
%package -n libitm-devel
Summary: The GNU Transactional Memory support
Requires: libitm = %{version}-%{release}
Requires: gcc = %{version}-%{release}
%description -n libitm-devel
This package contains headers and support files for the
GNU Transactional Memory library.
%package -n libitm-static
Summary: The GNU Transactional Memory static library
Requires: libitm-devel = %{version}-%{release}
%description -n libitm-static
This package contains GNU Transactional Memory static libraries.
%package -n libatomic
Summary: The GNU Atomic library
%description -n libatomic
This package contains the GNU Atomic library
which is a GCC support runtime library for atomic operations not supported
by hardware.
%package -n libatomic-static
Summary: The GNU Atomic static library
Requires: libatomic = %{version}-%{release}
%description -n libatomic-static
This package contains GNU Atomic static libraries.
%package -n libasan
Summary: The Address Sanitizer runtime library
%description -n libasan
This package contains the Address Sanitizer library
which is used for -fsanitize=address instrumented programs.
%package -n libasan-static
Summary: The Address Sanitizer static library
Requires: libasan = %{version}-%{release}
%description -n libasan-static
This package contains Address Sanitizer static runtime library.
%package -n libtsan
Summary: The Thread Sanitizer runtime library
%description -n libtsan
This package contains the Thread Sanitizer library
which is used for -fsanitize=thread instrumented programs.
%package -n libtsan-static
Summary: The Thread Sanitizer static library
Requires: libtsan = %{version}-%{release}
%description -n libtsan-static
This package contains Thread Sanitizer static runtime library.
2020-05-14 10:48:46 +08:00
%package -n libubsan
Summary: The Undefined Behavior Sanitizer runtime library
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%description -n libubsan
This package contains the Undefined Behavior Sanitizer library
which is used for -fsanitize=undefined instrumented programs.
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%package -n libubsan-static
Summary: The Undefined Behavior Sanitizer static library
Requires: libubsan = %{version}-%{release}
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%description -n libubsan-static
This package contains Undefined Behavior Sanitizer static runtime library.
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%package -n liblsan
Summary: The Leak Sanitizer runtime library
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%description -n liblsan
This package contains the Leak Sanitizer library
which is used for -fsanitize=leak instrumented programs.
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%package -n liblsan-static
Summary: The Leak Sanitizer static library
Requires: liblsan = %{version}-%{release}
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%description -n liblsan-static
This package contains Leak Sanitizer static runtime library.
2020-01-19 17:29:40 +08:00
%package -n cpp
Summary: The C Preprocessor
Requires: filesystem >= 3
Provides: /lib/cpp
Autoreq: true
%description -n cpp
Cpp is the GNU C-Compatible Compiler Preprocessor.
Cpp is a macro processor which is used automatically
by the C compiler to transform your program before actual
compilation. It is called a macro processor because it allows
you to define macros, abbreviations for longer
constructs.
The C preprocessor provides four separate functionalities: the
inclusion of header files (files of declarations that can be
substituted into your program); macro expansion (you can define macros,
and the C preprocessor will replace the macros with their definitions
throughout the program); conditional compilation (using special
preprocessing directives, you can include or exclude parts of the
program according to various conditions); and line control (if you use
a program to combine or rearrange source files into an intermediate
file which is then compiled, you can use line control to inform the
compiler about where each source line originated).
You should install this package if you are a C programmer and you use
macros.
2020-05-14 10:48:46 +08:00
%package gnat
Summary: Ada 83, 95, 2005 and 2012 support for GCC
Requires: gcc = %{version}-%{release}
Requires: libgnat = %{version}-%{release}, libgnat-devel = %{version}-%{release}
Autoreq: true
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%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.
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%package -n libgnat
Summary: GNU Ada 83, 95, 2005 and 2012 runtime shared libraries
Autoreq: true
%description -n libgnat
GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. This package includes
shared libraries, which are required to run programs compiled with the GNAT.
%package -n libgnat-devel
Summary: GNU Ada 83, 95, 2005 and 2012 libraries
Autoreq: true
%description -n libgnat-devel
GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. This package includes
libraries, which are required to compile with the GNAT.
%package -n libgnat-static
Summary: GNU Ada 83, 95, 2005 and 2012 static libraries
Requires: libgnat-devel = %{version}-%{release}
Autoreq: true
%description -n libgnat-static
GNAT is a GNU Ada 83, 95, 2005 and 2012 front-end to GCC. This package includes
static libraries.
%package go
Summary: Go support
2020-01-19 17:29:40 +08:00
Requires: gcc = %{version}-%{release}
2020-05-14 10:48:46 +08:00
Requires: libgo = %{version}-%{release}
Requires: libgo-devel = %{version}-%{release}
Requires(post): %{_sbindir}/update-alternatives
Requires(postun): %{_sbindir}/update-alternatives
Provides: gccgo = %{version}-%{release}
Autoreq: true
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%description go
The gcc-go package provides support for compiling Go programs
with the GNU Compiler Collection.
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%package -n libgo
Summary: Go runtime
Autoreq: true
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%description -n libgo
This package contains Go shared library which is needed to run
Go dynamically linked programs.
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%package -n libgo-devel
Summary: Go development libraries
Requires: libgo = %{version}-%{release}
Autoreq: true
%description -n libgo-devel
This package includes libraries and support files for compiling
Go programs.
%package -n libgo-static
Summary: Static Go libraries
Requires: libgo = %{version}-%{release}
Requires: gcc = %{version}-%{release}
%description -n libgo-static
This package contains static Go libraries.
%package plugin-devel
Summary: Support for compiling GCC plugins
Requires: gcc = %{version}-%{release}
Requires: gmp-devel >= 4.1.2-8, mpfr-devel >= 3.1.0, libmpc-devel >= 0.8.1
2020-05-14 10:48:46 +08:00
%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.
2020-01-19 17:29:40 +08:00
%prep
%setup -q -n gcc-12.3.0
2023-07-14 18:10:33 +08:00
%patch1 -p1
%patch2 -p1
%patch3 -p1
[Sync] Enable small loop unrolling for O2 Modern processors has multiple way instruction decoders For x86, icelake/zen3 has 5 uops, so for small loop with <= 4 instructions (usually has 3 uops with a cmp/jmp pair that can be macro-fused), the decoder would have 2 uops bubble for each iteration and the pipeline could not be fully utilized. Therefore, this patch enables loop unrolling for small size loop at O2 to fullfill the decoder as much as possible. It turns on rtl loop unrolling when targetm.loop_unroll_adjust exists and O2 plus speed only. In x86 backend the default behavior is to unroll small loops with less than 4 insns by 1 time. This improves 548.exchange2 by 9% on icelake and 7.4% on zen3 with 0.9% codesize increment. For other benchmarks the variants are minor and overall codesize increased by 0.2%. The kernel image size increased by 0.06%, and no impact on eembc. gcc/ChangeLog: * common/config/i386/i386-common.cc (ix86_optimization_table): Enable small loop unroll at O2 by default. * config/i386/i386.cc (ix86_loop_unroll_adjust): Adjust unroll factor if -munroll-only-small-loops enabled and -funroll-loops/ -funroll-all-loops are disabled. * config/i386/i386.h (struct processor_costs): Add 2 field small_unroll_ninsns and small_unroll_factor. * config/i386/i386.opt: Add -munroll-only-small-loops. * doc/invoke.texi: Document -munroll-only-small-loops. * loop-init.cc (pass_rtl_unroll_loops::gate): Enable rtl loop unrolling for -O2-speed and above if target hook loop_unroll_adjust exists. (pass_rtl_unroll_loops::execute): Set UAP_UNROLL flag when target hook loop_unroll_adjust exists. * config/i386/x86-tune-costs.h: Update all processor costs with small_unroll_ninsns = 4 and small_unroll_factor = 2. gcc/testsuite/ChangeLog: * gcc.dg/guality/loop-1.c: Add additional option -mno-unroll-only-small-loops. * gcc.target/i386/pr86270.c: Add -mno-unroll-only-small-loops. * gcc.target/i386/pr93002.c: Likewise.
2023-08-11 10:24:40 +08:00
%patch4 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
2024-04-11 14:48:33 +08:00
%patch29 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
2024-04-11 19:37:37 +08:00
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
%patch39 -p1
%patch40 -p1
%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch45 -p1
%patch46 -p1
%patch47 -p1
%patch48 -p1
%patch49 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1
%patch53 -p1
%patch54 -p1
2024-04-12 15:10:59 +08:00
%patch55 -p1
2024-04-24 12:57:04 +08:00
%patch56 -p1
%patch57 -p1
%patch86 -p1
%patch87 -p1
%patch88 -p1
%ifarch loongarch64
%patch3001 -p1
%patch3002 -p1
%patch3003 -p1
%patch3004 -p1
%patch3005 -p1
%patch3006 -p1
%patch3007 -p1
%patch3008 -p1
%patch3009 -p1
%patch3010 -p1
%patch3011 -p1
%patch3012 -p1
%patch3013 -p1
%patch3014 -p1
%patch3015 -p1
%patch3016 -p1
%patch3017 -p1
%patch3018 -p1
%patch3019 -p1
%patch3020 -p1
%patch3021 -p1
%patch3022 -p1
%patch3023 -p1
%patch3024 -p1
%patch3025 -p1
%patch3026 -p1
%patch3027 -p1
%patch3028 -p1
%patch3029 -p1
%patch3030 -p1
%patch3031 -p1
%patch3032 -p1
%patch3033 -p1
%patch3034 -p1
%patch3035 -p1
%patch3036 -p1
%patch3037 -p1
%patch3038 -p1
%patch3039 -p1
%patch3040 -p1
%patch3041 -p1
%patch3042 -p1
%patch3043 -p1
%patch3044 -p1
%patch3045 -p1
%patch3046 -p1
%patch3047 -p1
%patch3048 -p1
%patch3049 -p1
%patch3050 -p1
%patch3051 -p1
%patch3052 -p1
%patch3053 -p1
%patch3054 -p1
%patch3056 -p1
%patch3057 -p1
%patch3058 -p1
%patch3059 -p1
%patch3060 -p1
%patch3061 -p1
%patch3062 -p1
%patch3063 -p1
%patch3064 -p1
%patch3065 -p1
%patch3066 -p1
%patch3067 -p1
%patch3068 -p1
%patch3069 -p1
%patch3070 -p1
%patch3071 -p1
%patch3072 -p1
%patch3073 -p1
%patch3074 -p1
%patch3075 -p1
%patch3076 -p1
%patch3077 -p1
%patch3078 -p1
%patch3079 -p1
%patch3080 -p1
%patch3081 -p1
%patch3082 -p1
%patch3083 -p1
%patch3084 -p1
%patch3085 -p1
%patch3086 -p1
%patch3087 -p1
%patch3088 -p1
%patch3089 -p1
%patch3090 -p1
%patch3091 -p1
%patch3092 -p1
%patch3093 -p1
%patch3094 -p1
%patch3095 -p1
%patch3096 -p1
%patch3097 -p1
%patch3098 -p1
%patch3099 -p1
%patch3100 -p1
%patch3101 -p1
%patch3102 -p1
%patch3103 -p1
%patch3104 -p1
%patch3105 -p1
%patch3106 -p1
%patch3107 -p1
%patch3108 -p1
%patch3109 -p1
%patch3110 -p1
%patch3111 -p1
%patch3112 -p1
%patch3113 -p1
%patch3114 -p1
%patch3115 -p1
%patch3116 -p1
%patch3117 -p1
%patch3118 -p1
%patch3119 -p1
%patch3120 -p1
%patch3121 -p1
%patch3122 -p1
%patch3123 -p1
%patch3124 -p1
%patch3125 -p1
%patch3126 -p1
%patch3127 -p1
%patch3128 -p1
%patch3129 -p1
%patch3130 -p1
%endif
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
2020-01-19 17:29:40 +08:00
%build
export CONFIG_SITE=NONE
CC=gcc
2020-05-14 10:48:46 +08:00
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'`
2020-01-19 17:29:40 +08:00
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-mfpmath=sse/-mfpmath=sse -msse2/g'`
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/ -pipe / /g'`
2020-05-14 10:48:46 +08:00
OPT_FLAGS=`echo $OPT_FLAGS|sed -e 's/-Werror=format-security/ /g'`
2020-01-19 17:29:40 +08:00
%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*)
2020-05-14 10:48:46 +08:00
sed -i -e 's/-fno-exceptions /-fno-exceptions -fno-asynchronous-unwind-tables /' \
libgcc/Makefile.in
2020-01-19 17:29:40 +08:00
;;
esac
2020-05-14 10:48:46 +08:00
rm -rf obj-%{gcc_target_platform}
mkdir obj-%{gcc_target_platform}
cd obj-%{gcc_target_platform}
2020-01-19 17:29:40 +08:00
enablelgo=
enablelada=
2020-05-14 10:48:46 +08:00
enablelobjc=
enableld=
%if %{build_objc}
enablelobjc=,objc,obj-c++
%endif
2020-01-19 17:29:40 +08:00
%if %{build_ada}
enablelada=,ada
%endif
%if %{build_go}
enablelgo=,go
%endif
2020-05-14 10:48:46 +08:00
%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\
%ifarch aarch64
--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 %{isl_enable}
--with-isl \
%else
--without-isl \
%endif
%if %{attr_ifunc}
--enable-gnu-indirect-function \
%endif
%ifarch %{arm}
--disable-sjlj-exceptions \
2020-01-19 17:29:40 +08:00
%endif
%ifarch aarch64
--with-multilib-list=lp64 \
--enable-bolt
%endif
%ifarch %{ix86} x86_64
--enable-cet \
--with-tune=generic \
%endif
%ifarch %{ix86}
--with-arch=x86-64 \
%endif
%ifarch x86_64
--with-arch_64=x86-64-v2 \
2020-01-19 17:29:40 +08:00
%endif
%ifarch riscv64
2024-01-15 14:16:10 +08:00
--with-arch=rv64gc --with-abi=lp64d --disable-libquadmath \
%endif
%ifnarch sparc sparcv9 ppc
--build=%{gcc_target_platform} \
%endif
%ifarch loongarch64
--with-arch=loongarch64 --with-abi=lp64d \
--disable-libquadmath --disable-multilib --enable-tls \
--enable-default-pie
%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 --disable-libgcj --without-cloog\
--enable-languages=c,c++,fortran${enablelobjc}${enablelada}${enablelgo}${enableld},lto \
$CONFIGURE_OPTS
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ifarch sparc sparcv9 sparc64
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now
2020-01-19 17:29:40 +08:00
%else
make %{?_smp_mflags} BOOT_CFLAGS="$OPT_FLAGS" LDFLAGS_FOR_TARGET=-Wl,-z,relro,-z,now
2020-01-19 17:29:40 +08:00
%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`"
2022-07-08 15:05:53 +08:00
# Build libgccjit separately, so that normal compiler binaries aren't -fpic
# unnecessarily.
mkdir objlibgccjit
cd objlibgccjit
CC="$CC" CXX="$CXX" \
CFLAGS="$OPT_FLAGS" \
2022-07-08 15:05:53 +08:00
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" \
2022-07-08 15:05:53 +08:00
../../configure --disable-bootstrap --enable-host-shared \
--enable-languages=jit $CONFIGURE_OPTS
2022-07-08 15:05:53 +08:00
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 ..
2020-01-19 17:29:40 +08:00
# 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
2020-01-19 17:29:40 +08:00
for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done
# Make generated doxygen pages.
%if %{build_libstdcxx_docs}
cd %{gcc_target_platform}/libstdc++-v3
make doc-html-doxygen
make doc-man-doxygen
2020-01-19 17:29:40 +08:00
cd ../..
%endif
# Copy various doc files here and there
cd ..
2020-05-14 10:48:46 +08:00
mkdir -p rpm.doc/gfortran rpm.doc/objc rpm.doc/gdc rpm.doc/libphobos
2020-01-19 17:29:40 +08:00
mkdir -p rpm.doc/go rpm.doc/libgo rpm.doc/libquadmath rpm.doc/libitm
2022-07-08 15:05:53 +08:00
mkdir -p rpm.doc/changelogs/{gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer}
2020-05-14 10:48:46 +08:00
2022-07-08 15:05:53 +08:00
for i in {gcc,gcc/cp,gcc/ada,gcc/jit,libstdc++-v3,libobjc,libgomp,libcc1,libatomic,libsanitizer}/ChangeLog*; do
2020-01-19 17:29:40 +08:00
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)
2020-05-14 10:48:46 +08:00
%if %{build_objc}
2020-01-19 17:29:40 +08:00
(cd libobjc; for i in README*; do
cp -p $i ../rpm.doc/objc/$i.libobjc
done)
2020-05-14 10:48:46 +08:00
%endif
%if %{build_d}
(cd gcc/d; for i in ChangeLog*; do
cp -p $i ../../rpm.doc/gdc/$i.gdc
2020-01-19 17:29:40 +08:00
done)
2020-05-14 10:48:46 +08:00
(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/)
2020-05-14 10:48:46 +08:00
%endif
2020-01-19 17:29:40 +08:00
%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
2020-05-14 10:48:46 +08:00
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
2020-01-19 17:29:40 +08:00
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
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
make prefix=%{buildroot}%{_prefix} mandir=%{buildroot}%{_mandir} \
2020-01-19 17:29:40 +08:00
infodir=%{buildroot}%{_infodir} install
%if %{build_ada}
chmod 644 %{buildroot}%{_infodir}/gnat*
%endif
2020-05-14 10:48:46 +08:00
FULLPATH=%{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
FULLEPATH=%{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
# fix some things
ln -sf gcc %{buildroot}%{_prefix}/bin/cc
rm -f %{buildroot}%{_prefix}/lib/cpp
ln -sf ../bin/cpp %{buildroot}/%{_prefix}/lib/cpp
ln -sf gfortran %{buildroot}%{_prefix}/bin/f95
rm -f %{buildroot}%{_infodir}/dir
gzip -9 %{buildroot}%{_infodir}/*.info*
ln -sf gcc %{buildroot}%{_prefix}/bin/gnatgcc
2020-05-14 10:48:46 +08:00
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
2020-01-19 17:29:40 +08:00
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
2020-05-14 10:48:46 +08:00
cat > %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/c++config.h <<EOF
2020-01-19 17:29:40 +08:00
#ifndef _CPP_CPPCONFIG_WRAPPER
#define _CPP_CPPCONFIG_WRAPPER 1
#include <bits/wordsize.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
2020-05-14 10:48:46 +08:00
for f in `find %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/ -name c++config.h`; do
2020-01-19 17:29:40 +08:00
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.
2020-05-14 10:48:46 +08:00
rm -rf %{buildroot}%{_prefix}/include/c++/%{gcc_major}/%{gcc_target_platform}/bits/*.h.gch
2020-01-19 17:29:40 +08:00
%if %{build_libstdcxx_docs}
libstdcxx_doc_builddir=%{gcc_target_platform}/libstdc++-v3/doc/doxygen
mkdir -p ../rpm.doc/libstdc++-v3
cp -r -p ../libstdc++-v3/doc/html ../rpm.doc/libstdc++-v3/html
cp -r -p $libstdcxx_doc_builddir/html ../rpm.doc/libstdc++-v3/html/api
mkdir -p %{buildroot}%{_mandir}/man3
cp -r -p $libstdcxx_doc_builddir/man/man3/* %{buildroot}%{_mandir}/man3/
find ../rpm.doc/libstdc++-v3 -name \*~ | xargs rm
%endif
%ifarch sparcv9 sparc64
ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \
%{buildroot}%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc
%endif
%ifarch ppc ppc64 ppc64p7
ln -f %{buildroot}%{_prefix}/bin/%{gcc_target_platform}-gcc \
%{buildroot}%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc
%endif
2020-05-14 10:48:46 +08:00
FULLLSUBDIR=
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
FULLLSUBDIR=lib32
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
FULLLSUBDIR=lib64
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
if [ -n "$FULLLSUBDIR" ]; then
FULLLPATH=$FULLPATH/$FULLLSUBDIR
2020-01-19 17:29:40 +08:00
mkdir -p $FULLLPATH
else
FULLLPATH=$FULLPATH
fi
find %{buildroot} -name \*.la | xargs rm -f
mv %{buildroot}%{_prefix}/%{_lib}/libgfortran.spec $FULLPATH/
2020-05-14 10:48:46 +08:00
%if %{build_d}
mv %{buildroot}%{_prefix}/%{_lib}/libgphobos.spec $FULLPATH/
%endif
2020-01-19 17:29:40 +08:00
%if %{build_libitm}
mv %{buildroot}%{_prefix}/%{_lib}/libitm.spec $FULLPATH/
%endif
%if %{build_libasan}
mv %{buildroot}%{_prefix}/%{_lib}/libsanitizer.spec $FULLPATH/
%endif
mkdir -p %{buildroot}/%{_lib}
mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}.so.1
chmod 755 %{buildroot}/%{_lib}/libgcc_s-%{gcc_major}.so.1
ln -sf libgcc_s-%{gcc_major}.so.1 %{buildroot}/%{_lib}/libgcc_s.so.1
%ifarch %{ix86} x86_64 ppc ppc64 ppc64p7 ppc64le %{arm} aarch64 riscv64 loongarch64
2020-05-14 10:48:46 +08:00
rm -f $FULLPATH/libgcc_s.so
echo '/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT('`gcc -Wl,--print-output-format -nostdlib -r -o /dev/null`')
GROUP ( /%{_lib}/libgcc_s.so.1 libgcc.a )' > $FULLPATH/libgcc_s.so
%else
2020-01-19 17:29:40 +08:00
ln -sf /%{_lib}/libgcc_s.so.1 $FULLPATH/libgcc_s.so
%endif
%ifarch sparcv9 ppc
%ifarch ppc
2020-05-14 10:48:46 +08:00
rm -f $FULLPATH/64/libgcc_s.so
2020-01-19 17:29:40 +08:00
echo '/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
2020-05-14 10:48:46 +08:00
OUTPUT_FORMAT('`gcc -m64 -Wl,--print-output-format -nostdlib -r -o /dev/null`')
GROUP ( /lib64/libgcc_s.so.1 libgcc.a )' > $FULLPATH/64/libgcc_s.so
%else
ln -sf /lib64/libgcc_s.so.1 $FULLPATH/64/libgcc_s.so
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%endif
%ifarch %{multilib_64_archs}
%ifarch x86_64 ppc64 ppc64p7
rm -f $FULLPATH/64/libgcc_s.so
2020-01-19 17:29:40 +08:00
echo '/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
2020-05-14 10:48:46 +08:00
OUTPUT_FORMAT('`gcc -m32 -Wl,--print-output-format -nostdlib -r -o /dev/null`')
2020-01-19 17:29:40 +08:00
GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so
2020-05-14 10:48:46 +08:00
%else
ln -sf /lib/libgcc_s.so.1 $FULLPATH/32/libgcc_s.so
2020-01-19 17:29:40 +08:00
%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
2020-05-14 10:48:46 +08:00
if gcc/xgcc -B gcc/ -E -P -dD -xc /dev/null | grep '__LONG_MAX__.*\(2147483647\|0x7fffffff\($\|[LU]\)\)'; then
2020-01-19 17:29:40 +08:00
ln -sf POSIX_V6_ILP32_OFF32 %{buildroot}%{_prefix}/libexec/getconf/default
else
ln -sf POSIX_V6_LP64_OFF64 %{buildroot}%{_prefix}/libexec/getconf/default
fi
mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++*gdb.py* \
%{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/
pushd ../libstdc++-v3/python
for i in `find . -name \*.py`; do
2020-05-14 10:48:46 +08:00
touch -r $i %{buildroot}%{_prefix}/share/gcc-%{gcc_major}/python/$i
2020-01-19 17:29:40 +08:00
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
2020-01-19 17:29:40 +08:00
2022-07-08 15:05:53 +08:00
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
2020-01-19 17:29:40 +08:00
pushd $FULLPATH
if [ "%{_lib}" = "lib" ]; then
2020-05-14 10:48:46 +08:00
%if %{build_objc}
2020-01-19 17:29:40 +08:00
ln -sf ../../../libobjc.so.4 libobjc.so
2020-05-14 10:48:46 +08:00
%endif
2020-01-19 17:29:40 +08:00
ln -sf ../../../libstdc++.so.6.*[0-9] libstdc++.so
2020-05-14 10:48:46 +08:00
ln -sf ../../../libgfortran.so.5.* libgfortran.so
2020-01-19 17:29:40 +08:00
ln -sf ../../../libgomp.so.1.* libgomp.so
%if %{build_go}
ln -sf ../../../libgo.so.21.* libgo.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libquadmath}
ln -sf ../../../libquadmath.so.0.* libquadmath.so
%endif
2020-05-14 10:48:46 +08:00
%if %{build_d}
ln -sf ../../../libgdruntime.so.3.* libgdruntime.so
ln -sf ../../../libgphobos.so.3.* libgphobos.so
2020-05-14 10:48:46 +08:00
%endif
2020-01-19 17:29:40 +08:00
%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
2020-01-19 17:29:40 +08:00
mv ../../../libasan_preinit.o libasan_preinit.o
%endif
2020-05-14 10:48:46 +08:00
%if %{build_libubsan}
ln -sf ../../../libubsan.so.1.* libubsan.so
2020-01-19 17:29:40 +08:00
%endif
%ifarch loongarch64
%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
%endif
2020-01-19 17:29:40 +08:00
else
2020-05-14 10:48:46 +08:00
%if %{build_objc}
2020-01-19 17:29:40 +08:00
ln -sf ../../../../%{_lib}/libobjc.so.4 libobjc.so
2020-05-14 10:48:46 +08:00
%endif
2020-01-19 17:29:40 +08:00
ln -sf ../../../../%{_lib}/libstdc++.so.6.*[0-9] libstdc++.so
2020-05-14 10:48:46 +08:00
ln -sf ../../../../%{_lib}/libgfortran.so.5.* libgfortran.so
2020-01-19 17:29:40 +08:00
ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so
%if %{build_go}
ln -sf ../../../../%{_lib}/libgo.so.21.* libgo.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libquadmath}
ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so
%endif
2020-05-14 10:48:46 +08:00
%if %{build_d}
ln -sf ../../../../%{_lib}/libgdruntime.so.3.* libgdruntime.so
ln -sf ../../../../%{_lib}/libgphobos.so.3.* libgphobos.so
2020-01-19 17:29:40 +08:00
%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
2020-01-19 17:29:40 +08:00
mv ../../../../%{_lib}/libasan_preinit.o libasan_preinit.o
%endif
2020-05-14 10:48:46 +08:00
%if %{build_libubsan}
ln -sf ../../../../%{_lib}/libubsan.so.1.* libubsan.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libtsan}
rm -f libtsan.so
echo 'INPUT ( %{_prefix}/%{_lib}/'`echo ../../../../%{_lib}/libtsan.so.2.* | sed 's,^.*libt,libt,'`' )' > libtsan.so
2020-05-14 10:48:46 +08:00
mv ../../../../%{_lib}/libtsan_preinit.o libtsan_preinit.o
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
fi
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++.*a $FULLLPATH/
2020-05-14 10:48:46 +08:00
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++fs.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libstdc++_libbacktrace.*a $FULLLPATH/
2020-01-19 17:29:40 +08:00
mv -f %{buildroot}%{_prefix}/%{_lib}/libsupc++.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libgfortran.*a $FULLLPATH/
2020-05-14 10:48:46 +08:00
%if %{build_objc}
2020-01-19 17:29:40 +08:00
mv -f %{buildroot}%{_prefix}/%{_lib}/libobjc.*a .
%endif
2020-05-14 10:48:46 +08:00
mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.*a .
2020-01-19 17:29:40 +08:00
%if %{build_libquadmath}
mv -f %{buildroot}%{_prefix}/%{_lib}/libquadmath.*a $FULLLPATH/
%endif
2020-05-14 10:48:46 +08:00
%if %{build_d}
mv -f %{buildroot}%{_prefix}/%{_lib}/libgdruntime.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libgphobos.*a $FULLLPATH/
2020-01-19 17:29:40 +08:00
%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
2020-05-14 10:48:46 +08:00
%if %{build_libubsan}
mv -f %{buildroot}%{_prefix}/%{_lib}/libubsan.*a $FULLLPATH/
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libtsan}
2020-05-14 10:48:46 +08:00
mv -f %{buildroot}%{_prefix}/%{_lib}/libtsan.*a $FULLPATH/
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%if %{build_liblsan}
mv -f %{buildroot}%{_prefix}/%{_lib}/liblsan.*a $FULLPATH/
2020-01-19 17:29:40 +08:00
%endif
%if %{build_go}
mv -f %{buildroot}%{_prefix}/%{_lib}/libgo.*a $FULLLPATH/
mv -f %{buildroot}%{_prefix}/%{_lib}/libgobegin.*a $FULLLPATH/
2020-05-14 10:48:46 +08:00
mv -f %{buildroot}%{_prefix}/%{_lib}/libgolibbegin.*a $FULLLPATH/
2020-01-19 17:29:40 +08:00
%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
2020-01-19 17:29:40 +08:00
ln -sf ../../../../../libgnat-*.so libgnat.so
ln -sf ../../../../../libgnat-*.so libgnat-12.so
2020-01-19 17:29:40 +08:00
else
ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl.so
ln -sf ../../../../../../%{_lib}/libgnarl-*.so libgnarl-12.so
2020-01-19 17:29:40 +08:00
ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat.so
ln -sf ../../../../../../%{_lib}/libgnat-*.so libgnat-12.so
2020-01-19 17:29:40 +08:00
fi
popd
else
pushd $FULLPATH/adalib
if [ "%{_lib}" = "lib" ]; then
ln -sf ../../../../libgnarl-*.so libgnarl.so
ln -sf ../../../../libgnarl-*.so libgnarl-12.so
2020-01-19 17:29:40 +08:00
ln -sf ../../../../libgnat-*.so libgnat.so
ln -sf ../../../../libgnat-*.so libgnat-12.so
2020-01-19 17:29:40 +08:00
else
ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl.so
ln -sf ../../../../../%{_lib}/libgnarl-*.so libgnarl-12.so
2020-01-19 17:29:40 +08:00
ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat.so
ln -sf ../../../../../%{_lib}/libgnat-*.so libgnat-12.so
2020-01-19 17:29:40 +08:00
fi
popd
fi
%endif
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%if %{build_objc}
2020-01-19 17:29:40 +08:00
ln -sf ../../../../../lib64/libobjc.so.4 64/libobjc.so
2020-05-14 10:48:46 +08:00
%endif
2020-01-19 17:29:40 +08:00
ln -sf ../`echo ../../../../lib/libstdc++.so.6.*[0-9] | sed s~/lib/~/lib64/~` 64/libstdc++.so
2020-05-14 10:48:46 +08:00
ln -sf ../`echo ../../../../lib/libgfortran.so.5.* | sed s~/lib/~/lib64/~` 64/libgfortran.so
2020-01-19 17:29:40 +08:00
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
2020-01-19 17:29:40 +08:00
%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
2020-05-14 10:48:46 +08:00
%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
2020-05-14 10:48:46 +08:00
%endif
2020-01-19 17:29:40 +08:00
%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
2020-01-19 17:29:40 +08:00
mv ../../../../lib64/libasan_preinit.o 64/libasan_preinit.o
%endif
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
ln -sf lib32/libgfortran.a libgfortran.a
ln -sf ../lib64/libgfortran.a 64/libgfortran.a
2020-05-14 10:48:46 +08:00
%if %{build_objc}
2020-01-19 17:29:40 +08:00
mv -f %{buildroot}%{_prefix}/lib64/libobjc.*a 64/
2020-05-14 10:48:46 +08:00
%endif
2020-01-19 17:29:40 +08:00
mv -f %{buildroot}%{_prefix}/lib64/libgomp.*a 64/
ln -sf lib32/libstdc++.a libstdc++.a
ln -sf ../lib64/libstdc++.a 64/libstdc++.a
2020-05-14 10:48:46 +08:00
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
2020-01-19 17:29:40 +08:00
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
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%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
2020-05-14 10:48:46 +08:00
%if %{build_libubsan}
ln -sf lib32/libubsan.a libubsan.a
ln -sf ../lib64/libubsan.a 64/libubsan.a
%endif
2020-01-19 17:29:40 +08:00
%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
2020-05-14 10:48:46 +08:00
ln -sf lib32/libgolibbegin.a libgolibbegin.a
ln -sf ../lib64/libgolibbegin.a 64/libgolibbegin.a
2020-01-19 17:29:40 +08:00
%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
2020-05-14 10:48:46 +08:00
%if %{build_objc}
2020-01-19 17:29:40 +08:00
ln -sf ../../../../libobjc.so.4 32/libobjc.so
2020-05-14 10:48:46 +08:00
%endif
2020-01-19 17:29:40 +08:00
ln -sf ../`echo ../../../../lib64/libstdc++.so.6.*[0-9] | sed s~/../lib64/~/~` 32/libstdc++.so
2020-05-14 10:48:46 +08:00
ln -sf ../`echo ../../../../lib64/libgfortran.so.5.* | sed s~/../lib64/~/~` 32/libgfortran.so
2020-01-19 17:29:40 +08:00
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
2020-01-19 17:29:40 +08:00
%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
2020-05-14 10:48:46 +08:00
%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
2020-05-14 10:48:46 +08:00
%endif
2020-01-19 17:29:40 +08:00
%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
2020-01-19 17:29:40 +08:00
mv ../../../../lib/libasan_preinit.o 32/libasan_preinit.o
%endif
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%if %{build_objc}
2020-01-19 17:29:40 +08:00
mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/
2020-05-14 10:48:46 +08:00
%endif
2020-01-19 17:29:40 +08:00
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
2020-05-14 10:48:46 +08:00
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
2020-01-19 17:29:40 +08:00
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
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%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
2020-05-14 10:48:46 +08:00
%if %{build_libubsan}
ln -sf ../lib32/libubsan.a 32/libubsan.a
ln -sf lib64/libubsan.a libubsan.a
%endif
2020-01-19 17:29:40 +08:00
%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
2020-05-14 10:48:46 +08:00
ln -sf ../lib32/libgolibbegin.a 32/libgolibbegin.a
ln -sf lib64/libgolibbegin.a libgolibbegin.a
2020-01-19 17:29:40 +08:00
%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}
2020-05-14 10:48:46 +08:00
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
2020-05-14 10:48:46 +08:00
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libsupc++.a 32/libsupc++.a
2020-01-19 17:29:40 +08:00
%if %{build_libquadmath}
2020-05-14 10:48:46 +08:00
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
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libitm}
2020-05-14 10:48:46 +08:00
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libitm.a 32/libitm.a
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libatomic}
2020-05-14 10:48:46 +08:00
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libatomic.a 32/libatomic.a
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libasan}
2020-05-14 10:48:46 +08:00
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libasan.a 32/libasan.a
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%if %{build_libubsan}
ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}/%{gcc_major}/libubsan.a 32/libubsan.a
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%if %{build_ada}
2020-05-14 10:48:46 +08:00
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
2020-01-19 17:29:40 +08:00
%endif
%endif
2020-05-14 10:48:46 +08:00
# 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 \
2020-05-14 10:48:46 +08:00
-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
2020-01-19 17:29:40 +08:00
%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 \
2020-05-14 10:48:46 +08:00
-o -name libgdruntime.a -o -name libgphobos.a \
2020-01-19 17:29:40 +08:00
-o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \
2020-05-14 10:48:46 +08:00
-o -name libatomic.a -o -name libasan.a -o -name libtsan.a \
-o -name libubsan.a -o -name liblsan.a -o -name libcc1.a \) \
2020-01-19 17:29:40 +08:00
-a -type f`
popd
2020-05-14 10:48:46 +08:00
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgfortran.so.5.*
2020-01-19 17:29:40 +08:00
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
2020-05-14 10:48:46 +08:00
%if %{build_d}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgdruntime.so.3.*
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgphobos.so.3.*
2020-05-14 10:48:46 +08:00
%endif
2020-01-19 17:29:40 +08:00
%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.*
2020-05-14 10:48:46 +08:00
%endif
%if %{build_libubsan}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.*
chrpath -d %{buildroot}%{_prefix}/%{_lib}/libubsan.so.1.*
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libtsan}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2.*
chrpath -d %{buildroot}%{_prefix}/%{_lib}/libtsan.so.2.*
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%if %{build_liblsan}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.*
chrpath -d %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.*
2020-01-19 17:29:40 +08:00
%endif
%ifarch aarch64
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.*
chrpath -d %{buildroot}%{_prefix}/%{_lib}/libhwasan.so.0.*
%endif
2020-05-14 10:48:46 +08:00
%if %{build_go}
# Avoid stripping these libraries and binaries.
chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.21.*
2020-05-14 10:48:46 +08:00
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}
2020-01-19 17:29:40 +08:00
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libobjc.so.4.*
2020-05-14 10:48:46 +08:00
%endif
2020-01-19 17:29:40 +08:00
%if %{build_ada}
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnarl*so*
chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgnat*so*
%endif
2020-05-14 10:48:46 +08:00
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
2020-01-19 17:29:40 +08:00
if grep -q 'It has been auto-edited by fixincludes from' $h; then
rh=`grep -A2 'It has been auto-edited by fixincludes from' $h | tail -1 | sed 's|^.*"\(.*\)".*$|\1|'`
diff -up $rh $h || :
rm -f $h
fi
done
cat > %{buildroot}%{_prefix}/bin/c89 <<"EOF"
#!/bin/sh
fl="-std=c89"
for opt; do
case "$opt" in
-ansi|-std=c89|-std=iso9899:1990) fl="";;
-std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
exit 1;;
esac
done
exec gcc $fl ${1+"$@"}
EOF
cat > %{buildroot}%{_prefix}/bin/c99 <<"EOF"
#!/bin/sh
fl="-std=c99"
for opt; do
case "$opt" in
-std=c99|-std=iso9899:1999) fl="";;
-std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
exit 1;;
esac
done
exec gcc $fl ${1+"$@"}
EOF
chmod 755 %{buildroot}%{_prefix}/bin/c?9
cd ..
%find_lang %{name}
%find_lang cpplib
# Remove binaries we will not be including, so that they don't end up in
# gcc-debuginfo
2020-05-14 10:48:46 +08:00
rm -f %{buildroot}%{_prefix}/%{_lib}/{libffi*,libiberty.a} || :
2020-01-19 17:29:40 +08:00
rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
rm -f %{buildroot}%{_prefix}/lib/{32,64}/libiberty.a
rm -f %{buildroot}%{_prefix}/%{_lib}/libssp*
2020-05-14 10:48:46 +08:00
rm -f %{buildroot}%{_prefix}/%{_lib}/libvtv* || :
2020-01-19 17:29:40 +08:00
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 || :
2020-05-14 10:48:46 +08:00
rm -f %{buildroot}%{_prefix}/bin/%{_target_platform}-gdc || :
2020-01-19 17:29:40 +08:00
%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}
2020-05-14 10:48:46 +08:00
rm -rf %{buildroot}%{_prefix}/lib/go/%{gcc_major}/%{gcc_target_platform}
2020-01-19 17:29:40 +08:00
%ifnarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
ln -sf %{multilib_32_arch}-%{_vendor}-%{_target_os} %{buildroot}%{_prefix}/lib/go/%{gcc_major}/%{gcc_target_platform}
2020-01-19 17:29:40 +08:00
%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}
2020-05-14 10:48:46 +08:00
rm -rf %{buildroot}%{_prefix}/lib64/go/%{gcc_major}/%{gcc_target_platform}
2020-01-19 17:29:40 +08:00
%endif
%endif
%endif
rm -f %{buildroot}%{mandir}/man3/ffi*
# Help plugins find out nvra.
2020-05-14 10:48:46 +08:00
echo gcc-%{version}-%{release}.%{_arch} > $FULLPATH/rpmver
2020-01-19 17:29:40 +08:00
# 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
if [ -e %{buildroot}%{_prefix}/bin/gcc ]; then strip -s %{buildroot}%{_prefix}/bin/gcc; fi
if [ -e %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-12 ]; then strip -s %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-12; fi
%endif
%ifarch x86_64
if [ -e %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc ]; then strip -s %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc; fi
if [ -e %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-12 ]; then strip -s %{buildroot}%{_prefix}/bin/%{_target_platform}-gcc-12; fi
%endif
# Remove installed but unpacked files.
# If any file is useful in the future, remove it from here.
if [ -f %{buildroot}%{_prefix}/bin/gnatgcc ]; then rm -f %{buildroot}%{_prefix}/bin/gnatgcc; fi
if [ -f %{buildroot}%{_prefix}/lib64/libasan.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libasan.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libasan.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libasan.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libatomic.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libatomic.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libgcc_s.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libgcc_s.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libgfortran.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libgfortran.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libgomp.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libgomp.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libitm.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libitm.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/liblsan.so ]; then rm -f %{buildroot}%{_prefix}/lib64/liblsan.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libobjc.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libobjc.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libquadmath.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libquadmath.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libstdc++.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libstdc++.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libtsan.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libtsan.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libubsan.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libubsan.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libhwasan.a ]; then rm -f %{buildroot}%{_prefix}/lib64/libhwasan.a; fi
if [ -f %{buildroot}%{_prefix}/lib64/libhwasan.so ]; then rm -f %{buildroot}%{_prefix}/lib64/libhwasan.so; fi
if [ -f %{buildroot}%{_prefix}/lib64/libhwasan.so.0 ]; then rm -f %{buildroot}%{_prefix}/lib64/libhwasan.so.0; fi
if [ -f %{buildroot}%{_prefix}/lib64/libhwasan.so.0.0.0 ]; then rm -f %{buildroot}%{_prefix}/lib64/libhwasan.so.0.0.0; fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include-fixed/README ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include-fixed/README;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include-fixed/pthread.h ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include-fixed/pthread.h;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include-fixed/X11/Xw32defs.h ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include-fixed/X11/Xw32defs.h;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include-fixed/slang.h ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include-fixed/slang.h;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include-fixed/slang/slang.h ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include-fixed/slang/slang.h;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ssp/ssp.h ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ssp/ssp.h;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ssp/stdio.h ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ssp/stdio.h;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ssp/string.h ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ssp/string.h;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ssp/unistd.h ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ssp/unistd.h;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/fixinc_list ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/fixinc_list;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/gsyslimits.h ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/gsyslimits.h;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/include/README ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/include/README;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/include/limits.h ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/include/limits.h;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/macro_list ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/macro_list;
fi
if [ -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/mkheaders.conf ];
then
rm -f %{buildroot}%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/mkheaders.conf;
fi
if [ -f %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/fixinc.sh ];
then
rm -f %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/fixinc.sh;
fi
if [ -f %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/mkinstalldirs ];
then
rm -f %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/install-tools/mkinstalldirs;
fi
if [ -f %{buildroot}%{_prefix}/share/locale/de/LC_MESSAGES/libstdc++.mo ];
then
rm -f %{buildroot}%{_prefix}/share/locale/de/LC_MESSAGES/libstdc++.mo;
fi
if [ -f %{buildroot}%{_prefix}/share/locale/fr/LC_MESSAGES/libstdc++.mo ];
then
rm -f %{buildroot}%{_prefix}/share/locale/fr/LC_MESSAGES/libstdc++.mo;
fi
2020-01-19 17:29:40 +08:00
%check
cd obj-%{gcc_target_platform}
# run the tests.
%if %{check_enable}
LC_ALL=C make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ \
2020-05-14 10:48:46 +08:00
RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector-strong}'" || :
2020-01-19 17:29:40 +08:00
echo ====================TESTING=========================
( LC_ALL=C ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}'
echo ====================TESTING END=====================
mkdir testlogs-%{_target_platform}-%{version}-%{release}
for i in `find . -name \*.log | grep -F testsuite/ | grep -v 'config.log\|acats.*/tests/'`; do
ln $i testlogs-%{_target_platform}-%{version}-%{release}/ || :
done
2020-05-14 10:48:46 +08:00
tar cf - testlogs-%{_target_platform}-%{version}-%{release} | xz -9e \
| uuencode testlogs-%{_target_platform}.tar.xz || :
2020-01-19 17:29:40 +08:00
rm -rf testlogs-%{_target_platform}-%{version}-%{release}
%endif
2020-05-14 10:48:46 +08:00
%post go
%{_sbindir}/update-alternatives --install \
%{_prefix}/bin/go go %{_prefix}/bin/go.gcc 92 \
--slave %{_prefix}/bin/gofmt gofmt %{_prefix}/bin/gofmt.gcc
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%preun go
if [ $1 = 0 ]; then
%{_sbindir}/update-alternatives --remove go %{_prefix}/bin/go.gcc
2020-01-19 17:29:40 +08:00
fi
# Because glibc Prereq's libgcc and /sbin/ldconfig
# comes from glibc, it might not exist yet when
# libgcc is installed
2020-05-14 10:48:46 +08:00
%post -n libgcc -p <lua>
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
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%postun -n libgcc -p <lua>
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
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n libstdc++
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n libobjc
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n libgfortran
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n libgphobos
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n libgnat
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n libgomp
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets gdb-plugin
2020-01-19 17:29:40 +08:00
2022-07-08 15:05:53 +08:00
%ldconfig_scriptlets -n libgccjit
%ldconfig_scriptlets -n libquadmath
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n libitm
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n libatomic
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n libasan
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n libubsan
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n libtsan
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n liblsan
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%ldconfig_scriptlets -n libgo
2020-01-19 17:29:40 +08:00
%files -f %{name}.lang
%{_prefix}/bin/cc
%{_prefix}/bin/c89
%{_prefix}/bin/c99
%{_prefix}/bin/gcc
%{_prefix}/bin/gcov
2020-05-14 10:48:46 +08:00
%{_prefix}/bin/gcov-tool
%{_prefix}/bin/gcov-dump
2020-01-19 17:29:40 +08:00
%{_prefix}/bin/gcc-ar
%{_prefix}/bin/gcc-nm
%{_prefix}/bin/gcc-ranlib
%{_prefix}/bin/lto-dump
2020-01-19 17:29:40 +08:00
%ifarch ppc
%{_prefix}/bin/%{_target_platform}-gcc
%endif
%ifarch sparc64 sparcv9
%{_prefix}/bin/sparc-%{_vendor}-%{_target_os}-gcc
%endif
%ifarch ppc64 ppc64p7
%{_prefix}/bin/ppc-%{_vendor}-%{_target_os}-gcc
%endif
%{_prefix}/bin/%{gcc_target_platform}-gcc*
2020-01-19 17:29:40 +08:00
%{_mandir}/man1/gcc.1*
%{_mandir}/man1/gcov.1*
2020-05-14 10:48:46 +08:00
%{_mandir}/man1/gcov-tool.1*
%{_mandir}/man1/gcov-dump.1*
%{_mandir}/man1/lto-dump.1*
%{_mandir}/man7/*
2020-01-19 17:29:40 +08:00
%{_infodir}/gcc*
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%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
%ifarch aarch64
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/libbolt_plugin.so*
%endif
2020-05-14 10:48:46 +08:00
%{_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
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdint-gcc.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdalign.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdnoreturn.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/stdatomic.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/gcov.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/simdmath.h
2020-01-19 17:29:40 +08:00
%ifarch %{ix86} x86_64
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%endif
%ifarch ia64
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/ia64intrin.h
2020-01-19 17:29:40 +08:00
%endif
%ifarch ppc ppc64 ppc64le ppc64p7
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%endif
%ifarch %{arm}
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%endif
%ifarch aarch64
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%endif
%ifarch loongarch64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/larchintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/include/config/loongarch/loongarch-protos.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/include/config/loongarch/loongarch-opts.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/include/config/loongarch/loongarch-str.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/include/config/loongarch/loongarch-def.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/include/config/loongarch/loongarch-tune.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin/include/config/loongarch/loongarch-driver.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lsxintrin.h
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/lasxintrin.h
%endif
2020-01-19 17:29:40 +08:00
%ifarch sparc sparcv9 sparc64
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/include/visintrin.h
2020-01-19 17:29:40 +08:00
%endif
%ifarch s390 s390x
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libasan}
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%if %{build_libitm}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.spec
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libasan}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsanitizer.spec
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%if %{build_libquadmath}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libquadmath.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libitm}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libitm.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libatomic}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libatomic.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libasan}
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%endif
%ifarch %{multilib_64_archs}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%if %{build_libquadmath}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libquadmath.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libitm}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libitm.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libatomic}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libatomic.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libasan}
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%endif
%endif
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
%if %{build_libquadmath}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libitm}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libatomic}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libasan}
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%if %{build_libubsan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so
2020-01-19 17:29:40 +08:00
%endif
%else
%if %{build_libatomic}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.so
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libasan}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libasan_preinit.o
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%if %{build_libubsan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.so
2020-01-19 17:29:40 +08:00
%endif
%endif
2020-05-14 10:48:46 +08:00
%if %{build_libtsan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libtsan_preinit.o
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%if %{build_liblsan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan_preinit.o
2020-01-19 17:29:40 +08:00
%endif
%{_prefix}/libexec/getconf/default
%doc gcc/README* rpm.doc/changelogs/gcc/ChangeLog*
2020-05-14 10:48:46 +08:00
%{!?_licensedir:%global license %%doc}
%license gcc/COPYING* COPYING.RUNTIME
2020-01-19 17:29:40 +08:00
%files -n cpp -f cpplib.lang
%{_prefix}/lib/cpp
%{_prefix}/bin/cpp
%{_mandir}/man1/cpp.1*
%{_infodir}/cpp*
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1
2020-01-19 17:29:40 +08:00
%files -n libgcc
/%{_lib}/libgcc_s-%{gcc_major}.so.1
2020-01-19 17:29:40 +08:00
/%{_lib}/libgcc_s.so.1
2020-05-14 10:48:46 +08:00
%{!?_licensedir:%global license %%doc}
%license gcc/COPYING* COPYING.RUNTIME
2020-01-19 17:29:40 +08:00
%files c++
%{_prefix}/bin/%{gcc_target_platform}-*++
%{_prefix}/bin/g++
%{_prefix}/bin/c++
%{_mandir}/man1/g++.1*
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%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
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libsupc++.a
2020-01-19 17:29:40 +08:00
%endif
%ifarch %{multilib_64_archs}
2020-05-14 10:48:46 +08:00
%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
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libsupc++.a
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparcv9 ppc %{multilib_64_archs}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libstdc++.so
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_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
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libsupc++.a
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%doc rpm.doc/changelogs/gcc/cp/ChangeLog*
2020-01-19 17:29:40 +08:00
%files -n libstdc++
%{_prefix}/%{_lib}/libstdc++.so.6*
%dir %{_datadir}/gdb
%dir %{_datadir}/gdb/auto-load
%dir %{_datadir}/gdb/auto-load/%{_prefix}
%dir %{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/
# Package symlink to keep compatibility
%ifarch riscv64
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/lp64d
%endif
2020-01-19 17:29:40 +08:00
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/libstdc*gdb.py*
%{_datadir}/gdb/auto-load/%{_prefix}/%{_lib}/__pycache__
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/share/gcc-%{gcc_major}
%dir %{_prefix}/share/gcc-%{gcc_major}/python
%{_prefix}/share/gcc-%{gcc_major}/python/libstdcxx
2020-01-19 17:29:40 +08:00
%files -n libstdc++-devel
%dir %{_prefix}/include/c++
2020-05-14 10:48:46 +08:00
%{_prefix}/include/c++/%{gcc_major}
2020-01-19 17:29:40 +08:00
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%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
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%doc rpm.doc/changelogs/libstdc++-v3/ChangeLog* libstdc++-v3/README*
2020-01-19 17:29:40 +08:00
%files -n libstdc++-static
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libstdcxx_docs}
%files -n libstdc++-docs
%{_mandir}/man3/*
%doc rpm.doc/libstdc++-v3/html
%endif
2020-05-14 10:48:46 +08:00
%if %{build_objc}
2020-01-19 17:29:40 +08:00
%files objc
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifarch %{multilib_64_archs}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%doc rpm.doc/objc/*
%doc libobjc/THREADS* rpm.doc/changelogs/libobjc/ChangeLog*
2020-01-19 17:29:40 +08:00
%files objc++
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cc1objplus
2020-01-19 17:29:40 +08:00
%files -n libobjc
%{_prefix}/%{_lib}/libobjc.so.4*
%endif
%files gfortran
%{_prefix}/bin/gfortran
%{_prefix}/bin/f95
%{_mandir}/man1/gfortran.1*
%{_infodir}/gfortran*
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%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}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/finclude/simdmath_f.h
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.so
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifarch %{multilib_64_archs}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%dir %{_fmoddir}
%doc rpm.doc/gfortran/*
2020-01-19 17:29:40 +08:00
%files -n libgfortran
2020-05-14 10:48:46 +08:00
%{_prefix}/%{_lib}/libgfortran.so.5*
2020-01-19 17:29:40 +08:00
%files -n libgfortran-static
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgfortran.a
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgfortran.a
2020-01-19 17:29:40 +08:00
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%if %{build_d}
%files gdc
%{_prefix}/bin/gdc
%{_mandir}/man1/gdc.1*
%{_infodir}/gdc*
2020-01-19 17:29:40 +08:00
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgdruntime.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.a
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgdruntime.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.so
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifarch %{multilib_64_archs}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgdruntime.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgphobos.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgdruntime.so
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgphobos.so
%endif
%doc rpm.doc/gdc/*
%files -n libgphobos
%{_prefix}/%{_lib}/libgdruntime.so.3*
%{_prefix}/%{_lib}/libgphobos.so.3*
2020-05-14 10:48:46 +08:00
%doc rpm.doc/libphobos/*
%files -n libgphobos-static
2020-01-19 17:29:40 +08:00
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgdruntime.a
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgphobos.a
2020-01-19 17:29:40 +08:00
%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}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifarch %{multilib_64_archs}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adainclude
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/adalib
2020-01-19 17:29:40 +08:00
%endif
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/ada_target_properties
2020-05-14 10:48:46 +08:00
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/gnat1
%doc rpm.doc/changelogs/gcc/ada/ChangeLog*
2020-01-19 17:29:40 +08:00
%files -n libgnat
%{_prefix}/%{_lib}/libgnat-*.so
%{_prefix}/%{_lib}/libgnarl-*.so
%files -n libgnat-devel
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%endif
%files -n libgnat-static
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%endif
%files -n libgomp
%{_prefix}/%{_lib}/libgomp.so.1*
%{_infodir}/libgomp.info*
2020-05-14 10:48:46 +08:00
%doc rpm.doc/changelogs/libgomp/ChangeLog*
2020-01-19 17:29:40 +08:00
%if %{build_libquadmath}
%files -n libquadmath
%{_prefix}/%{_lib}/libquadmath.so.0*
%{_infodir}/libquadmath.info*
2020-05-14 10:48:46 +08:00
%{!?_licensedir:%global license %%doc}
%license rpm.doc/libquadmath/COPYING*
2020-01-19 17:29:40 +08:00
%files -n libquadmath-devel
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%doc rpm.doc/libquadmath/ChangeLog*
2020-01-19 17:29:40 +08:00
%files -n libquadmath-static
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libquadmath.a
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libquadmath.a
2020-01-19 17:29:40 +08:00
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a
2020-01-19 17:29:40 +08:00
%endif
%endif
%if %{build_libitm}
%files -n libitm
%{_prefix}/%{_lib}/libitm.so.1*
%{_infodir}/libitm.info*
%files -n libitm-devel
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.so
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%doc rpm.doc/libitm/ChangeLog*
2020-01-19 17:29:40 +08:00
%files -n libitm-static
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libitm.a
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libitm.a
2020-01-19 17:29:40 +08:00
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libitm.a
2020-01-19 17:29:40 +08:00
%endif
%endif
%if %{build_libatomic}
%files -n libatomic
%{_prefix}/%{_lib}/libatomic.so.1*
%files -n libatomic-static
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libatomic.a
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libatomic.a
2020-01-19 17:29:40 +08:00
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libatomic.a
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%doc rpm.doc/changelogs/libatomic/ChangeLog*
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libasan}
%files -n libasan
%{_prefix}/%{_lib}/libasan.so.8*
2020-01-19 17:29:40 +08:00
%files -n libasan-static
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%if %{build_libubsan}
%files -n libubsan
%{_prefix}/%{_lib}/libubsan.so.1*
%files -n libubsan-static
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libubsan.a
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libubsan.a
2020-01-19 17:29:40 +08:00
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libubsan.a
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%doc rpm.doc/changelogs/libsanitizer/ChangeLog*
%{!?_licensedir:%global license %%doc}
%license libsanitizer/LICENSE.TXT
2020-01-19 17:29:40 +08:00
%endif
%if %{build_libtsan}
%files -n libtsan
%{_prefix}/%{_lib}/libtsan.so.2*
2020-01-19 17:29:40 +08:00
%files -n libtsan-static
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
2020-05-14 10:48:46 +08:00
%if %{build_liblsan}
%files -n liblsan
%{_prefix}/%{_lib}/liblsan.so.0*
%files -n liblsan-static
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/liblsan.a
%doc rpm.doc/changelogs/libsanitizer/ChangeLog*
%{!?_licensedir:%global license %%doc}
%license libsanitizer/LICENSE.TXT
2020-01-19 17:29:40 +08:00
%endif
%if %{build_go}
%files go
2020-05-14 10:48:46 +08:00
%ghost %{_prefix}/bin/go
%attr(755,root,root) %{_prefix}/bin/go.gcc
2020-01-19 17:29:40 +08:00
%{_prefix}/bin/gccgo
2020-05-14 10:48:46 +08:00
%ghost %{_prefix}/bin/gofmt
%attr(755,root,root) %{_prefix}/bin/gofmt.gcc
2020-01-19 17:29:40 +08:00
%{_mandir}/man1/gccgo.1*
2020-05-14 10:48:46 +08:00
%{_mandir}/man1/go.1*
%{_mandir}/man1/gofmt.1*
2020-01-19 17:29:40 +08:00
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifarch %{multilib_64_archs}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparcv9 ppc %{multilib_64_archs}
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgo.so
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%endif
%doc rpm.doc/go/*
%files -n libgo
%attr(755,root,root) %{_prefix}/%{_lib}/libgo.so.21*
2020-01-19 17:29:40 +08:00
%doc rpm.doc/libgo/*
%files -n libgo-devel
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%dir %{_prefix}/%{_lib}/go
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/%{_lib}/go/%{gcc_major}
%{_prefix}/%{_lib}/go/%{gcc_major}/%{gcc_target_platform}
2020-01-19 17:29:40 +08:00
%ifarch %{multilib_64_archs}
%ifnarch sparc64 ppc64 ppc64p7
%dir %{_prefix}/lib/go
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/go/%{gcc_major}
%{_prefix}/lib/go/%{gcc_major}/%{gcc_target_platform}
2020-01-19 17:29:40 +08:00
%endif
%endif
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_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
2020-01-19 17:29:40 +08:00
%endif
%files -n libgo-static
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}
2020-01-19 17:29:40 +08:00
%ifarch sparcv9 ppc
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib32/libgo.a
2020-01-19 17:29:40 +08:00
%endif
%ifarch sparc64 ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgo.a
2020-01-19 17:29:40 +08:00
%endif
%ifnarch sparcv9 sparc64 ppc ppc64 ppc64p7
2020-05-14 10:48:46 +08:00
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgo.a
2020-01-19 17:29:40 +08:00
%endif
%endif
2022-07-08 15:05:53 +08:00
%files -n libgccjit
%{_prefix}/%{_lib}/libgccjit.so.*
%doc rpm.doc/changelogs/gcc/jit/ChangeLog*
%files -n libgccjit-devel
%{_prefix}/%{_lib}/libgccjit.so
%{_prefix}/include/libgccjit*.h
%{_infodir}/libgccjit.info*
%doc rpm.doc/libgccjit-devel/*
%doc gcc/jit/docs/examples
2020-01-19 17:29:40 +08:00
%files plugin-devel
%dir %{_prefix}/lib/gcc
%dir %{_prefix}/lib/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%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
2020-01-19 17:29:40 +08:00
%dir %{_prefix}/libexec/gcc
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}
2020-05-14 10:48:46 +08:00
%dir %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
2020-01-19 17:29:40 +08:00
2020-05-14 10:48:46 +08:00
%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*
2020-01-19 17:29:40 +08:00
%changelog
* Fri Apr 26 2024 Zhenyu Zhao <zhaozhenyu17@huawei.com> - 12.3.1-27
- Type: BUGFIX
- DESC: Update the configure file for BOLT.
2024-04-25 20:50:15 +08:00
* Fri Apr 26 2024 Zheng Chenhui <zhengchenhui1@huawei.com> - 12.3.1-26
- Type: Revert
- DESC: Revert Intel patches.
2024-04-24 12:57:04 +08:00
* Wed Apr 24 2024 Wang Ding <wangding16@huawei.com> - 12.3.1-25
- Type: Sync
- DESC: Sync patch from openeuler/gcc
* Tue Apr 23 2024 laokz <zhangkai@iscas.ac.cn> - 12.3.1-24
- Type: SPEC
- DESC: riscv64 enable libasan, libusan package
* Mon Apr 22 2024 Peng Fan <fanpeng@loongson.cn> - 12.3.1-23
- DESC: Add LoongArch 3A6000 support
2024-04-12 15:10:59 +08:00
* Fri Apr 12 2024 Zhengchen Hui <zhengchenhui1@huawei.com> - 12.3.1-22
- Type: Sync
- DESC: Sync patch from openeuler/gcc
2024-04-11 19:37:37 +08:00
* Thu Apr 11 2024 Zhengchen Hui <zhengchenhui1@huawei.com> - 12.3.1-21
- Type: Sync
- DESC: Sync patch from openeuler/gcc
2024-04-11 14:48:33 +08:00
* Thu Apr 11 2024 Zhenyu Zhao <zhaozhenyu17@huawei.com> - 12.3.1-20
- Type: Sync
- DESC: Sync patch from openeuler/gcc
* Mon Apr 1 2024 Peng Fan <fanpeng@loongson.cn> 12.3.1-19
- Type: SPEC
- DESC: fix libcc1 file path for LoongArch.
* Wed Mar 27 2024 Peng Fan <fanpeng@loongson.cn> 12.3.1-18
- Type: Sync
- DESC: Sync patch from gcc upstream
- LoongArch: support libsanitizer
- separate LoongArch's patch
2024-01-15 14:16:10 +08:00
* Mon Jan 15 2024 laokz <zhangkai@iscas.ac.cn> 12.3.1-17
- Type: SPEC
- DESC: riscv64 -march default to rv64gc
* Mon Sep 11 2023 dingguangya <dingguangya1@huawei.com> 12.3.1-16
- Type: Sync
- DESC: Sync patch from openeuler/gcc
* Thu Sep 07 2023 zhaozhenyu <zhaozhenyu17@huawei.com> 12.3.1-15
- Type: SPEC
- DESC: Enable Strip for aarch64 and x86_64
* Wed Sep 06 2023 eastb233 <xiezhiheng@huawei.com> 12.3.1-14
- Type: Bugfix
- DESC: Package simdmath.h and simdmath_f.h
* Tue Sep 05 2023 liyancheng <412998149@qq.com> 12.3.1-13
- Type: Bugfix
- DESC: Remove installed but unpacked files
* Tue Sep 05 2023 zhaozhenyu <zhaozhenyu17@huawei.com> 12.3.1-12
- Type: SPEC
- DESC: Enable Strip for gcc
* Tue Sep 05 2023 huangxiaoquan <huangxiaoquan1@huawei.com> 12.3.1-11
- Type: Sync
- DESC: Sync patch from openeuler/gcc
* Mon Sep 04 2023 dingguangya <dingguangya1@huawei.com> 12.3.1-10
- Type: Sync
- DESC: Sync patch from openeuler/gcc
* Tue Aug 29 2023 huangxiaoquan <huangxiaoquan1@huawei.com> 12.3.1-9
- Type: Sync
- DESC: Sync patch from openeuler/gcc part 2
* Tue Aug 29 2023 huangxiaoquan <huangxiaoquan1@huawei.com> 12.3.1-8
- Type: Sync
- DESC: Sync patch from openeuler/gcc
[Sync] i386: Only enable small loop unrolling in backend [PR 107692] Followed by the discussion in pr107692, -munroll-only-small-loops Does not turns on/off -funroll-loops, and current check in pass_rtl_unroll_loops::gate would cause -fno-unroll-loops do not take effect. Revert the change about targetm.loop_unroll_adjust and apply the backend option change to strictly follow the rule that -funroll-loops takes full control of loop unrolling, and munroll-only-small-loops just change its behavior to unroll small size loops. gcc/ChangeLog: PR target/107692 * common/config/i386/i386-common.cc (ix86_optimization_table): Enable loop unroll O2, disable -fweb and -frename-registers by default. * config/i386/i386-options.cc (ix86_override_options_after_change): Disable small loop unroll when funroll-loops enabled, reset cunroll_grow_size when it is not explicitly enabled. (ix86_option_override_internal): Call ix86_override_options_after_change instead of calling ix86_recompute_optlev_based_flags and ix86_default_align separately. * config/i386/i386.cc (ix86_loop_unroll_adjust): Adjust unroll factor if -munroll-only-small-loops enabled. * loop-init.cc (pass_rtl_unroll_loops::gate): Do not enable loop unrolling for -O2-speed. (pass_rtl_unroll_loops::execute): Rmove targetm.loop_unroll_adjust check. gcc/testsuite/ChangeLog: PR target/107692 * gcc.dg/guality/loop-1.c: Remove additional option for ia32. * gcc.target/i386/pr86270.c: Add -fno-unroll-loops. * gcc.target/i386/pr93002.c: Likewise.
2023-08-11 10:26:25 +08:00
* Fri Aug 11 2023 Hongyu Wang <hongyu.wang@intel.com> 12.3.1-7
- Type:Sync
- i386: Only enable small loop unrolling in backend [PR 107692].
[Sync] Enable small loop unrolling for O2 Modern processors has multiple way instruction decoders For x86, icelake/zen3 has 5 uops, so for small loop with <= 4 instructions (usually has 3 uops with a cmp/jmp pair that can be macro-fused), the decoder would have 2 uops bubble for each iteration and the pipeline could not be fully utilized. Therefore, this patch enables loop unrolling for small size loop at O2 to fullfill the decoder as much as possible. It turns on rtl loop unrolling when targetm.loop_unroll_adjust exists and O2 plus speed only. In x86 backend the default behavior is to unroll small loops with less than 4 insns by 1 time. This improves 548.exchange2 by 9% on icelake and 7.4% on zen3 with 0.9% codesize increment. For other benchmarks the variants are minor and overall codesize increased by 0.2%. The kernel image size increased by 0.06%, and no impact on eembc. gcc/ChangeLog: * common/config/i386/i386-common.cc (ix86_optimization_table): Enable small loop unroll at O2 by default. * config/i386/i386.cc (ix86_loop_unroll_adjust): Adjust unroll factor if -munroll-only-small-loops enabled and -funroll-loops/ -funroll-all-loops are disabled. * config/i386/i386.h (struct processor_costs): Add 2 field small_unroll_ninsns and small_unroll_factor. * config/i386/i386.opt: Add -munroll-only-small-loops. * doc/invoke.texi: Document -munroll-only-small-loops. * loop-init.cc (pass_rtl_unroll_loops::gate): Enable rtl loop unrolling for -O2-speed and above if target hook loop_unroll_adjust exists. (pass_rtl_unroll_loops::execute): Set UAP_UNROLL flag when target hook loop_unroll_adjust exists. * config/i386/x86-tune-costs.h: Update all processor costs with small_unroll_ninsns = 4 and small_unroll_factor = 2. gcc/testsuite/ChangeLog: * gcc.dg/guality/loop-1.c: Add additional option -mno-unroll-only-small-loops. * gcc.target/i386/pr86270.c: Add -mno-unroll-only-small-loops. * gcc.target/i386/pr93002.c: Likewise.
2023-08-11 10:24:40 +08:00
* Fri Aug 11 2023 Hongyu Wang <hongyu.wang@intel.com> 12.3.1-6
- Type:Sync
- Enable small loop unrolling for O2.
* Fri Aug 11 2023 Cui,Lili <lili.cui@intel.com> 12.3.1-5
- Type:Sync
- Add attribute hot judgement for INLINE_HINT_known_hot hint.
2023-07-17 09:36:54 +08:00
* Mon Jul 17 2023 huangxiaoquan <huangxiaoquan1@huawei.com> 12.3.1-4
- Type:SPEC
- DESC:Enable libquadmath on kunpeng
2023-07-14 18:10:33 +08:00
* Fri Jul 14 2023 huangxiaoquan <huangxiaoquan1@huawei.com> 12.3.1-3
- Type:Sync
- DESC:Enable libquadmath on kunpeng
2023-07-11 21:25:22 +08:00
* Tue Jul 11 2023 huangxiaoquan <huangxiaoquan1@huawei.com> 12.3.1-2
- Type:SPEC
- DESC:Set version to 12.3.1
* Tue Jun 13 2023 huangxiaoquan <huangxiaoquan1@huawei.com> 12.3.0-1
- Type:Init
- DESC:Init GCC 12.3.0 repository