I can be so brain-dead. In hindsight the answer to my question is obviously gcc -v.
IAC, I may have found a way toward a solution. A bit of poking about indicates that the kernel can return ERROR_BUSY if an allocation request for contiguous linear address space fails. I guess the logic is that this might be a temporary resource limit.
I need to carve out some quality time with the kernel debugger to fully understand where the ERROR_BUSY is coming from.
This convinced me to try highmem -d on a corrected version of Knut's testcase. Unfortunately highmem marks both the data and stack objects to load high which causes the testcase to trap. Oops. exehdr supports marking specific objects, but so far, it's trapping when asked to mark the testcase.
More later...
Exehdr was trapping because it cannot handle long names. After renaming the testcase to 8.3 format, exehdr marked object 2 to load high. Unfortunately, this did not avoid the fork failure.