diff mbox series

[RFC,3/3] goarch: disable dynamic linking globally

Message ID 20240227100709.1154-3-jose.quaresma@foundries.io
State Accepted, archived
Commit 827c60b79e7fcafd14e68870f6b69dcc48ac9c39
Headers show
Series [RFC,1/3] go: rework patch to avoid identation | expand

Commit Message

Jose Quaresma Feb. 27, 2024, 10:07 a.m. UTC
With go-1.21 dynamic linking cause a runtime panic:

| root@qemux86-64:~# go-helloworld
| panic: runtime error: index out of range [0] with length 0
|
| goroutine 1 [running]:
| flag.init()
|         /usr/lib/go/src/flag/flag.go:1199 +0xf9

In my opinion, this would be a good trade-off so that we can update and
leave the version 1.20 for the next LTS 5.0 since we are already quite
behind on the version available upstream which already has the 1.22 available.

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
 meta/classes-recipe/goarch.bbclass | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

Comments

ChenQi Feb. 28, 2024, 2:38 a.m. UTC | #1
Is this 1.21 upgrade going to be merged in LTS 5.0?
The reason I'm asking is that I'm going to upgrade some recipes in 
meta-virt and I'd like to check what would be the go version in the next 
release.

P.S.
Is this runtime error OE specific? Is it caused by some OE specific patch?

Regards,
Qi

