On Mon, Feb 14, 2005 at 11:52:19AM +0100, Denis Corbin wrote:
On several systems (Solaris 2.6, openBSD 3.6, macOS X 10.2) the
"./configure && make" fails due to the redefinition by the configure script of the mbtate_t type, on Linux instead it seems to work properly,
with the same compiler version.
the problem seems to be linked with the gcc C++ header files:
----
In file included from /usr/include/gcc/darwin/3.3/c++/bits/fpos.h:45,
from /usr/include/gcc/darwin/3.3/c++/iosfwd:49,
from /usr/include/gcc/darwin/3.3/c++/bits/stl_algobase.h:70,
from /usr/include/gcc/darwin/3.3/c++/algorithm:66,
/usr/include/gcc/darwin/3.3/c++/cwchar:65: error: semicolon missing after struct declaration
----
This is an excerpt from config.log?
No, this is the compilation error from gcc.
Do the relevant config.log bits for the
other two affected systems look similar?
I have not access to a Solaris 2.6 system but the output reported is quite similar to the one I can see on MacOS X. On OpenBSD using gcc-3.3.2 and the sample test with autoconf 2.95b I could not reproduce the problem. I will try tomorrow with the release autoconf 2.95b and also with the full 'dar' package.
If not, please post a full config.log from running your test case `configure' on each affected system.
The log files are available here: http://dar.linux.free.fr/logs.tar.gz I also attach to this mail the config.log file (gzipped).
It is fishy that the trivial test program does not build, yet the bits of your
project that use mbstate_t do build when you manually hack config.h. Do you use
mbstate_t in a C file or a C++ file?
not directly in the program, I just using some of the libstdc++ algorithms, and including the <algorithm> header files seems to cause the mbstate_t conflict.
Do you include <wchar.h> in that file?
No, if you have a look at the sample code I've sent you (still available at http://dar.linux.free.fr/autoconf_test.tar.gz ) you can see no <wchar.h> no use of mbstate_t.
--- #include "config.h"
#include <algorithm> #include <iostream>
using namespace std;
main() { cout << "Hello World !" << endl; } ---
Cheers, Denis.
config.log.gz
Description: Unix tar archive