This is a copy of the development level of ILINK as of 9 July 1997. This version of ILINK has a number of enhancements above and beyond the version that ships with VisualAge C++ for OS/2 v3.0. In particular, it has removed many of the limits that were present in the previous version of ILINK. Please be aware that this is beta-level code and should not be used to develop mission-critical applications. While we are interested in hearing about any problems that may exist in this code, we make no promise that any bugs will ever be fixed, or indeed, that there will be any further versions of this code made available. The following files comprise this package: bin\ilink.exe linker bin\ilib.exe librarian (also performs IMPLIB functions) bin\dllrname.exe DLL renaming tool bin\lnkods30.exe default stub bin\lnkovs30.exe VDM stub bin\msgbind.exe message binding tool bin\rc.exe resource compiler dll\cpplh440.dll linker debug packing help\cppllm40.msg linker messages help\cpplbm40.msg librarian messages help\cppldm40.msg DLLRNAME messages help\cpport40.msg run-time messages Here are the changes made to the tools in this package since VAC++ v3.0: 1/ ILINK V4 produces executables with fixups placed near the end of the file. There are bugs in the current versions of MC and MSGBIND that show up with this ordering. New versions are available which work properly. 2/ ILINK V4, by default, produces debug info in a separate file. As a temporary measure, the debug info can be placed in the executable file by the option "/DEBUG:none". However, /DBGPACK will be ignored. 3/ ILIB now uses a free-format cmd line by default. If you want the old format as default: "set ilib=/nofree". 4/ ILIB can (should) now be used to generate import libraries instead of using IMPLIB. 5/ Enhancements to the EXEPACK:2 compression algorithm. 6/ -align:16 is now the default. 7/ Sometimes produced iterated pages when not optimal. 8/ Internal-fixups-applied bit was not set properly in LX header. 9/ Bad line number info with ROBASE. 10/ ILINK will automatically attempt to minimize the number of segments produced by re-ordering sections with like-attributes. 11/ Constant data sections are placed at the end of the code sgement, unless -nopackcode or -nopackdata is specified. 12/ ILINK will put section _MSGSEG32 at the beginning of the code segment unless the code segment approaches 64K in length. In that case, _MSGSEG32 is placed alone in the first code segment, with other code sections in a second code segment. 13/ LX Entry table was sometimes not terminated properly --> loader hang. 14/ Export __CONST32_RO at the beginning of the constant section(s). 15/ Version number changed to 4 and DLLs renamed. 16/ Generate a warning for dll names longer than 8 characters (Warp4 limit). 17/ Add -stub and -nostub options. -nostub is the default for non-EXEs. 18/ Some long-standing bugs with debug packing have been fixed. The debugger could not evaluate some expressions. 19/ Add -segorder & -nosegorder