At 9:52 PM -0700 4/21/04, Douglas B Rupp wrote: > >I recently joined the mailing list. I did a quick search of the archive but >couldn't find any relevant information on the problem.
Welcome. >Recently Gcc changed from requiring autoconf version 2.13 to version 2.57. Very interesting. So gcc on VMS is under active development? >The latter version uses Perl. So far I've run into two problems with the >Perl "system" function. One is stderr can't be redirected properly, Define "properly". What do you want it to do and what does it do instead? >another >is long command lines don't work. I suspect "system" is implemented with >lib$spawn? Yes, system is implemented via lib$spawn, so as far as I know, there's no way around DCL command line limits. You can see the implementation in the Perl_do_spawn() function in [.vms]vms.c in the Perl sources. >I believe that a better solution would be for "system" to look at the >program(s) being executed, and if they are CRTL based executables then >vfork/exec should be used, otherwise falling back to lib$spawn. This is what >my ports of bash and Gnu make do, and it works quite well. That's intriguing. I take it by a "CRTL based executable" you mean one that calls DECC$CRTL_INIT? How do you determine that at run time? Also, you seem to be suggesting that vfork/exec do not use lib$spawn. Any idea how they create a subprocess if they don't do that? >Please let me know if perhaps this has already been implemented, or if >someone has a patch that does this, or failing that suggestions or opinions >on how easy this would be to do. Patches are welcome, but an overhaul of system() does not sound particularly easy, so I would like to understand a bit more about how your approach works. Are the bash or make implementations you mention above open source? -- ________________________________________ Craig A. Berry mailto:[EMAIL PROTECTED] "... getting out of a sonnet is much more difficult than getting in." Brad Leithauser