about arm-linux-ld

蔡栋 caidong at kedacom.com
Wed Nov 23 12:42:23 UTC 2005


Mike Frysinger,您好!
>> arm-linux-ld: warning: cannot find entry symbol _start; defaulting to 00008558
>
>which means it wont work at all
>
>> beacuse of I don't use crt0.o ,so the system output above message.but I can't find crt0.o in /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3 directory.
>
>use crt1.o then
yes,I know it's not busybox problem,and I think it's also not cross compile problem.because I use "arm-linux-gcc -O2 -o lock main.c lock_flash.c" to compile these file,it seems to work well! 

I'm sorry I write incorrect link command in previous letter, the link command is :

"arm-linux-ld --start-group -L /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3/ -I /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3/include lock_flash.o main.o -lc  --end-group  -o lock"

due to not use "crt0.o" ,so the system output "arm-linux-ld: warning: cannot find entry symbol _start; defaulting to 00008558" message

becase of I find crt0.o in /opt/arm/lib/crt0.o,so I try to use 
"arm-linux-ld --start-group -L /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3/ -I /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3/include lock_flash.o main.o -lc  /opt/arm/lib/crt0.o --end-group  -o lock"
then system didn't output any message,but the it't also can't working on busybox!

then I try to use -lgcc instead of -lc option in arm-linux-ld ,ie:
"arm-linux-ld --start-group -L /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3/ -I /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3/include lock_flash.o main.o -lgcc  /opt/arm/lib/crt0.o --end-group  -o lock"
then system output:
/opt/arm/lib/crt0.o: In function `_start':
crt0.S:(.text+0x14): undefined reference to `__uClibc_main'
crt0.S:(.text+0x18): undefined reference to `abort'
lock_flash.o: In function `read_proc':
lock_flash.c:(.text+0x30): undefined reference to `fopen'
lock_flash.c:(.text+0x4c): undefined reference to `printf'
lock_flash.c:(.text+0xbc): undefined reference to `__fgetc_unlocked'
lock_flash.c:(.text+0xcc): undefined reference to `fgetc'
lock_flash.c:(.text+0x150): undefined reference to `__fgetc_unlocked'
lock_flash.c:(.text+0x160): undefined reference to `fgetc'
lock_flash.c:(.text+0x184): undefined reference to `fseek'
lock_flash.c:(.text+0x1b0): undefined reference to `fscanf'
lock_flash.c:(.text+0x1e4): undefined reference to `printf'
lock_flash.c:(.text+0x1f0): undefined reference to `strlen'
lock_flash.c:(.text+0x208): undefined reference to `strncmp'
lock_flash.o: In function `lock_partition':
lock_flash.c:(.text+0x2f4): undefined reference to `malloc'
lock_flash.c:(.text+0x320): undefined reference to `sprintf'
lock_flash.c:(.text+0x330): undefined reference to `open'
lock_flash.c:(.text+0x350): undefined reference to `printf'
lock_flash.c:(.text+0x398): undefined reference to `ioctl'
lock_flash.c:(.text+0x3ac): undefined reference to `printf'
lock_flash.c:(.text+0x3b8): undefined reference to `close'
lock_flash.c:(.text+0x3cc): undefined reference to `close'
lock_flash.c:(.text+0x3d4): undefined reference to `free'
lock_flash.o: In function `lock_flash':
lock_flash.c:(.text+0x440): undefined reference to `printf'
lock_flash.c:(.text+0x464): undefined reference to `printf'
lock_flash.c:(.text+0x480): undefined reference to `printf'
lock_flash.o: In function `handle_string':
lock_flash.c:(.text+0x4cc): undefined reference to `strtol'
main.o: In function `main':
main.c:(.text+0x3c): undefined reference to `printf'

obviously system can't find any symbol in library ,why? Could you tell me the difference between "lc" and "lgcc"?

I just want to know how to use arm-linux-ld to link several object file into one executable obj.Could you give me some advise?

Thanks!!





	

======= 2005-11-23 18:57:28 您在来信中写道:=======

>On Wed, Nov 23, 2005 at 06:35:49PM +0800, ???? wrote:
>> busybox????????
>
>no, this is not a busybox issue, you should ask it on one of the arm
>mailing lists:
>http://www.arm.linux.org.uk/mailinglists/
>
>> arm-linux-gcc -o2 -c -o main.o main.c
>
>-o2 is not valid, but -O2 is
>
>> arm-linux-ld: warning: cannot find entry symbol _start; defaulting to 00008558
>
>which means it wont work at all
>
>> beacuse of I don't use crt0.o ,so the system output above message.but I can't find crt0.o in /opt/arm/lib/gcc/arm-linux-uclibc/3.4.3 directory.
>
>use crt1.o then
>-mike
>_______________________________________________
>busybox mailing list
>busybox at busybox.net
>http://busybox.net/cgi-bin/mailman/listinfo/busybox

= = = = = = = = = = = = = = = = = = = =
			

        致
礼!
 
				 
        蔡栋
        caidong at kedacom.com
          2005-11-23



More information about the busybox mailing list