[OE-core] [PATCH] util-linux: 2.28.1 -> 2.29
Trevor Woerner
twoerner at gmail.com
Tue Dec 20 14:55:55 UTC 2016
On Tue 2016-12-20 @ 02:41:21 PM, Burton, Ross wrote:
> On 19 December 2016 at 22:12, Khem Raj <raj.khem at gmail.com> wrote:
>
> > checking ncursesw... (v6) yes
> >
>
> I'm pretty sure this indicates that it found a ncursesw-config binary,
> which we disable. So it must be running the host tool. I'm seeing if we
> can force it to use the sysroot easily now.
Hi Ross,
Thanks for continuing to look into this! :-)
I spent the last while trying some things to see if I could fix this issue. I
tried adding --disable-widechar to OECONF since that was one of the new things
added between 2.28.1 and 2.29 (no change).
Looking through the config.log I found a couple things that weren't right:
$ cat -n config.log | grep "\/usr\/include" | grep -v x86_64
3326 In file included from /usr/include/linux/gsmmux.h:4:0,
3328 /usr/include/linux/if.h:211:19: error: field 'ifru_addr' has incomplete type
3331 /usr/include/linux/if.h:212:19: error: field 'ifru_dstaddr' has incomplete type
3334 /usr/include/linux/if.h:213:19: error: field 'ifru_broadaddr' has incomplete type
3337 /usr/include/linux/if.h:214:19: error: field 'ifru_netmask' has incomplete type
3340 /usr/include/linux/if.h:215:20: error: field 'ifru_hwaddr' has incomplete type
8662 NCURSES_CFLAGS='-I/usr/include/ncurses6/ncursesw -I/usr/include/ncurses6'
The biggest one is probably the last one (line 8662) where something is
setting NCURSES_CFLAGS explicitly to /usr/include. I'm looking for that one
now.
The first issue I see in my config.log is confusing to me too. Looking at the
full log around that area gives:
3325 configure:17946: gcc -std=gnu99 -c -isystem/z/layerindex-master/raspi3/tmp-glibc/sysroots/x86_64-linux/usr/include -O2 -pipe -isystem/z/layerindex-master/raspi3/tmp-glibc/sysroots/x86_64-linux/usr/include conftest.c >&5
3326 In file included from /usr/include/linux/gsmmux.h:4:0,
3327 from conftest.c:82:
3328 /usr/include/linux/if.h:211:19: error: field 'ifru_addr' has incomplete type
3329 struct sockaddr ifru_addr;
3330 ^
3331 /usr/include/linux/if.h:212:19: error: field 'ifru_dstaddr' has incomplete type
3332 struct sockaddr ifru_dstaddr;
3333 ^
3334 /usr/include/linux/if.h:213:19: error: field 'ifru_broadaddr' has incomplete type
3335 struct sockaddr ifru_broadaddr;
3336 ^
3337 /usr/include/linux/if.h:214:19: error: field 'ifru_netmask' has incomplete type
3338 struct sockaddr ifru_netmask;
3339 ^
3340 /usr/include/linux/if.h:215:20: error: field 'ifru_hwaddr' has incomplete type
3341 struct sockaddr ifru_hwaddr;
The compile line is clearly telling gcc to use -isystem/z/layerindex.... In
other words gcc is being directed to look in the correct locations. But in the
error messages it's saying that it looked in "/usr/include/linux/if.h". Does
this mean that -isystem isn't doing what we hope it should be doing? Or is gcc
stripping out the -isystem prefix when reporting this error?
More information about the Openembedded-core
mailing list