Search code examples
compilationlinkerelfobjdumpsections

What does *COM* stand for in objdump symbol table?


There are a few section names in objdump output that have some unique names, like

  • *ABS*
  • *COM*
  • *UND*

I guess *ABS* stands for ABSolute and denotes a symbol that doesn't belong to any section. External variables go to *COM* section. It seems that external functions go down to UNDefined. My questions are — what does COM stand for? What does it contain besides references to external variables? What are other sections like those two?


Solution

  • This indeed refers to "Common". From the ELF spec:

    SHN_COMMON Symbols defined relative to this section are common symbols, such as FORTRAN COMMON or unallocated C external variables.