I incorporated all the relevant symbols from 
environment-setup-cortexa7hf-neon-vfpv4-poky-linux-gnueabi. I defined the 
compilation command as ${CC} ${CFLAGS} and the linker command as ${LD} 
${LDFLAGS}. Other Eclipse settings added -O3 -Wall -c to the compile, and -s to 
the link.

When I did the build, the compile succeeded, but the link complained about 
"-Wl,-O1" as an unrecognized option. I first tried eliminating the "-Wl," 
prefixes, but that gave me a "cannot find entry symbol _start" error. I put the 
"-Wl," prefixes back, but changed the link command from 
arm-poky-linux-gnueabi-ld to arm-poky-linux-gnueabi-gcc, and it linked okay, 
but gave me the same runtime error I've been struggling with.

However, Lukasz put his finger on the problem when he wrote

> From: Lukasz Tekieli [mailto:tekieli.luk...@gmail.com] 
> 
> it seems that if linker is called without -mfloat-abi=hard 
> then the ld is set to /lib/ld-linux.so.3 instead of 
> /lib/ld-linux-armhf.so.3 which is the correct one.

It turns out the correct way to run the linker is $CC $CFLAGS $LDFLAGS, not $LD 
$LDFLAGS.

The reason this escaped me for all this time is that I was using 
arm-poky-linux-gnueabi-objdump -x on the executable, and grepping for NEEDED to 
find out what shared libraries were needed. The actual loader isn't listed in 
this way. Using the -s option showed that the .interp section contained the 
string /lib/ld-linux.so.3. Now it correctly shows /lib/ld-linux-armhf.so.3.

Thanks to all who looked into this for me.

-- 

Ciao,               Paul D. DeRocco
Paul                mailto:pdero...@ix.netcom.com

-- 
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to