Version: 2.2.3
Date: 2022/11/28


I. Introduction

lnk7090 is a cross linker for the IBM 7090 computer. It supports the object
format generated by asm7090. This version adds a library search option, a wide
listing format and a cross reference of externals. The symbols are now listed
with a number that indicates the module where it is defined. The cross
reference shows the name of the symbol, value, it's  module number and each
reference gives the address of the reference and reference module number.

Program COMMON is handled in the CTSS fashion. It must be defined in the first
object module and is relocated after the first module and is enabled with the
"-C" option.


II. Build lnk7090

Lunix/Unix:

$ make

The make attempts to figure out which system to make for using uname.

WinBlows:

$ nmake nt


III. To run lnk7090

$ lnk7090 [-options] -o outfile.obj infile1.obj infile2.obj ...

Where options are:

   -C           - Relocate CTSS Program Common
   -d deck      - Deckname for output
   -Llibdir     - Library directory
   -m mapfile   - Generate MAP listing to mapfile
   -o outfile   - Linked object file name
   -w           - Generate wide listing
   -x           - Generate cross reference


IV. Known problems/issues

1. External back chain through a decrement field, a RELBOTH_TAG or RELDECR_TAG, 
   is currently not handled. An error is generated. A work around is to have 
   decrement point to a transfer vector in the module which is the external.
   For example:

      EXTERN VAL
      ...
      PZE    LOCAL,,VAL
      ...
  
   in native FAP a tranfer vector was generated at the beginning of the module.
   So, we can do the following:

      EXTERN VAL
      ...
      PZE    LOCAL,,LVAL
      ...
LVAL  TRA    VAL

   this generates a "dummy" transfer vector.
