> -----Original Message----- > From: [email protected] <openembedded- > [email protected]> On Behalf Of Mark Hatle > Sent: Thursday, November 27, 2025 2:02 > To: Steve Sakoman <[email protected]>; openembedded- > [email protected] > Subject: Re: [OE-core][scarthgap 14/21] lib/oe/go: document map_arch, and > raise > an error on unknown architecture > > I have a possible workaround, for microblaze, for this. > > Basically it's to force include a class that does: > > python __anonymous() { > if bb.data.inherits_class('goarch', d): > if d.getVar('TARGET_ARCH') in ['microblaze', 'microblazeel', > 'microblazeeb']: > raise bb.parse.SkipRecipe("Go does not support microblaze.") > } > > On 11/26/25 6:40 PM, Mark Hatle wrote: > > This patch breaks Microblaze for me. > > > > Microblazeel is not in the list of course, but go doesn't support this > > architecture. > > > > During parsing of various things, instead of the component not being > > available I > > now get many many lines similar to: > > > > WARNING: <recipe>: Exception during build_dependencies for GOARCH > > WARNING: <recipe>: Error during finalize of <multiconfig> > > ERROR: ExpansionError during parsing <recipe> > > bb.data_smart.ExceptionError: Failure expanding TARGET_GOARCH, > expression was > > ${go_map_arch(d.getVar('TARGET_ARCH'), d)} which triggered exception > KeyError: > > 'Cannot map architecture microblazeel' > > The variable dependency chain for the failure is: TARGET_GOARCH -> GOARCH > > > > (at which point parsing stops) > > > > I see no obvious way here to add an architecture that OE/Poky does not > support, > > which now makes this a hard error for any architecture not supported by the > > core > > of OE and/or go. (in the case of microblaze, rust and go are likely to > > never be > > supported. So there has to be a way for me to avoid the parse error in > > these > > cases.)
OK, that's unfortunate. However this is something that needed a review when pushed to master branch half a year ago. This backport then just means you see it half a year ahead of migrating to new LTS release. Possibly submit a revert or other adaptation to master branch and we can backport it then to scarthgap . Peter > > > > On 11/22/25 4:14 PM, Steve Sakoman wrote: > >> From: Ross Burton <[email protected]> > >> > >> Add a comment explaining what this function does and where the values > >> come from. > >> > >> If the architecture isn't know, instead of returning an empty string > >> which could fail mysteriously, raise a KeyError so it fails quickly. > >> > >> (From OE-Core rev: 025414c16319b068df1cd757ad9a3c987a6b871d) > >> > >> Signed-off-by: Ross Burton <[email protected]> > >> Signed-off-by: Richard Purdie <[email protected]> > >> Signed-off-by: Peter Marko <[email protected]> > >> Signed-off-by: Steve Sakoman <[email protected]> > >> --- > >> meta/lib/oe/go.py | 6 +++++- > >> 1 file changed, 5 insertions(+), 1 deletion(-) > >> > >> diff --git a/meta/lib/oe/go.py b/meta/lib/oe/go.py > >> index dfd957d157..4559dc63b2 100644 > >> --- a/meta/lib/oe/go.py > >> +++ b/meta/lib/oe/go.py > >> @@ -7,6 +7,10 @@ > >> import re > >> > >> def map_arch(a): > >> + """ > >> + Map our architecture names to Go's GOARCH names. > >> + See > >> https://github.com/golang/go/blob/master/src/internal/syslist/syslist.go > for the complete list. > >> + """ > >> if re.match('i.86', a): > >> return '386' > >> elif a == 'x86_64': > >> @@ -31,4 +35,4 @@ def map_arch(a): > >> return 'riscv64' > >> elif a == 'loongarch64': > >> return 'loong64' > >> - return '' > >> + raise KeyError(f"Cannot map architecture {a}") > >> > >> > >> > >> > >> > >> > >> > >> > >>
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#226827): https://lists.openembedded.org/g/openembedded-core/message/226827 Mute This Topic: https://lists.openembedded.org/mt/116430143/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
