To be more precise, The test [.t.io]fs.t will only pass when hard links {d_link} if you set the default RMS protections to be (O:RW, G:RW, W:RW).
I think that it is a cross platform bug where the test is assuming such a default protection would be in place. I am not sure how you would want to fix this, set the default RMS protections before running the test and put them back afterward? Or special case the test for VMS to just make sure that the linked file has the same protections as the original. Also the modules utils/c2ph.pl, x2p/pl will not allow Perl to be built with hard link support unless they are modified. They are trying to create hard links from a different base filename than exists on OpenVMS. This also requires that to support hard links in Perl that the build be done on an ODS-5 volume with hard links enabled. And of course the disk that the tests are run on needs to have hard links enabled. :-) The following makes the build complete, but someone more familiar with what is really meant to be done may want to do something different. $ gdiff -u -b x2p/s2p.pl_5_8_6 x2p/s2p.pl --- x2p/s2p.pl_5_8_6 Thu Feb 10 15:22:08 2005 +++ x2p/s2p.pl Thu Feb 10 15:26:16 2005 @@ -2048,7 +2048,11 @@ unlink 'psed'; print "Linking s2p to psed.\n"; if (defined $Config{d_link}) { + if ($^O eq 'VMS') { + link 's2p.com', 'psed'; + } else { link 's2p', 'psed'; + } } else { unshift @INC, '../lib'; require File::Copy; $ gdiff -u -b utils/c2ph.pl_5_8_6 utils/c2ph.pl --- utils/c2ph.pl_5_8_6 Thu Feb 0 13:24:12 2005 +++ utils/c2ph.pl Thu Feb 10 15:23:57 2005 @@ -1437,7 +1437,11 @@ unlink 'pstruct'; print "Linking c2ph to pstruct.\n"; if (defined $Config{d_link}) { + if ($^O eq 'VMS') { + link 'c2ph.com', 'pstruct'; + } else { link 'c2ph', 'pstruct'; + } } else { unshift @INC, '../lib'; require File::Copy; Currently the diffs in the configure.com include several patches from Craig Berry and for enabling symbolic link support, which I do not have done yet. But here is the test for hard link support for 8.2. A creative person can make a test that works for 7.3-1 and 7.3-2. ... $ use64bitint = "n" +$ uselargefiles = "n" +$ usesymlinks = "n" +$ usehardlinks .... +$ config_symbols4 ="|usethreads|usevmsdebug|usefaststdio|usemallocwrap|unlink_all_versions |uselargefiles|usehardlinks|usesymlinks|" .... $ d_link = "undef" $ tmp = f$extract(1,3,f$edit(f$getsyi("VERSION"),"TRIM,COLLAPSE")) $! $! Hard link support has been present since 7.3-1 except for the $! easy to use DCL test to see if hardlinks are enabled on the build $! disk. That would require more work to test, and I am only testing $! this on 8.2. $! $ IF (usehardlinks .OR. usehardlinks .eqs. "define") $ THEN $ IF (tmp .GES. "8.2") .AND. (f$getsyi("HW_MODEL") .GE. 1024) $ THEN $ IF f$getdvi("SYS$DISK","HARDLINKS_SUPPORTED") $ THEN $ echo "Found 64 bit OpenVMS 8.2, will build with hardlink support" $ d_link = "define" $ ELSE $ echo4 "You configured with -Dusehardlinks but your build disk does not" $ echo4 "have hard links enabled. I am disabling hard link support." $ ENDIF $ ENDIF $ ELSE $ echo4 "You configured with -Dusehardlinks but your CRTL does not support" $ echo4 "hard links. I am disabling hard link support." $ usesymlinks = "undef" $ ENDIF ..... -$ WC "d_link='undef'" +$ WC "d_link='" + d_link + "'" So anyone that want's a perl that works for hard links, now has the raw information on how to build it. I do not know what issues would occur if someone tried to build perl with support for hard links on a disk that did not support it other than the two modules and the test that failed durring my initial attempts. -John [EMAIL PROTECTED] Personal Opinion Only