Google
 

Trailing-Edge - PDP-10 Archives - dec-10-omona-u-mc9 - lnk572.pco
There are no other files named lnk572.pco in the archive.
Digital Equipment Corporation       26-JAN-77    Page   1
PCO Log Report



                   *********************
                   *PCO #:10-LINK  -194*
                   *********************


[Program Data]          System:   LINK-1
                        Component:LINK

[Validity]         3A(560)

[Date Entered]          20-SEP-76

[Programmer]            GILBERT

[Routines]              LNKOLD    LNKLOD

[Key Words]             POLISH      BAD CORE I  SYMBOL FIX

[Source Before Edit]    %3B  (000571)

[Source After Edit]     %3B  (000572)

[Test File Data]            :           [        ]

[Miscellaneous]         DOC changes:   N
                        SER/SPR Number:10-NONE
                        Critical:      N


************************************************************************

[Notes]
Digital Equipment Corporation       26-JAN-77    Page   2
PCO Log Report

[PCO Write-up]



                        **********


[SYMPTOM]
 
 
 
 
     Random words of the loaded core image can be  incorrect
when  LINK  is  loading  a program in a restricted amount of
core.  If the program is being loaded with symbols, then the
errors  will  appear  in  pairs.   The  value  field of some
symbols will be incorrect (usually zero), and the  value  of
the  symbol  will  have  been deposited in some other random
word in memory.
 

                        **********


[DIAGNOSIS]
 
     When  a  POLISH  string  which  defines  a  symbol   is
evaluated,  an  attempt  is  made  to store the value of the
now-defined symbol in the local symbol table.  This  attempt
is made without properly checking whether or not the address
in the local symbol table to be modified has been paged  out
to  disk.  If it has, the store will go to a random location
in memory, and the local symbol table will never  get  fixed
up.
 

                        **********


[CURE]
 
     Delete the code to handle  symbol  definitions  in  the
POLISH  processor,  and  instead  call the common code which
handles non-POLISH symbol fixups and already makes  all  the
right  checks.   Note  that  this  edit deletes a routine to
which a patch was made by edit 567.
 
 
Digital Equipment Corporation       26-JAN-77    Page   4
PCO Log Report


[FILCOM]
File 1)	DSK:LNKHST.571	created: 1607 20-SEPT-1976
File 2)	DSK:LNKHST.MAC	created: 1607 20-SEPT-1976
 
1)1	;SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE	19-Sep-76
1)	;***COPYRIGHT (C) 1973, 1974, 1975, 1976  DIGITAL EQUIPMENT CORP
	., MAYNARD, MASS.***
****
2)1	;SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE	20-Sep-76
2)	;***COPYRIGHT (C) 1973, 1974, 1975, 1976  DIGITAL EQUIPMENT CORP
	., MAYNARD, MASS.***
**************
1)1	DECEVR==571		;DEC EDIT VERSION
1)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
****
2)1	DECEVR==572		;DEC EDIT VERSION
2)	LNKVER==<BYTE(3)CUSTVR(9)DECVER(6)DECMVR(18)DECEVR>
**************
2)4	;572	JNG	20-Sep-76	QAR EVS
2)4	;	Make sure LS addr in core before doing POLISH symbol fix
	up.
2)4	;	Routines: LNKLOD,LNKOLD
 
Digital Equipment Corporation       26-JAN-77    Page   5
PCO Log Report


[FILCOM]
File 1)	DSK:LNKLOD.561	created: 1540 20-SEPT-1976
File 2)	DSK:LNKLOD.MAC	created: 1606 20-SEPT-1976
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE	19-Jul-76
1)	;***COPYRIGHT 1973, 1974, 1975, 1976  DIGITAL EQUIPMENT CORP., M
	AYNARD, MASS.***
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/JBC/RKH/JNG/DCE	20-Sep-76
2)	;***COPYRIGHT 1973, 1974, 1975, 1976  DIGITAL EQUIPMENT CORP., M
	AYNARD, MASS.***
