This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
I'm trying to compile a .elf file with the following command line: Linking: main.elf arm-elf-gcc Cstartup.o main.o Cstartup_SAM7.o irq.o pio.o interrupt_pit.o interrupt_Usart.o --output main.elf -nostartfiles -Wl,-Map=main.map,--cref --no-whole-archive --gc-sections -Iucos_ii -Lucos_ii -lucos_ii -TAT91SAM7S64-ROM.ld And I get an executable that runs, however, my binary is much larger than it is supposed to be because the linker is including all the .o files in my archive (.a). I can't figure out what to do. I have tried the --gc-sections option and the --no-whole-archive option but I still get a really large executable. I created my archive from .o files using arm-elf-ar -rcv libucos_ii.a $(OBJS). I can't seem to figure out a good solution. Any ideas? I'd rather not create an archive file for each .o file (which sort of defeats the purpose of having a .a file) Thanks for the help! I'm using GNU ld version 2.14 20030612 Here is a listing of the files in my archive: $ arm-elf-size libucos_ii.a text data bss dec hex filename 4156 0 0 4156 103c os_core.o (ex libucos_ii.a) 208 0 0 208 d0 os_cpu_c.o (ex libucos_ii.a) 0 0 0 0 0 os_flag.o (ex libucos_ii.a) 1168 0 0 1168 490 os_mem.o (ex libucos_ii.a) 2472 0 0 2472 9a8 os_q.o (ex libucos_ii.a) 3360 0 0 3360 d20 os_task.o (ex libucos_ii.a) 368 40 0 408 198 os_cpu_a.o (ex libucos_ii.a) 2 0 0 2 2 os_dbg_r.o (ex libucos_ii.a) 1564 0 0 1564 61c os_mbox.o (ex libucos_ii.a) 2256 0 0 2256 8d0 os_mutex.o (ex libucos_ii.a) 1252 0 0 1252 4e4 os_sem.o (ex libucos_ii.a) 764 0 0 764 2fc os_time.o (ex libucos_ii.a) -Josh
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |