Be sure to check unions because their fields might have changed sizes between ILP32 and LP64.
typedef union { double _d; long _l[2]; } llx_t;
Suggested use:
typedef union { double _d; int _l[2]; } llx_t;