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