I just noticed that the binary is being built even though gcc throws the assertion failures. Should I be concerned about these? Jerin On Mon, Oct 26, 2009 at 2:24 PM, JJ <alchemistmba@xxxxxxxxx> wrote: > Thanks Ian, > > Removing the -nostdlibs and -nodefaultfiles and adding the following > sections to the linker script fixed the undefined symbols and multiple > declaration of _start issues. > > .data : { *(.data) } > __exidx_start = .; > .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } > __exidx_end = .; > > I'm left with the assertion failures: > $ /tools/.../arm-none-linux-gnueabi-g++ -static -nostartfiles -T > temp.ld -o output_program start.o abc.o xyz.o > /tools/../lib/gcc/arm-none-linux-gnueabi/4.3.2/../../../../arm-none-linux-gnueabi/bin/ld: > BFD (Sourcery G++ Lite 2008q3-41) 2.18.50.20080215 as > sertion fail /scratch/../linux/obj/binutils-src-2008q3-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/bfd/elf.c:3916 > /tools/../lib/gcc/arm-none-linux-gnueabi/4.3.2/../../../../arm-none-linux-gnueabi/bin/ld: > BFD (Sourcery G++ Lite 2008q3-41) 2.18.50.20080215 as > sertion fail /scratch/../linux/obj/binutils-src-2008q3-41-arm-none-linux-gnueabi-i686-pc-linux-gnu/bfd/elf.c:3916 > > JJ > > > > On Mon, Oct 26, 2009 at 1:05 PM, Ian Lance Taylor <iant@xxxxxxxxxx> wrote: >> JJ <alchemistmba@xxxxxxxxx> writes: >> >>> unwind-arm.c:(.text+0x72c): undefined reference to `__exidx_end' >>> unwind-arm.c:(.text+0x730): undefined reference to `__exidx_start' >> >> These and the other undefined symbols are intended to be defined by >> the linker script. run ...-ld --verbose to see the default linker >> script, and incorporate that stuff into your linker script. >> >> >>> I also want to rewrite the "_start" function in assembly. If I add >>> this file in, g++ complains that _start is defined twice. Is there a >>> way to do this? >> >> You'll need to use -nostartfiles and figure out what you need to >> replace everything other than _start. >> >> Or I suppose you could use ENTRY in your linker script to start your >> program at something other than _start. >> >> Ian >> >