Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 1 | From e957c3458d53e37bf416f51d2f8bf54c195e50f5 Mon Sep 17 00:00:00 2001 |
| 2 | From: Matt Madison <matt@madison.systems> |
| 3 | Date: Wed, 13 Sep 2017 08:27:02 -0700 |
| 4 | Subject: [PATCH 7/7] ld: add soname to shareable objects |
| 5 | |
| 6 | Shared library handling in OE depends on the inclusion |
| 7 | of an soname header, so update the go linker to add that |
| 8 | header for both internal and external linking. |
| 9 | |
| 10 | Upstream-Status: Pending |
| 11 | |
| 12 | Signed-off-by: Matt Madison <matt@madison.systems> |
| 13 | --- |
| 14 | src/cmd/link/internal/ld/lib.go | 3 +++ |
| 15 | 1 file changed, 3 insertions(+) |
| 16 | |
| 17 | diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go |
| 18 | index 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 | -- |
| 45 | 2.7.4 |
| 46 | |