On 05/04/2022 15:30:12+0200, Alexandre Belloni wrote:
> Hello,
> 
> This build is carrying both this patch and
> 
> meta: rust: Bug fix for target definitions returning 'NoneType'
> 
> which is now present in master.

We came to the conclusion that this patch was the culprit and has been
reverted for now. The issue seems to be that this change doesn't change
the taskhash and something else is causing a rebuild.

> 
> Could you check:
> 
> https://autobuilder.yoctoproject.org/typhoon/#/builders/106/builds/3963/steps/11/logs/stdio
> 
> ERROR: rust-cross-cortexa8hf-neon-glibc-1.59.0-r0 do_rust_gen_targets: Error 
> executing a python function in exec_func_python() autogenerated:
> The stack trace of python calls that resulted in this exception/failure was:
> File: 'exec_func_python() autogenerated', lineno: 2, function: <module>
>      0001:
>  *** 0002:do_rust_gen_targets(d)
>      0003:
> File: 
> '/home/pokybuild/yocto-worker/beaglebone-alt/build/meta/recipes-devtools/rust/rust-cross.inc',
>  lineno: 19, function: do_rust_gen_targets
>      0015:            if arch == "arm" and target_is_armv7(d):
>      0016:                arch = 'armv7'
>      0017:            features = d.getVar('TARGET_LLVM_FEATURES') or ""
>      0018:            cpu = d.getVar('TARGET_LLVM_CPU')
>  *** 0019:        rust_gen_target(d, thing, wd, features, cpu, arch, abi)
>      0020:}
>      0021:
>      0022:# Otherwise we'll depend on what we provide
>      0023:INHIBIT_DEFAULT_RUST_DEPS = "1"
> File: 
> '/home/pokybuild/yocto-worker/beaglebone-alt/build/meta/recipes-devtools/rust/rust-common.inc',
>  lineno: 330, function: rust_gen_target
>      0326:    # build tspec
>      0327:    tspec = {}
>      0328:    tspec['llvm-target'] = d.getVarFlag('LLVM_TARGET', arch_abi)
>      0329:    tspec['data-layout'] = d.getVarFlag('DATA_LAYOUT', arch_abi)
>  *** 0330:    tspec['max-atomic-width'] = 
> int(d.getVarFlag('MAX_ATOMIC_WIDTH', arch_abi))
>      0331:    tspec['target-pointer-width'] = 
> d.getVarFlag('TARGET_POINTER_WIDTH', arch_abi)
>      0332:    tspec['target-c-int-width'] = 
> d.getVarFlag('TARGET_C_INT_WIDTH', arch_abi)
>      0333:    tspec['target-endian'] = d.getVarFlag('TARGET_ENDIAN', arch_abi)
>      0334:    tspec['arch'] = arch_to_rust_target_arch(rust_arch)
> Exception: TypeError: int() argument must be a string, a bytes-like object or 
> a number, not 'NoneType'
> 
> 
> I expect other similar failures in 
> https://autobuilder.yoctoproject.org/typhoon/#/builders/83/builds/3478
> 
> On 05/04/2022 15:28:19+0530, Sundeep KOKKONDA wrote:
> > relocate_sdk.py was developed for little-endian architures and when tries
> > to install SDK for big-endian machines errors like below will be shown.
> > Error: struct.error: unpack requires a string argument of length 32. SDK 
> > could
> > not be set up. Relocate script failed. Abort!
> > Error: IOError: [Errno 22] Invalid argument. SDK could not be set up. 
> > Relocate
> > script failed. Abort!
> > 
> > To fix this, script is modified to support big-endian architecture.
> > 
> > Signed-off-by: Sundeep KOKKONDA <sundeep.kokko...@gmail.com>
> > ---
> >  scripts/relocate_sdk.py | 25 ++++++++++++++++---------
> >  1 file changed, 16 insertions(+), 9 deletions(-)
> > 
> > diff --git a/scripts/relocate_sdk.py b/scripts/relocate_sdk.py
> > index 8c0fdb986a..4ed8bfc0d1 100755
> > --- a/scripts/relocate_sdk.py
> > +++ b/scripts/relocate_sdk.py
> > @@ -30,9 +30,16 @@ else:
> >  old_prefix = re.compile(b("##DEFAULT_INSTALL_DIR##"))
> >  
> >  def get_arch():
> > +    global endian_prefix
> >      f.seek(0)
> >      e_ident =f.read(16)
> > -    ei_mag0,ei_mag1_3,ei_class = struct.unpack("<B3sB11x", e_ident)
> > +    ei_mag0,ei_mag1_3,ei_class,ei_data,ei_version = 
> > struct.unpack("<B3sBBB9x", e_ident)
> > +
> > +    # ei_data = 1 for little-endian & 0 for big-endian
> > +    if ei_data == 1:
> > +        endian_prefix = '<'
> > +    else:
> > +        endian_prefix = '>'
> >  
> >      if (ei_mag0 != 0x7f and ei_mag1_3 != "ELF") or ei_class == 0:
> >          return 0
> > @@ -51,11 +58,11 @@ def parse_elf_header():
> >  
> >      if arch == 32:
> >          # 32bit
> > -        hdr_fmt = "<HHILLLIHHHHHH"
> > +        hdr_fmt = endian_prefix + "HHILLLIHHHHHH"
> >          hdr_size = 52
> >      else:
> >          # 64bit
> > -        hdr_fmt = "<HHIQQQIHHHHHH"
> > +        hdr_fmt = endian_prefix + "HHIQQQIHHHHHH"
> >          hdr_size = 64
> >  
> >      e_type, e_machine, e_version, e_entry, e_phoff, e_shoff, e_flags,\
> > @@ -64,9 +71,9 @@ def parse_elf_header():
> >  
> >  def change_interpreter(elf_file_name):
> >      if arch == 32:
> > -        ph_fmt = "<IIIIIIII"
> > +        ph_fmt = endian_prefix + "IIIIIIII"
> >      else:
> > -        ph_fmt = "<IIQQQQQQ"
> > +        ph_fmt = endian_prefix + "IIQQQQQQ"
> >  
> >      """ look for PT_INTERP section """
> >      for i in range(0,e_phnum):
> > @@ -105,17 +112,17 @@ def change_interpreter(elf_file_name):
> >  
> >  def change_dl_sysdirs(elf_file_name):
> >      if arch == 32:
> > -        sh_fmt = "<IIIIIIIIII"
> > +        sh_fmt = endian_prefix + "IIIIIIIIII"
> >      else:
> > -        sh_fmt = "<IIQQQQIIQQ"
> > +        sh_fmt = endian_prefix + "IIQQQQIIQQ"
> >  
> >      """ read section string table """
> >      f.seek(e_shoff + e_shstrndx * e_shentsize)
> >      sh_hdr = f.read(e_shentsize)
> >      if arch == 32:
> > -        sh_offset, sh_size = struct.unpack("<16xII16x", sh_hdr)
> > +        sh_offset, sh_size = struct.unpack(endian_prefix + "16xII16x", 
> > sh_hdr)
> >      else:
> > -        sh_offset, sh_size = struct.unpack("<24xQQ24x", sh_hdr)
> > +        sh_offset, sh_size = struct.unpack(endian_prefix + "24xQQ24x", 
> > sh_hdr)
> >  
> >      f.seek(sh_offset)
> >      sh_strtab = f.read(sh_size)
> > -- 
> > 2.25.1
> > 
> 
> > 
> > 
> > 
> 
> 
> -- 
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#164051): 
https://lists.openembedded.org/g/openembedded-core/message/164051
Mute This Topic: https://lists.openembedded.org/mt/90261992/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to