diff mbox series

[1/2] go: Drop the linkmode completely

Message ID 20240419175309.214181-1-jose.quaresma@foundries.io
State Accepted, archived
Commit 6ad90fc2fc49c4199a59dfb1c1d81a7ba184a522
Headers show
Series [1/2] go: Drop the linkmode completely | expand

Commit Message

Jose Quaresma April 19, 2024, 5:53 p.m. UTC
This will make possible to restore the default dynamic linking globally
which is what we had before the 1.20.X release.

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
 meta/classes-recipe/go.bbclass          | 2 --
 meta/recipes-devtools/go/go-runtime.inc | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)

Comments

Khem Raj April 19, 2024, 6:17 p.m. UTC | #1
On Fri, Apr 19, 2024 at 10:53 AM Jose Quaresma via
lists.openembedded.org
<quaresma.jose=gmail.com@lists.openembedded.org> wrote:
>
> This will make possible to restore the default dynamic linking globally
> which is what we had before the 1.20.X release.
>

Looks good overall. how do we support the static linking if user wanted ?

> Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
>  meta/classes-recipe/go.bbclass          | 2 --
>  meta/recipes-devtools/go/go-runtime.inc | 2 +-
>  2 files changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/meta/classes-recipe/go.bbclass b/meta/classes-recipe/go.bbclass
> index cc3564c36a..d32509aa6d 100644
> --- a/meta/classes-recipe/go.bbclass
> +++ b/meta/classes-recipe/go.bbclass
> @@ -48,8 +48,6 @@ GO_RPATH:class-native = "${@'-r ${STAGING_LIBDIR_NATIVE}/go/pkg/${TARGET_GOTUPLE
>  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_LINKMODE ?= ""
> -GO_LINKMODE:class-nativesdk = "--linkmode=external"
> -GO_LINKMODE:class-native = "--linkmode=external"
>  GO_EXTRA_LDFLAGS ?= ""
>  GO_LINUXLOADER ?= "-I ${@get_linuxloader(d)}"
>  # Use system loader. If uninative is used, the uninative loader will be patched automatically
> diff --git a/meta/recipes-devtools/go/go-runtime.inc b/meta/recipes-devtools/go/go-runtime.inc
> index 3f1e795dd9..413cf6d33f 100644
> --- a/meta/recipes-devtools/go/go-runtime.inc
> +++ b/meta/recipes-devtools/go/go-runtime.inc
> @@ -15,7 +15,7 @@ export CGO_LDFLAGS = "${@ ' '.join(filter(lambda f: not f.startswith('-fdebug-pr
>  export GOCACHE = "${B}/.cache"
>
>  GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${LDFLAGS}"
> -GO_SHLIB_LDFLAGS ?= '-ldflags="--linkmode=external -extldflags '${GO_EXTLDFLAGS}'"'
> +GO_SHLIB_LDFLAGS ?= '-ldflags="-extldflags '${GO_EXTLDFLAGS}'"'
>
>  do_configure() {
>         :
> --
> 2.44.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#198558): https://lists.openembedded.org/g/openembedded-core/message/198558
> Mute This Topic: https://lists.openembedded.org/mt/105623011/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Jose Quaresma April 19, 2024, 6:28 p.m. UTC | #2
Khem Raj <raj.khem@gmail.com> escreveu (sexta, 19/04/2024 à(s) 19:17):

> On Fri, Apr 19, 2024 at 10:53 AM Jose Quaresma via
> lists.openembedded.org
> <quaresma.jose=gmail.com@lists.openembedded.org> wrote:
> >
> > This will make possible to restore the default dynamic linking globally
> > which is what we had before the 1.20.X release.
> >
>
> Looks good overall. how do we support the static linking if user wanted ?
>

To disable the dynamic linking, which is the default, we need to unset the
GO_DYNLINK
but this needs to be done with a machine arch override otherwise has no
effect.

GO_DYNLINK:machine_arch = ""

As an example the below patch enables the static linkiging for all the
architectures
https://git.yoctoproject.org/poky/commit/meta/classes-recipe/goarch.bbclass?id=fd2e5e0b89d9c69acc9f813f07cd052630596ad5

Jose


> > Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> >  meta/classes-recipe/go.bbclass          | 2 --
> >  meta/recipes-devtools/go/go-runtime.inc | 2 +-
> >  2 files changed, 1 insertion(+), 3 deletions(-)
> >
> > diff --git a/meta/classes-recipe/go.bbclass
> b/meta/classes-recipe/go.bbclass
> > index cc3564c36a..d32509aa6d 100644
> > --- a/meta/classes-recipe/go.bbclass
> > +++ b/meta/classes-recipe/go.bbclass
> > @@ -48,8 +48,6 @@ GO_RPATH:class-native = "${@'-r
> ${STAGING_LIBDIR_NATIVE}/go/pkg/${TARGET_GOTUPLE
> >  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_LINKMODE ?= ""
> > -GO_LINKMODE:class-nativesdk = "--linkmode=external"
> > -GO_LINKMODE:class-native = "--linkmode=external"
> >  GO_EXTRA_LDFLAGS ?= ""
> >  GO_LINUXLOADER ?= "-I ${@get_linuxloader(d)}"
> >  # Use system loader. If uninative is used, the uninative loader will be
> patched automatically
> > diff --git a/meta/recipes-devtools/go/go-runtime.inc
> b/meta/recipes-devtools/go/go-runtime.inc
> > index 3f1e795dd9..413cf6d33f 100644
> > --- a/meta/recipes-devtools/go/go-runtime.inc
> > +++ b/meta/recipes-devtools/go/go-runtime.inc
> > @@ -15,7 +15,7 @@ export CGO_LDFLAGS = "${@ ' '.join(filter(lambda f:
> not f.startswith('-fdebug-pr
> >  export GOCACHE = "${B}/.cache"
> >
> >  GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${LDFLAGS}"
> > -GO_SHLIB_LDFLAGS ?= '-ldflags="--linkmode=external -extldflags
> '${GO_EXTLDFLAGS}'"'
> > +GO_SHLIB_LDFLAGS ?= '-ldflags="-extldflags '${GO_EXTLDFLAGS}'"'
> >
> >  do_configure() {
> >         :
> > --
> > 2.44.0
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#198558):
> https://lists.openembedded.org/g/openembedded-core/message/198558
> > Mute This Topic: https://lists.openembedded.org/mt/105623011/1997914
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> raj.khem@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
Khem Raj April 19, 2024, 8:43 p.m. UTC | #3
On Fri, Apr 19, 2024 at 11:28 AM Jose Quaresma <quaresma.jose@gmail.com>
wrote:

>
>
> Khem Raj <raj.khem@gmail.com> escreveu (sexta, 19/04/2024 à(s) 19:17):
>
>> On Fri, Apr 19, 2024 at 10:53 AM Jose Quaresma via
>> lists.openembedded.org
>> <quaresma.jose=gmail.com@lists.openembedded.org> wrote:
>> >
>> > This will make possible to restore the default dynamic linking globally
>> > which is what we had before the 1.20.X release.
>> >
>>
>> Looks good overall. how do we support the static linking if user wanted ?
>>
>
> To disable the dynamic linking, which is the default, we need to unset the
> GO_DYNLINK
> but this needs to be done with a machine arch override otherwise has no
> effect.
>
> GO_DYNLINK:machine_arch = ""
>
> As an example the below patch enables the static linkiging for all the
> architectures
>
> https://git.yoctoproject.org/poky/commit/meta/classes-recipe/goarch.bbclass?id=fd2e5e0b89d9c69acc9f813f07cd052630596ad5
>
>

I wonder if it makes sense to have a variable for doing static linking now
that dynamic linking is default anyway and remove it


> Jose
>
>
>> > Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
>> > ---
>> >  meta/classes-recipe/go.bbclass          | 2 --
>> >  meta/recipes-devtools/go/go-runtime.inc | 2 +-
>> >  2 files changed, 1 insertion(+), 3 deletions(-)
>> >
>> > diff --git a/meta/classes-recipe/go.bbclass
>> b/meta/classes-recipe/go.bbclass
>> > index cc3564c36a..d32509aa6d 100644
>> > --- a/meta/classes-recipe/go.bbclass
>> > +++ b/meta/classes-recipe/go.bbclass
>> > @@ -48,8 +48,6 @@ GO_RPATH:class-native = "${@'-r
>> ${STAGING_LIBDIR_NATIVE}/go/pkg/${TARGET_GOTUPLE
>> >  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_LINKMODE ?= ""
>> > -GO_LINKMODE:class-nativesdk = "--linkmode=external"
>> > -GO_LINKMODE:class-native = "--linkmode=external"
>> >  GO_EXTRA_LDFLAGS ?= ""
>> >  GO_LINUXLOADER ?= "-I ${@get_linuxloader(d)}"
>> >  # Use system loader. If uninative is used, the uninative loader will
>> be patched automatically
>> > diff --git a/meta/recipes-devtools/go/go-runtime.inc
>> b/meta/recipes-devtools/go/go-runtime.inc
>> > index 3f1e795dd9..413cf6d33f 100644
>> > --- a/meta/recipes-devtools/go/go-runtime.inc
>> > +++ b/meta/recipes-devtools/go/go-runtime.inc
>> > @@ -15,7 +15,7 @@ export CGO_LDFLAGS = "${@ ' '.join(filter(lambda f:
>> not f.startswith('-fdebug-pr
>> >  export GOCACHE = "${B}/.cache"
>> >
>> >  GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${LDFLAGS}"
>> > -GO_SHLIB_LDFLAGS ?= '-ldflags="--linkmode=external -extldflags
>> '${GO_EXTLDFLAGS}'"'
>> > +GO_SHLIB_LDFLAGS ?= '-ldflags="-extldflags '${GO_EXTLDFLAGS}'"'
>> >
>> >  do_configure() {
>> >         :
>> > --
>> > 2.44.0
>> >
>> >
>> > -=-=-=-=-=-=-=-=-=-=-=-
>> > Links: You receive all messages sent to this group.
>> > View/Reply Online (#198558):
>> https://lists.openembedded.org/g/openembedded-core/message/198558
>> > Mute This Topic: https://lists.openembedded.org/mt/105623011/1997914
>> > Group Owner: openembedded-core+owner@lists.openembedded.org
>> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
>> raj.khem@gmail.com]
>> > -=-=-=-=-=-=-=-=-=-=-=-
>> >
>>
>
>
> --
> Best regards,
>
> José Quaresma
>
Jose Quaresma April 22, 2024, 11:47 a.m. UTC | #4
Khem Raj <raj.khem@gmail.com> escreveu (sexta, 19/04/2024 à(s) 21:43):

>
>
> On Fri, Apr 19, 2024 at 11:28 AM Jose Quaresma <quaresma.jose@gmail.com>
> wrote:
>
>>
>>
>> Khem Raj <raj.khem@gmail.com> escreveu (sexta, 19/04/2024 à(s) 19:17):
>>
>>> On Fri, Apr 19, 2024 at 10:53 AM Jose Quaresma via
>>> lists.openembedded.org
>>> <quaresma.jose=gmail.com@lists.openembedded.org> wrote:
>>> >
>>> > This will make possible to restore the default dynamic linking globally
>>> > which is what we had before the 1.20.X release.
>>> >
>>>
>>> Looks good overall. how do we support the static linking if user wanted ?
>>>
>>
>> To disable the dynamic linking, which is the default, we need to unset
>> the GO_DYNLINK
>> but this needs to be done with a machine arch override otherwise has no
>> effect.
>>
>> GO_DYNLINK:machine_arch = ""
>>
>> As an example the below patch enables the static linkiging for all the
>> architectures
>>
>> https://git.yoctoproject.org/poky/commit/meta/classes-recipe/goarch.bbclass?id=fd2e5e0b89d9c69acc9f813f07cd052630596ad5
>>
>>
>
> I wonder if it makes sense to have a variable for doing static linking now
> that dynamic linking is default anyway and remove it
>

To do this, we would have to remove all the logic based on the GO_DYNLINK and
add this new variable to the static linking.

Just to clarify, the default upstream golang linking is the static way but
in OE we prefer the dynamic linking maybe because
the binary size but I did some tests and surprisingly the result can even
be better in terms of binary size when we link statically
as can be see on this https://github.com/foundriesio/lmp-manifest/pull/425

This toolchain is also a bit particular in the sense that the go-runtime
conditions all other packages afterwards.
For example, by having a static go-runtime we are conditioning everything
to be linked in the same way,
the opposite is no longer true and we can have the go-runtime dynamically
but then have packages linked statically.
The reason is because the /usr/lib/go/pkg/linux_amd64_dynlink/libstd.so
only exists when the go-runtime is dynamically linked.

Jose


>
>
>> Jose
>>
>>
>>> > Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
>>> > ---
>>> >  meta/classes-recipe/go.bbclass          | 2 --
>>> >  meta/recipes-devtools/go/go-runtime.inc | 2 +-
>>> >  2 files changed, 1 insertion(+), 3 deletions(-)
>>> >
>>> > diff --git a/meta/classes-recipe/go.bbclass
>>> b/meta/classes-recipe/go.bbclass
>>> > index cc3564c36a..d32509aa6d 100644
>>> > --- a/meta/classes-recipe/go.bbclass
>>> > +++ b/meta/classes-recipe/go.bbclass
>>> > @@ -48,8 +48,6 @@ GO_RPATH:class-native = "${@'-r
>>> ${STAGING_LIBDIR_NATIVE}/go/pkg/${TARGET_GOTUPLE
>>> >  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_LINKMODE ?= ""
>>> > -GO_LINKMODE:class-nativesdk = "--linkmode=external"
>>> > -GO_LINKMODE:class-native = "--linkmode=external"
>>> >  GO_EXTRA_LDFLAGS ?= ""
>>> >  GO_LINUXLOADER ?= "-I ${@get_linuxloader(d)}"
>>> >  # Use system loader. If uninative is used, the uninative loader will
>>> be patched automatically
>>> > diff --git a/meta/recipes-devtools/go/go-runtime.inc
>>> b/meta/recipes-devtools/go/go-runtime.inc
>>> > index 3f1e795dd9..413cf6d33f 100644
>>> > --- a/meta/recipes-devtools/go/go-runtime.inc
>>> > +++ b/meta/recipes-devtools/go/go-runtime.inc
>>> > @@ -15,7 +15,7 @@ export CGO_LDFLAGS = "${@ ' '.join(filter(lambda f:
>>> not f.startswith('-fdebug-pr
>>> >  export GOCACHE = "${B}/.cache"
>>> >
>>> >  GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${LDFLAGS}"
>>> > -GO_SHLIB_LDFLAGS ?= '-ldflags="--linkmode=external -extldflags
>>> '${GO_EXTLDFLAGS}'"'
>>> > +GO_SHLIB_LDFLAGS ?= '-ldflags="-extldflags '${GO_EXTLDFLAGS}'"'
>>> >
>>> >  do_configure() {
>>> >         :
>>> > --
>>> > 2.44.0
>>> >
>>> >
>>> > -=-=-=-=-=-=-=-=-=-=-=-
>>> > Links: You receive all messages sent to this group.
>>> > View/Reply Online (#198558):
>>> https://lists.openembedded.org/g/openembedded-core/message/198558
>>> > Mute This Topic: https://lists.openembedded.org/mt/105623011/1997914
>>> > Group Owner: openembedded-core+owner@lists.openembedded.org
>>> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
>>> [raj.khem@gmail.com]
>>> > -=-=-=-=-=-=-=-=-=-=-=-
>>> >
>>>
>>
>>
>> --
>> Best regards,
>>
>> José Quaresma
>>
>
Khem Raj April 22, 2024, 3:38 p.m. UTC | #5
On Mon, Apr 22, 2024 at 1:47 PM Jose Quaresma <quaresma.jose@gmail.com>
wrote:

>
>
> Khem Raj <raj.khem@gmail.com> escreveu (sexta, 19/04/2024 à(s) 21:43):
>
>>
>>
>> On Fri, Apr 19, 2024 at 11:28 AM Jose Quaresma <quaresma.jose@gmail.com>
>> wrote:
>>
>>>
>>>
>>> Khem Raj <raj.khem@gmail.com> escreveu (sexta, 19/04/2024 à(s) 19:17):
>>>
>>>> On Fri, Apr 19, 2024 at 10:53 AM Jose Quaresma via
>>>> lists.openembedded.org
>>>> <quaresma.jose=gmail.com@lists.openembedded.org> wrote:
>>>> >
>>>> > This will make possible to restore the default dynamic linking
>>>> globally
>>>> > which is what we had before the 1.20.X release.
>>>> >
>>>>
>>>> Looks good overall. how do we support the static linking if user wanted
>>>> ?
>>>>
>>>
>>> To disable the dynamic linking, which is the default, we need to unset
>>> the GO_DYNLINK
>>> but this needs to be done with a machine arch override otherwise has no
>>> effect.
>>>
>>> GO_DYNLINK:machine_arch = ""
>>>
>>> As an example the below patch enables the static linkiging for all the
>>> architectures
>>>
>>> https://git.yoctoproject.org/poky/commit/meta/classes-recipe/goarch.bbclass?id=fd2e5e0b89d9c69acc9f813f07cd052630596ad5
>>>
>>>
>>
>> I wonder if it makes sense to have a variable for doing static linking
>> now that dynamic linking is default anyway and remove it
>>
>
> To do this, we would have to remove all the logic based on the GO_DYNLINK and
> add this new variable to the static linking.
>
> Just to clarify, the default upstream golang linking is the static way but
> in OE we prefer the dynamic linking maybe because
> the binary size but I did some tests and surprisingly the result can even
> be better in terms of binary size when we link statically
> as can be see on this https://github.com/foundriesio/lmp-manifest/pull/425
>

Yeah that’s ok for build time sizes but I wonder how does it do at runtime
since this will use go runtime as dynamic libs


> This toolchain is also a bit particular in the sense that the go-runtime
> conditions all other packages afterwards.
> For example, by having a static go-runtime we are conditioning everything
> to be linked in the same way,
> the opposite is no longer true and we can have the go-runtime dynamically
> but then have packages linked statically.
> The reason is because the /usr/lib/go/pkg/linux_amd64_dynlink/libstd.so
> only exists when the go-runtime is dynamically linked.
>
>
> Jose
>
>
>>
>>
>>> Jose
>>>
>>>
>>>> > Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
>>>> > ---
>>>> >  meta/classes-recipe/go.bbclass          | 2 --
>>>> >  meta/recipes-devtools/go/go-runtime.inc | 2 +-
>>>> >  2 files changed, 1 insertion(+), 3 deletions(-)
>>>> >
>>>> > diff --git a/meta/classes-recipe/go.bbclass
>>>> b/meta/classes-recipe/go.bbclass
>>>> > index cc3564c36a..d32509aa6d 100644
>>>> > --- a/meta/classes-recipe/go.bbclass
>>>> > +++ b/meta/classes-recipe/go.bbclass
>>>> > @@ -48,8 +48,6 @@ GO_RPATH:class-native = "${@'-r
>>>> ${STAGING_LIBDIR_NATIVE}/go/pkg/${TARGET_GOTUPLE
>>>> >  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_LINKMODE ?= ""
>>>> > -GO_LINKMODE:class-nativesdk = "--linkmode=external"
>>>> > -GO_LINKMODE:class-native = "--linkmode=external"
>>>> >  GO_EXTRA_LDFLAGS ?= ""
>>>> >  GO_LINUXLOADER ?= "-I ${@get_linuxloader(d)}"
>>>> >  # Use system loader. If uninative is used, the uninative loader will
>>>> be patched automatically
>>>> > diff --git a/meta/recipes-devtools/go/go-runtime.inc
>>>> b/meta/recipes-devtools/go/go-runtime.inc
>>>> > index 3f1e795dd9..413cf6d33f 100644
>>>> > --- a/meta/recipes-devtools/go/go-runtime.inc
>>>> > +++ b/meta/recipes-devtools/go/go-runtime.inc
>>>> > @@ -15,7 +15,7 @@ export CGO_LDFLAGS = "${@ ' '.join(filter(lambda f:
>>>> not f.startswith('-fdebug-pr
>>>> >  export GOCACHE = "${B}/.cache"
>>>> >
>>>> >  GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${LDFLAGS}"
>>>> > -GO_SHLIB_LDFLAGS ?= '-ldflags="--linkmode=external -extldflags
>>>> '${GO_EXTLDFLAGS}'"'
>>>> > +GO_SHLIB_LDFLAGS ?= '-ldflags="-extldflags '${GO_EXTLDFLAGS}'"'
>>>> >
>>>> >  do_configure() {
>>>> >         :
>>>> > --
>>>> > 2.44.0
>>>> >
>>>> >
>>>> > -=-=-=-=-=-=-=-=-=-=-=-
>>>> > Links: You receive all messages sent to this group.
>>>> > View/Reply Online (#198558):
>>>> https://lists.openembedded.org/g/openembedded-core/message/198558
>>>> > Mute This Topic: https://lists.openembedded.org/mt/105623011/1997914
>>>> > Group Owner: openembedded-core+owner@lists.openembedded.org
>>>> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
>>>> [raj.khem@gmail.com]
>>>> > -=-=-=-=-=-=-=-=-=-=-=-
>>>> >
>>>>
>>>
>>>
>>> --
>>> Best regards,
>>>
>>> José Quaresma
>>>
>>
>
> --
> Best regards,
>
> José Quaresma
>
diff mbox series

Patch

diff --git a/meta/classes-recipe/go.bbclass b/meta/classes-recipe/go.bbclass
index cc3564c36a..d32509aa6d 100644
--- a/meta/classes-recipe/go.bbclass
+++ b/meta/classes-recipe/go.bbclass
@@ -48,8 +48,6 @@  GO_RPATH:class-native = "${@'-r ${STAGING_LIBDIR_NATIVE}/go/pkg/${TARGET_GOTUPLE
 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_LINKMODE ?= ""
-GO_LINKMODE:class-nativesdk = "--linkmode=external"
-GO_LINKMODE:class-native = "--linkmode=external"
 GO_EXTRA_LDFLAGS ?= ""
 GO_LINUXLOADER ?= "-I ${@get_linuxloader(d)}"
 # Use system loader. If uninative is used, the uninative loader will be patched automatically
diff --git a/meta/recipes-devtools/go/go-runtime.inc b/meta/recipes-devtools/go/go-runtime.inc
index 3f1e795dd9..413cf6d33f 100644
--- a/meta/recipes-devtools/go/go-runtime.inc
+++ b/meta/recipes-devtools/go/go-runtime.inc
@@ -15,7 +15,7 @@  export CGO_LDFLAGS = "${@ ' '.join(filter(lambda f: not f.startswith('-fdebug-pr
 export GOCACHE = "${B}/.cache"
 
 GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${LDFLAGS}"
-GO_SHLIB_LDFLAGS ?= '-ldflags="--linkmode=external -extldflags '${GO_EXTLDFLAGS}'"'
+GO_SHLIB_LDFLAGS ?= '-ldflags="-extldflags '${GO_EXTLDFLAGS}'"'
 
 do_configure() {
 	: