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

