[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