]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: use correct path for dynamic loader on ppc64le
authorLynn Boger <laboger@linux.vnet.ibm.com>
Thu, 14 Jul 2022 15:47:28 +0000 (10:47 -0500)
committerLynn Boger <laboger@linux.vnet.ibm.com>
Fri, 5 Aug 2022 14:53:13 +0000 (14:53 +0000)
The setting of the path for the dynamic loader when building for
linux/ppc64le ELF v2 was incorrectly set to the path for
PPC64 ELF v1. This has not caused issues in the common cases
because this string can be set based on the default GO_LDSO setting.
It does result in an incorrect value when cross compiling binaries
with -buildmode=pie.

Updates #53813

Change-Id: I84de1c97b42e0434760b76a57c5a05e055fbb730
Reviewed-on: https://go-review.googlesource.com/c/go/+/417614
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>

src/cmd/link/internal/ppc64/obj.go

index b6d5ad92afa11d00923464d55522ea5a7e65184e..bca8fa921205e5c92bafa3a3206c1fcb1ace0029 100644 (file)
@@ -38,9 +38,12 @@ import (
 )
 
 func Init() (*sys.Arch, ld.Arch) {
-       arch := sys.ArchPPC64
-       if buildcfg.GOARCH == "ppc64le" {
-               arch = sys.ArchPPC64LE
+       arch := sys.ArchPPC64LE
+       dynld := "/lib64/ld64.so.2"
+
+       if buildcfg.GOARCH == "ppc64" {
+               arch = sys.ArchPPC64
+               dynld = "/lib64/ld64.so.1"
        }
 
        theArch := ld.Arch{
@@ -64,9 +67,7 @@ func Init() (*sys.Arch, ld.Arch) {
                Machoreloc1:      machoreloc1,
                Xcoffreloc1:      xcoffreloc1,
 
-               // TODO(austin): ABI v1 uses /usr/lib/ld.so.1,
-               Linuxdynld: "/lib64/ld64.so.1",
-
+               Linuxdynld:     dynld,
                Freebsddynld:   "XXX",
                Openbsddynld:   "XXX",
                Netbsddynld:    "XXX",