Google
 

Trailing-Edge - PDP-10 Archives - BB-4157F-BM_1983 - documentation/link.doc
There are 32 other files named link.doc in the archive. Click here to see a list.


         LINK.DOC: LINK Version 5.1(2030) 14 Feb 83




Copyright (C) 1983 Digital Equipment  Corporation,  Maynard,
MA.


This software is furnished under a license and may  be  used
and copied only in accordance with the terms of such license
and with the inclusion of the above copyright notice.   This
software  or any other copies thereof may not be provided or
otherwise made available to any other person.  No  title  to
and ownership of the software is hereby transferred.

The information  in  this  software  is  subject  to  change
without  notice  and should not be construed as a commitment
by Digital Equipment Corporation.

Digital assumes no responsibility for the use or reliability
of  its  software  on  equipment  which  is  not supplied by
Digital.
                                                      Page 2


1.0  INTRODUCTION



LINK is the linking loader for the DECSYSTEM-20.   LINK  5.1
is  a  minor  release  of  LINK  for the DECSYSTEM-20 with a
number of new features, internal changes and bugfixes.

LINK 5.1 supercedes all previous versions.   It  runs  under
all  supported  monitors,  and has been tested under TOPS-20
releases 4.1, 5.0 and 5.1.

LINK is documented  in  the  LINK  Reference  Manual.   This
manual  is  available  as  part  of  volume 4 of the TOPS-20
Software Notebooks, or it can be ordered separately as order
number AA-4183C-TM.




2.0  INSTALLATION



To install LINK, move the files LINK.EXE and  OVRLAY.REL  to
the  system  area.  The LINK.HLP file should be moved to the
system help area, usually PS:<HELP>.  LINK.DOC  should  also
be  placed  on  a system documentation directory if there is
one available.





3.0  REBUILDING LINK


All the files required to rebuild LINK are included  on  the
tape:   sources,  command  files,  and  a control file.  The
control  file  LINK.CTL  reassembles  the  LINK  and  OVRLAY
modules  and  re-links LINK.  It requires a time limit of 20
minutes.  KS installations may require more time.

Note that in the future LINK patches will be distributed via
AUTOPATCH.  This procedure requires a set of unmodified LINK
sources.  It is recommended that an unmodified set  of  LINK
sources  be  preserved if maintenance edits or site-specific
enhancements are made.
                                                      Page 3


4.0  RECENT CHANGES AND NEW FEATURES


     1.  Users converting existing FORTRAN  applications  to
         FORTRAN  77 as well as those writing new FORTRAN 77
         programs  will  be  able  to  use   the   load-time
         typechecking    facility    in   LINK.    Use   the
         /DEBUG:ARUGMENTS switch when compiling your FORTRAN
         program   to   get   link-time   messages  flagging
         inconsistencies in the number and kind of arguments
         being  passed  to  a  subroutine  or  function.  In
         addition the /ERRORLEVEL or /LOGLEVEL LINK switches
         may be used to get more detailed information.

     2.  If compilation errors occur during  the  processing
         of  a  LOAD, DEBUG or EXECUTE command LINK will now
         issue  the  ?LNKSUP  Loading  Suppressed   message.
         FORTRAN  version  7  and  future languages will not
         necessarily  produce  .REL  files  if   compilation
         errors  occur.   For  languages  that  produce .REL
         files despite errors, run LINK explicitly  or  give
         the  LOAD,  DEBUG or EXECUTE command a second time.
         This will clear the  compilation  error  count  and
         LINK will load the files.

     3.  The /START switch now accepts thirty-bit addresses.
         A  side  effect  of  this  change  is that it is no
         longer possible to request an  entry  vector  using
         the  /START  switch.   MACRO programmers should use
         the END statement  in  the  sources  to  get  entry
         vectors rather than the /START switch.

     4.  The  /PLTTYP  switch  permits  a  user  to  specify
         whether  a  disk  file  should be plotter format or
         printer format.

     5.  In LINK 5.0 a quota violation when writing .TMP  or
         .EXE  files  would  cause  LINK-20 to issue a fatal
         non-continuable error message.  In this new version
         LINK-20  may  try to expunge the directory in which
         the output file is being written and continue after
         the  quota  violation  is detected.  If this is not
         possible the fatal message is issued.




