[yocto] Inconsistency in the SDK
Patrick Turley
PatrickTurley at gamestop.com
Wed Jan 23 08:05:43 PST 2013
Here's our machine in local.conf:
MACHINE = "dm8148-mpu"
Naturally, then, we see a directly like this under tmp/work:
dm8148_mpu-poky-linux-gnueabi
Also, under tmp/sysroots, we see these two:
dm8148-mpu
dm8148-mpu-tcbootstrap
Finally, when I install the SDK, I see the following under sysroots:
dm8148_mpu-poky-linux-gnueabi
x86_64-pokysdk-linux
However, if I ask the cross-compiler the path to its default sysroot, I see this:
$ cd /opt/poky/1.3/sysroots/x86_64-pokysdk-linux
$ cd usr/bin/armv7a-vfp-neon-poky-linux-gnueabi
$ ./arm-poky-linux-gnueabi-gcc -print-sysroot
/opt/poky/1.3/sysroots/armv7a-vfp-neon-poky-linux-gnueabi
There is no such directory. That is, the default sysroot for the SDK doesn't exist.
Now, if I go back and look in tmp/work, I realize that I see *both* of these:
dm8148_mpu-poky-linux-gnueabi
armv7a-vfp-neon-poky-linux-gnueabi
There are a number of work directories under both.
It seems to me there are these possibilities:
1) There are at least two different (and disagreeing) methods to compute the architecture "tuple," and different pieces of the system are choosing different methods. These different methods usually agree, but sometimes they don't. Thus, when they *do* agree, it's "luck."
2) These strings *should* agree, but something is missing from our machine definition that causes them to disagree (we weren't using our own machine definition until recently). In that case, the machine definition code should change such that it's not *possible* for these strings to disagree. Also, I'd like to know what we missed, so we can fix it.
3) These strings, though similar, actually *mean* different things and are *both* correct. The only problem is that the build process for the tool chain chooses the wrong one when defining the default sysroot path.
In any case, I can fix the immediate problem with a symbolic link, but that's not a long-term solution.
More information about the yocto
mailing list