On 2/27/24 18:07, Jose Quaresma wrote:
> With go-1.21 dynamic linking cause a runtime panic:
>
> | root@qemux86-64:~# go-helloworld
> | panic: runtime error: index out of range [0] with length 0
> |
> | goroutine 1 [running]:
> | flag.init()
> |         /usr/lib/go/src/flag/flag.go:1199 +0xf9
>
> In my opinion, this would be a good trade-off so that we can update and
> leave the version 1.20 for the next LTS 5.0 since we are already quite
> behind on the version available upstream which already has the 1.22 available.
>
> Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
>   meta/classes-recipe/goarch.bbclass | 14 +++++++-------
>   1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/meta/classes-recipe/goarch.bbclass b/meta/classes-recipe/goarch.bbclass
> index 1ebe03864f..6899ec28e4 100644
> --- a/meta/classes-recipe/goarch.bbclass
> +++ b/meta/classes-recipe/goarch.bbclass
> @@ -38,13 +38,13 @@ BASE_GOARM:armv5 = '5'
>   # Go supports dynamic linking on a limited set of architectures.
>   # See the supportsDynlink function in go/src/cmd/compile/internal/gc/main.go
>   GO_DYNLINK = ""
> -GO_DYNLINK:arm ?= "1"
> -GO_DYNLINK:aarch64 ?= "1"
> -GO_DYNLINK:x86 ?= "1"
> -GO_DYNLINK:x86-64 ?= "1"
> -GO_DYNLINK:powerpc64 ?= "1"
> -GO_DYNLINK:powerpc64le ?= "1"
> -GO_DYNLINK:class-native ?= ""
> +GO_DYNLINK:arm = ""
> +GO_DYNLINK:aarch64 = ""
> +GO_DYNLINK:x86 = ""
> +GO_DYNLINK:x86-64 = ""
> +GO_DYNLINK:powerpc64 = ""
> +GO_DYNLINK:powerpc64le = ""
> +GO_DYNLINK:class-native = ""
>   GO_DYNLINK:class-nativesdk = ""
>   
>   # define here because everybody inherits this class
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#196251): https://lists.openembedded.org/g/openembedded-core/message/196251
> Mute This Topic: https://lists.openembedded.org/mt/104600087/7304865
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [Qi.Chen@eng.windriver.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Jose Quaresma Feb. 28, 2024, 12:14 p.m. UTC | #2
ChenQi <Qi.Chen@windriver.com> escreveu (quarta, 28/02/2024 à(s) 02:38):

> Is this 1.21 upgrade going to be merged in LTS 5.0?
> The reason I'm asking is that I'm going to upgrade some recipes in
> meta-virt and I'd like to check what would be the go version in the next
> release.
>

I am still testing in my distro with the overwall virtualization stack we
use
and everything seems fine so far.
If no issues come in, I intend to submit the final version today or
tomorrow at the latest.


> P.S.
> Is this runtime error OE specific? Is it caused by some OE specific patch?
>

I don't know the reason for the runtime error yet.
When I start I suspected it could be due to separate-host-and-target-builds
patch
https://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch?id=44f81b6239f0f08877ccd6507c2a81f3650f193b

After several unsuccessful attempts, I was going to use gdb to debug the
target.
I decided to disable the dynamic linking because it would make it easier
for me with
the symbols and I would have just one binary.
After that, when I was going to run gdb on the target everything started
working without any issue.

Jose


> Regards,
> Qi
>
> On 2/27/24 18:07, Jose Quaresma wrote:
> > With go-1.21 dynamic linking cause a runtime panic:
> >
> > | root@qemux86-64:~# go-helloworld
> > | panic: runtime error: index out of range [0] with length 0
> > |
> > | goroutine 1 [running]:
> > | flag.init()
> > |         /usr/lib/go/src/flag/flag.go:1199 +0xf9
> >
> > In my opinion, this would be a good trade-off so that we can update and
> > leave the version 1.20 for the next LTS 5.0 since we are already quite
> > behind on the version available upstream which already has the 1.22
> available.
> >
> > Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> >   meta/classes-recipe/goarch.bbclass | 14 +++++++-------
> >   1 file changed, 7 insertions(+), 7 deletions(-)
> >
> > diff --git a/meta/classes-recipe/goarch.bbclass
> b/meta/classes-recipe/goarch.bbclass
> > index 1ebe03864f..6899ec28e4 100644
> > --- a/meta/classes-recipe/goarch.bbclass
> > +++ b/meta/classes-recipe/goarch.bbclass
> > @@ -38,13 +38,13 @@ BASE_GOARM:armv5 = '5'
> >   # Go supports dynamic linking on a limited set of architectures.
> >   # See the supportsDynlink function in
> go/src/cmd/compile/internal/gc/main.go
> >   GO_DYNLINK = ""
> > -GO_DYNLINK:arm ?= "1"
> > -GO_DYNLINK:aarch64 ?= "1"
> > -GO_DYNLINK:x86 ?= "1"
> > -GO_DYNLINK:x86-64 ?= "1"
> > -GO_DYNLINK:powerpc64 ?= "1"
> > -GO_DYNLINK:powerpc64le ?= "1"
> > -GO_DYNLINK:class-native ?= ""
> > +GO_DYNLINK:arm = ""
> > +GO_DYNLINK:aarch64 = ""
> > +GO_DYNLINK:x86 = ""
> > +GO_DYNLINK:x86-64 = ""
> > +GO_DYNLINK:powerpc64 = ""
> > +GO_DYNLINK:powerpc64le = ""
> > +GO_DYNLINK:class-native = ""
> >   GO_DYNLINK:class-nativesdk = ""
> >
> >   # define here because everybody inherits this class
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#196251):
> https://lists.openembedded.org/g/openembedded-core/message/196251
> > Mute This Topic: https://lists.openembedded.org/mt/104600087/7304865
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> Qi.Chen@eng.windriver.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
>
diff mbox series

Patch

diff --git a/meta/classes-recipe/goarch.bbclass b/meta/classes-recipe/goarch.bbclass
index 1ebe03864f..6899ec28e4 100644
--- a/meta/classes-recipe/goarch.bbclass
+++ b/meta/classes-recipe/goarch.bbclass
@@ -38,13 +38,13 @@  BASE_GOARM:armv5 = '5'
 # Go supports dynamic linking on a limited set of architectures.
 # See the supportsDynlink function in go/src/cmd/compile/internal/gc/main.go
 GO_DYNLINK = ""
-GO_DYNLINK:arm ?= "1"
-GO_DYNLINK:aarch64 ?= "1"
-GO_DYNLINK:x86 ?= "1"
-GO_DYNLINK:x86-64 ?= "1"
-GO_DYNLINK:powerpc64 ?= "1"
-GO_DYNLINK:powerpc64le ?= "1"
-GO_DYNLINK:class-native ?= ""
+GO_DYNLINK:arm = ""
+GO_DYNLINK:aarch64 = ""
+GO_DYNLINK:x86 = ""
+GO_DYNLINK:x86-64 = ""
+GO_DYNLINK:powerpc64 = ""
+GO_DYNLINK:powerpc64le = ""
+GO_DYNLINK:class-native = ""
 GO_DYNLINK:class-nativesdk = ""
 
 # define here because everybody inherits this class