**************
1)1	DECEVR==561		;DEC EDIT VERSION
1)	VERSION
****
2)1	DECEVR==572		;DEC EDIT VERSION
2)	VERSION
**************
1)5	SUBTTL	LOAD CONTROL
****
2)4	;572	Make sure LS addr in core before doing fixups
2)5	SUBTTL	LOAD CONTROL
**************
1)34		HRRZ	W3,2(P1)	;[543] AND FIXUP VALUE
1)		PUSHJ	P,SY.AST	;[543] SET 2(T1) TO REAL VALUE
****
2)34	;**;[572] Change @ SYSTF3+1P3L	JNG	20-Sep-76
2)		MOVE	W3,2(P1)	;[572] AND FIXUP VALUE
2)		PUSHJ	P,SY.AST	;[543] SET 2(T1) TO REAL VALUE
**************
1)35		SKIPE	T1		;[543] ANY LS TRIPLET?
1)		IORM	T4,0(T1)	;[543] YES, SET MULTIPLY DEFINED
****
2)35	;**;[572] Replace @ SYSTFL+8L	JNG	20-Sep-76
2)		HRRZ	T2,W3		;[572] GET RELATIVE LS ADDRESS
2)		JUMPE	T2,CPOPJ	;[572] GIVE UP IF NONE
2)		CAML	T2,LW.LS	;[572] IS IT STILL IN CORE?
2)		IORM	T4,0(T1)	;[543] YES, SET MULTIPLY DEFINED
**************
1)35		MOVE	T1,T2		;[543] STORE FOR SKIPE ON RETURN
1)		JUMPE	T2,CPOPJ	;[543] FORGET IT IF NOT IN LOCAL
	 TABLE
****
2)35	;**;[572] Delete @ SYSTF4+1L	JNG	20-Sep-76
2)		JUMPE	T2,CPOPJ	;[543] FORGET IT IF NOT IN LOCAL
	 TABLE
**************
1)35		HRRZ	W3,2(P1)	;[543] W3 IS ADDITIVE DEFINITION
1)		PJRST	SY.AST		;[543] GO FIXUP LS TRIPLET
****
2)35	;**;[572] Change @ SYSTF4+15L	JNG	20-Sep-76
Digital Equipment Corporation       26-JAN-77    Page   6
PCO Log Report


2)		MOVE	W3,2(P1)	;[572] W3 IS ADDITIVE DEFINITION
2)		PJRST	SY.AST		;[543] GO FIXUP LS TRIPLET
**************
 
Digital Equipment Corporation       26-JAN-77    Page   7
PCO Log Report


[FILCOM]
File 1)	DSK:LNKOLD.571	created: 1544 20-SEPT-1976
File 2)	DSK:LNKOLD.MAC	created: 1545 20-SEPT-1976
 
1)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE	19-Sep-76
1)	;***COPYRIGHT 1973, 1974, 1975, 1976  DIGITAL EQUIPMENT CORP., M
	AYNARD, MASS.***
****
2)1	SUBTTL	D.M.NIXON/DMN/JLd/RKH/JBC/JNG/DCE	20-Sep-76
2)	;***COPYRIGHT 1973, 1974, 1975, 1976  DIGITAL EQUIPMENT CORP., M
	AYNARD, MASS.***
**************
1)1	DECEVR==571		;DEC EDIT VERSION
1)	;LOCAL ACC DEFINITIONS
****
2)1	DECEVR==572		;DEC EDIT VERSION
2)	;LOCAL ACC DEFINITIONS
**************
1)5	COMMENT	\
****
2)4	;572	Make sure LS addr in core before doing POLISH symbol fix
	up
2)5	COMMENT	\
**************
1)78		HRRZ	T2,(W3)		;GET THE VALUE TYPE
1)		CAIGE	W1,-3		;SYMBOL TABLE FIXUP?
1)		PUSHJ	P,T11STF	;YES, DO ALL WORK TO MAKE FIXUPS
	 APPEAR
1)		  ILDB	T2,W2		;GET THE ADDRESS (IF NOT SYMBOL
	FIXUP)
1)		MOVE	W3,-1(W3)	;GET THE VALUE AFTER IGNORING TH
	E FLAG
