Re: gobject-introspection build failure



On Thu, 2017-03-30 at 11:07 +0100, colin helliwell ln-systems com
wrote:
I was able to build NM 1.4.2 with G-I enabled, and have now moved up
to
1.8/master.
But hitting a build failure (cross-compiling, in Yocto):

make[2]: Entering directory

`/home/colin/100051-karo/fsl-community-bsp/build/tmp/work/cortexa9hf-
neon-po
ky-linux-gnueabi/networkmanager/1.8-r0/build'
glib-mkenums --fhead "/* Generated by glib-mkenums. Do not edit

*/\n\n#ifndef __NM_VPN_ENUM_TYPES_H__\n#define
__NM_VPN_ENUM_TYPES_H__\n\n"
--identifier-prefix NM  --fhead "#include
<glib-object.h>\n\nG_BEGIN_DECLS\n" --vhead "GType
@enum_name@_get_type
(void) G_GNUC_CONST;\n#define @ENUMPREFIX@_TYPE_@ENUMSHORT@
(@enum_name@_get_type ())\n" --ftail "G_END_DECLS\n\n#endif /*
__NM_VPN_ENUM_TYPES_H__ */" ../git/libnm-glib/nm-vpn-plugin.h
../git/libnm-glib/nm-vpn-plugin-ui-interface.h
../git/libnm-glib/nm-vpn-plugin-utils.h > libnm-glib/nm-vpn-enum-
types.h.tmp
&& (cmp -s libnm-glib/nm-vpn-enum-types.h.tmp libnm-glib/nm-vpn-enum-
types.h
cp libnm-glib/nm-vpn-enum-types.h.tmp libnm-glib/nm-vpn-enum-
types.h) &&

rm -f libnm-glib/nm-vpn-enum-types.h.tmp && echo timestamp >
libnm-glib/nm-vpn-enum-types.h.stamp
glib-mkenums --fhead "/* Generated by glib-mkenums. Do not edit

*/\n\n#include \"config.h\"\n\n#include \"nm-vpn-enum-types.h\"\n"
--identifier-prefix NM  --fhead "\n#include \"nm-vpn-plugin.h\"
\n#include
\"nm-vpn-plugin-ui-interface.h\" \n#include \"nm-vpn-plugin-
utils.h\"\n\n"
--vhead "GType\n@enum_name@_get_type (void)\n{\n  static volatile
gsize
g_define_type_id__volatile = 0;\n\n  if (g_once_init_enter
(&g_define_type_id__volatile))\n    {\n      static const G@Type@Valu
e
values[] = {\n" --vprod "        { @VALUENAME@, \"@VALUENAME@\",
\"@valuenick@\" },\n" --vtail "        { 0, NULL, NULL }\n      };\n
GType g_define_type_id =\n        g_@type@_register_static
(g_intern_static_string (\"@EnumName@\"),
values);\n      g_once_init_leave
(&g_define_type_id__volatile, g_define_type_id);\n    }\n\n  return
g_define_type_id__volatile;\n}\n" ../git/libnm-glib/nm-vpn-plugin.h
../git/libnm-glib/nm-vpn-plugin-ui-interface.h
../git/libnm-glib/nm-vpn-plugin-utils.h > libnm-glib/nm-vpn-enum-
types.c.tmp
&& (cmp -s libnm-glib/nm-vpn-enum-types.c.tmp libnm-glib/nm-vpn-enum-
types.c
cp libnm-glib/nm-vpn-enum-types.c.tmp libnm-glib/nm-vpn-enum-
types.c) &&

rm -f libnm-glib/nm-vpn-enum-types.c.tmp && echo timestamp >
libnm-glib/nm-vpn-enum-types.c.stamp
\
      export

GI_TYPELIB_PATH=/home/colin/100051-karo/fsl-community-
bsp/build/tmp/work/cor
texa9hf-neon-poky-linux-gnueabi/networkmanager/1.8-
r0/build/libnm${GI_TYPELI
B_PATH:+:$GI_TYPELIB_PATH}; \
      export

LD_LIBRARY_PATH=/home/colin/100051-karo/fsl-community-
bsp/build/tmp/work/cor
texa9hf-neon-poky-linux-gnueabi/networkmanager/1.8-
r0/build/libnm/.libs${LD_
LIBRARY_PATH:+:$LD_LIBRARY_PATH}; \
      [ -n "" ] && export  ; if [ -n

"/home/colin/100051-karo/fsl-community-bsp/build/tmp/work/cortexa9hf-
neon-po
ky-linux-gnueabi/networkmanager/1.8-r0/build/libnm/.libs/libnm.so" ]
&& echo
-fdata-sections -ffunction-sections -Wl,--gc-sections  -O2 -pipe -g
-feliminate-unused-debug-types
-fdebug-prefix-map=/home/colin/100051-karo/fsl-community-
bsp/build/tmp/work/
cortexa9hf-neon-poky-linux-gnueabi/networkmanager/1.8-
r0=/usr/src/debug/netw
orkmanager/1.8-r0
-fdebug-prefix-map=/home/colin/100051-karo/fsl-community-
bsp/build/tmp/sysro
ots/x86_64-linux=
-fdebug-prefix-map=/home/colin/100051-karo/fsl-community-
bsp/build/tmp/sysro
ots/wg2xx-tx6s=   -fno-strict-aliasing | grep -e -fsanitize=address ;
then
export LD_PRELOAD="${LD_PRELOAD}:$(ldd
/home/colin/100051-karo/fsl-community-bsp/build/tmp/work/cortexa9hf-
neon-pok
y-linux-gnueabi/networkmanager/1.8-r0/build/libnm/.libs/libnm.so |
grep
libasan\.so\.. -o | head -n 1)"; fi; \
      "/usr/bin/python" \
      ../git/libnm/generate-setting-docs.py \
              --gir ./libnm/NM-1.0.gir \
              --output libnm/nm-property-docs.xml

** (process:13095): WARNING **: Failed to load shared library
'libnm.so.0'

referenced by the typelib: libnm.so.0: wrong ELF class: ELFCLASS32
../git/libnm/generate-setting-docs.py:217: Warning: cannot retrieve
class

for invalid (unclassed) type 'void'
  setting = new_func()
Traceback (most recent call last):
  File "../git/libnm/generate-setting-docs.py", line 217, in
<module>
    setting = new_func()
TypeError: could not get a reference to type class
make[2]: *** [libnm/nm-property-docs.xml] Error 1
make[2]: *** Deleting file `libnm/nm-property-docs.xml'
make[2]: Leaving directory

`/home/colin/100051-karo/fsl-community-bsp/build/tmp/work/cortexa9hf-
neon-po
ky-linux-gnueabi/networkmanager/1.8-r0/build'


I imagine something is objecting to the cross-compiled library, but
I've not
been able to figure out who is actually throwing the error. (A python
module?)

The python script generate-setting-docs.py uses pygobject to eventually
load libnm.so.

Seems like the wrong libnm.so is loaded.

Maybe it helps to set "LD_DEBUG=all" to see from where the shared
library comes?


The issue may ultimately be better discussed on the yocto mailing
list, but
I first wanted to pin down exactly where in NM it arises. 
Yocto does appear to create/configure 'wrappers' for g-ir-scanner-*

I also notice that 'ldd' is being used above (to check for address
sanitizer
being enabled?) - but this isn't going to work for cross-compiling;
needs
some form of modification e.g. '[cross-tools]-readelf -a'?


patches welcome :)


Thomas

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]