Define _EM_LLSIZE, int64_t, uint64_t for linux386.
Also change UINT32_MAX in <stdint.h> from 4294967295 to 4294967295U. The U suffix avoids a promotion to long or unsigned long if it would fit in unsigned int. Define _EM_LLSIZE but not EM_LLSIZE. The leading underscore is a convention for such macros. If code always uses _EM_LLSIZE, we will never need to add EM_LLSIZE. The flag -D_EM_LLSIZE={q} is in plat/linux386/descr, not lib/descr/fe, so platforms without long long don't define _EM_LLSIZE. <stdint.h> doesn't keep the old code for _EM_LSIZE == 8, because I change it to _EM_LLSIZE == 8. No platform had _EM_LSIZE == 8, and the old limits like INT64_MAX were wrong.
This commit is contained in:
parent
eb0d5e1d6c
commit
aeb8ed53e4
|
@ -33,16 +33,16 @@ typedef unsigned long uint32_t;
|
||||||
#endif
|
#endif
|
||||||
#define INT32_MAX 2147483647
|
#define INT32_MAX 2147483647
|
||||||
#define INT32_MIN (-2147483648)
|
#define INT32_MIN (-2147483648)
|
||||||
#define UINT32_MAX 4294967295
|
#define UINT32_MAX 4294967295U
|
||||||
|
|
||||||
/* We only get int64_t if longs are 8 bytes. */
|
/* We only get int64_t if long longs are 8 bytes. */
|
||||||
|
|
||||||
#if _EM_LSIZE == 8
|
#if _EM_LLSIZE == 8
|
||||||
typedef signed long int64_t;
|
typedef signed long long int64_t;
|
||||||
typedef unsigned long uint64_t;
|
typedef unsigned long long uint64_t;
|
||||||
#define INT64_MAX 2147483647LL
|
#define INT64_MAX 9223372036854775807LL
|
||||||
#define INT64_MIN (-2147483648LL)
|
#define INT64_MIN (-9223372036854775808LL)
|
||||||
#define UINT64_MAX 4294967295ULL
|
#define UINT64_MAX 18446744073709551615ULL
|
||||||
|
|
||||||
typedef int64_t intmax_t;
|
typedef int64_t intmax_t;
|
||||||
typedef uint64_t uintmax_t;
|
typedef uint64_t uintmax_t;
|
||||||
|
|
|
@ -10,6 +10,8 @@ var s=2
|
||||||
var sa={s}
|
var sa={s}
|
||||||
var l={w}
|
var l={w}
|
||||||
var la={w}
|
var la={w}
|
||||||
|
var q=8
|
||||||
|
var qa=4
|
||||||
var f={w}
|
var f={w}
|
||||||
var fa={w}
|
var fa={w}
|
||||||
var d=8
|
var d=8
|
||||||
|
@ -19,12 +21,12 @@ var xa={x}
|
||||||
var ARCH=i386
|
var ARCH=i386
|
||||||
var PLATFORM=linux386
|
var PLATFORM=linux386
|
||||||
var PLATFORMDIR={EM}/share/ack/{PLATFORM}
|
var PLATFORMDIR={EM}/share/ack/{PLATFORM}
|
||||||
var CPP_F=-D__unix
|
var CPP_F=-D__unix -D_EM_LLSIZE={q}
|
||||||
var ALIGN=-a0:4 -a1:4 -a2:4 -a3:4 -b0:0x08048054
|
var ALIGN=-a0:4 -a1:4 -a2:4 -a3:4 -b0:0x08048054
|
||||||
var C_LIB={PLATFORMDIR}/libc-ansi.a
|
var C_LIB={PLATFORMDIR}/libc-ansi.a
|
||||||
# bitfields reversed for compatibility with (g)cc.
|
# bitfields reversed for compatibility with (g)cc.
|
||||||
# long long enabled.
|
# long long enabled.
|
||||||
var CC_ALIGN=-Vrq8.4
|
var CC_ALIGN=-Vrq{q}.{qa}
|
||||||
var OLD_C_LIB={C_LIB}
|
var OLD_C_LIB={C_LIB}
|
||||||
var MACHOPT_F=-m10
|
var MACHOPT_F=-m10
|
||||||
var EGO_PLAT_FLAGS=-M{EM}/share/ack/ego/{ARCH}.descr
|
var EGO_PLAT_FLAGS=-M{EM}/share/ack/ego/{ARCH}.descr
|
||||||
|
|
Loading…
Reference in a new issue