Hi All,
I am trying latest GoLink (0.26.10 beta2) and it is failing with a 'symbol was not defined' error.
The scenario is, again, an object file produced with GoAsm linked to a bunch of .obj files produced by VC. Here are the phenomena:
C:\GoASM>golink @drddb.lnk
GoLink.Exe Version 0.26.10 beta2- Copyright Jeremy Gordon 2002/9-JG@JGnet.co.uk
C:\GoASM\drddb.obj
Made on Thursday, February 05, 2009 at 5:41 PM size: 9,589 bytes
C:\GoASM\ddb_format.obj
Made on Thursday, February 05, 2009 at 5:20 PM size: 2,860 bytes
C:\GoASM\ddb_util.obj
Made on Thursday, February 05, 2009 at 5:23 PM size: 5,997 bytes
C:\GoASM\ddb_insertion.obj
Made on Thursday, February 05, 2009 at 5:20 PM size: 7,086 bytes
C:\GoASM\ddb_search.obj
Made on Thursday, February 05, 2009 at 5:20 PM size: 10,196 bytes
C:\GoASM\ddb_CIUtil.obj
Made on Thursday, February 05, 2009 at 5:20 PM size: 9,398 bytes
C:\GoASM\ullshr.obj
Made on Tuesday, November 06, 2007 at 7:17 PM size: 1,382 bytes
C:\GoASM\llshr.obj
Made on Tuesday, November 06, 2007 at 7:17 PM size: 1,370 bytes
C:\GoASM\llmul.obj
Made on Tuesday, November 06, 2007 at 7:17 PM size: 1,362 bytes
C:\WINDOWS\system32\kernel32.dll
Made on Tuesday, August 03, 2004 at 11:56 PM size: 983,552 bytes
Number of required imports found in this file: 12
C:\WINDOWS\system32\user32.dll
Made on Tuesday, August 03, 2004 at 11:56 PM size: 577,024 bytes
Number of required imports found in this file: 1
C:\WINDOWS\system32\msvcrt.dll
Made on Tuesday, August 03, 2004 at 11:56 PM size: 343,040 bytes
Number of required imports found in this file: 4
Error!
The following symbol was not defined in the object file or files:-
_delete_ddb
Output file not made
Here is the link file (drddb.lnk):
drddb.obj
ddb_format.obj
ddb_util.obj
ddb_insertion.obj
ddb_search.obj
ddb_CIUtil.obj
ddb_delete
ddb_init
ullshr.obj
llshr.obj
llmul.obj
-files
-console
-debug coff
kernel32.dll
user32.dll
msvcrt.dll
What's most interesting to me about this is that -files does not show the last two .obj files named by the link file: ddb_delete and ddb_init. The unfound symbol is the name of a function in ddb_delete. My source code references this name as '_delete_ddb.' Please note that the linker has no difficulty resolving, say, the C function 'insert' which is defined in ddb_insertion.obj. In this case my source code references this name as '_insert.'
Nota bene: I tried the new -mix switch to no avail. This simply changed the unfound symbol from '_delete_ddb' to 'delete_ddb.'
Is -files truncating the list of processed files after 6 files, or is reflecting the fact that GoLink is not processing more than the first 6 files?
As always, thanks for your help.
Cordially,
Paul
Sorry, that was dumb of me. I could have tested my own conjecture by shifting the sequence of object files in the link file before I posted.
I just tried moving ddb_delete.obj to the top of the list, but it made no difference to the phenomena.
-Paul
In the above link file, the .obj extension is missing from the ddb_delete and ddb_init files. That is most likely the source of the error.
Beatiful; thanks.
New user error it is! ::)
Cordially,
Paul