develooper Front page | perl.vmsperl | Postings from June 2002

Re: Problem building 5.8.0-RC2 with logical name "UTIL" defined

Thread Previous | Thread Next
Craig A. Berry
June 27, 2002 07:48
Re: Problem building 5.8.0-RC2 with logical name "UTIL" defined
Message ID:
[this mysteriously did not reach the list yesterday so I'm sending again]

At 06:03 PM 6/26/2002 +0200, Eduardo Abreu wrote:

>I found another dangerous logical name when building 5.8.0-RC2 on my test 
>system :
>        "UTIL" conflicts with the build of the List/Util extension.

>I first checked there's no such file in the TAR file, then I examined the
>DESCRIP.MMS file in [.EXT.LIST.UTIL]. It was a very large file (1055 blocks)
>with huge TO_INST_PM and PM_TO_BLIB lists starting with
>TO_INST_PM = [.Util.calcul]add. [.Util.calcul]add1. [.Util.calcul]add8. [.Util.calcul]alpha. \
>        [.Util.calcul]at.for [.Util.calcul]bascng.for [.Util.calcul]blank. [.Util.calcul]block.for \
>PM_TO_BLIB = [.Util.vim.doc]editing.txt [---.lib.List.Util.vim.doc]editing.txt [.Util.unzip.macos.source]macbin3.h \
>        [---.lib.List.Util.unzip.macos.source]macbin3.h [] [] \

Yup, I saw this with DBD::Sybase once; it had translated the SYBASE logical 
name and collected a list of all the files in my Sybase installation.  
Needless to say, do NOT run the clean or realclean targets through MMK.

>Those files are nowhere in the Perl distribution, they are on my system disk
>in directory SYS$SYSDEVICE:[UTIL].  As this directory contains several
>utilities, I have a "$ DEFINE UTIL SYS$SYSDEVICE:[UTIL]" in my SYLOGIN.COM. 
>It turns out this logical badly affects the execution of "perl"
>for List/Util.  
>Is this a problem in MakeMaker ?
>After a "$ DEASSIGN UTIL", I restarted the build and it ran to completion
>without other errors.

Your analysis is correct, and yes, it is a general problem with MakeMaker.  
More precisely, I believe it is a problem with File::Find, a module 
MakeMaker depends on to locate files.  IIRC it takes a directory spec like 
[] and does an opendir() on each of "foo", "bar", and "baz" in 
turn, which on VMS invokes logical name translation if any of those is a 
logical name.  This can and does send you way off course if the logical 
points to a directory elsewhere.

Clearly fixing File::Find is the way to go eventually.  It's a long and 
complicated module and I don't see anything happening on that before 5.8.0 
is released, though if someone comes up with a 3-line fix do speak up.  
Perhaps the best we can do for now is identify the things under [.ext] that 
are most likely to collide with existing logical names.  Here's what I see 
right off:


Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About