Subject: bin/5225: make dumps core when doing multiple jobs
To: None <gnats-bugs@gnats.netbsd.org>
From: Jason R. Thorpe <thorpej@nas.nasa.gov>
List: netbsd-bugs
Date: 03/28/1998 04:18:17
>Number:         5225
>Category:       bin
>Synopsis:       make dumps core when doing multiple jobs
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    bin-bug-people (Utility Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 28 13:50:01 1998
>Last-Modified:
>Originator:     Jason R. Thorpe
>Organization:
Numerical Aerospace Simulation Facility - NASA Ames
>Release:        NetBSD 1.3E, March 28, 1998
>Environment:
	
System: NetBSD icky 1.3E NetBSD 1.3E (ICKY) #4: Fri Mar 27 12:39:09 PST 1998 thorpej@icky:/u1/netbsd/src/sys/arch/i386/compile/ICKY i386


>Description:
	Christos' latest round of changes to make(1) seem to have
	broken something.  When doing a "make -j8 clean" in /usr/pkgsrc,
	I see:

icky:thorpej 146$ sudo make -j8 clean     
--- clean ---
===> archivers
Segmentation fault - core dumped
*** Error code 139
1 error
icky:thorpej 147$ 

	Quick examination with gdb reveals:

icky:thorpej 21$ sudo gdb obj.i386/make /usr/pkgsrc/archivers/make.core 
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.16 (i386-netbsd), Copyright 1996 Free Software Foundation, Inc...
Core was generated by `make'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/libexec/ld.so...done.
Reading symbols from /usr/lib/libc.so.12.26...done.
#0  0x9aff in Main_ParseArgLine (line=0xefbfd756 " -j 8")
    at /u1/netbsd/src/usr.bin/make/main.c:391
391             buf = emalloc(strlen(line) + strlen(argv0) + 2);
(gdb) print argv0
$1 = 0x0
(gdb) 

	`argv0' is initialized at the top of that function as:

        char *argv0 = Var_Value(".MAKE", VAR_GLOBAL, &p1);

>How-To-Repeat:
	See above.

>Fix:
	Unknown.  (I don't want to get to know make(1) that well,
	either...)
>Audit-Trail:
>Unformatted: