-
Fixup overflow
Im trying to link an assembly obj file with my c app and these are the errors im gettting...
Code:
Fixup overflow in module main.c at _TEXT:000B, target = _setmode
Fixup overflow in module main.c at _TEXT:0004, target = _setmode
Anyone know how to stop these?
-
What compiler, linker, assembler?
Which output .obj formats are you using for the .c and .asm sources?
-
The assembly file im compiling with MASM. The c file with Turbo C 2.01. They are both in the proper format for dos object files. Then i run both object files through tcc so it will link them together. That is when i get the error from the Turbo Linker. Im doing it this wasy because im using a make file.
-
You're sure they're both 16-bit?
Other than that, not much idea, really.
-
It probably has to do with the model you selected in Turbo C.
Try using a larger model. Go into Options > Compiler > Model
and set it to something > 'Small' when you compile the Turbo C component. I am assuming the TC module is that base module.
A fixup refers to re-setting the address of the entry point and the addresses in the module - it's an address offset calculation.
Overflow means that the calculated address is not within the allowed limits for addresses. You see this when you mix stuff with far pointers into a small memory module, for example.
-
Changing the model to large fixed that problem, but when i run it i get an illegal operation error.