Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Dec 2004 09:51:53 +0100 (CET)
From:      Harti Brandt <hartmut.brandt@dlr.de>
To:        Steve Kargl <sgk@troutmask.apl.washington.edu>
Cc:        freebsd-current@freebsd.org
Subject:   Re: make(1) is broken
Message-ID:  <20041209094923.B85802@beagle.kn.op.dlr.de>
In-Reply-To: <20041209010658.GA14890@troutmask.apl.washington.edu>
References:  <20041209000148.GA4674@troutmask.apl.washington.edu> <20041209000710.GB4674@troutmask.apl.washington.edu> <20041209010658.GA14890@troutmask.apl.washington.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 8 Dec 2004, Steve Kargl wrote:

SK>On Wed, Dec 08, 2004 at 04:07:10PM -0800, Steve Kargl wrote:
SK>> 
SK>> troutmask:root[225] find /usr/obj/ -name make.core 
SK>> /usr/obj/usr/src/sys/SPEW/make.core
SK>> troutmask:root[226] gdb /usr/bin/make /usr/obj/usr/src/sys/SPEW/make.core
SK>> 
SK>> #0  Lst_Remove (list=0x5580a0, ln=0x0)
SK>>     at /usr/src/usr.bin/make/lst.lib/lstRemove.c:74
SK>> 74          if (ln->nextPtr != NULL)
SK>> (gdb) bt
SK>> #0  Lst_Remove (list=0x5580a0, ln=0x0)
SK>>     at /usr/src/usr.bin/make/lst.lib/lstRemove.c:74
SK>> #1  0x00000000004052bb in Dir_Destroy (pp=0x81e780)
SK>>     at /usr/src/usr.bin/make/dir.c:1143
SK>> #2  0x0000000000405300 in Dir_ClearPath (path=0x5580a0)
SK>>     at /usr/src/usr.bin/make/dir.c:1172
SK>> #3  0x0000000000404283 in Dir_End () at /usr/src/usr.bin/make/dir.c:265
SK>> #4  0x000000000040a8da in main (argc=2, argv=0x7fffffffe3e0)
SK>>     at /usr/src/usr.bin/make/main.c:888
SK>> 
SK>
SK>Looking at the diff between the 1.17 and 1.16, I suspect this chunk
SK>of code in Lst_Remove:
SK>
SK>-    if (!Lst_Valid(list) || !Lst_NodeValid(ln, list)) {
SK>-	    return (FAILURE);
SK>-    }
SK>
SK>should have been replaced by
SK>
SK>    if (list == NULL || ln == NULL)
SK>	    return;

I see no sense in those runtime checks because they just hide the real 
problems (as are uninitialized lists or removing items not on the list). 
Nobody actually checked the return codes so that was just 'close your eyes 
and continue'. I'd rather have the root problem fixed. I have a look into 
this.

harti



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041209094923.B85802>