Here is another status update:

I noticed that ar86 was silently failing after .a files grew to
a certain size, somewhere around 32767 bytes.  Some of the offsets
were stored in signed int variables.  I changed those to use long
variables and that fixed it.

After this change, i was able to build libdos.a.

At first ld86.exe would not produce executables.  Undefining
REL_OUTPUT helped.

Now ld86.exe produces executables, but they don't run correctly.  I
am still troubleshooting this.

By the way, i became a little confused by ld\config.h and whether
it should be modified.  It seems to be hard-coded to define
I80386 and MINIX.  ld\obj.h defines OMAGIC differently depending
on whether I80386 or I8086 is defined.  However, the "MAGIC" file has
a comment that there is no difference and that 16-bit and 32-bit .o
files both use the same OMAGIC: the one corresponding to I80386.

As an experiment i tried changing ld\config.h to define I8086 instead
of I80386.  After this change, ld86 would no longer produce
executables.  Instead, it gave an error "crt0.o has bad magic number"
This leads me to believe that it should indeed remain on the I80386
version of OMAGIC, even for the 16-bit target.

I'll keep plugging away at this and report back in a few days.

-Ben


_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to