47 lines
1.5 KiB
Diff
47 lines
1.5 KiB
Diff
From e957c3458d53e37bf416f51d2f8bf54c195e50f5 Mon Sep 17 00:00:00 2001
|
|
From: Matt Madison <matt@madison.systems>
|
|
Date: Wed, 13 Sep 2017 08:27:02 -0700
|
|
Subject: [PATCH 7/7] ld: add soname to shareable objects
|
|
|
|
Shared library handling in OE depends on the inclusion
|
|
of an soname header, so update the go linker to add that
|
|
header for both internal and external linking.
|
|
|
|
Upstream-Status: Pending
|
|
|
|
Signed-off-by: Matt Madison <matt@madison.systems>
|
|
---
|
|
src/cmd/link/internal/ld/lib.go | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
|
|
index 0234105..0b9e2d0 100644
|
|
--- a/src/cmd/link/internal/ld/lib.go
|
|
+++ b/src/cmd/link/internal/ld/lib.go
|
|
@@ -1124,12 +1124,14 @@ func (l *Link) hostlink() {
|
|
// Pass -z nodelete to mark the shared library as
|
|
// non-closeable: a dlclose will do nothing.
|
|
argv = append(argv, "-shared", "-Wl,-z,nodelete")
|
|
+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile)))
|
|
}
|
|
case BuildmodeShared:
|
|
if UseRelro() {
|
|
argv = append(argv, "-Wl,-z,relro")
|
|
}
|
|
argv = append(argv, "-shared")
|
|
+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile)))
|
|
case BuildmodePlugin:
|
|
if Headtype == objabi.Hdarwin {
|
|
argv = append(argv, "-dynamiclib")
|
|
@@ -1138,6 +1140,7 @@ func (l *Link) hostlink() {
|
|
argv = append(argv, "-Wl,-z,relro")
|
|
}
|
|
argv = append(argv, "-shared")
|
|
+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile)))
|
|
}
|
|
}
|
|
|
|
--
|
|
2.7.4
|
|
|