1 From 35ea4be34e94912b00837e0f7c7385f2e98fe769 Mon Sep 17 00:00:00 2001
2 From: Matt Madison <matt@madison.systems>
3 Date: Sun, 18 Feb 2018 08:24:05 -0800
4 Subject: [PATCH] ld: replace glibc dynamic linker with musl
6 Rework of patch by Khem Raj <raj.khem@gmail.com>
7 for go 1.10. Should be applied conditionally on
8 musl being the system C library.
10 Upstream-Status: Inappropriate [Real fix should be portable across libcs]
12 Signed-off-by: Matt Madison <matt@madison.systems>
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(-)
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) {
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,
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) {
51 Machoreloc1: machoreloc1,
53 - Linuxdynld: "/lib/ld-linux-aarch64.so.1",
54 + Linuxdynld: "/lib/ld-musl-aarch64.so.1",
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) {
62 Machoreloc1: machoreloc1,
64 - Linuxdynld: "/lib/ld.so.1",
65 + Linuxdynld: "/lib/ld-musl-mipsle.so.1",
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) {
73 Machoreloc1: machoreloc1,
75 - Linuxdynld: "/lib64/ld64.so.1",
76 + Linuxdynld: "/lib64/ld-musl-mips64le.so.1",
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,
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",
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) {
95 Machoreloc1: machoreloc1,
97 - Linuxdynld: "/lib64/ld64.so.1",
98 + Linuxdynld: "/lib64/ld-musl-s390x.so.1",
100 // not relevant for s390x
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,
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",