Hi,
I have been using meta-toolchain-qte in the past to cross compile a Qt app, and
the Linux kernel.
Recently I replaced my old SDK image with a fresh one, and found that I could
not link vmlinux anymore.
When building the kernel, I use the following ('rica' is the distribution name):
export
PATH=$PATH:/usr/local/rica-eglibc-i686-armv5te/sysroots/i686-ricasdk-linux/usr/bin/armv5te-rica-linux-gnueabi/
make ARCH=arm CROSS_COMPILE=arm-rica-linux-gnueabi- zImage
The new error message is:
Kernel: arch/arm/boot/Image is ready
AS arch/arm/boot/compressed/head.o
GZIP arch/arm/boot/compressed/piggy.gz
CC arch/arm/boot/compressed/misc.o
AS arch/arm/boot/compressed/piggy.o
LD arch/arm/boot/compressed/vmlinux
arm-rica-linux-gnueabi-ld: cannot find libgcc.a: No such file or directory
Comparing the build with the old sdk to the build with the new one, I find that
the command line for linking has changed from:
arm-rica-linux-gnueabi-ld -EL --defsym zreladdr=0x80008000 --defsym
initrd_phys=0x80800000 --defsym params_phys=0x80000100 -p --no-undefined -X
/usr/local/rica-eglibc-i686-armv5te/sysroots/arm-rica-linux-gnueabi/usr/lib/arm-rica-linux-gnueabi/4.5.4/libgcc.a
-T arch/arm/boot/compressed/vmlinux.lds arch/arm/boot/compressed/head.o
arch/arm/boot/compressed/piggy.o arch/arm/boot/compressed/misc.o -o
arch/arm/boot/compressed/vmlinux
to:
arm-rica-linux-gnueabi-ld -EL --defsym zreladdr=0x80008000 --defsym
initrd_phys=0x80800000 --defsym params_phys=0x80000100 -p --no-undefined -X
libgcc.a -T arch/arm/boot/compressed/vmlinux.lds
arch/arm/boot/compressed/head.o arch/arm/boot/compressed/piggy.o
arch/arm/boot/compressed/misc.o -o arch/arm/boot/compressed/vmlinux
So libgcc.a has lost its path qualification.
I also straced the two linker commands, and found that they differed in one
sequence.
Old:
lstat64("/usr/local/rica-eglibc-i686-armv5te", {st_mode=S_IFDIR|0755,
st_size=4096, ...}) = 0
lstat64("/usr/local/rica-eglibc-i686-armv5te/sysroots", {st_mode=S_IFDIR|0755,
st_size=4096, ...}) = 0
lstat64("/usr/local/rica-eglibc-i686-armv5te/sysroots/arm-rica-linux-gnueabi",
{st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
New:
lstat64("/usr/local/rica-eglibc-i686-armv5te", {st_mode=S_IFDIR|0755,
st_size=4096, ...}) = 0
lstat64("/usr/local/rica-eglibc-i686-armv5te/sysroots", {st_mode=S_IFDIR|0755,
st_size=4096, ...}) = 0
lstat64("/usr/local/rica-eglibc-i686-armv5te/sysroots/arm-rica-linux-gnueabi",
0xbffe67cc) = -1 ENOENT (No such file or directory)
Both toolchains are looking for a sysroot at 'arm-rica-linux-gnueabi', but the
new toolchain should be looking at 'armv5te-rica-linux-gnueabi', as the names
have changed.
I'm not yet acquainted with the darker arts of toolchain generation. Can anyone
help with this?
Regards,
James Limbouris
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core