ken@HAMLET.CALTECH.EDU.UUCP (07/04/86)
The V4.4 VAXCRTL contains a new chdir() call which uses
SYS$CRELNM to create the logical name SYS$DISK instead of SYS$CRELOG.
Unfortunately, it does this with the LNM$M_CONCEALED bit set in the
LNM$_ATTRIBUTES. This creates all sorts of misbehavior as the resulting
default directory is apparently illegal.
Repeat by: set default directory to FOO:[DIR] where FOO is a
rooted directory (i.e. FOO -> DRA0:[xxx.]/TRAN=(CONC,TERM). Create
the directory FOO:[DIR.BAR]. Write a short C program which does a
chdir("[.bar]"); followed by a lib$spawn(). Compile and run it. From
the subprocess, type "SHOW DEFAULT". Your default directory should be
something like "_FOO:[DIR.BAR]".
Fix by: The following command file patches all three copies of
the chdir() call in the C runtime libraries so that the LNM$_CONCEALED
attribute is not set. This works for VMS V4.4 only and I recommend
that you put the backup copies of the libraries/images back in place
before installing VMS V4.5.
DECies: please forward to the appropriate development team;
I probably will not find time to SPR. [I will ignore flames on this
matter.]
-----cut here-----
$ SET DEF SYS$COMMON:[SYSLIB]
$ COPY VAXCRTL.EXE VAXCRTL.EXE-DEC
$ COPY VAXCRTLG.EXE VAXCRTLG.EXE-DEC
$ COPY VAXCRTL.OLB VAXCRTL.OLB-DEC
$ LIBRARY/EXTRACT=C$VAXCIO/OUTPUT=C$VAXCIO.OBJ VAXCRTL.OLB
$ PATCH/ABS C$VAXCIO.OBJ
VERIFY/INST 0AA8
'TSTL B^0FC(FP)'
'BNEQ 00000AEC'
'MOVL #00000200,-(SP)'
'CLRQ -(SP)'
'MOVL B^04(R2),-(SP)'
'MOVW #02,-(SP)'
'CVTLW (R2),-(SP)'
'CLRL -(SP)'
'PUSHAL B^14(SP)'
'MOVW #03,-(SP)'
'MOVW #04,-(SP)'
'MOVL SP,R2'
'PUSHAB W^000008EC'
'PUSHL #08'
'MOVL SP,R1'
'PUSHAL (R2)'
'PUSHL #00'
'PUSHAQ (R1)'
'PUSHAQ W^000008F5'
'PUSHL #00'
'
EXIT
REPLACE/I 0AAD
'MOVL I^#200,-(SP)'
EXIT
'MOVL I^#0,-(SP)'
EXIT
UPDATE
EXIT
$ LIBRARY VAXCRTL.OLB C$VAXCIO.OBJ
$ DELETE C$VAXCIO.OBJ;*
$ PATCH VAXCRTL.EXE
VERIFY/INST 13F4
'TSTL B^0FC(FP)'
'BNEQ 00001438'
'MOVL #00000200,-(SP)'
'CLRQ -(SP)'
'MOVL B^04(R2),-(SP)'
'MOVW #02,-(SP)'
'CVTLW (R2),-(SP)'
'CLRL -(SP)'
'PUSHAL B^14(SP)'
'MOVW #03,-(SP)'
'MOVW #04,-(SP)'
'MOVL SP,R2'
'PUSHAB W^00001238'
'PUSHL #08'
'MOVL SP,R1'
'PUSHAL (R2)'
'PUSHL #00'
'PUSHAQ (R1)'
'PUSHAQ W^00001241'
'PUSHL #00'
EXIT
REPLACE/INST 13F9
'MOVL I^#200,-(SP)'
EXIT
'MOVL I^#0,-(SP)'
EXIT
UPDATE
EXIT
$ PATCH VAXCRTLG.EXE
VERIFY/INST 2360
'TSTL B^0FC(FP)'
'BNEQ 000023A4'
'MOVL #00000200,-(SP)'
'CLRQ -(SP)'
'MOVL B^04(R2),-(SP)'
'MOVW #02,-(SP)'
'CVTLW (R2),-(SP)'
'CLRL -(SP)'
'PUSHAL B^14(SP)'
'MOVW #03,-(SP)'
'MOVW #04,-(SP)'
'MOVL SP,R2'
'PUSHAB W^000021A4'
'PUSHL #08'
'MOVL SP,R1'
'PUSHAL (R2)'
'PUSHL #00'
'PUSHAQ (R1)'
'PUSHAQ W^000021AD'
'PUSHL #00'
EXIT
REPLACE/INST 2365
'MOVL I^#200,-(SP)'
EXIT
'MOVL I^#0,-(SP)'
EXIT
UPDATE
EXIT