One dumb question:

Does the Tru64 compiler define __GNUC__, or some other similar symbol?

Also, Eric Blake <[EMAIL PROTECTED]> writes:

> If you were to change the gnulib stdio.h to use #include_next instead of
> #include, would that help matters any?  Maybe we need to teach the
> absolute-header module to check for include_next, and use it when
> supported?  Although I seem to recall the concern over this was whether
> preprocessors that don't understand #include_next would choke; so it would
> have to be done by one of the sed expressions that creates stdio.h from
> stdio_.h rather than something directly in stdio_.h.

If I recall correctly, the concern wasn't over preprocessors per se,
as we can easily detect at configure-time whether the preprocessor
supports include_next.  The concern was that some packages want to
install gnulib-generated headers into shared locations where any
compiler can use the headers, and therefore the headers cannot rely on
features like include_next that may be supported by the installer's
compiler but not by some other compiler.

For the case of overriding standard headers I am thinking that this
concern might be overdone.  If someone installs a gnulib-generated
header like "stdint.h" into a shared location they are asking for
trouble, no? because so many other things can go wrong.  So perhaps we
should rethink this, and modify gnulib to use #include_next if
available.  #include_next is a lot cleaner than the current approach.

Another possibility is to protect #include_next with "#if
HAVE_INCLUDE_NEXT"; this might support the shared-location scenario
better, albeit with some complexity added.


Reply via email to