On Monday, January 31, 2005, at 08:39AM, John E. Malmberg <[EMAIL PROTECTED]> wrote:
>I Would expect that it should be a reasonable restriction in at least >the short term if not longer, that the CONFIGURE.COM and build scripts for >Perl protect them selves from DECC$ feature logicals that prevent them >from building. They do, kinda. At least in the case of DECC$EFS_CASE_PRESERVE, we ignore it and unversally downcase names like the old CRTL behavior, so everything based on that assumption still works. If we try to honor case preservation, then we have to modify everything that depends on case-leveled names. >After all, the DECC$ feature logicals will affect the >build now even with out the patches. Some of them might. For case preservation, see above, but there are now lots of feature logicals and I can guarantee I've never done tests with all of them enabled. >My assigned task now is to get a build of perl that when run under GNV >will act like it is running on UNIX, with symlink support. It seems that >a number of open source projects now require this. > >I think that most of the symlink related routines are already in the >CRTL now in 7.3-2 and possilbly earlier, except that they will return an >error if a symlink is attempted to be created with them, and they will >always return the status of no symlinks being present. So your task should consist of locating the line in configure.com that says: $ WC "d_symlink='undef'" change it to $ WC "d_symlink='" + d_symlink + "'" and work backwards from there to define the d_symlink DCL symbol when the capability is truly present in the local CRTL. You'll need to create a small test program, traditionally called try.c, build it, and see if it works. Look for "d_fcntl_can_lock" as an example. (Incidentally, d_fcntl_can_lock should be defined for the first time under VMS v8.2, but I have not attempted to verify this.) The change to configure.com may be all that's required. >So programs that do not need to create symlinks or can tolerate that failing >should be able to be built now and still work properly when run on a OpenVMS >system that supports symlinks. Anything in Perl that appropriately checks for $Config{d_symlink} will know whether the capability is present. >One question that I have is if the Perl self tests will add symlink tests to >what it runs if I enable the build of symlink support. I suppose that I will >find out soon. It may not be done consistently. Tests that check for $Config{d_symlink} should require no modification. There may well be some, though, that skip on VMS without checking this. You can find out pretty quickly what tests are relevant by doing the following search from the top of the Perl source tree: $ search [...]*.t symlink Holler if you need further help.