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
