diff --git a/golang.spec b/golang.spec index b00c09e6713cf8bdfe081cd9523001fb10cce865..d67715817117b625d0b7cc885f3de359e1e50e44 100644 --- a/golang.spec +++ b/golang.spec @@ -1,4 +1,4 @@ -%define anolis_release .0.1 +%define anolis_release .0.2 %undefine _missing_build_ids_terminate_build %global bcond_with strict_fips @@ -30,20 +30,20 @@ # Define GOROOT macros %global goroot %{_prefix}/lib/%{name} %global gopath %{_datadir}/gocode -%global golang_arches x86_64 aarch64 ppc64le s390x +%global golang_arches x86_64 aarch64 ppc64le s390x loongarch64 %global golibdir %{_libdir}/%{name} # Golang build options. # Build golang using external/internal(close to cgo disabled) linking. -%ifarch x86_64 ppc64le %{arm} aarch64 s390x +%ifarch x86_64 ppc64le %{arm} aarch64 s390x loongarch64 %global external_linker 1 %else %global external_linker 0 %endif # Build golang with cgo enabled/disabled(later equals more or less to internal linking). -%ifarch x86_64 ppc64le %{arm} aarch64 s390x +%ifarch x86_64 ppc64le %{arm} aarch64 s390x loongarch64 %global cgo_enabled 1 %else %global cgo_enabled 0 @@ -92,6 +92,10 @@ %global gohostarch s390x %endif +%ifarch loongarch64 +%global gohostarch loong64 +%endif + %global go_api 1.23 %global version 1.23.6 %global pkg_release 1 @@ -114,6 +118,9 @@ Source0: https://github.com/golang/go/archive/refs/tags/go%{version}.tar. Source1: https://github.com/golang-fips/go/archive/refs/tags/go%{version}-%{pkg_release}-openssl-fips.tar.gz # make possible to override default traceback level at build time by setting build tag rpm_crashtraceback Source2: fedora.go +Source3: loongarch64.tar.gz +Source4: loongarch64.patches +Source5: race_linux_loong64.syso # The compiler is written in Go. Needs go(1.4+) compiler for build. # Actual Go based bootstrap compiler provided by above source. @@ -262,7 +269,19 @@ sed -i '1s/$/ (%{?rhel:Red Hat} %{version}-%{release})/' VERSION # Delete the boring binary blob. We use the system OpenSSL instead. rm -rf src/crypto/internal/boring/syso +%ifarch loongarch64 +## Apply loongarch64 patches +tar -xf %{SOURCE3} +for p in $(cat %{SOURCE4}); do + patch -p1 -s -i loongarch64/$p +done +%endif + +## Delete loongarch64 directory +rm -rf loongarch64 + cp %{SOURCE2} ./src/runtime/ +cp %{SOURCE5} ./src/runtime/race %build set -xe @@ -526,8 +545,12 @@ cd .. %endif %changelog +* Wed May 21 2025 chen guo qi - 1.23.6-1.0.2 +- Add LoongArch64 re-support + * Fri Apr 18 2025 Chang Gao - 1.23.6-1.0.1 - disable DISABLE_BoringCertAlgs_TEST test +- Add LoongArch64 support (chenguoqi@loongson.cn) * Thu Mar 13 2025 David Benoit - 1.23.6-1 - Update to Go 1.23.6 diff --git a/loongarch64.patches b/loongarch64.patches new file mode 100644 index 0000000000000000000000000000000000000000..38bb78bb40412ae22d509643eef5a10e36922dfb --- /dev/null +++ b/loongarch64.patches @@ -0,0 +1,204 @@ +0001-ABI1.0-fix-runtime-defs_linux_loong64.patch +0002-ABI1.0-cmd-internal-obj-loong64-cmd-link-internal-sw.patch +0003-ABI1.0-fix-misc-cgo-test-sigaltstack-size-on-loong64.patch +0004-ABI1.0-fix-mabi-to-lp64-for-loong64.patch +0005-ABI1.0-fix-test-issue11656-for-loong64.patch +0006-ABI1.0-fixup-stack-growth-after-fork-in-runtime.sigf.patch +0007-ABI1.0-runtime-fix-the-vDSO-symbol-version-for-kerne.patch +0008-ABI1.0-fix-the-definition-of-members-in-the-PtraceRe.patch +0009-ABI1.0-cmd-link-correct-the-dynamic-linker-path-of-l.patch +0010-cmd-internal-objabi-add-new-relocations-used-in-inte.patch +0011-cmd-link-internal-add-support-for-internal-linking-o.patch +0012-internal-platform-cmd-dist-enable-internal-linking-s.patch +0013-cmd-internal-obj-loong64-add-stmt-prologueEnd-to-DWA.patch +0014-cmd-internal-objabi-add-new-relocations-of-loong64.patch +0015-cmd-link-internal-loong64-process-new-relocations-on.patch +0016-cmd-internal-obj-loong64-remove-Class-C_LEXT-and-C_S.patch +0017-cmd-internal-obj-loong64-remove-repeated-optab-item.patch +0018-cmd-internal-obj-loong64-reclassify-three-register-o.patch +0019-cmd-internal-obj-loong64-remove-case-17-because-no-r.patch +0020-cmd-internal-obj-loong64-cmd-asm-remove-useless-inst.patch +0021-cmd-internal-obj-loong64-remove-unuseless-functions.patch +0022-cmd-internal-obj-loong64-fixed-operand-assignment-er.patch +0023-cmd-internal-obj-loong64-return-an-error-when-gettin.patch +0024-cmd-internal-obj-loong64-cmd-asm-remove-invalid-opta.patch +0025-cmd-internal-obj-loong64-optimize-instruction-implem.patch +0026-cmd-internal-obj-loong64-rename-Class-to-represent-t.patch +0027-cmd-internal-obj-loong64-adjust-the-order-of-class-n.patch +0028-cmd-internal-obj-loong64-add-new-floating-point-data.patch +0029-cmd-internal-obj-loong64-one-branch-class-is-enough.patch +0030-cmd-internal-obj-loong64-optimize-the-code-logic-of-.patch +0031-cmd-runtime-enable-race-detector-on-loong64.patch +0032-runtime-delete-on-register-ABI-fallback-path-for-rac.patch +0033-cmd-internal-obj-loong64-switch-Lookup-function-call.patch +0034-cmd-internal-obj-loong64-remove-unused-register-alia.patch +0035-cmd-cmd-vendor-pick-up-updates-for-golang.org-x-arch.patch +0036-cmd-internal-obj-loong64-move-C_NCLASS-to-be-last-cl.patch +0037-cmd-compiler-internal-runtime-atomic-optimize-xchg-a.patch +0038-cmd-compiler-internal-runtime-atomic-optimize-xadd-a.patch +0039-cmd-compiler-internal-runtime-atomic-optimize-And-64.patch +0040-cmd-compile-internal-intrinsify-publicationBarrier-o.patch +0041-cmd-link-internal-loong64-fix-internal-liner-impleme.patch +0042-cmd-compiler-internal-runtime-atomic-optimize-Store-.patch +0043-cmd-compiler-internal-runtime-atomic-optimize-Load-6.patch +0044-cmd-link-add-argument-for-function-isPLTCall.patch +0045-cmd-link-add-support-for-trampoline-insertation-on-l.patch +0046-cmd-internal-obj-loong64-add-CPUCFG-instructions-sup.patch +0047-internal-cpu-runtime-make-linux-loong64-HWCAP-data-a.patch +0048-cmd-compiler-internal-runtime-atomic-optimize-Cas-64.patch +0049-cmd-internal-obj-loong63-add-support-for-FRINT.D-COP.patch +0050-runtime-save-and-restore-register-fcsr0-in-async-pre.patch +0051-cmd-compile-math-make-math.Ceil-Floor-RoundToEven-Tr.patch +0052-Modify-the-register-type-of-the-second-source-operan.patch +0053-cmd-internal-obj-loong64-add-support-for-BITREVW-and.patch +0054-cmd-compile-make-math-bits.Reverse-intrinsics-on-loo.patch +0055-cmd-asm-add-support-for-loong64-CRC32-instructions.patch +0056-hash-crc32-optimize-the-loong64-crc32-implementation.patch +0057-runtime-use-ABIInternal-for-calls-to-sigtrampgo-on-l.patch +0058-cmd-internal-obj-loong64-add-FLDX-FSTX-LDX.STX-instr.patch +0059-internal-bytealg-optimize-IndexByte-and-IndexByteStr.patch +0060-internal-bytealg-optimize-memequal-and-memequal_varl.patch +0061-internal-bytealg-optimize-Index-and-IndexString-func.patch +0062-internal-bytealg-optimize-Count-and-CountString-func.patch +0063-cmd-compile-Modify-the-implementation-of-math.Ceil-F.patch +0064-cmd-internal-obj-loong64-fix-invalid-register-pair-f.patch +0065-cmd-internal-obj-loong64-add-testcase-TestPCALIGN.patch +0066-cmd-internal-obj-loong64-add-testcase-TestNoRet.patch +0067-cmd-compile-internal-ssa-support-testcases-about-deb.patch +0068-cmd-compile-internal-loopvar-support-testcases-about.patch +0069-runtime-support-debug-call-injection-and-its-test-on.patch +0070-internal-bytealg-adjust-the-format-of-assembly-files.patch +0071-cmd-internal-obj-loong64-correct-the-special-registe.patch +0072-cmd-internal-obj-loong64-add-doc.go.patch +0073-cmd-internal-obj-loong64-add-support-for-instruction.patch +0074-cmd-internal-obj-loong64-add-back-instruction-WORD.patch +0075-cmd-compile-intrinsics-for-math-bits.TrailingZeros-o.patch +0076-cmd-internal-obj-loong64-add-support-for-instruction.patch +0077-cmd-compile-intrinsics-for-math-bits.ReverseBytes-an.patch +0078-cmd-internal-obj-loong64-add-support-for-instruction.patch +0079-cmd-internal-obj-loong64-add-FCLASS.-S-D-instruction.patch +0080-cmd-internal-obj-loong64-add-support-for-instruction.patch +0081-cmd-internal-obj-loong64-add-support-for-instruction.patch +0082-cmd-internal-obj-loong64-add-support-for-instruction.patch +0083-src-math-implement-archFloor-archCeil-archTrunc-in-h.patch +0084-cmd-compile-intrinsics-for-math.min-max-and-implemen.patch +0085-runtime-optimize-the-function-memmove-on-loong64.patch +0086-runtime-optimize-the-function-memclrNoHeapPointers-o.patch +0087-src-internal-bytealg-optimize-the-function-Compare-o.patch +0088-cmd-compile-internal-ssa-Optimize-rules-Zero-and-Mov.patch +0089-crypto-sha256-implement-sha256block-in-hardware-on-l.patch +0090-crypto-sha512-implement-sha512block-in-hardware-on-l.patch +0091-crypto-md5-implement-md5block-in-hardware-on-loong64.patch +0092-cmd-internal-obj-loong64-add-new-operand-classes-for.patch +0093-crypto-internal-bigmod-provide-assembly-addMulVVW-fo.patch +0094-cmd-compiler-internal-atomic-operations-use-universa.patch +0095-cmd-compile-internal-ssa-optimize-if-control-flow-ru.patch +0096-math-big-optimize-addVV-function-for-loong64.patch +0097-math-big-optimize-addVW-function-for-loong64.patch +0098-math-big-optimize-subVV-function-for-loong64.patch +0099-math-big-optimize-subVW-function-for-loong64.patch +0100-math-big-optimize-shlVU-function-for-loong64.patch +0101-math-big-optimize-shrVU-function-for-loong64.patch +0102-math-big-optimize-mulAddVWW-function-for-loong64.patch +0103-math-big-optimize-addMulVVW-function-for-loong64.patch +0104-cmd-asm-internal-obj-loong64-add-support-for-F-N-M-A.patch +0105-cmd-compile-add-fused-multiply-add-sub-support-on-lo.patch +0106-cmd-compile-internal-ssa-optimize-store-zero-rules-o.patch +0107-cmd-compile-internal-ssa-optimize-ANDconst-rule.patch +0108-cmd-internal-obj-loong64-optimize-immediate-loading.patch +0109-cmd-compile-internal-optimize-condition-branch-imple.patch +0110-crypto-sha1-implement-sha1block-in-hardware-on-loong.patch +0111-Fix-bug-panic-big-over-2-63-1-math.Trunc-is-incorrec.patch +0112-cmd-internal-obj-delete-invalid-Opcodes-for-DBAR-and.patch +0113-cmd-cgo-internal-testsanitizers-skip-tsan8-on-loong6.patch +0114-cmd-link-internal-ld-add-testcase-TestLoong64Trampol.patch +0115-cmd-internal-obj-loong64-add-testcase-TestLargeCall-.patch +0116-cmd-compile-optimize-math.Float64-32-bits-and-math.F.patch +0117-cmd-compile-optimize-RotateLeft8-16-on-loong64.patch +0118-cmd-internal-obj-loong64-add-support-for-instruction.patch +0119-cmd-internal-obj-loong64-add-support-for-instruction.patch +0120-cmd-asm-adjust-the-operand-order-of-F-N-M-ADD-SUB-F-.patch +0121-cmd-objdump-add-testcase-for-loong64.patch +0122-cmd-vendor-golang.org-x-tools-latest.patch +0123-runtime-switch-cputics-and-switchTocrashStack0-on-lo.patch +0124-cmd-internal-obj-loong64-add-support-for-instruction.patch +0125-cmd-internal-obj-optimize-the-function-stacksplit-on.patch +0126-cmd-compiler-internal-runtime-atomic-optimize-Store-.patch +0127-cmd-internal-obj-loong64-add-support-for-instruction.patch +0128-cmd-internal-obj-loong64-mark-functions-with-small-s.patch +0129-cmd-compile-fold-MOV-nop-and-MOV-const-on-loong64.patch +0130-cmd-compile-fold-constant-shift-with-extension-on-lo.patch +0131-cmd-compile-add-loong64-specific-inlining-for-runtim.patch +0132-cmd-compile-add-patterns-for-bitfield-opcodes-on-loo.patch +0133-test-codegen-fix-the-matching-instructions-inside-pl.patch +0134-cmd-compile-optimize-loong64-with-register-indexed-l.patch +0135-cmd-compile-add-rules-to-optimize-go-codes-to-consta.patch +0136-cmd-compile-inline-constant-sized-memclrNoHeapPointe.patch +0137-cmd-compile-optimize-the-condition-for-the-rule-x-lc.patch +0138-cmd-internal-obj-loong64-add-V-XV-LD-V-XV-LDX-V-XV-S.patch +0139-cmd-internal-obj-loong64-add-V-XV-SEQ.-B-H-W-D-instr.patch +0140-cmd-internal-obj-loong64-add-support-of-VMOVQ-and-XV.patch +0141-cmd-internal-obj-loong64-add-V-XV-PCNT.-B-H-W-D-inst.patch +0142-cmd-compile-optimize-math-bits.OnesCount-16-32-64-im.patch +0143-runtime-improve-CALLFN-macro-for-loong64.patch +0144-cmd-asm-internal-arch-fix-wrong-type-for-arg-reg-in-.patch +0145-update-golang.org-x-arch-to-v0.11.1-0.20241106162200.patch +0146-cmd-comtime-internal-runtime-atomic-Remove-redundant.patch +0147-cmd-compile-optimize-shifts-of-int32-and-uint32-on-l.patch +0148-cmd-compile-simplify-bounded-shift-on-loong64.patch +0149-runtime-use-ABIInternal-on-syscall-and-other-sys.stu.patch +0150-runtime-use-correct-memory-barrier-in-exitThread-fun.patch +0151-cmd-asm-add-support-for-the-rest-of-loong64-unary-bi.patch +0152-cmd-asm-use-single-instruction-forms-for-all-loong64.patch +0153-cmd-asm-cmd-internal-obj-optimize-immediate-loading.patch +0154-cmd-internal-obj-loong64-add-V-XV-SEQI-V-XV-.-AND-OR.patch +0155-cmd-internal-obj-loong64-add-V-XV-ADD-SUB-.-B-H-W-D-.patch +0156-cmd-internal-obj-loong64-add-V-XV-ILV-L-H-.-B-H-W-D-.patch +0157-cmd-internal-obj-loong64-add-V-XV-SLL-SRL-SRA-ROTR-I.patch +0158-cmd-internal-obj-loong64-add-V-XV-FSQRT-FRECIP-FRSQR.patch +0159-cmd-internal-obj-loong64-add-V-XV-NEG-B-H-W-V-instru.patch +0160-cmd-internal-obj-loong64-add-V-XV-MUL-B-H-W-V-and-V-.patch +0161-cmd-internal-obj-loong64-add-V-XV-DIV-B-H-W-V-U-and-.patch +0162-cmd-internal-obj-loong64-add-V-XV-BITCLR-BITSET-BITR.patch +0163-crypto-chacha20-add-loong64-SIMD-implementation.patch +0164-internal-bytealg-optimize-Count-String-in-loong64.patch +0165-cmd-internal-obj-cmd-asm-reclassify-32-bit-immediate.patch +0166-crypto-internal-poly1305-implement-function-update-i.patch +0167-runtime-optimize-the-implementation-of-memclrNoHeapP.patch +0168-runtime-race-add-the-implementation-of-atomic.-Or-An.patch +0169-cmd-internal-obj-loong64-add-F-MAXA-MINA-.-S-D-instr.patch +0170-math-implement-func-archExp-and-archExp2-in-assembly.patch +0171-math-implement-func-archLog-in-assembly-on-loong64.patch +0172-cmd-go-internal-work-allow-a-bunch-of-loong64-specif.patch +0173-runtime-cgo-use-standard-ABI-call-setg_gcc-in-crossc.patch +0174-cmd-internal-obj-add-new-32-bits-immediate-classes-o.patch +0175-cmd-intarnal-obj-loong64-Add-optab-entry-to-omit-the.patch +0176-cmd-intarnal-obj-loong64-Add-optab-entry-to-omit-the.patch +0177-cmd-internal-obj-loong64-add-V-XV-ADD-SUB-.-B-H-W-D-.patch +0178-crypto-internal-fips140-edwards25519-implement-func-.patch +0179-internal-bytealg-optimize-Count-String-in-loong64.patch +0180-cmd-link-remove-trampoline-for-plt-symbol.patch +0181-runtime-runtime-cgo-use-libc-for-sigaction-syscalls-.patch +0182-runtime-add-function-runtime.cgoSigtramp-support-on-.patch +0183-cmd-internal-obj-loong64-add-X-VMULW-EV-OD-.-H.B-W.H.patch +0184-cmd-internal-obj-loong64-add-X-VSHUF4I.-B-H-W-D-inst.patch +0185-runtime-optimizing-memclrNoHeapPointers-implementati.patch +0186-runtime-delete-redundant-branch-jumps-in-memclrNoHea.patch +0187-cmd-compile-set-unalignedOK-to-make-memcombine-work-.patch +0188-runtime-optimize-the-function-memmove-using-SIMD-on-.patch +0189-cmd-internal-obj-loong64-cmd-asm-add-V-XV-SET-EQ-NE-.patch +0190-runtime-optimize-the-function-memequal-using-SIMD-on.patch +0191-cmd-internal-obj-add-new-assembly-format-for-BFPT-an.patch +0192-runtime-internal-fuzz-add-comparison-tracing-for-lib.patch +0193-crypto-sha256-improve-performance-of-loong64.patch +0194-crypto-sha512-improve-performance-of-loong64.patch +0195-cmd-internal-obj-loong64-add-X-VFRINT-RNE-RZ-RP-RM-..patch +0196-cmd-internal-obj-loong64-add-X-VF-ADD-SUB-MUL-DIV-.-.patch +0197-runtime-optimize-the-function-indexbyte-using-SIMD-o.patch +0198-internal-chacha8rand-implement-func-block-in-assembl.patch +0199-internal-bytealg-optimize-the-function-compare-using.patch +0200-cmd-internal-obj-loong64-add-X-VFCLASS.-S-D-instruct.patch +0201-cmd-intarnal-obj-add-new-assembly-format-for-VANDB-o.patch +0202-cmd-compile-fold-negation-into-addition-subtraction-.patch +0203-cmd-internal-obj-loong64-Add-preld-x-instructions-su.patch +0204-cmd-compile-add-prefetch-intrinsic-support-on-loong6.patch diff --git a/loongarch64.tar.gz b/loongarch64.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..8b8dafb86d97ba3398ad337b312c7a529dcd7700 Binary files /dev/null and b/loongarch64.tar.gz differ diff --git a/race_linux_loong64.syso b/race_linux_loong64.syso new file mode 100644 index 0000000000000000000000000000000000000000..0b51b02dbfc4bc98a4688e864eb5c23500104c68 Binary files /dev/null and b/race_linux_loong64.syso differ