5.0  RESTRICTIONS


     1.  LINK 5.1 will not rebuild  RMS.EXE  version  1(60).
         Use  LINK  5.0  or earlier versions to rebuild this
         version of RMS.
                                                      Page 4


     2.  It is possible to cause infinite looping or illegal
         memory  references  if  segments or PSECTs overlap.
         This   happens   because   reference   chains   for
         unresolved symbols may be corrupted by the overlap.
         Use the /LIMIT switch to set the  maximum  size  of
         segments  and  PSECTs  to  get memory maps, logs or
         other  diagnostic  information  if  you  find  that
         changing  a  program's  size  or position in memory
         causes LINK to loop when loading the program.

     3.  If a program is being structured  to  use  overlays
         and  there  is  a  very  large  number  of  symbols
         associated with a particular overlay link, LINK may
         issue  an  ?LNKMEF  memory expansion error if a map
         file is requested.  If this occurs use  the  switch
         /NOLOCAL on some or all modules being loaded to cut
         back the number of symbols.

     4.  Sites which customize LINK to  search  user-defined
         libraries  by default require a patch to the module
         LNKINI to avoid an "Unknown Language" error.   This
         patch will be included in a future AUTOPATCH tape.

     5.  An illegal memory reference may occur when LINK  is
         writing  a  line printer format overlay plot.  This
         patch will be included in a future AUTOPATCH tape.

     6.  .REL  files  cannot  be  read  from   non-directory
         devices.   This  includes magtapes, cards and paper
         tape.  The message ?LNKFLE File Lookup Error 0 File
         not  Found is issued.  Transfer these files to disk
         before linking them.

     7.  LINK may  get  an  illegal  memory  reference  when
         opening  a  file for input or output in a directory
         if  the  TOPS20  file  specification  (   including
         device,  directory  name,  and  file name ) exceeds
         thirty characters.  To solve this  problem  rebuild
         LINK  after  redefining  the LN.FL parameter.  This
         parameter is found in the file LNKPAR.MAC  but  the
         new definition may be placed in LNKT20.MAC and will
         override the default value.  The default is 10;   a
         value of 20 is suggested if many subdirectories are
         in use.  For larger values it is suggested that the
         stack length parameter LN.PDL also be increased.




6.0  EXTENDED ADDRESSING RESTRICTIONS


     1.  If a program being loaded into  a  nonzero  section
         has  a  very  large  number of symbols, the ?LNKMEF
         Memory Expansion Failure error may occur.   Patches
                                                      Page 5


         for  this  problem  will  be  included  in a future
         AUTOPATCH tape.

     2.  LINK does  not  diagnose  18-bit  truncation  of  a
         30-bit  value  when doing a symbol table fixup or a
         polish fixup.

     3.  LINK does not type its exit messages  when  loading
         an extended addressing program.

     4.  LINK-20  ignores  the  /DEBUG:DDT   and   /TEST:DDT
         switches   when   loading  an  extended  addressing
         program.   Use  the  EXEC  command  DDT  with   the
         /USE-SECTION  switch  to merge DDT into the program
         image.

     5.  Type 1070 blocks lose the  section  number  of  the
         defining   symbol   during   processing  of  30-bit
         additive fixups.




7.0  NOTES ON .REL BLOCK RESTRICTIONS FOR COMPILER WRITERS


     1.  The .PVMEM word of the program data vector  is  not
         initialized.

     2.  Multiple  program  data   vectors   are   not   yet
         supported.

     3.  There are inconsistencies in  the  usage  of  PSECT
         indices in old and new .REL blocks.

     4.  LINK currently expects type 1120-1127 blocks to use
         routine  names that can be translated to SIXBIT and
         which are unique in the first six characters.  Also
         this  routine  name  must be a global symbol.  Type
         mismatch warnings also display only the  first  six
         SIXBIT  characters  of  the global symbol name.  No
         currently supported language is  affected  by  this
         deficiency.

     5.  The .TPLOD  bit  defined  for  the  type  1120-1127
         blocks   is   not  currently  used.   No  currently
         supported language is affected by this deficiency.

     6.  There are conflicts between the  documentation  and
         the implementation of type 1070 blocks:
          Fullword  addition  is  used  for  additive  symbol
          fixups.

          Right halfword addition is used for other  additive
          fixups.
                                                      Page 6



          Fullword fixups are done when thirty-bit fixups are
          requested.

     No currently supported language is  affected  by  these
     errors.



[ End of LINK.DOC ]