Bugzilla – Bug 4586
int64_t not defined on Suse9/x86_64 for non-gcc compilers
Last modified: 2007-06-13 17:40:56
You need to
before you can comment on or make changes to this bug.
When using intel cc (icc) on suse9/x86_64, globus_soap_messaging fails to
compile because xsd_long.h depends on int64_t. int64_t is only defined by
sys/types.h on suse9/x86_64 for GNU compilers. A manual workaround of adding
"typedef long long int64_t" works in xsd_long.h, but we should find a better
solution. That should probably go into globus_core or globus_common, but I am
filing it here first as it is where the symptom first appears.
There's a POSIX header file called <stdint.h> that should define the sized
integer values (though int64_t is not availble if the host doesn't provide a
1) Does this header exist on this platform, and does it define the type? If so
we may be able to get by adding a check for this header to common or core's
2) If not, I think we should probably do this check anyway in common or core,
and then if it isn't present define some reasonable types in the configure
1) Yes, it exists and defines the type:
# if __WORDSIZE == 64
typedef long int int64_t;
typedef long long int int64_t;
2) Mike - can we check for the existence of this and use it in common? I have
a machine we can test on at Teragrid to validate fixes.
Hmm, it looks like core in HEAD already has the work done for this. I'll get
it into globus_4_0_branch.
Added a few lines to HEAD common to include stdint.h and ported all to
verified broken and then fixed tg-login.sdsc.teragrid.org, let me know if there
are still problems on other hosts.