I'm trying to get all of Clang's builtin headers to parse with -ffreestanding, and I think these are the two biggest issues. I'm not confident that the limits.h change is the exact correct pattern, but I copied the one used in stdint.h. The mm_malloc.h change makes it completely free of system headers except for Windows.