Follow-up Comment #1, bug #53201 (project make): I think a couple of facts here may need correcting though the issue is quite real. I suspect you are not running into a kernel limit since modern Linux kernels have no such limit (at one time the limit was 131K, then doubled to 262K, then removed altogether). However, the mere fact that the kernel imposes no limit doesn't mean individual utilities, in particular the shell, have the same property.
Most likely the limit being exceeded belongs to bash. The so-called fast-path optimization in make skips the shell and execs the recipe directly if it contains no shell special characters, thus in your original test case the shell isn't used which explains the variance. Use of .ONESHELL suppresses fast-path causing the shell to come back in and fail properly. There are other ways of suppressing fast path to test this thesis; try appending a semicolon to the recipe line or overriding the SHELL variable. One of my favorite tricks is SHELL=//bin/sh which addresses the same executable while convincing make it's different, thus disabling fast path. I have no wisdom to offer regarding the fix. Your solution sounds fine but that belongs to Paul. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?53201> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make