****
2)78	;**;[572] Delete @ T.11ST+3L	JNG	20-Sep-76
2)		ILDB	T2,W2		;[572]  GET CORE ADDR OR GS POIN
	TER
2)		MOVE	W3,-1(W3)	;GET THE VALUE AFTER IGNORING TH
	E FLAG
**************
1)79	;T1 = ADDRESS OF SYMBOL IN LOCAL TABLE
1)	;T2 = ADDRESS OF SYMBOL IN GLOBAL TABLE
****
2)79	;T2 = ADDRESS OF SYMBOL IN GLOBAL TABLE
**************
1)79	;T3 = FLAGS
1)	;W1 = FIXUP FLAGS
1)	T11SYR:	MOVX	T3,PS.UDR	;[445]
1)		MOVX	W1,FS.FXR	;[445]
1)		JRST	SY.ASP		;[445] AND DO FIXUP
1)	T11SYL:	MOVX	T3,PS.UDL	;[445]
1)		MOVX	W1,FS.FXL	;[445]
Digital Equipment Corporation       26-JAN-77    Page   8
PCO Log Report


1)		JRST	SY.ASP		;[445]
1)	T11SYF:	MOVX	T3,PS.UDF	;[445]
1)		MOVX	W1,FS.FXF	;[445]
1)		JRST	SY.ASP		;[445]
1)	T11PSF:	.ERR.	(MS,,V%L,L%W,S%W,PSF,<Polish symbol fixups not y
	et implemented>)
****
2)79	;W1 = FIXUP FLAGS
2)	;**;[572] Delete @ T11SYR	JNG	20-Sep-76
2)	T11SYR:	MOVX	W1,FS.FXR	;[445]
2)		JRST	SY.ASP		;[445] AND DO FIXUP
2)	T11SYL:	MOVX	W1,FS.FXL	;[445]
2)		JRST	SY.ASP		;[445]
2)	T11SYF:	MOVX	W1,FS.FXF	;[445]
2)	;	JRST	SY.ASP		;[445]
2)	;HERE TO STORE SYMBOL TABLE FIXUP
2)	SY.ASP:	ILDB	T1,W2		;[572] PICK UP LOCAL POINTER
2)		HRL	T1,T2		;[572] FORM STANDARD GLOBAL,,LOC
	AL
 
 
2)		PUSH	P,T1		;[572] SAVE OVER GS.GET
2)		MOVEI	T2,.L		;[572] SET UP FAKE DEFINING TRIP
	LET
2)		PUSHJ	P,GS.GET##	;[572]   IN GS AREA SO CAN USE S
	Y.STF
2)		MOVE	P1,T1		;[572] P1=ADDR OF FAKE DEFINING
	TRIPLET
2)		MOVX	T1,PT.SGN!PT.SYM!PS.GLB	;[572] SOME GOOD FLAGS
2)		MOVEM	T1,0(P1)	;[572] SET IN TRIPLET
2)					;[572] LEAVE NAME BLANK TO CATCH
	 ERRORS
2)		MOVEM	W3,2(P1)	;[572] STORE POLISH RESULT AS VA
	LUE
2)		POP	P,W3		;[572] W1=FLAGS, W3=PTR, P1=DEF.
	 TRPLET
2)		PUSHJ	P,SY.STF##	;[572] DO ALL NECESSARY SYMBOL F
	IXUPS
2)		MOVE	T1,P1		;[572] NOW RETURN FAKE BLOCK
2)		MOVEI	T2,.L		;[572] T1=ADDR, T2=LENGTH
2)		PJRST	GS.RET##	;[572] FREE IT UP AND RETURN
2)	T11PSF:	.ERR.	(MS,,V%L,L%W,S%W,PSF,<Polish symbol fixups not y
	et implemented>)
**************
1)79	T11STF:	ILDB	T2,W2		;[445] GET GLOBAL POINTER
1)		ILDB	T1,W2		;[445] GET LOCAL POINTER
1)		JUMPE	T1,.+3		;[445] LEAVE 0 ALONE (SHOULD NOT
	 HAPPEN)
