> I think our varargs/stdarg stuff uses GNU C extenstions...
Do you mean the varargs/stdarg stuff is implemented in terms of gcc extensions,
or that userland code is gratuitously making use of "improved" stdarg
interfaces?
If the former, that's to be expected; varargs/stdarg is part of the compilation
system, and cannot be provided without some form of extension (offsetof() is
another example!). But AS parts of the compilation system, they are replacable
black magic; if you get another C compilation system, it should come with its
own implementations (that will be just as ugly internally, no doubt).
If the latter, those programs almost certainly should be rethought and
rewritten to make use of standard features. (Though this isn't necessarily a
high priority.)