URL:
http://savannah.gnu.org/bugs/?func=detailitemitem_id=16088
Summary: make -r causes virtual memory exhausted error
in make on AIX only
Project: make
Submitted by: None
Submitted on: Tue 03/14/06 at 10:21
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Component Version: 3.80
Platform Version: UNIX
Fixed Release: None
___
Details:
This bug causes make to fail on AIX only.
To recreate:
Create 2 makefiles, Makefile, and sub.mk...
Makefile contents:
___
default:
make -r sub.mk
___
sub.mk contents:
___
default:
___
Place both makefiles in the same directory, and then run, make. You'll see
an error like this:
___
running sub.mk
make -r sub.mk
make[1]: Entering directory `/tmp'
make[1]: *** virtual memory exhausted. Stop.
make[1]: Leaving directory `/tmp'
make: *** [default] Error 2
___
It appears that the problem is that 'make' allocates space for structures to
hold the built-in rules. However, when you run make with the -r flag to
disable these built-in implicit rules, make _still_ attempts to allocate
space for them. Since the space required to hold zero built-in rules is zero
bytes, it calls:
malloc(0)
AIX doesn't like such a request, and the malloc fails. Other Unix and Linux
platforms seemingly handle this abnormal condition more gracefully.
A temporary work-around is to add a rule such that 'make' mallocs 0 bytes.
For example, by changing Makefile to that shown below, the problem is masked
and the make continues:
___
%.x: %.y
default:
make -r sub.mk
___
___
Reply to this item at:
http://savannah.gnu.org/bugs/?func=detailitemitem_id=16088
___
Message sent via/by Savannah
http://savannah.gnu.org/
___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make