On Tue, 1 Jul 2008, x z wrote:

> On the other hand, the 1997 sentence "if you invoke the preprocessor 
> directly, `__GNUC__' is undefined" is now replaced by "These macros are 
> also defined if you invoke the preprocessor directly."  I have not had 
> the time to find out what "invoke the preprocessor directly" means ('gcc 
> -E' ?) but now the implication is that a non-'GNU C'-compliant compiler 
> that uses GNU CPP as its preprocessor would have __GNUC__ defined, 
> unless it takes the extra effort to somehow undefine it.

In the 2.8.1 manual, it meant invoking the file 
lib/gcc-lib/$target/2.8.1/cpp, an internal binary not installed in any 
user binary directory that was called internally by the compiler binary 
"gcc" (along with other binaries such as "cc1").

This internal binary no longer exists.  Instead, there is a "cpp" binary 
installed in the user binary directory, which calls the "cc1" binary to do 
the same preprocessing as it does when compiling; that is, it has the same 
effect as "gcc -E".  The better consistency in predefined macros is 
deliberate.

-- 
Joseph S. Myers
[EMAIL PROTECTED]

Reply via email to