1)		ADD	T1,LS.LB	;[445] RELOCATE
1)		SUB	T1,LW.LS	;[445] IN WINDOW
1)		SKIPE	T2		;[445] LEAVE 0 ALONE
Digital Equipment Corporation       26-JAN-77    Page   9
PCO Log Report


1)		ADD	T2,NAMLOC	;[445] RELOCATE
1)		JRST	CPOPJ1		;AND ALWAYS SKIP RETURN
1)80	REPEAT 0,< ;WAITING FOR A DEVELOPMENT RELEASE
****
2)79	;**;[572] Delete T11STF routine	JNG	20-Sep-76
2)80	REPEAT 0,< ;WAITING FOR A DEVELOPMENT RELEASE
**************
1)81	;HERE FOR POLISH SYMBOL TABLE FIXUP
1)	SY.ASP:	JUMPE	T1,SYASP0	;[445] CLEAR LOCAL UNLESS NOT TH
	ERE
1)		ANDCAM	T3,0(T1)	;[445] CLEAR FLAG IN MEMORY, SET
	 IN ACC
1)	SYASP0:	JUMPE	T2,SYASP1	;[445] SAME FOR GLOBAL TABLE
1)	;**;[567] Delete @ SYASP0+1L	JNG	21-Jul-76
1)		ANDCAM	T3,0(T2)	;[445] IF SET
1)	SYASP1:	JUMPE	T1,SYASPG	;[445] NO LOCAL, ONLY GLOBAL
1)		PUSH	P,W1		;[445] SAVE FIXUP FLAGS
1)		PUSH	P,T2		;[445] SAVE T2
1)		MOVE	T2,W1		;[445] PUT FLAGS IN T2
1)		PUSHJ	P,SY.AST##	;[445] FIXUP EITHER RH OR LH OF
	SYMBOL IN T1
1)		POP	P,T2		;[445] RESTORE IT
1)		POP	P,W1		;[445] AND FIXUP FLAGS
1)	SYASPG:	JUMPE	T2,CPOPJ	;[445] NOT GLOBAL, RETURN
1)		PUSH	P,W1		;[445] STORE FLAGS UNTIL P1/P2 S
	ETUP
1)		DMOVE	W1,0(T2)	;[445] FLAGS & SYMBOL
1)		TXNN	W1,PT.EXT	;[445] EXTENDED SYMBOL?
1)		JRST	SYASPS		;[445] NO
1)		MOVE	T1,.L(T2)	;[445] YES, BUT WE ONLY CARE ABO
	UT LONG NAMES HERE
1)		TXNE	T1,S.SYM	;[445]
1)		TXNN	T1,S.NAM	;[445] SO IGNORE COMMON, ETC
1)		JRST	[TXZ	W1,PT.EXT	;[445] NOT EXTENDED NAME
1)			JRST	SYADSS]		;[445] SO REMOVE FLAG
1)	IFE .EXSYM,<
1)		.ERR.	(MS,,V%L,L%F,S%F,ESN)>
1)		HRRZ	W3,T2		;[445] POINT TO SYMBOL
1)	SYASPS:	PUSHJ	P,TRYSYM##	;[445] SETUP P1 & P2
1)		  HALT			;[445] MUST BE DEFINED
 
 
1)		  JFCL			;[445]
1)		MOVE	T1,P1		;[445] POINT TO SYMBOL TRIPLET
1)		POP	P,T2		;[445] FIXUP FLAGS
1)		PJRST	SY.AS0##	;[445] GO DO THE VALUE FIXUP
1)					;[445] AND ANY CHAINING DEPENDIN
	G UPON THIS SYMBOL
1)82	;HERE IF FAIL INNER BLOCK LABELED LITERALS
****
2)81	;**;[572] Delete SY.ASP routine	JNG	20-Sep-76
Digital Equipment Corporation       26-JAN-77    Page  10
PCO Log Report


2)	;HERE IF FAIL INNER BLOCK LABELED LITERALS
**************

[End PCO Write-up]