At wit's end with linker...help please!

Rick Mann rmann@latencyzero.com
Wed Oct 31 02:23:00 GMT 2007


I have a file vectors.S that assembles to vector.o. My linker script  
has a part:

	. = ALIGN(4);
	.text :
	{
		obj/start.o(.text);
		src/Interrupts.o(.text);
		*(.text);
		
		. = ALIGN(4);
		gVectorsStart = .;
		KEEP (obj/vectors.o(.text));
		gVectorsEnd = .;
	}


vectors.o is:

$ arm-elf-objdump -d obj/vectors.o

obj/vectors.o:     file format elf32-littlearm

Disassembly of section .text:

00000000 <vectors>:
    0:	e59ff018 	ldr	pc, [pc, #24]	; 20 <ResetHandlerAddr>
    4:	e1a00000 	nop			(mov r0,r0)
    8:	e1a00000 	nop			(mov r0,r0)
    c:	e1a00000 	nop			(mov r0,r0)
   10:	e1a00000 	nop			(mov r0,r0)
   14:	e1a00000 	nop			(mov r0,r0)
   18:	e1a00000 	nop			(mov r0,r0)
   1c:	e1a00000 	nop			(mov r0,r0)

00000020 <ResetHandlerAddr>:
   20:	00000000 	.word	0x00000000


But the output map shows that gVectorsStart/End have the same value:

                 0x80024a50                gVectorsStart = .
  obj/vectors.o(.text)
                 0x80024a50                gVectorsEnd = .


Implying that my vector table is not being linked in.

Can someone tell me what I'm doing wrong? Thank you!!!

-- 
Rick



More information about the Binutils mailing list