URL: <http://savannah.gnu.org/bugs/?func=detailitem&item_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: ___________________________ %.xxxxx: %.yyyyy default: make -r sub.mk ___________________________ _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?func=detailitem&item_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