From 5624a773e4db3ad2251641e69b04dc380e74a4c7 Mon Sep 17 00:00:00 2001 From: Matt Madison Date: Wed, 13 Sep 2017 14:54:06 -0300 Subject: go.bbclass: add support linking against shared runtime For architectures that support it, use the -linkshared build option to build packages against the shared Go runtime. Signed-off-by: Matt Madison Signed-off-by: Otavio Salvador Signed-off-by: Richard Purdie --- meta/classes/go.bbclass | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'meta/classes/go.bbclass') diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass index 8d363e86a2..d805dc2713 100644 --- a/meta/classes/go.bbclass +++ b/meta/classes/go.bbclass @@ -31,7 +31,14 @@ DEPENDS_GOLANG_class-nativesdk = "virtual/${TARGET_PREFIX}go-crosssdk virtual/${ DEPENDS_append = " ${DEPENDS_GOLANG}" -export GOBUILDFLAGS ?= "-v" +GO_LINKSHARED ?= "${@'-linkshared' if d.getVar('GO_DYNLINK') else ''}" +GO_RPATH_LINK = "${@'-Wl,-rpath-link=${STAGING_DIR_TARGET}${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink' if d.getVar('GO_DYNLINK') else ''}" +GO_RPATH = "${@'-r ${libdir}/go/pkg/${TARGET_GOTUPLE}_dynlink' if d.getVar('GO_DYNLINK') else ''}" +GO_RPATH_class-native = "${@'-r ${STAGING_LIBDIR_NATIVE}/go/pkg/${TARGET_GOTUPLE}_dynlink' if d.getVar('GO_DYNLINK') else ''}" +GO_RPATH_LINK_class-native = "${@'-Wl,-rpath-link=${STAGING_LIBDIR_NATIVE}/go/pkg/${TARGET_GOTUPLE}_dynlink' if d.getVar('GO_DYNLINK') else ''}" +GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${GO_RPATH_LINK} ${LDFLAGS}" +GO_LDFLAGS ?= '-ldflags="${GO_RPATH} -extldflags '${GO_EXTLDFLAGS}'"' +export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS}" GOBUILDFLAGS_prepend_task-compile = "${GO_PARALLEL_BUILD} " export GO = "${HOST_PREFIX}go" @@ -81,7 +88,7 @@ go_do_configure() { go_do_compile() { ${GO} env if [ -n "${GO_INSTALL}" ]; then - ${GO} install ${GOBUILDFLAGS} `go_list_packages` + ${GO} install ${GO_LINKSHARED} ${GOBUILDFLAGS} `go_list_packages` fi } do_compile[cleandirs] = "${B}/bin ${B}/pkg" -- cgit 1.2.3-korg