GAS doesn't pass sections like GCC?
Dan Fowell
dfowell@intelligentline.com
Thu Jan 16 15:50:00 GMT 2003
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
More information about the crossgcc
mailing list