header updates and 1 actual fix for GCC
workaround for a “changes the meaning of” error in GCC which I find somewhat odd