Pesquisa inicial
À primeira vista, parece que a resposta seria "não". A especificação para o ELF permite apenas as seguintes seções.
C32/kernel/bin/.process.o
architecture: i386, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x00000000
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000333 00000000 00000000 00000040 2**4
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
1 .data 00000050 00000000 00000000 00000380 2**5
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000000 00000000 00000000 000003d0 2**2
ALLOC
3 .note 00000014 00000000 00000000 000003d0 2**0
CONTENTS, READONLY
4 .stab 000020e8 00000000 00000000 000003e4 2**2
CONTENTS, RELOC, READONLY, DEBUGGING
5 .stabstr 00008f17 00000000 00000000 000024cc 2**0
CONTENTS, READONLY, DEBUGGING
6 .rodata 000001e4 00000000 00000000 0000b400 2**5
CONTENTS, ALLOC, LOAD, READONLY, DATA
7 .comment 00000023 00000000 00000000 0000b5e4 2**0
CONTENTS, READONLY
Fonte: link
Outras fontes, como a Wikipedia, também mostram apenas os nomes das seções mais básicas, levando você a acreditar que tudo isso é permitido. Pesquisas adicionais mostraram que existem essas duas seções também:
.fini
This section holds executable instructions that contribute to the process termination code. That is, when a program exits normally, the system arranges to execute the code in this section.
.init
This section holds executable instructions that contribute to the process initialization code. That is, when a program starts to run the system arranges to execute the code in this section before the main program entry point (called main in C programs).
The
.init
and.fini
sections have a special purpose. If a function is placed in the.init
section, the system will execute it before the main function. Also the functions placed in the.fini
section will be executed by the system after the main function returns. This feature is utilized by compilers to implement global constructors and destructors in C++.
Fonte: link
Mas, sim, você pode ter seções
Mas, graças a @Crogrammer por indicar-me o verdadeiro Especificação ELF v1.2 , há um parágrafo na página 1-16 que afirma o seguinte:
Section names with a dot (.) prefix are reserved for the system, although applications may use these sections if their existing meanings are satisfactory. Applications may use names without the prefix to avoid conflicts with system sections. The object file format lets one define sections not in the list above. An object file may have more than one section with the same name.
Portanto, parece que depende do programa quais seções ele deseja utilizar.