I think we should just remove the __STRICT_ANSI__ check from <asm/types.h>. "long long" will still work in gcc under -ansi (and, in fact, will only elicit a warning even under -pedantic) so there should be no real problem here.
__STRICT_ANSI__'s intended use in header files is to guard namespace-polluting declarations that might collide with a conforming ANSI program. Namespace pollution is irrelevant here because the identifiers at issue both start with an underscore. p.