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

Reply via email to