This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GAS doesn't pass sections like GCC?


I'm developing for a powerpc target and am writing a interrupt handler in my
c file with inline assembly.  I'm placing the code in a section called
"vect" which is put in a particular place memory.

Sits alone at the end of my main C file:
	 __asm__ ("
		   .global _isr
		   .section .vect
		   _isr:
		   [ISR handler]
		");

Lnk file:
	        vect :   org = 0xFFF00500,       len = 255

For some reason when I disassemble either the C file's object or my main.elf
file with the "-D" (disassemble-all) with objdump the section doesn't show
up.  And GDB doesn't place the instructions at that address either.

I can however use:
	objdump --section=.vect -s main.elf
It then shows that my handler is in section .vect at the correct address.
Any idea why it doesn't show up with -D?

If I write a C function defined as:
	extern void C_Isr(void)  __attribute__((section(".vect")));

Then -D does disassemble section .vect and the code is placed in the correct
location via GDB.  Of course I also get the unwanted instructions that are
associated with a C function prior to my isr code.


Any thoughts are greatly appreciated,
Dan


------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]