On Mon, Dec 26, 2005 at 12:25:54PM -0600, Steve Peters wrote:

> >From my quick and dirty test, it appears that the cd's in a GNU make are in
> effect for the current command, but you are implicitly returned to your
> start directory after the completed command.  BSD doesn't return you back to
> your starting directory.  Looking at the OpenBSD make(1) manpage, I got a 
> hint to the fix.
> 
>      -j max_jobs
>              Specify the maximum number of jobs that make may have running at
>              any one time.  Turns compatibility mode off, unless the -B flag
>              is also specified.
> 
> So, after running "make -j2 -B disttest" everything compiled just fine.  Check
> the FreeBSD make manpage to see if there is a similar "-B" flag.  That 
> might be the fix you're looking for.

There is a -B flag.

However, I found that the following change stops the nested make thinking
that it should be running with -j, and everything passes:

Change 26499 by [EMAIL PROTECTED] on 2005/12/27 00:29:33

        Removing MAKE_JOBS_FIFO from %ENV causes FreeBSD make to forget about
        any -j flags. (And their implied disabling of backwards compatibility,
        which is the real cause of the make disttest failure).

Affected files ...

... //depot/perl/lib/ExtUtils/t/basic.t#20 edit

Differences ...

==== //depot/perl/lib/ExtUtils/t/basic.t#20 (text) ====

@@ -25,7 +25,7 @@
 
 # 'make disttest' sets a bunch of environment variables which interfere
 # with our testing.
-delete @ENV{qw(PREFIX LIB MAKEFLAGS)};
+delete @ENV{qw(PREFIX LIB MAKEFLAGS MAKE_JOBS_FIFO)};
 
 my $perl = which_perl();
 my $Is_VMS = $^O eq 'VMS';


I hope that this also helps other *BSD makes.

Nicholas Clark

Reply via email to