]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix aix/ppc64 library initialization
authorqmuntal <quimmuntal@gmail.com>
Wed, 1 Oct 2025 08:59:53 +0000 (10:59 +0200)
committerQuim Muntal <quimmuntal@gmail.com>
Thu, 2 Oct 2025 18:51:00 +0000 (11:51 -0700)
AIX sets the argc and argv parameters in R14 and R15, but
_rt0_ppc64x_lib expects them to be in R3 and R4. Also, call reginit in
_rt0_ppc64x_lib.

These issues were oversights from CL 706395 which went unnoticed because
there if no LUCI aix/ppc64 builder (see #67299).

Change-Id: I93a2798739935fbcead3e6162b4b90db7e740aa5
Reviewed-on: https://go-review.googlesource.com/c/go/+/708255
Reviewed-by: Carlos Amedee <carlos@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
Reviewed-by: Paul Murphy <paumurph@redhat.com>
src/runtime/asm_ppc64x.s
src/runtime/rt0_aix_ppc64.s

index 3fbf11b5e9a2ad2c452be043d708749847bed101..b42e0b62f850ffbe5e39ea4037202ddb841dfe9e 100644 (file)
@@ -21,6 +21,9 @@ TEXT _rt0_ppc64x_lib(SB),NOSPLIT|NOFRAME,$0
        MOVD    R4, _rt0_ppc64x_lib_argv<>(SB)
 
        // Synchronous initialization.
+       MOVD    $runtime·reginit(SB), R12
+       MOVD    R12, CTR
+       BL      (CTR)
        MOVD    $runtime·libpreinit(SB), R12
        MOVD    R12, CTR
        BL      (CTR)
index 32f8c72156c9ee0d3758a0547afe5232233e34f8..518fcb3b88d6709edd1d5706eb275a379acc573d 100644 (file)
@@ -42,4 +42,6 @@ TEXT _main(SB),NOSPLIT,$-8
        BR (CTR)
 
 TEXT _rt0_ppc64_aix_lib(SB),NOSPLIT,$0
+       MOVD R14, R3 // argc
+       MOVD R15, R4 // argv
        JMP _rt0_ppc64x_lib(SB)