ILP32 と LP64 データ型モデルの間では、共用体のフィールドのサイズが変わる可能性があるため、共用体は必ず検査してください。
typedef union { double _d; long _l[2]; } llx_t;
修正版は次のようになります。
typedef union { double _d; int _l[2]; } llx_t;