54 lines
1.6 KiB
Diff
54 lines
1.6 KiB
Diff
|
From 241192ecd31ca03a6f68fa7e55bb9f66040d3a2f Mon Sep 17 00:00:00 2001
|
||
|
From: Lynn Boger <laboger@linux.vnet.ibm.com>
|
||
|
Date: Thu, 14 Jul 2022 10:47:28 -0500
|
||
|
Subject: [PATCH] cmd/link: use correct path for dynamic loader on ppc64le
|
||
|
|
||
|
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
|
||
|
---
|
||
|
src/cmd/link/internal/ppc64/obj.go | 13 +++++++------
|
||
|
1 file changed, 7 insertions(+), 6 deletions(-)
|
||
|
|
||
|
diff --git a/src/cmd/link/internal/ppc64/obj.go b/src/cmd/link/internal/ppc64/obj.go
|
||
|
index b6d5ad92af..bca8fa9212 100644
|
||
|
--- a/src/cmd/link/internal/ppc64/obj.go
|
||
|
+++ b/src/cmd/link/internal/ppc64/obj.go
|
||
|
@@ -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",
|
||
|
--
|
||
|
2.35.3
|
||
|
|