Type uint64_t required but not found

Reid,

Well, if it doesn't break anything else, I'd fix the header file. The
standard type name is supposed to uint64_t not u_int64_t. I would just
change the header file to define both of them, something like:

typedef u_int64_t uint64_t;

You could do that in /usr/include/types.h,

I've tried it and it doesn't break anything, but ...

or we could add it to a
header file in llvm/include/Config, ifdef'd for Interix.

I prefer the latter method, because other people should, hopefully, compile it independently without any further knowledge of Interix intrinsics.

The best way could be:
1) configure tests wether it's running on the Interix platform (__INTERIX set).
2) Add ifdef'd typedef u_int64_t uint64_t; in llvm/include/Config.h and possible other required values/types for LLVM.

/Henrik

Henrik Bach wrote:

Reid,

Well, if it doesn't break anything else, I'd fix the header file. The
standard type name is supposed to uint64_t not u_int64_t. I would just
change the header file to define both of them, something like:

typedef u_int64_t uint64_t;

You could do that in /usr/include/types.h,

I've tried it and it doesn't break anything, but ...

or we could add it to a
header file in llvm/include/Config, ifdef'd for Interix.

I prefer the latter method, because other people should, hopefully, compile it independently without any further knowledge of Interix intrinsics.

The best way could be:
1) configure tests wether it's running on the Interix platform (__INTERIX set).
2) Add ifdef'd typedef u_int64_t uint64_t; in llvm/include/Config.h and possible other required values/types for LLVM.

I think that there should be a general test for u_int64_t and then typdef it if uint64_t doesn't exist. I have a feeling Interix isn't the only platform that doesn't support uint<x>_t (I seem to recall that AIX doesn't either).

-- John T.