Geoffrey Winn wrote:
> I'm attempting to build Tuscany SDO using stdcxx on Linux and I'm
> getting an
> error from the compiler.
You should be using gcc rather than g++ when using stdcxx. It may
not make a difference when compiling but you *must* use gcc when
linking in order to avoid introducing a dependency on libstdc++,
the native C++ standard library.
I've switched to using gcc. It didn't obviously make any difference,
however I will make a detailed comparison of the options we use, by
comparison with the ones used to build the stdcxx tests, and see what
else we need to change.
It looks like the _RWSTD_PTRDIFF_T macro is not #defined as it
should be. The macro is supposed to be defined to the underlying
type of ptrdiff_t by the SIZE_T.cpp config test. To see why the
test unexpectedly failed open the $BUILDDIR/include/config.log
file and look for any error messages for SIZE_T.cpp. If there
is no error, running the SIZE_T test (in $BUILDDIR/include) by
hand should produce the expected output (a bunch of #defines).
If it doesn't the test most likely crashes. We'll need the stack
trace from the core dump to understand why.
I checked the config.log file and I get a warning rather than an error.
I've attached a zipped form of the config file to this note in case it's any help. I've also
run the SIZE_T test by hand and it seems to run fine. The output is as follows.
[tuscany@localhost include]$ ./SIZE_T
#define _RWSTD_CLOCK_T long
#define _RWSTD_PTRDIFF_T int
#define _RWSTD_SIZE_T unsigned int
#define _RWSTD_TIME_T long
#define _RWSTD_VA_LIST char*
#define _RWSTD_CLOCKS_PER_SEC 1000000
#define _RWSTD_RAND_MAX 2147483647
#define _RWSTD_EOF -1
#define _RWSTD_WEOF -1
#define _RWSTD_L_TMPNAM 20
#define _RWSTD_IOFBF 0
#define _RWSTD_IOLBF 1
#define _RWSTD_IONBF 2
#define _RWSTD_BUFSIZ 8192
#define _RWSTD_FOPEN_MAX 16
#define _RWSTD_FILENAME_MAX 4096
#define _RWSTD_TMP_MAX 238328
#define _RWSTD_NO_NATIVE_FPOS_T/* may be an aggregate */
#define _RWSTD_FPOS_T_SIZE 12
This makes me think that the real problem is in the options we are feeding to gcc (and g++ previously)
Thanks for your help,