Trailing-Edge
-
PDP-10 Archives
-
bb-d868e-bm_tops20_v41_2020_dist_1of2
-
4-1-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
1.0 KNOWN LINK PROBLEMS
The following known problems may be fixed in a future
release of LINK. Where possible we have suggested a patch
or workaround for the problem.
1. 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.
2. When loading a FORTRAN program LINK will open
SYS:OVRLAY.REL whether or not /OVERLAY has been
specified. The following patch solves this
problem, and its installation is recommended.
Page 3
[Symptom]
When loading FORTRAN programs LINK opens SYS:OVRLAY.REL even if the
program being loaded doesn't use overlays.
[Diagnosis]
In order to be certain that values 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
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
Page 4
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
**************
========
Page 5
3. Under certain conditions a .LOG file may be opened but
not closed ( thereby losing it ).
4. An illegal memory reference may occur when LINK is
writing a line printer format overlay plot. The
following patch fixes this problem.
Page 6
[Symptom]
When spooling an overlay plot to the line printer LINK gets
an illegal memory reference.
[Diagnosis]
In PLTIO the code uses DIGITS to determine when it has
finished processing a buffer of data. DIGITS is not
correctly initialized.
[Cure]
Replace the SETZ DIGITS at DECPLT (or global NUMBER+71) with
SETZM DIGITS in the module PLTIO.MAC.
[FILCOM]
; BASIC:<LINK.V5M>PLTIO.MAC.1 & PLTIO.MAC.4 28-Jan-83 0903
LINE 18, PAGE 1
1) DECEVR==1220 ;DEC EDIT VERSION
1) ^L
LINE 18, PAGE 1
2) DECEVR==1544 ;DEC EDIT VERSION
2) ^L
LINE 8, PAGE 2
1) ^L
LINE 8, PAGE 2
2) ;1544 Change SETZ at DECPLT to a SETZM.
2) ^L
LINE 55, PAGE 24
1) DECPLT: SETZ DIGITS
1) DECP3: IDIVI R1,12
LINE 55, PAGE 24
2) DECPLT: SETZM DIGITS ;[1544] Zero DIGITS
2) DECP3: IDIVI R1,12
========
Page 7
2.0 EXTENDED ADDRESSING PATCHES
1. If a program being loaded into a nonzero section
has many symbols, the ?LNKMEF Memory Expansion
Failure error may occur. The following two patches
are recommended for users of extended addressing;
they will be included in a future AUTOPATCH tape.
Page 8
[Symptom]
Link may die with a ?LNKMEF error when loading an extended
addressing program with lots of local symbols.
[Diagnosis]
At LDCR6C, LW.LC is converted to pages, and NONZER is added.
Since LW.LC already contained the section number, the
section is double the one actually desired. The PMAP will
probably fail, or else will bring in the wrong pages
corrupting the core image. A similar calculation is done at
LDCOR7+41.
[Cure]
Remove the two lines at LDCR6C+26 and at LDCOR7+41 in
LNKCOR.
[FILCOM]
File 1) DSK:LNKCOR.OLD[4,27] created: 1943 06-Jan-1983
File 2) DSK:LNKCOR.MAC[4,27] created: 1536 11-Jan-1983
1)10 SKIPGE T1 ;[1412] REALLY A JFN?
1) ADD T1,NONZER ;[1412] NO, ADD IN SECTION NUMBER
1) POP P,T3 ;[1401] PUT COUNT BACK
****
2)10 ;**;[1542] Remove 2 lines at LDCR6C+26. PAH 11-Dec-82
2) POP P,T3 ;[1401] PUT COUNT BACK
**************
1)11 SKIPGE T1 ;[1412] REALLY A JFN?
1) ADD T1,NONZER ;[1412] NO, ADD SECTION NUMBER
1) MOVE T2,(P) ;[1401] GET COUNT BACK, BUT KEEP IT
****
2)11 ;**;[1542] Remove 2 lines at LDCOR7+41. PAH 11-Dec-82
2) MOVE T2,(P) ;[1401] GET COUNT BACK, BUT KEEP IT
**************
========
Page 9
[Symptom]
LINK cannot load large extended addressing programs, that is
ones with large numbers of symbols, even if the code at
LDCR6C+26 Lines is fixed. LINK dies with an ?LNKMEF error
when it tries to overflow the LS area to disk.
[Diagnosis]
LS.OUT is called to dump the LS area to disk for the first
time. It in turn calls OVF.OU to do the actual work.
OVF.OU checks EXTFLG, and finding it set, determines that it
should map out the window ( since this flag signals that a
nonzero section is mapped ). Since the LS pages are
private, this destroys the entire LS area. Moreover, LS.IN
is called after LS.OUT to bring back a window. LS.IN calls
NEWSCT, which sees that EXTFLG is set, and determines that
it should check for the existance of the section specified
by NONZER. LS.IN has carefully zeroed NONZER, so NEWSCT
checks for the existance of section zero. Not having it in
the table, it tries to do an SMAP, which fails.
[Cure]
Don't rely only on EXTFLG in LS.OUT or in NEWSCT when LS.IN
is called.
[Filcom]
File 1) 5M:LNKCOR.MAC[4,275] created: 1148 25-Jan-1983
File 2) X3:LNKCOR.MAC[4,27] created: 1714 25-Jan-1983
1)1 DECEVR==1542 ;DEC EDIT VERSION
1) SEGMENT
****
2)1 DECEVR==1543 ;DEC EDIT VERSION
2) SEGMENT
**************
1)5 SUBTTL SIMPLE TESTS FIRST
****
2)4 ;1543 Avoid using EXTFLG when calling LS.OUT or NEWSCT.
2)5 SUBTTL SIMPLE TESTS FIRST
**************
1)47 > ;[1536] END IFN FTFRK2
****
2)47 ;**;[1543] Add two lines at %AREA'.OUT+6. PAH 25-Jan-83
2) PUSH P,EXTFLG ;[1543] SAVE EXTFLG
2) SETZM EXTFLG ;[1543] AND ZERO IT
2) > ;[1536] END IFN FTFRK2
**************
1)47 POP P,NONZER ;[1536]
****
2)47 ;**;[1543] Add 1 line at %AREA'.OUT+16. PAH 25-Jan-83
2) POP P,EXTFLG ;[1543] RESTORE EXTFLG
Page 10
2) POP P,NONZER ;[1536]
**************
1)53 > ;[1536] IFN FTFRK2
****
2)53 ;**;[1543] Add 2 lines at %AREA'.IN+7. PAH 12-Jan-83
2) PUSH P,EXTFLG ;[1543] ZERO OUT EXTFLG
2) SETZM EXTFLG ;[1543] TO AVOID TOUCHING LC SECTIONS
2) > ;[1536] IFN FTFRK2
**************
1)53 POP P,NONZER ;[1536]
****
2)53 ;**;[1543] Add 1 line at %AREA'.IN+14. PAH 12-Jan-83
2) POP P,EXTFLG ;[1543] PUT BACK LC SECTION FLAG
2) POP P,NONZER ;[1536]
**************
Page 11
[End of LINK.BWR]