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