I believe the issue is that empty parentheses do not constitute a valid prototype and that to be truly conformant you would have to write: extern int foo (void);
oh man that is so obvious it hurts to be discussing it .. thanks for pointing that out! :)
-- ; Jay Vaughan