ID Number: Q30576
5.10 6.00 | 6.00
MS-DOS | OS/2
Summary:
SYMPTOMS
The following error message is generated during linking:
GOO.OBJ(goo.asm) : error L2002: fixup overflow at 0003 in segment GOO_TEXT
pos: 99 Record type: 73EE
target external 'FVAR'
More Information:
The following assembler modules produce a fix-up overflow error
message during linking.
When linking these two modules together, the .fardata-simplified
segment directive will cause a link-error fix-up overflow.
Every module with a .fardata segment is defining a different
.fardata segment. The linker will keep the segments separate.
Therefore, declaring the fvar variable external in module 2 generates
the problem. The extrn far data item, fvar, should be declared outside
the .fardata segment.
Sample Code:
------------
Module 1
.model large
.stack
.data
public gvar
gvar db 31h
.fardata
public fvar
fvar db 55h
.code
extrn t2:proc
start: mov ax,@DATA
mov ds,ax
mov ax,@FARDATA
mov es,ax
call dword ptr t2
end start
Module 2
.model large
.data
extrn gvar:byte
.fardata
extrn fvar:byte
.code
public t2
t2 proc far
mov bl, es:fvar
ret FAR
t2 endp
end