Google
 

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


         LINK.BWR: LINK Version 5.1(2030) 1 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


The following  two  problems  will  be  fixed  in  a  future
AUTOPATCH  tape.   If  you  patch  the  LINK sources keep an
unmodified copy as AUTOPATCHing LINK  requires  the  use  of
standard  sources.   The  patches described here can also be
installed using DDT.

     1.  When loading  a  FORTRAN  program  containing  SAVE
         statements   or   blank   COMMONs  LINK  will  open
         SYS:OVRLAY.REL whether or  not  /OVERLAY  has  been
         specified.  The following patch solves this problem
         as well as a variety  of  other  reported  problems
         (notably  problems in loading DBMS) and we strongly
         recommend its installation:

[Symptom]

When loading FORTRAN programs containing SAVE statements or blank
COMMONs:

1. LINK opens SYS:OVRLAY.REL even if the program being loaded doesn't
use overlays.

2. LINK gets an illegal memory reference while loading DBMS.

3. Spurious error messages mentioning overlays may be issued by LINK
even though the program being loaded doesn't use overlays.

[Diagnosis]

In order to be certain that variables in COMMON are preserved, even
for overlaid programs, the FORTRAN compiler always includes a Type
1045 block in the FORTRAN object code.  LINK interprets this block as
a request for writable overlays and sets the "writable overlay" flag
in the global OVERLW.

[Cure]

LINK should not set the bit in OVERLW when a type 1045 block is seen
unless OVERLW is already nonzero ( i.e., that /OVERLAY has been seen. )

[FILCOM]

File 1)   L5D:LNKHST.MAC[4,377]    created: 1818 20-Jan-1983
File 2)   DSK:LNKHST.MAC[4,77]     created: 1424 27-Jan-1983

1)1  SUBTTL    D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN/PY/MFB 6-Jan-83
1)   
****
2)1  SUBTTL    D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN/PY/MFB 27-Jan-83
2)   
**************
1)1  DECEVR==2030        ;DEC EDIT VERSION
1)   
****
2)1  DECEVR==2031        ;DEC EDIT VERSION
                                                      Page 3


2)   
**************
1)5  
****
2)5  ;2031     PY   27-Jan-83
2)   ;    Don't set the writable overlay bit when processing type 1045
2)   ;    blocks (FORTRAN SAVE statement) unless actually doing an
2)   ;    overlay load. Prevents undesirable searching of OVRLAY.REL
2)   ;    Routine: LNKNEW
2)   
2)   
**************


File 1)   L5D:LNKNEW.MAC[4,377]    created: 1739 06-Jan-1983
File 2)   DSK:LNKNEW.MAC[4,77]     created: 1419 27-Jan-1983

1)1  SUBTTL    D.M.NIXON/DMN/JLd/TXR/JNG/DZN/PAH/PY  6-Jan-83
1)   
****
2)1  SUBTTL    D.M.NIXON/DMN/JLd/TXR/JNG/DZN/PAH/PY  27-Jan-83
2)   
**************
1)1  DECEVR==2026        ;DEC EDIT VERSION
1)   
****
2)1  DECEVR==2031        ;DEC EDIT VERSION
2)   
**************
1)2  
1)   
****
2)2  ;2031     Don't set the writable bit in OVERLW unless actually doing overlays.
2)   
**************
1)31      IORM T1,OVERLW      ;[1704] REMEMBER THIS
****
2)31 ;**;[2031] Insert 1 Line after T.1045+4 Lines PY 27-Jan-83
2)        SKIPE     OVERLW              ;[2031] DON'T SET UNLESS DOING OVERLAYS
2)        IORM T1,OVERLW      ;[1704] REMEMBER THIS
**************
   ========



The following DDT patch accomplishes the same  thing.   Note
that  the  character  "$"  is actually an altmode or escape.
The expression "$<" causes DDT to enter patch insertion mode
and terminating each line with a linefeed will automatically
open the next word of the patch area.  After the terminating
"$>"  DDT  will  type  out  the  instructions  automatically
inserted in the body of the code to transfer to the patch.

@
@GET SYS:LINK.EXE
                                                      Page 4


@INFORMATION VERSION
 KL2137 - Gus The Languages System, TOPS-20 Monitor 5.1(5101)
 TOPS-20 Command processor 5(712)
 Program is LINK, version is 5.1(2030)
PDVs:     Program name LINK, version 5.1(2030)
@DDT
DDT

T.1045+4/   IORM 1,OVERLW   $<
PAT../   0  SKIPE OVERLW <CR>
$>

^Z
@SAVE SYS:LINK.EXE 0 700
 LINK.EXE.2 Saved
@
                                                      Page 5


 2.  Overlay users should be aware of the following  problem
     and include this patch if the problem is observed:

[Symptom]

LINK builds bad .EXE files when loading certain overlay programs. The
bad files are much smaller than a correct .EXE would be.

[Diagnosis]

A call to LS.IN is needed to map pages of the LC overflow file before
trying to write these pages.

[Cure]

Insert the call.

[FILCOM]

File 1)   LDV:LNKHST.MAC[4,151]    created: 1424 27-Jan-1983
File 2)   DSK:LNKHST.MAC[4,77]     created: 1403 04-Feb-1983

