Andrew Benton wrote:
> On Fri, 03 Feb 2012 21:44:34 -0800 Bryan Kadzban
> <[email protected]> wrote:
> 
>> Do you get __USE_ISOC11 #define'd (to what value?) or #undef'ed?
>> What about __cplusplus (again, what value)?
>> 
> 
> andy@eccles:/mnt/lfs/sources$ /tools/bin/x86_64-lfs-linux-gnu-gcc  -E
> -D_GNU_SOURCE -Wp,-dU /tools/include/stdio.h | grep __USE_ISOC11

Ah, sorry, no -- g++, not gcc.  :-)

> #define __USE_ISOC11 1
> 
> andy@eccles:/mnt/lfs/sources$ /tools/bin/x86_64-lfs-linux-gnu-gcc  -E
> -D_GNU_SOURCE -Wp,-dU /tools/include/stdio.h | grep __cplusplus 
> #undef __cplusplus

Yeah, that's because somewhere the header file tested for #ifdef
__cplusplus (or equivalent) and it wasn't set.  But it wasn't set
because this started by running gcc, not g++.  :-)

(Actually, I should probably have specified this as well: I don't know
what other flags gcc pass2 is passing to g++ when compiling libstdc++,
but matching those flags will be good as well.  In particular, -D<foo>
and -std=<foo> flags are important here.  Double checking the output of
your test g++ run for whether you see a prototype for "gets" is also a
good idea.)

> I'm out of my depth here.

The important bit is the -dU passed to the preprocessor.  You can see
docs in the cpp info pages, but basically, it dumps out the preprocessed
output, along with all #define lines that it hits, but only for #define
macros that are actually used.  (It dumps them when they're first used.)
Also, if it sees a #if or #ifdef that's testing a macro that isn't set,
a "#undef <macro-name>" line is dumped at that point.

It's rather useful for debugging preprocessor mazes like what glibc and
gcc have created.  :-)

Actually, the full output will be useful as well.  In the meantime, I'll
poke a bit at the stdio.h file above, and see if I can come up with
anything.  (The full output will tell me what random other preprocessor
macros are set to, as well, if they get tested in the header.)

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to