Wind River Support Network

HomeDefectsLIN1021-5359
Fixed

LIN1021-5359 : Naming issue during ARM cross compile of gobject-introspection

Created: Mar 2, 2023    Updated: May 2, 2023
Resolved Date: Apr 8, 2023
Found In Version: 10.21.20.12
Fix Version: 10.21.20.17
Severity: Standard
Applicable for: Wind River Linux LTS 21
Component/s: Build & Config, Userspace

Description

The customer is getting the following error building an application in LTS21 for qemuarm64 bsp.

 CC       libnikita_la-nikita-threatlevelmap.lo  CCLD     libnikita.laar: `u' modifier ignored since `D' is the default (see `U')  GISCAN   Nikita-3.0.girTraceback (most recent call last):  File "/usr/bin/g-ir-scanner", line 98, in <module>    from giscanner.scannermain import scanner_main  File "/usr/lib64/gobject-introspection/giscanner/scannermain.py", line 35, in <module>    from giscanner.ast import Include, Namespace  File "/usr/lib64/gobject-introspection/giscanner/ast.py", line 29, in <module>    from .sourcescanner import CTYPE_TYPEDEF, CSYMBOL_TYPE_TYPEDEF  File "/usr/lib64/gobject-introspection/giscanner/sourcescanner.py", line 35, in <module>    from giscanner._giscanner import SourceScanner as CSourceScannerModuleNotFoundError: No module named 'giscanner._giscanner'make5]: *** [/usr/share/gobject-introspection-1.0/Makefile.introspection:156: Nikita-3.0.gir] Error 1make[4]: *** [Makefile:469: all] Error 2make[3]: *** [Makefile:494: all-recursive] Error 1make[2]: *** [Makefile:51: /home/ambtripa/ims_7_4_main/_build/ftd/work/libnikita/libnikita-4.0.0.697/.libs/libnikita.so.0.0.0] Error 2   **** Finished at: Tue Feb 14 14:55:20 UTC 2023  
The customer found that a possible workaround is to create a symbolic-link of {*}_giscanner.cpython-39-x86_64-{*}[*linux-gnu.so*  (http://linux-gnu.so/)named {*}_giscanner.{*}{*}cpython-39-aarch64-linux-gnu.so (https://cpython-39-aarch64-linux-gnu.so/){*}

The customer is just changing the x86-64 for aarch64, so it looks like there it is a naming issue during the ARM cross compile of gobject-introspection package as the binary is correctly compiled as ARM but named as x86_64, *_giscanner.cpython* is part of the package gobject-introspection.

Using the following commands we can find that the package *_giscanner.cpython* is built for ARM but the name is with x86_64

rpm2cpio gobject-introspection-1.66.1-r0.cortexa57.rpm | cpio -i

file usr/lib64/gobject-introspection/giscanner/_giscanner.cpython-39-x86_64-linux-gnu.so  
because gives the following output.

usr/lib64/gobject-introspection/giscanner/_giscanner.cpython-39-x86_64-linux-gnu.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=8023ed2296fbe070976127316fb87ebcb41486fb, stripped 
 

Workaround

create a symbolic-link of {*}_giscanner.cpython-39-x86_64-{*}*linux-gnu.so*  (http://linux-gnu.so/)named {*}_giscanner.{*}{*}cpython-39-aarch64-linux-gnu.so (https://cpython-39-aarch64-linux-gnu.so/){*}
Live chat
Online