On 02/10/06, Martin Sebor <sebor@roguewave.com> wrote:
Geoffrey Winn wrote:
> Hi.
>
> 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
[tuscany@localhost include]$

This makes me think that the real problem is in the options we are feeding to gcc (and g++ previously)

Thanks for your help,

Geoff.