C This C preprocessor brokenness is driving me nuatz! Looking for ideas.

I really don't think it is machine instability because
- it reproduces exactly the same every time
- it does build in /usr/src/release on the same machine
that doesn't exactly rule out machine instability though. could easily be that a specific chunk of RAM is repeatably bad in a way that the second case avoids by coincidence.
 
I'd like to see the complete mod_os.h file and the code surrounding spa.c:11341

I can't really tell how the macro param concatenation (##) is working with the limited compiler error dump.
 
that doesn't exactly rule out machine instability though. could easily be that a specific chunk of RAM is repeatably bad in a way that the second case avoids by coincidence.
I think this is unlikely, given the way virtual memory pages are mapped to process space. I think the chance that the bad memory page always leads to the same compilation error is minimal.

My gut still tells me that it is an environment contamination problem.
 
something else to consider: might some of the problem source files be auto-generated by the Makefiles...and, if the Makefiles introduce any sort of build parallelism, the internally executing shell scripts can cause a lack of necessary determinism. ie dependencies generated by internal scripts may of may not be ready when needed. I've not built BSD kernel in many many years so my comments are just WAGs.
 
something else to consider: might some of the problem source files be auto-generated by the Makefiles...and, if the Makefiles introduce any sort of build parallelism, the internally executing shell scripts can cause a lack of necessary determinism. ie dependencies generated by internal scripts may of may not be ready when needed. I've not built BSD kernel in many many years so my comments are just WAGs.

Yes. Right now a working theory is that an autogenerated mod_os.h is on the bad machine and not on the good ones. Apparently it is not affected by `make cleankernel`. I got a fresh git clone on the bad machine and it did build the kernel successfully now. Now running buildworld. Let's see. I kept the old git tree for further forensics.
 
Back
Top