From e957c3458d53e37bf416f51d2f8bf54c195e50f5 Mon Sep 17 00:00:00 2001 From: Matt Madison 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 --- 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