Hi Mark, Thanks for your comments.
> -----Original Message----- > From: openembedded-core-boun...@lists.openembedded.org > [mailto:openembedded-core-boun...@lists.openembedded.org] On Behalf Of Mark > Hatle > Sent: Thursday, May 23, 2013 10:47 PM > > On 5/23/13 3:46 AM, Luo Zhenhua-B19537 wrote: > > > > For gcc with multilib support running on target board 1. Can the same > > gcc binary build both 32b and 64b applications or two different gcc > binaries(one is for 32b, the other is for 64b) are required? > > As far as I'm aware the same issue above holds true here. You still need > multiple compiler binaries, one for each multilib. (Khem Raj would know > if this is still true however.) [Luo Zhenhua-B19537] I see an successful case of single gcc on target can build both 32b and 64b app, https://bugzilla.yoctoproject.org/show_bug.cgi?id=1369. Is that still true in recent Yocto? > I experienced following error when I use gcc(32bit rootfs with multilib > support) to do 64b build, I find the linker search libraries in /usr/lib > and /lib instead of /usr/lib64 and /lib64. > > > > root@p5020ds:~# gcc -m64 my_test.c -o my_test > > /usr/lib/gcc/powerpc-poky-linux/4.7.2/../../../../powerpc-poky-linux/b > > in/ld: skipping incompatible > > /usr/lib/gcc/powerpc-poky-linux/4.7.2/../../../powerpc-poky-linux/4.7. > > 2/libgcc.a when searching for -lgcc > > /usr/lib/gcc/powerpc-poky-linux/4.7.2/../../../../powerpc-poky-linux/b > > in/ld: skipping incompatible > > /usr/lib/powerpc-poky-linux/4.7.2/libgcc.a when searching for -lgcc > > /usr/lib/gcc/powerpc-poky-linux/4.7.2/../../../../powerpc-poky-linux/b > > in/ld: cannot find -lgcc > > /usr/lib/gcc/powerpc-poky-linux/4.7.2/../../../../powerpc-poky-linux/b > > in/ld: skipping incompatible /lib/../lib/libgcc_s.so.1 when searching > > for libgcc_s.so.1 > > /usr/lib/gcc/powerpc-poky-linux/4.7.2/../../../../powerpc-poky-linux/b > > in/ld: skipping incompatible //lib/libgcc_s.so.1 when searching for > > libgcc_s.so.1 > > /usr/lib/gcc/powerpc-poky-linux/4.7.2/../../../../powerpc-poky-linux/b > > in/ld: cannot find libgcc_s.so.1 > > /usr/lib/gcc/powerpc-poky-linux/4.7.2/../../../../powerpc-poky-linux/b > > in/ld: skipping incompatible > > /usr/lib/gcc/powerpc-poky-linux/4.7.2/../../../powerpc-poky-linux/4.7. > > 2/libgcc.a when searching for libgcc.a > > /usr/lib/gcc/powerpc-poky-linux/4.7.2/../../../../powerpc-poky-linux/b > > in/ld: skipping incompatible > > /usr/lib/powerpc-poky-linux/4.7.2/libgcc.a when searching for libgcc.a > > /usr/lib/gcc/powerpc-poky-linux/4.7.2/../../../../powerpc-poky-linux/b > > in/ld: cannot find libgcc.a > > Ya, this is running the 'wrong' toolchain. From the errors it appears to > me that it's the 32-bit gcc, attempting to compile for 64-bit. There is > a command that will tell you what architectures gcc was built to support, > but unfortunately I don't remember it offhand. [Luo Zhenhua-B19537] The test program can be compiled and assembled correctly, but link failed. Seems like -m64 influenced powerpc-poky-linux-gcc, but not influenced powerpc-poky-linux-ld, LIBRARY_PATH is same for both 32b and 64b build, how can the value of LIBRARY_PATH be set to different value if -m64 is passed? root@p5020ds:~# gcc -m64 -c my_test.c root@p5020ds:~# ls -l total 3 -rw-r--r-- 1 root root 30 May 23 09:40 my_test.c -rw-r--r-- 1 root root 1208 May 24 08:09 my_test.o root@p5020ds:~# file my_test.o my_test.o: ELF 64-bit MSB relocatable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), not stripped root@p5020ds:~# cat my_test.c int main() { return 0; } Best Regards, Zhenhua _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core