On Tue, Sep 12, 2006 at 01:53:28PM +0200, [LoN]Kamikaze wrote:
> Last time I built a kernel on Releng_6 (only a couple of days ago)
> everything was fine with "-j 4".
> Now buildkernel stops, this is an example:
> 
> ===> sound/driver/als4000 (depend)
> awk -f @/tools/makeobjops.awk @/kern/device_if.m -h
> machine -> /usr/src/sys/i386/include
> awk: can't open file @/tools/makeobjops.awk
>  source line number 1 source file @/tools/makeobjops.awk
>  context is
>       >>>   <<<
> *** Error code 2
> @ -> /usr/src/sys
> 1 error
> ...
> 
> Where it stops is random (I suppose it sometimes is accidentally
> built in the right order), but the error is always similar.
> 
This puzzled me for a while, since kmod.mk has mechanisms that
try to ensure `@' is built before it's accessed.  What the
implementation is missing is anti-footshooting measures.  I bet
your /usr/src/sys/modules/ has some stray `@' symlinks possibly
left from compiling modules manually without creating object
directories, and forgetting to run "make clean" afterwards.
Here's how I can reproduce the behavior you're seeing:

: # pwd
: /usr/src/sys/modules/sound/driver/als4000
: # make -s cleandir
: # make -s cleandir
: # make @
: @ -> /usr/src/sys
: # make obj
: /usr/obj/usr/src/sys/modules/sound/driver/als4000 created for 
/usr/src/sys/modules/sound/driver/als4000
: # make device_if.h
: awk -f @/tools/makeobjops.awk @/kern/device_if.m -h
: awk: can't open file @/tools/makeobjops.awk
:  source line number 1 source file @/tools/makeobjops.awk
:  context is
:          >>>  <<< 
: *** Error code 2
: 
: Stop in /usr/src/sys/modules/sound/driver/als4000.

Fix:
        cd /usr/src/sys/modules && make cleandir && make cleandir


Cheers,
-- 
Ruslan Ermilov
[EMAIL PROTECTED]
FreeBSD committer

Attachment: pgplaXWKCvVJL.pgp
Description: PGP signature

Reply via email to