diff options
| author | kx <kx@radix-linux.su> | 2026-10-12 10:22:27 +0300 |
|---|---|---|
| committer | kx <kx@radix-linux.su> | 2026-10-12 10:22:27 +0300 |
| commit | b4112b093b6f58512f7ce9992e0891515831ca57 (patch) | |
| tree | d78b7cd151863fb98ee3c6c9a8fc3121d05b2e51 | |
| parent | 4bc055294368e4dd4fda491dfd97772e8e88fc35 (diff) | |
| download | mcpu-cpp-b4112b093b6f58512f7ce9992e0891515831ca57.tar.xz | |
HOST machine-dependent predefined macros
| -rw-r--r-- | ChangeLog | 12 | ||||
| -rw-r--r-- | configure.ac | 8 | ||||
| -rw-r--r-- | doc/mcpu-cpp-en.md | 71 | ||||
| -rw-r--r-- | doc/mcpu-cpp-ru.md | 72 | ||||
| -rw-r--r-- | src/mcpp-predefined.c | 18 | ||||
| -rwxr-xr-x | tests/t0024-abi-predefined.sh | 18 | ||||
| -rwxr-xr-x | tests/t0025-dump-macros.sh | 18 | ||||
| -rwxr-xr-x | tests/t0029-predefined-abi-names.sh | 16 |
8 files changed, 151 insertions, 82 deletions
@@ -1,3 +1,15 @@ +2026-10-12 Andrey V. Kosteltsev + + * HOST machine-dependent predefined macros + __MCPU_HOST_MACHINE_REGISTER_WIDTH__, + __MCPU_HOST_MACHINE_SIZEOF_SIZE__, __MCPU_HOST_MACHINE_SIZEOF_SSIZE__, + __MCPU_HOST_MACHINE_SIZE_MAX__, __MCPU_HOST_MACHINE_SIZE_TYPE__, + __MCPU_HOST_MACHINE_SIZE_WIDTH__, __MCPU_HOST_MACHINE_SSIZE_MAX__, + __MCPU_HOST_MACHINE_SSIZE_TYPE__, __MCPU_HOST_MACHINE_SSIZE_WIDTH__ + are not part of the MCPU ABI but can be used in guest programs to + obtain HOST-specific sizes and the corresponding MCPU HLL data types. + * LibMPU 1.0.28, LibMPUIO 1.0.8 are required. + 2026-10-11 Andrey V. Kosteltsev * Fixed target machine depended tests. diff --git a/configure.ac b/configure.ac index 7bfcdf1..c551013 100644 --- a/configure.ac +++ b/configure.ac @@ -39,7 +39,7 @@ dnl ============================================================ dnl Check for LibMPU dnl ============================================================ AC_CHECK_LIBMPU( - [1.0.27], + [1.0.28], [yes], [ AC_DEFINE( @@ -51,7 +51,7 @@ AC_CHECK_LIBMPU( AC_SUBST([LIBMPU_VERSION]) ], [ - AC_MSG_ERROR([LibMPU version 1.0.27 or later is required.]) + AC_MSG_ERROR([LibMPU version 1.0.28 or later is required.]) ] ) @@ -59,7 +59,7 @@ dnl ============================================================ dnl Check for LibMPUIO dnl ============================================================ AC_CHECK_LIBMPUIO( - [1.0.7], + [1.0.8], [yes], [ AC_DEFINE( @@ -71,7 +71,7 @@ AC_CHECK_LIBMPUIO( AC_SUBST([LIBMPUIO_VERSION]) ], [ - AC_MSG_ERROR([LibMPUIO version 1.0.7 or later is required.]) + AC_MSG_ERROR([LibMPUIO version 1.0.8 or later is required.]) ] ) diff --git a/doc/mcpu-cpp-en.md b/doc/mcpu-cpp-en.md index 18633ae..9afaa0e 100644 --- a/doc/mcpu-cpp-en.md +++ b/doc/mcpu-cpp-en.md @@ -1265,7 +1265,10 @@ will not be mixed with the version of the standalone preprocessor. the established LibMPU/LibMPUIO `acsite.m4` approach: GCC predefined macros describe native type sizes, byte/word order, and machine-register width, while the installed `<libmpu.h>` is the final source of truth for LibMPU -configuration. +configuration. These GCC and LibMPU checks describe the HOST build environment, +not the MCPU target ABI. The MCPU ABI is defined by the LibMCPU architecture +and its ABI contracts; HOST-derived predefined macros must not be used to +infer or change target type widths, pointer representation, or calling rules. In particular, the following values are captured and checked: @@ -1348,7 +1351,7 @@ future MCPU language has no `float` type. LibMPU/MCPU environment parameters are published in the MCPU namespace: ```text -__MCPU_MACHINE_REGISTER_WIDTH__ +__MCPU_HOST_MACHINE_REGISTER_WIDTH__ __MCPU_REAL_IO_LIMIT__ __MCPU_MATH_FN_LIMIT__ __MCPU_INT_MAX_WIDTH__ @@ -1357,36 +1360,60 @@ __MCPU_COMPLEX_MAX_WIDTH__ ``` `__MCPU_INT_MAX_WIDTH__` is `NB_I_MAX * 8`; the Real/Complex maximum width is -the configured `MPU_REAL_IO_LIMIT`. `__MCPU_MACHINE_REGISTER_WIDTH__` is the -`BITS_PER_MACHINE_REGISTER` value of the installed LibMPU. Real I/O and math +the configured `MPU_REAL_IO_LIMIT`. `__MCPU_HOST_MACHINE_REGISTER_WIDTH__` is the +`BITS_PER_MACHINE_REGISTER` value of the installed LibMPU and reports a HOST +characteristic, not an MCPU architectural register width. Real I/O and math limits are deliberately kept separate: `MPU_REAL_IO_LIMIT` controls existence of Real/Complex type families and text conversion, while `MPU_MATH_FN_LIMIT` controls availability of mathematical functions at a given width. -### 8.6. MCPU size/ssize, `ptrdiff`, and pointers +### 8.6. HOST machine size/ssize hints, `ptrdiff`, and pointers The future language does not inherit variable-width C names such as `short`, -`int`, and `long`, and it does not use the C-style name `size_t` as part of its -own ABI. The unsigned LibMPU size type and signed byte-count/error type are -published symmetrically in the MCPU namespace. For a 64-bit configured profile, -for example: +`int`, and `long`, and the HOST C types `size_t` and `ssize_t` do not define +the MCPU target ABI. The following nine predefined macros report the HOST +machine characteristics of the environment in which the virtual MCPU runs: ```text -#define __MCPU_SIZE_TYPE__ uint64 -#define __MCPU_SIZE_WIDTH__ 64 -#define __MCPU_SIZEOF_SIZE__ 8 -#define __MCPU_SIZE_MAX__ 0xffffffffffffffff +__MCPU_HOST_MACHINE_REGISTER_WIDTH__ +__MCPU_HOST_MACHINE_SIZEOF_SIZE__ +__MCPU_HOST_MACHINE_SIZEOF_SSIZE__ +__MCPU_HOST_MACHINE_SIZE_MAX__ +__MCPU_HOST_MACHINE_SIZE_TYPE__ +__MCPU_HOST_MACHINE_SIZE_WIDTH__ +__MCPU_HOST_MACHINE_SSIZE_MAX__ +__MCPU_HOST_MACHINE_SSIZE_TYPE__ +__MCPU_HOST_MACHINE_SSIZE_WIDTH__ +``` + +They are **not the source of truth for the MCPU ABI**. They are optional +information available to guest programs, for example when a high-level +programmer deliberately wants an MCPU integer type whose signedness and width +match the HOST `size_t` or `ssize_t`. Using such a type is an explicit program +choice; it does not make the guest pointer, integer, memory, or calling ABI +HOST-dependent. + +For a HOST with 32-bit `size_t` and `ssize_t`, these size hints include: + +```text +#define __MCPU_HOST_MACHINE_SIZE_TYPE__ uint32 +#define __MCPU_HOST_MACHINE_SIZE_WIDTH__ 32 +#define __MCPU_HOST_MACHINE_SIZEOF_SIZE__ 4 +#define __MCPU_HOST_MACHINE_SIZE_MAX__ 0xffffffff -#define __MCPU_SSIZE_TYPE__ int64 -#define __MCPU_SSIZE_WIDTH__ 64 -#define __MCPU_SIZEOF_SSIZE__ 8 -#define __MCPU_SSIZE_MAX__ 0x7fffffffffffffff +#define __MCPU_HOST_MACHINE_SSIZE_TYPE__ int32 +#define __MCPU_HOST_MACHINE_SSIZE_WIDTH__ 32 +#define __MCPU_HOST_MACHINE_SIZEOF_SSIZE__ 4 +#define __MCPU_HOST_MACHINE_SSIZE_MAX__ 0x7fffffff ``` -This is an MCPU-specific family, not an attempt to invent a nonexistent GNU CPP -`__SSIZE_*` contract. +For a HOST with 64-bit `size_t` and `ssize_t`, the same names instead report +`uint64`/`int64`, widths of `64`, sizes of `8`, and the corresponding maxima +`0xffffffffffffffff`/`0x7fffffffffffffff`. Register width is reported +independently; it is not derived from `size_t`. -The MCPU pointer ABI is independent of the host: PTR64 is always 64 bits wide: +The MCPU pointer ABI is **HOST-independent**: PTR64 is always 64 bits wide, +including when the HOST and its `size_t` are 32-bit: ```text #define __INTPTR_TYPE__ int64 @@ -1399,8 +1426,8 @@ The MCPU pointer ABI is independent of the host: PTR64 is always 64 bits wide: #define __MCPU_POINTER_WIDTH__ 64 ``` -The difference between two MCPU pointers is signed and also fixed independently -of the host: +The difference between two MCPU pointers is signed and likewise fixed +independently of the HOST: ```text #define __PTRDIFF_TYPE__ int64 diff --git a/doc/mcpu-cpp-ru.md b/doc/mcpu-cpp-ru.md index 662ff2c..f3884da 100644 --- a/doc/mcpu-cpp-ru.md +++ b/doc/mcpu-cpp-ru.md @@ -1274,6 +1274,10 @@ frontend/driver, его version contract будет определён отдеÐ проверенные приёмы из `LibMPU`/`LibMPUIO` `acsite.m4`: GCC predefined macros определяют native type sizes, byte/word order и machine-register width, а установленный `<libmpu.h>` является окончательным источником настроек LibMPU. +Эти проверки GCC и LibMPU описывают среду сборки HOST, но не целевой MCPU ABI. +Источником истины для MCPU ABI служат архитектура LibMCPU и её ABI-контракты; +предопределённые макро, зависящие от HOST, не должны определять или изменять +разрядности целевых типов, представление указателей и правила вызовов. В частности, фиксируются и проверяются: @@ -1355,7 +1359,7 @@ GNU/C-specific имя `__FLOAT_WORD_ORDER__` не определяется: ти Параметры LibMPU/MCPU environment публикуются в MCPU namespace: ```text -__MCPU_MACHINE_REGISTER_WIDTH__ +__MCPU_HOST_MACHINE_REGISTER_WIDTH__ __MCPU_REAL_IO_LIMIT__ __MCPU_MATH_FN_LIMIT__ __MCPU_INT_MAX_WIDTH__ @@ -1364,35 +1368,61 @@ __MCPU_COMPLEX_MAX_WIDTH__ ``` `__MCPU_INT_MAX_WIDTH__` равен `NB_I_MAX * 8`, а Real/Complex maximum width -равен configured `MPU_REAL_IO_LIMIT`. `__MCPU_MACHINE_REGISTER_WIDTH__` является -значением `BITS_PER_MACHINE_REGISTER` установленной LibMPU. Пределы Real I/O и +равен configured `MPU_REAL_IO_LIMIT`. `__MCPU_HOST_MACHINE_REGISTER_WIDTH__` является +значением `BITS_PER_MACHINE_REGISTER` установленной LibMPU и описывает HOST, +а не разрядность архитектурного регистра MCPU. Пределы Real I/O и math functions не смешиваются: `MPU_REAL_IO_LIMIT` определяет существование Real/Complex type family и text conversion, а `MPU_MATH_FN_LIMIT` — наличие математических функций соответствующей ширины. -### 8.6. MCPU size/ssize, `ptrdiff` и pointers +### 8.6. HOST machine size/ssize, `ptrdiff` и pointers -Будущий язык не наследует variable-width C names `short`, `int`, `long` и -не использует C-style имя `size_t` как часть собственного ABI. Беззнаковый -LibMPU size type и знаковый byte-count/error type публикуются симметрично в -MCPU namespace. Например для 64-bit configured profile: +Будущий язык не наследует variable-width C names `short`, `int`, `long`, а +HOST-типы C `size_t` и `ssize_t` не определяют целевой MCPU ABI. Следующие +девять предопределённых макро сообщают характеристики HOST-машины, на которой +работает виртуальный процессор MCPU: ```text -#define __MCPU_SIZE_TYPE__ uint64 -#define __MCPU_SIZE_WIDTH__ 64 -#define __MCPU_SIZEOF_SIZE__ 8 -#define __MCPU_SIZE_MAX__ 0xffffffffffffffff +__MCPU_HOST_MACHINE_REGISTER_WIDTH__ +__MCPU_HOST_MACHINE_SIZEOF_SIZE__ +__MCPU_HOST_MACHINE_SIZEOF_SSIZE__ +__MCPU_HOST_MACHINE_SIZE_MAX__ +__MCPU_HOST_MACHINE_SIZE_TYPE__ +__MCPU_HOST_MACHINE_SIZE_WIDTH__ +__MCPU_HOST_MACHINE_SSIZE_MAX__ +__MCPU_HOST_MACHINE_SSIZE_TYPE__ +__MCPU_HOST_MACHINE_SSIZE_WIDTH__ +``` + +Они **не являются источником истины для MCPU ABI**. Это дополнительные сведения +для гостевой программы. Например, разработчик языка высокого уровня может +осознанно выбрать целочисленный тип MCPU, совпадающий по знаковости и +разрядности с HOST `size_t` либо `ssize_t`. Такой выбор принадлежит конкретной +программе и не делает HOST-зависимыми указатели, целочисленную модель, память +или соглашение о вызовах MCPU. + +Если на HOST `size_t` и `ssize_t` имеют ширину 32 бита, размерные подсказки +содержат, в частности: + +```text +#define __MCPU_HOST_MACHINE_SIZE_TYPE__ uint32 +#define __MCPU_HOST_MACHINE_SIZE_WIDTH__ 32 +#define __MCPU_HOST_MACHINE_SIZEOF_SIZE__ 4 +#define __MCPU_HOST_MACHINE_SIZE_MAX__ 0xffffffff -#define __MCPU_SSIZE_TYPE__ int64 -#define __MCPU_SSIZE_WIDTH__ 64 -#define __MCPU_SIZEOF_SSIZE__ 8 -#define __MCPU_SSIZE_MAX__ 0x7fffffffffffffff +#define __MCPU_HOST_MACHINE_SSIZE_TYPE__ int32 +#define __MCPU_HOST_MACHINE_SSIZE_WIDTH__ 32 +#define __MCPU_HOST_MACHINE_SIZEOF_SSIZE__ 4 +#define __MCPU_HOST_MACHINE_SSIZE_MAX__ 0x7fffffff ``` -Это MCPU-specific family, а не попытка приписать GNU CPP несуществующий -стандартный `__SSIZE_*` contract. +На HOST с 64-битными `size_t` и `ssize_t` те же имена обозначают `uint64`/`int64`, +ширину `64`, размер `8` и соответствующие максимумы +`0xffffffffffffffff`/`0x7fffffffffffffff`. Ширина HOST-регистра определяется +независимо и не выводится из `size_t`. -MCPU pointer ABI от host не зависит: PTR64 всегда имеет ширину 64 бита: +MCPU pointer ABI **не зависит от HOST**: PTR64 всегда имеет ширину 64 бита, +включая HOST с 32-битным `size_t`: ```text #define __INTPTR_TYPE__ int64 @@ -1405,8 +1435,8 @@ MCPU pointer ABI от host не зависит: PTR64 всегда имеет ш #define __MCPU_POINTER_WIDTH__ 64 ``` -Разность MCPU pointers является знаковой и также фиксирована независимо от -host: +Разность MCPU pointers является знаковой и также имеет фиксированную +разрядность независимо от HOST: ```text #define __PTRDIFF_TYPE__ int64 diff --git a/src/mcpp-predefined.c b/src/mcpp-predefined.c index 556232c..32b1ec4 100644 --- a/src/mcpp-predefined.c +++ b/src/mcpp-predefined.c @@ -553,7 +553,7 @@ mcpu_predefined_install( mcpu_macro_table *table ) return( -1 ); #endif - if( define_unsigned(table, "__MCPU_MACHINE_REGISTER_WIDTH__", + if( define_unsigned(table, "__MCPU_HOST_MACHINE_REGISTER_WIDTH__", MCPU_CPP_MPU_REGISTER_WIDTH) != 0 || define_unsigned(table, "__MCPU_REAL_IO_LIMIT__", MCPU_CPP_MPU_REAL_IO_LIMIT) != 0 || @@ -567,8 +567,8 @@ mcpu_predefined_install( mcpu_macro_table *table ) MCPU_CPP_MPU_REAL_IO_LIMIT) != 0 || define_unsigned(table, "__SIZEOF_POINTER__", 8) != 0 || define_unsigned(table, "__MCPU_POINTER_WIDTH__", 64) != 0 || - define_unsigned(table, "__MCPU_SIZEOF_SIZE__", MCPU_CPP_SIZEOF_SIZE_T) != 0 || - define_unsigned(table, "__MCPU_SIZE_WIDTH__", MCPU_CPP_SIZE_WIDTH) != 0 || + define_unsigned(table, "__MCPU_HOST_MACHINE_SIZEOF_SIZE__", MCPU_CPP_SIZEOF_SIZE_T) != 0 || + define_unsigned(table, "__MCPU_HOST_MACHINE_SIZE_WIDTH__", MCPU_CPP_SIZE_WIDTH) != 0 || define_unsigned(table, "__SIZEOF_PTRDIFF__", 8) != 0 || define_unsigned(table, "__PTRDIFF_WIDTH__", 64) != 0 || define_utf8(table, "__CHAR8_TYPE__", "char8") != 0 || @@ -588,21 +588,21 @@ mcpu_predefined_install( mcpu_macro_table *table ) } snprintf( type, sizeof(type), "uint%u", (unsigned)MCPU_CPP_SIZE_WIDTH ); - if( define_utf8(table, "__MCPU_SIZE_TYPE__", type) != 0 ) + if( define_utf8(table, "__MCPU_HOST_MACHINE_SIZE_TYPE__", type) != 0 ) return( -1 ); snprintf( ref, sizeof(ref), "__UINT%u_MAX__", (unsigned)MCPU_CPP_SIZE_WIDTH ); - if( define_from_macro(table, "__MCPU_SIZE_MAX__", ref) != 0 ) + if( define_from_macro(table, "__MCPU_HOST_MACHINE_SIZE_MAX__", ref) != 0 ) return( -1 ); snprintf( type, sizeof(type), "int%u", (unsigned)MCPU_CPP_SSIZE_WIDTH ); - if( define_utf8(table, "__MCPU_SSIZE_TYPE__", type) != 0 || - define_unsigned(table, "__MCPU_SSIZE_WIDTH__", MCPU_CPP_SSIZE_WIDTH) != 0 || - define_unsigned(table, "__MCPU_SIZEOF_SSIZE__", MCPU_CPP_SIZEOF_SSIZE_T) != 0 ) + if( define_utf8(table, "__MCPU_HOST_MACHINE_SSIZE_TYPE__", type) != 0 || + define_unsigned(table, "__MCPU_HOST_MACHINE_SSIZE_WIDTH__", MCPU_CPP_SSIZE_WIDTH) != 0 || + define_unsigned(table, "__MCPU_HOST_MACHINE_SIZEOF_SSIZE__", MCPU_CPP_SIZEOF_SSIZE_T) != 0 ) return( -1 ); if( MCPU_CPP_SSIZE_WIDTH <= 256 ) { snprintf( ref, sizeof(ref), "__INT%u_MAX__", (unsigned)MCPU_CPP_SSIZE_WIDTH ); - if( define_from_macro(table, "__MCPU_SSIZE_MAX__", ref) != 0 ) + if( define_from_macro(table, "__MCPU_HOST_MACHINE_SSIZE_MAX__", ref) != 0 ) return( -1 ); } diff --git a/tests/t0024-abi-predefined.sh b/tests/t0024-abi-predefined.sh index 9afee99..ba1f01e 100755 --- a/tests/t0024-abi-predefined.sh +++ b/tests/t0024-abi-predefined.sh @@ -11,21 +11,21 @@ old_version = __VERSION__; byte_order = __BYTE_ORDER__; mcpu_byte_order = __MCPU_BYTE_ORDER__; word_order = __MCPU_WORD_ORDER__; -register_width = __MCPU_MACHINE_REGISTER_WIDTH__; +register_width = __MCPU_HOST_MACHINE_REGISTER_WIDTH__; real_io_limit = __MCPU_REAL_IO_LIMIT__; math_fn_limit = __MCPU_MATH_FN_LIMIT__; pointer_width = __MCPU_POINTER_WIDTH__; int_max_width = __MCPU_INT_MAX_WIDTH__; real_max_width = __MCPU_REAL_MAX_WIDTH__; complex_max_width = __MCPU_COMPLEX_MAX_WIDTH__; -size_type = __MCPU_SIZE_TYPE__; -size_width = __MCPU_SIZE_WIDTH__; -size_sizeof = __MCPU_SIZEOF_SIZE__; -size_max = __MCPU_SIZE_MAX__; -ssize_type = __MCPU_SSIZE_TYPE__; -ssize_width = __MCPU_SSIZE_WIDTH__; -ssize_sizeof = __MCPU_SIZEOF_SSIZE__; -ssize_max = __MCPU_SSIZE_MAX__; +size_type = __MCPU_HOST_MACHINE_SIZE_TYPE__; +size_width = __MCPU_HOST_MACHINE_SIZE_WIDTH__; +size_sizeof = __MCPU_HOST_MACHINE_SIZEOF_SIZE__; +size_max = __MCPU_HOST_MACHINE_SIZE_MAX__; +ssize_type = __MCPU_HOST_MACHINE_SSIZE_TYPE__; +ssize_width = __MCPU_HOST_MACHINE_SSIZE_WIDTH__; +ssize_sizeof = __MCPU_HOST_MACHINE_SIZEOF_SSIZE__; +ssize_max = __MCPU_HOST_MACHINE_SSIZE_MAX__; ptrdiff_type = __PTRDIFF_TYPE__; ptrdiff_width = __PTRDIFF_WIDTH__; ptrdiff_max = __PTRDIFF_MAX__; diff --git a/tests/t0025-dump-macros.sh b/tests/t0025-dump-macros.sh index 3213f7b..5d514e7 100755 --- a/tests/t0025-dump-macros.sh +++ b/tests/t0025-dump-macros.sh @@ -10,7 +10,7 @@ test -s "$base/macros" LC_ALL=C sort -c "$base/macros" grep '^#define _ARCH_MCPU 1$' "$base/macros" >/dev/null grep '^#define __MCPU_CPP_VERSION__ "1\.0\.5"$' "$base/macros" >/dev/null -grep '^#define __MCPU_MACHINE_REGISTER_WIDTH__ \(64\|32\)$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_REGISTER_WIDTH__ \(64\|32\)$' "$base/macros" >/dev/null grep '^#define __MCPU_REAL_IO_LIMIT__ [0-9][0-9]*$' "$base/macros" >/dev/null grep '^#define __MCPU_MATH_FN_LIMIT__ [0-9][0-9]*$' "$base/macros" >/dev/null grep '^#define __MCPU_BYTE_ORDER__ __ORDER_\(LITTLE\|BIG\)_ENDIAN__$' "$base/macros" >/dev/null @@ -21,10 +21,10 @@ grep '^#define __MCPU_REAL_MAX_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null grep '^#define __MCPU_COMPLEX_MAX_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null grep '^#define __REGISTER_PREFIX__$' "$base/macros" >/dev/null grep '^#define __USER_LABEL_PREFIX__$' "$base/macros" >/dev/null -grep '^#define __MCPU_SIZE_TYPE__ uint[0-9][0-9]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SIZE_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SIZEOF_SIZE__ [1-9][0-9]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SIZE_MAX__ 0x[0-9a-f][0-9a-f]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SIZE_TYPE__ uint[0-9][0-9]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SIZE_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SIZEOF_SIZE__ [1-9][0-9]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SIZE_MAX__ 0x[0-9a-f][0-9a-f]*$' "$base/macros" >/dev/null grep '^#define __PTRDIFF_TYPE__ int64$' "$base/macros" >/dev/null grep '^#define __PTRDIFF_WIDTH__ 64$' "$base/macros" >/dev/null grep '^#define __PTRDIFF_MAX__ 0x7fffffffffffffff$' "$base/macros" >/dev/null @@ -32,10 +32,10 @@ grep '^#define __SIZEOF_PTRDIFF__ 8$' "$base/macros" >/dev/null grep '^#define __INTPTR_TYPE__ int64$' "$base/macros" >/dev/null grep '^#define __INTPTR_WIDTH__ 64$' "$base/macros" >/dev/null grep '^#define __INTPTR_MAX__ 0x7fffffffffffffff$' "$base/macros" >/dev/null -grep '^#define __MCPU_SSIZE_TYPE__ int[0-9][0-9]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SSIZE_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SIZEOF_SSIZE__ [1-9][0-9]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SSIZE_MAX__ 0x[0-9a-f][0-9a-f]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SSIZE_TYPE__ int[0-9][0-9]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SSIZE_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SIZEOF_SSIZE__ [1-9][0-9]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SSIZE_MAX__ 0x[0-9a-f][0-9a-f]*$' "$base/macros" >/dev/null grep '^#define __UINTPTR_TYPE__ uint64$' "$base/macros" >/dev/null grep '^#define __UINTPTR_WIDTH__ 64$' "$base/macros" >/dev/null grep '^#define __UINTPTR_MAX__ 0xffffffffffffffff$' "$base/macros" >/dev/null diff --git a/tests/t0029-predefined-abi-names.sh b/tests/t0029-predefined-abi-names.sh index 37b2f55..3ed158c 100755 --- a/tests/t0029-predefined-abi-names.sh +++ b/tests/t0029-predefined-abi-names.sh @@ -6,14 +6,14 @@ trap 'rm -rf "$base"' EXIT HUP INT TERM "$MCPU_CPP" --no-config -dMP < /dev/null > "$base/macros" -grep '^#define __MCPU_SIZE_TYPE__ uint[0-9][0-9]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SIZE_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SIZEOF_SIZE__ [1-9][0-9]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SIZE_MAX__ 0x[0-9a-f][0-9a-f]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SSIZE_TYPE__ int[0-9][0-9]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SSIZE_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SIZEOF_SSIZE__ [1-9][0-9]*$' "$base/macros" >/dev/null -grep '^#define __MCPU_SSIZE_MAX__ 0x[0-9a-f][0-9a-f]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SIZE_TYPE__ uint[0-9][0-9]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SIZE_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SIZEOF_SIZE__ [1-9][0-9]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SIZE_MAX__ 0x[0-9a-f][0-9a-f]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SSIZE_TYPE__ int[0-9][0-9]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SSIZE_WIDTH__ [1-9][0-9]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SIZEOF_SSIZE__ [1-9][0-9]*$' "$base/macros" >/dev/null +grep '^#define __MCPU_HOST_MACHINE_SSIZE_MAX__ 0x[0-9a-f][0-9a-f]*$' "$base/macros" >/dev/null grep '^#define __SIZEOF_PTRDIFF__ 8$' "$base/macros" >/dev/null grep '^#define __BYTE_ORDER__ __MCPU_BYTE_ORDER__$' "$base/macros" >/dev/null grep '^#define __MCPU_BYTE_ORDER__ __ORDER_\(LITTLE\|BIG\)_ENDIAN__$' "$base/macros" >/dev/null |
