On 7 Jun 2003, Assar Westerlund wrote:

> Bob Friesenhahn <[EMAIL PROTECTED]> writes:
> > If a configure script uses AC_C_INLINE to test the C compiler, and
> > then later switches the current language to C++ in order to perform
> > C++ tests, the C++ tests will fail if AC_C_INLINE re-defines 'inline'
> > to some other string.
> >
> > It would be useful if Autoconf would hide any re-definition of inline
> > if the current language is not C.
>
> Wouldn't that require autoconf to write multiple config.h for multiple
> languages?  That might be a good idea, but it would require the
> configure script to tell what things should be in common, and quite a
> bit of restructuring of autoconf.

Issues with config.h are easily taken care of with an

#undef inline

after including config.h in a C++ module or header.  It is true that
autoheader could arrange to add #ifdefs around the inline define so
that it doesn't take effect for C++.  In fact, it can be argued that
compiler feature tests for the C compiler should never be supplied for
any other language environment since other languages are using a
different compiler.

The main Autoconf issue is that each feature test program includes all
the #defines generated from any previous test.  This means that if
AC_C_INLINE has been executed previously, then a define like

#define inline __inline

may be automatically generated as part of conftest.c, which causes C++
tests which include C++ headers or otherwise use inline to fail.

Bob
======================================
Bob Friesenhahn
[EMAIL PROTECTED]
http://www.simplesystems.org/users/bfriesen



Reply via email to