blob: 840cf4bbd7e5be5da504060d2f520b2e933dd927 [file] [log] [blame]
Brad Bishop19323692019-04-05 15:28:33 -04001From 35ea4be34e94912b00837e0f7c7385f2e98fe769 Mon Sep 17 00:00:00 2001
2From: Matt Madison <matt@madison.systems>
3Date: Sun, 18 Feb 2018 08:24:05 -0800
4Subject: [PATCH] ld: replace glibc dynamic linker with musl
5
6Rework of patch by Khem Raj <raj.khem@gmail.com>
7for go 1.10. Should be applied conditionally on
8musl being the system C library.
9
10Upstream-Status: Inappropriate [Real fix should be portable across libcs]
11
12Signed-off-by: Matt Madison <matt@madison.systems>
13
14---
15 src/cmd/link/internal/amd64/obj.go | 2 +-
16 src/cmd/link/internal/arm/obj.go | 2 +-
17 src/cmd/link/internal/arm64/obj.go | 2 +-
18 src/cmd/link/internal/mips/obj.go | 2 +-
19 src/cmd/link/internal/mips64/obj.go | 2 +-
20 src/cmd/link/internal/ppc64/obj.go | 2 +-
21 src/cmd/link/internal/s390x/obj.go | 2 +-
22 src/cmd/link/internal/x86/obj.go | 2 +-
23 8 files changed, 8 insertions(+), 8 deletions(-)
24
25--- a/src/cmd/link/internal/amd64/obj.go
26+++ b/src/cmd/link/internal/amd64/obj.go
27@@ -62,7 +62,7 @@ func Init() (*sys.Arch, ld.Arch) {
28 PEreloc1: pereloc1,
29 TLSIEtoLE: tlsIEtoLE,
30
31- Linuxdynld: "/lib64/ld-linux-x86-64.so.2",
32+ Linuxdynld: "/lib64/ld-musl-x86-64.so.1",
33 Freebsddynld: "/libexec/ld-elf.so.1",
34 Openbsddynld: "/usr/libexec/ld.so",
35 Netbsddynld: "/libexec/ld.elf_so",
36--- a/src/cmd/link/internal/arm/obj.go
37+++ b/src/cmd/link/internal/arm/obj.go
38@@ -59,7 +59,7 @@ func Init() (*sys.Arch, ld.Arch) {
39 Machoreloc1: machoreloc1,
40 PEreloc1: pereloc1,
41
42- Linuxdynld: "/lib/ld-linux.so.3", // 2 for OABI, 3 for EABI
43+ Linuxdynld: "/lib/ld-musl-armhf.so.1",
44 Freebsddynld: "/usr/libexec/ld-elf.so.1",
45 Openbsddynld: "/usr/libexec/ld.so",
46 Netbsddynld: "/libexec/ld.elf_so",
47--- a/src/cmd/link/internal/arm64/obj.go
48+++ b/src/cmd/link/internal/arm64/obj.go
49@@ -57,7 +57,7 @@ func Init() (*sys.Arch, ld.Arch) {
50 Gentext: gentext,
51 Machoreloc1: machoreloc1,
52
53- Linuxdynld: "/lib/ld-linux-aarch64.so.1",
54+ Linuxdynld: "/lib/ld-musl-aarch64.so.1",
55
56 Freebsddynld: "XXX",
57 Openbsddynld: "XXX",
58--- a/src/cmd/link/internal/mips/obj.go
59+++ b/src/cmd/link/internal/mips/obj.go
60@@ -60,7 +60,7 @@ func Init() (*sys.Arch, ld.Arch) {
61 Gentext: gentext,
62 Machoreloc1: machoreloc1,
63
64- Linuxdynld: "/lib/ld.so.1",
65+ Linuxdynld: "/lib/ld-musl-mipsle.so.1",
66
67 Freebsddynld: "XXX",
68 Openbsddynld: "XXX",
69--- a/src/cmd/link/internal/mips64/obj.go
70+++ b/src/cmd/link/internal/mips64/obj.go
71@@ -59,7 +59,7 @@ func Init() (*sys.Arch, ld.Arch) {
72 Gentext: gentext,
73 Machoreloc1: machoreloc1,
74
75- Linuxdynld: "/lib64/ld64.so.1",
76+ Linuxdynld: "/lib64/ld-musl-mips64le.so.1",
77 Freebsddynld: "XXX",
78 Openbsddynld: "XXX",
79 Netbsddynld: "XXX",
80--- a/src/cmd/link/internal/ppc64/obj.go
81+++ b/src/cmd/link/internal/ppc64/obj.go
82@@ -62,7 +62,7 @@ func Init() (*sys.Arch, ld.Arch) {
83 Machoreloc1: machoreloc1,
84
85 // TODO(austin): ABI v1 uses /usr/lib/ld.so.1,
86- Linuxdynld: "/lib64/ld64.so.1",
87+ Linuxdynld: "/lib64/ld-musl-powerpc64le.so.1",
88
89 Freebsddynld: "XXX",
90 Openbsddynld: "XXX",
91--- a/src/cmd/link/internal/s390x/obj.go
92+++ b/src/cmd/link/internal/s390x/obj.go
93@@ -57,7 +57,7 @@ func Init() (*sys.Arch, ld.Arch) {
94 Gentext: gentext,
95 Machoreloc1: machoreloc1,
96
97- Linuxdynld: "/lib64/ld64.so.1",
98+ Linuxdynld: "/lib64/ld-musl-s390x.so.1",
99
100 // not relevant for s390x
101 Freebsddynld: "XXX",
102--- a/src/cmd/link/internal/x86/obj.go
103+++ b/src/cmd/link/internal/x86/obj.go
104@@ -58,7 +58,7 @@ func Init() (*sys.Arch, ld.Arch) {
105 Machoreloc1: machoreloc1,
106 PEreloc1: pereloc1,
107
108- Linuxdynld: "/lib/ld-linux.so.2",
109+ Linuxdynld: "/lib/ld-musl-i386.so.1",
110 Freebsddynld: "/usr/libexec/ld-elf.so.1",
111 Openbsddynld: "/usr/libexec/ld.so",
112 Netbsddynld: "/usr/libexec/ld.elf_so",