develooper Front page | perl.perl5.porters | Postings from January 2006

Re: [perl #38307] make clean with 5.8.8-RC1

Thread Previous | Thread Next
Nicholas Clark
January 23, 2006 08:04
Re: [perl #38307] make clean with 5.8.8-RC1
Message ID:
On Sun, Jan 22, 2006 at 05:56:36AM -0800, Fergal Daly wrote:
> # New Ticket Created by  Fergal Daly 
> # Please include the string:  [perl #38307]
> # in the subject line of all future correspondence about this issue. 
> # <URL: >
> I decided to change some config params (run Configure -D prefix=...
> -d) and recompile. I cancelled the recompile very soon into it and
> typed
> make clean
> but that sent it into more compilation. So it looks like the clean
> target depends on something that causes compilation. Transcript of
> make clean output below,

>         Making DynaLoader (clean)
> make[1]: Entering directory `/home/fergal/src/perl-5.8.8-RC1/ext/DynaLoader'
> Warning: ../../lib/ may be out of date with ../../
> cd ../.. && make lib/
> make[2]: Entering directory `/home/fergal/src/perl-5.8.8-RC1'
> `sh  cflags "optimize='-O2'" gv.o`  gv.c
>           CCCMD =  cc -DPERL_CORE -c -fno-strict-aliasing -pipe
> -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2  -Wall

I can't recreate this. I can start to see how you can get close to this
situation - from a clean (complete) build

./Configure -S

at which point make depend is run, *but* for that make once it is complete the
dependency rules it creates aren't used, so recompilation of all the object
files is skipped, miniperl is assumed to be up to date, and the first real
work is making a new lib/

Which is what is confusing me, because even when I rig things with some touch
commands to make files such as lib/ several days old, I can't
re-create the situation you seem to be in, where make thinks that
lib/ is out of date, so attempts to re-make it, triggering the
recompile of all the object files previously missed.

Also, I don't think that it's possible to avoid the initial problem in my
description, which is that the automatic re-running of make depend by the
first Makefile means that all the objects aren't rebuilt on that make run,
but are on the next.

(Someone might prove me wrong on this one)

There are also still some parallel make bugs in 5.8.8 - I managed to end up
with 2 makes running lib/unicore/mktables

Also in blead IIRC make of Math::BigInt::FastCalc failed once because couldn't load Scalar::Util correctly. But I couldn't re-create
this, even when I tried seeding lib with a Scalar/ that would fail.

Nicholas Clark

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About