This is the mail archive of the crossgcc@sourceware.cygnus.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more infromation.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
I'm sorry, but I don't fully understand what your problem is. When you have BEFORE set to 1, the first symbol in your object file is _start, so the entry point to your file is the same as the load address. When you have BEFORE set to 0, the first symbol in your object file is _main, and _start follows it. So while the load address of the file remains at 0x8000 (the default load address), the entry point has changed to 0x8044. Richard. > > Hi, > > I had built a set of tools implementing arm-unknown-aout from > binutils-2.9.1, newlib-1.8.2 and gcc-2.95.2 and a few patches > found on the net. > > It seems like linker has a bug. I am using following command > to build a test program: > > $(CC) $(CFLAGS) -o tst -nostartfiles -Wl,-e,_start tst.c > > Test program is below: > > > #include <stdio.h> > > #define BEFORE 1 > > #if BEFORE > void > start(void) > { > } > #endif > > int > main(int argc, char *argv[]) > { > printf("Hello, world\n"); > > return 0; > } > > #if !BEFORE > void > start(void) > { > } > #endif > > > It has OK file header: > > tst: file format a.out-arm-little > tst > architecture: arm, flags 0x000001be: > EXEC_P, HAS_LINENO, HAS_DEBUG, HAS_SYMS, HAS_LOCALS, WP_TEXT, D_PAGED > start address 0x00008000 > > Sections: > Idx Name Size VMA LMA File off Algn > 0 .text 00010000 00008000 00008000 00008000 2**4 > CONTENTS, ALLOC, LOAD, CODE > 1 .data 00008000 00018000 00018000 00018000 2**4 > CONTENTS, ALLOC, LOAD, DATA > 2 .bss 00000000 00020000 00020000 00000000 2**4 > ALLOC > > However,once I change BEFORE to 0, the file header will beecome > > tst: file format a.out-arm-little > tst > architecture: arm, flags 0x000001be: > EXEC_P, HAS_LINENO, HAS_DEBUG, HAS_SYMS, HAS_LOCALS, WP_TEXT, D_PAGED > start address 0x00008044 > > Sections: > Idx Name Size VMA LMA File off Algn > 0 .text 0000ffe0 00008000 00008000 00000020 2**4 > CONTENTS, ALLOC, LOAD, CODE > 1 .data 00008000 00018000 00018000 00010000 2**4 > CONTENTS, ALLOC, LOAD, DATA > 2 .bss 00000000 00020000 00020000 00000000 2**4 > ALLOC > > Which is incorrect because text will still be located at offset > 0x8000 in the file. > > So, I am quite puzzled to say the least, is it a known bug ? > > Thanks, > > Aleksey > > > > > > > > ------ > Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ > Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com > ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |