blob: 6459782d814a967b543ce2b91b3737039d9cf2c9 [file] [log] [blame]
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001From e957c3458d53e37bf416f51d2f8bf54c195e50f5 Mon Sep 17 00:00:00 2001
2From: Matt Madison <matt@madison.systems>
3Date: Wed, 13 Sep 2017 08:27:02 -0700
4Subject: [PATCH 7/7] ld: add soname to shareable objects
5
6Shared library handling in OE depends on the inclusion
7of an soname header, so update the go linker to add that
8header for both internal and external linking.
9
10Upstream-Status: Pending
11
12Signed-off-by: Matt Madison <matt@madison.systems>
13---
14 src/cmd/link/internal/ld/lib.go | 3 +++
15 1 file changed, 3 insertions(+)
16
17diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
18index 0234105..0b9e2d0 100644
19--- a/src/cmd/link/internal/ld/lib.go
20+++ b/src/cmd/link/internal/ld/lib.go
21@@ -1124,12 +1124,14 @@ func (l *Link) hostlink() {
22 // Pass -z nodelete to mark the shared library as
23 // non-closeable: a dlclose will do nothing.
24 argv = append(argv, "-shared", "-Wl,-z,nodelete")
25+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile)))
26 }
27 case BuildmodeShared:
28 if UseRelro() {
29 argv = append(argv, "-Wl,-z,relro")
30 }
31 argv = append(argv, "-shared")
32+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile)))
33 case BuildmodePlugin:
34 if Headtype == objabi.Hdarwin {
35 argv = append(argv, "-dynamiclib")
36@@ -1138,6 +1140,7 @@ func (l *Link) hostlink() {
37 argv = append(argv, "-Wl,-z,relro")
38 }
39 argv = append(argv, "-shared")
40+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile)))
41 }
42 }
43
44--
452.7.4
46