URL:
<http://savannah.gnu.org/bugs/?func=detailitem&item_id=15757>
Summary: circular variable_set_list causes hang on SunOS
Project: make
Submitted by: abwilson
Submitted on: Wed 02/15/06 at 12:24
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Component Version: None
Platform Version: UNIX
Fixed Release: None
_______________________________________________________
Details:
I'm using make-3.81beta4 on Solaris SunOS 5.9 compiled with Sun cc 5.5.
I have a large non-recursive make system which builds around 250 directories
of source code. I'm seeing make hang after building roughly half the source.
Running up the debugger I see that it's actually going round in circles in
the function variable.c:target_environment. This is due to the variable list
associated with the target file being circular. The outer loop:
for (s = set_list; s != 0; s = s->next)
is non-terminating because at some point s->next is somehow ending up
pointing back at a previous member of the list.
I'm using the same make system to build the same source tree on Linux (Red
Hat enterprise 2.6.9-22.0) using make 3.80 and everything works fine, so this
is clearly a platform issue. I'm speculating that the error is due to
differences in the behaviour of malloc on the two platforms - ie on Solaris
malloc is giving back a previously used variable_set_list object with an
(accidentally) valid next pointer. But, this is idle speculation.
The bug is easily reproducible but only with a large set of makefiles.
Is this a known issue? I having found anything in the achieves relating to
it.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?func=detailitem&item_id=15757>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-make