At 3:52 PM -0700 9/12/02, [EMAIL PROTECTED] wrote: > > Thanks; let us know what they say. > >What they said was "use the backport library". It turns out that there is >a file called sys$library:decc$crtl.readme (and .exe and .obj) distributed >with recent compilers. To my unfamiliar mind it seems like a Good Thing. >I'd be happy to try it out if you need a test case.
Sigh. Totally useless and irrelevant, I'm afraid. The backport library *is* a good thing, but it only applies to distributing object code and/or images, not to distributing source code that must compile on a widely varying set of C RTL version, compiler version, and VMS version combinations. The question is not, "How do I distribute a binary that depends on a newer function in the C RTL?" but rather "How do I know at compile time whether a newer function is available in the C RTL I've got?". And not just "newer function" in general, but __vms_waitpid in particular. What value of __CRTL_VER do I need to have in order to know I can use __vms_waitpid? The value of __CRTL_VER supplied with the compiler in wait.h (70100322 as of CC 6.5) is incorrect. We know this because someone on OpenVMS Alpha v7.2-1H2 has __CRTL_VER = 70110822 but does *not* have __vms_waitpid. I'll probably just have to bump up the version we check for to 70200000 but I'd prefer to know the exact number if anyone can come up with it. Thanks for trying, Paul. > > Bummer. What does it take to make that happen. Will this do it? > >Alas, no. There needs to actually be some children about. The test does >show that the default behavior is different: > >perl 5.6.1: > >agent_system$ perl -"MPOSIX" -e "waitpid(-1,&WNOHANG); print $^E;" > ...long pause... >Fatal VMS error (status=2472) at PERLKIT:[SOURCE]VMS.C;1, line 2292 at -e >line 1. >%SYSTEM-W-NOMOREPROC, no more processes > >perl 5.8.0: > >agent_system$ perl -"MPOSIX" -e "waitpid(-1,&WNOHANG); print $^E;" > ...neglagable pause... >%C-F-ECHILD, no children > >Unfortunately, I just wiped the perl-5_8_0*... directories and >re-installed. And now I'm getting: Check your perl_root definition. Other than that I'm not sure what could be going on. -- ________________________________________ Craig A. Berry mailto:[EMAIL PROTECTED] "... getting out of a sonnet is much more difficult than getting in." Brad Leithauser
