View Single Post
Old 24 May 2013, 12:22   #2
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,496
Quote:
Originally Posted by clenched View Post
Code:
   ;x.asm
   xref   _LVOSuperState
   jsr    _LVOSuperState(a6)
...
Code:
Error 446: Invalid symbol type 138 for _LVOSuperState
That's an EXT_ABSREF16 reference (refer to doshunks.h), which is absolutely correct. The reference to _LVOSuperState in the operand of JSR is an absolute 16-bit displacement.

From dos/doshunks.h:
Code:
#define EXT_ABSREF16    138     /* 16 bit absolute reference to symbol */
Quote:
Originally Posted by clenched View Post
Vlink was the only one that could successfully link VASM object.
How do I make VASM object code compatible with old linkers?
That would be my task. I could add an option to be compatible with old linkers. I must say that I'm surprised that no other linker supports it.

The EXT_ABSREF16 define was added lately to doshunks.h (either for AmigaOS2.x or 3.x). Before that assemblers used EXT_REF16 (131), which is now known as EXT_RELREF16 and is a PC-relative 16-bit reference, which would be wrong here, IMHO.

BTW, what is wrong with using vlink?
phx is offline  
 
Page generated in 0.04318 seconds with 11 queries