1)1  SUBTTL    D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN/PY/MFB 27-Jan-83
1)   
****
2)1  SUBTTL    D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE/MCHC/PAH/DZN/PY/MFB 3-Feb-83
2)   
**************
1)1  DECEVR==2031        ;DEC EDIT VERSION
1)   
****
2)1  DECEVR==2032        ;DEC EDIT VERSION
2)   
**************
1)5  
****
2)5  ;2032     PY   3-Feb-83
2)   ;    Allocate space in the LC overflow file before reading the
2)   ;    root node back in under TOPS-20.
2)   
2)   
**************


File 1)   L5D:LNKXIT.MAC[4,377]    created: 0955 07-Jan-1983
File 2)   DSK:LNKXIT.MAC[4,77]     created: 1348 04-Feb-1983

1)1  SUBTTL    D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN/MFB/PAH/PY/HD 6-Jan-83
1)   
****
2)1  SUBTTL    D.M.NIXON/DMN/JLd/RKH/JBC/JNG/MCHC/DZN/MFB/PAH/PY/HD 3-Feb-83
2)   
**************
1)1  DECEVR==2027        ;DEC EDIT VERSION
1)   
                                                      Page 6


****
2)1  DECEVR==2032        ;DEC EDIT VERSION
2)   
**************
1)6  
****
2)6  ;2032     Allocate space with LC.IN before reading area from .OVL file.
2)   
**************
1)9  LNKX0D:   MOVN T1,T1
1)        HRLZ T1,T1
****
2)9  ;**;[2032] Replace at LNKX0D       PY 3-Feb-82
2)   LNKX0D:                  ;[2032]
2)   IFN TOPS20,<             ;[2032]
2)        PUSH P,T1      ;[2032] SAVE THE AC
2)        MOVE T1,UW.LC  ;[2032] GET THE UPPER BOUND
2)        HRL  T1,LW.LC  ;[2032] GET THE LOWER BOUND
2)        PUSHJ     P,LC.IN## ;[2032] MAP IN THE WINDOW
2)        POP  P,T1      ;[2032] RESTORE THE AC
2)   >;[2032] IFN TOPS20
2)        MOVN T1,T1          ;[2032]
2)        HRLZ T1,T1
**************
1)9       CAMG T1,PH+PH.LLN   ;[1400] REACHED END YET?
****
2)9  ;**;[2032] Insert after LNKX0D+9 Lines PY 3-Feb-82
2)   IFE  TOPS20,<       ;[2032] DON'T BLT ON THE -20
2)        CAMG T1,PH+PH.LLN   ;[1400] REACHED END YET?
**************
1)9  LNKX0E:   HRL  T1,LW.S1  ;ORIGIN
****
2)9  ;**;[2032] Insert before LNKX0E     PY 3-Feb-82
2)   >;[2032] END IFE TOPS20
2)   LNKX0E:   HRL  T1,LW.S1  ;ORIGIN
**************
   ========



The following DDT patch accomplishes the same  thing.   Note
that  the  character  "$"  is actually an altmode or escape.
The expression "$<" causes DDT to enter patch insertion mode
and terminating each line with a linefeed will automatically
open the next word of the patch area.  After the terminating
"$>"  DDT  will  type  out  the  instructions  automatically
inserted in the body of the code to transfer to the patch.

@
@GET SYS:LINK
@INFORMATION VERSION
 KL2137 - Gus The Languages System, TOPS-20 Monitor 5.1(5101)
 TOPS-20 Command processor 5(712)
 Program is LINK, version is 5.1(2030)
PDVs:     Program name LINK, version 5.1(2030)
                                                      Page 7


@DDT
DDT

LNKX0D/   MOVN 1,1   $<
PAT../   0   PUSH P,T1<LF>
PAT..+1/   0   MOVE T1,UW.LC<LF>
PAT..+2/   0   HRL T1,LW.LC<LF>
PAT..+3/   0   PUSHJ P,LC.IN<LF>
PAT..+4/   0   POP P,T1<LF>
PAT..+5/   0   $>

LNKX0D#+12/   CAMG 1,PH+12   JFCL<LF>
LNKX0D#+13/   PJRST LNKX0E   JFCL<LF>
LNKX0D#+14/   MOVE 1,PH+12   JFCL<LF>
LNKX0D#+15/   IOR. 1,IO.PTR+16   JFCL<LF>
LNKX0D#+16/   MOVE 2,1   JFCL<LF>
LNKX0D#+17/   SUB 2,LW.LC   JFCL<LF>
LNKX0D#+20/   ADD 2,LC.LB   JFCL<LF>
LNKX0D#+21/   CAMN 2,LC.UB   JFCL<LF>
LNKX0D#+22/   PJRST LNKX0E   JFCL<LF>
LNKX0D#+23/   MOVEM 2,LC.AB   JFCL<LF>
LNKX0D#+24/   SETZM 1(2)   JFCL<LF>
LNKX0D#+25/   HRLI 2,1(2)   JFCL<LF>
LNKX0D#+26/   HRRI 2,2(2)   JFCL<LF>
LNKX0D#+27/   BLT 2,@LC.UB   JFCL<CR>
^Z
@SAVE LINK.EXE 0 700
 LINK.EXE.3 Saved
@