The following is a line from a microprocessor startup file, intended for input into the GNU assembler as:
.section .isr_vector,"a",%progbits
Does the dot at the beginning of the name .isr_vector
mean anything special? PS: This name is referenced by the GNU linker ld.
EDIT:
This name also shows up in readelf output as a Section Header:
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
...
[ 1] .isr_vector PROGBITS 08000000 008000 0001ac 00 A 0 0 1
A dot preceding a name is either an assembler directive or a local label.
An assembler directive tells
as
to do something special, for example.text
tells it to generate data in the text section of the object file (for things like code and literals that cannot be changed). There's also directives like.space
which tell it to allocate empty space in the object file, this is often used to allocate space in the bss section.On the other hand, we have local labels like
.L1
that are used in the code but aren't meant to be exported in the object file and should be hidden from the symbol table.