Problem building uclibc toolchain with yocto
I'm trying to build a cross compiler toolchain for PowerPC (mpc8544).
I'm able to successfully bitbake the meta-toolchain target for glibc, when I check inside the sysroot directory of the sdk, I find the following directories:
ppce500v2-poky-linux-gnuspe x86_64-pokysdk-linux
The directory ppce500v2-poky-linux-gnuspe, contains root filesystem for target (ppc500v2). The directory x86_64-pokysdk-linux, contains the cross development tools, for my host, particularly gcc (powerpc-poky-linux-gnuspe-gcc)
If I execute:
powerpc-poky-linux-gnuspe-gcc -v
the target is set to: powerpc-poky-linux
which I interpret to mean a powerpc based target with glibc&linux
I want to build a uclibc toolchain:
to this I understand you need to add the following line to my local.conf:
TCLIBC = "uclibc"
After doing so, I am again able successfully build the target meta-toolchain. Again if I look inside the sysroot directory two directories have been created:
ppce500v2-poky-linux-uclibcspe x86_64-pokysdk-linux
ppce500v2-poky-linux-uclibcspe, this time the root filesystem is based on uclibc and this is refelected in the name. x86_64-pokysdk-linux, again a directory to hold the host tools has been created. The gcc tools are located in under directory ./usr/bin/powerpc-poky-linux-gnuspe as before,
If I execute:
powerpc-poky-linux-gnuspe-gcc -v
the target is set to: powerpc-poky-linux
However given that I've selected uclibc, I was expecting the gcc tools to be located under a directory: ./usr/bin/powerpc-poky-linux-uclibcspe to reflect the fact that the tools are targeting uclibc.
If I look inside the environment script created by the meta-toolchain target it shares this expectation as is reflected by the extract for CC envvar:
export CC="powerpc-poky-linux-uclibcspe-gcc -m32 -mcpu=8548 -mabi=spe -mspe -mfloat-gprs=double --sysroot=$SDKTARGETSYSROOT"
If I search the files created by the target meta-toolchain, it has actually created an apprpriate gcc located deeply nested under the work diretcory, a gcc toolset of the correct form has been created, namely:
powerpc-poky-linux-uclibcspe-g++
Just to confirm when I run with the -v option it shows its target as:
powerpc-poky-linux-uclibcspe
Can someone clarify what's happening here?!?
Are my expectations correct?
If so, why is the correct toolchain created, but not put in the correct place by the populate-sdk target?
Thanks in advance for any help you can provide!
|