NASM - The Netwide Assembler

NASM Forum => Using NASM => Topic started by: Olsonist on January 31, 2019, 08:52:25 PM

Title: extraneous symbol 0000000000000000 t ..@13.end
Post by: Olsonist on January 31, 2019, 08:52:25 PM
On OSX, I'm assembling a straightforward if lengthy assembler source with:

   nasm -f macho64 xxx.s -o xxx.o

When I look at the name list for the object file

    nm xxx.o

everything looks correct except for an extraneous symbol:

    0000000000000000 t ..@13.end

Any ideas?
Title: Re: extraneous symbol 0000000000000000 t ..@13.end
Post by: Frank Kotler on February 01, 2019, 03:34:40 AM
Hi Olsonist,

Odd. Does it do any harm? Does "end" occur anywhere in xxx.s?

Best,
Frank

Title: Re: extraneous symbol 0000000000000000 t ..@13.end
Post by: Olsonist on February 01, 2019, 06:48:00 PM
> Odd. Does it do any harm? Does "end" occur anywhere in xxx.s?

I don't know that it does any harm. It just seems to be a symbol. "end" doesn't occur anywhere in the source.

(EDIT: if I comment out %use smartalign and ALIGNMODE below, the symbol disappears.)

I've chopped the source back to practically nothing:

SECTALIGN 4096

%use smartalign
ALIGNMODE p6,16
BITS 64
default rel

section .text

align 4096
_xxx:
nop

I'm using OSX 10.14.2 and NASM version 2.14.02 compiled on Dec 27 2018.

nasm -f macho64 xx.s -o xx.o

nm xx.o
0000000000000000 t ..@8.end
0000000000000000 t _xxx

Strange. BTW, if I substitute ELF64 and readelf xx.o I get the same result:

nasm -f elf64 xx.s -o xx.o
readelf -s xx.o

Symbol table '.symtab' contains 5 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS xx.s
     2: 0000000000000000     0 SECTION LOCAL  DEFAULT    1
     3: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT    1 ..@8.end
     4: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT    1 _xxx