Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

OMF records (Developers)

posted by Rugxulo Homepage, Usono, 17.02.2012, 20:21

> This is not really a high-quality error report.

Please download JAPHETH.ZIP.

I automated literally everything, so it should be extremely obvious what to do.

> You should post the exact
> warning and error messages and also post the exact command line you used
> for both MS link and WLINK. I'm familiar with both linkers.

I am not using MS LINK here (though I did briefly test it a few months back, and it works). That was the linker at which Oberon/M was originally targeted.

I did include JAPHETH.ERR in the above archive with the (failed) results of JWLINKD. Perhaps I'll also quote it here for full reveleation:


[ FreeDOS ] G:\TONY>jwlinkd format dos file newbef93,stacks,in,out,term,sys
JWlink Version 1.9
Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
loading object files
Warning! W1032: file newbef93.obj(NEWBEF93), record 25: record (type 0x0070) not
 processed
Warning! W1014: stack segment not found
Warning! W1023: no starting address found, using 0000:0000
creating a DOS executable
[ FreeDOS ] G:\TONY>newbef93 < alphabox.bef
Run time error code:       4
compiled with old version of module
In
in module In
[ FreeDOS ] G:\TONY>scrndump c:\tmp\japheth.err


At least, to me, this makes absolutely no sense. I don't know how or if the runtime is somehow checking the .REF files for consistency (internal module key), but that's what it appears to be doing. That should only be checked at compile-time, but I have no idea what this particular one is doing. TLINK doesn't whine. I'm fairly sure there is no failure in compiled module and (symbol) definition consistency, so the problem lies elsewhere.

> Additionally,
> you should make the linkers create MAP files - by comparing the two
> resulting map files it will most likely become obvious what's wrong with
> wlink.

It is not obvious. Please define "obvious". No, seriously, there's even a blank-named empty segment in there for whatever reason. And I still wonder if link order matters. You never did tell me if it's possible to specify that, so I dunno (tried and failed). There is a warning about "no stack segment", which I assumed was spurious, but perhaps there is some significance, I don't know. One of my source files is named STACKS, which I blindly assumed was confusing the linker, but renaming it (STORK, had to pick something unique, heh) didn't help anything (so don't waste time on that).

> For wlink, to create a map file enter:
>
> "format dos name blah file abc,xyz,out,term,sys op map"

Didn't help, at least not for me. I don't understand all the intricacies of EXE or OMF relocations, and I have no idea where or why Oberon/M is putting code, data, stack etc. It may be a latent compiler bug. Well, it's just old and not heavily tested in modern linkers, so what did we expect? That's the "real" problem.

 

Complete thread:

Back to the forum
Board view  Mix view
22761 Postings in 2121 Threads, 402 registered users (3 online)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum