--- src/lib/libast/features/common.orig 2010-10-19 00:51:50.000000000 -0700 +++ src/lib/libast/features/common 2011-06-03 12:01:49.000000000 -0700 @@ -256,7 +256,11 @@ tst - -DN=1 - -DN=2 - -DN=3 - -DN=4 - -D } else #endif + { + printf("#ifndef _ast_int%d_t\n", m); printf("#define _ast_int%d_t %s\n", m, int_type[t].name); + printf("#endif\n"); + } if (m > 1) { if (*int_type[t].swap) @@ -266,9 +270,13 @@ tst - -DN=1 - -DN=2 - -DN=3 - -DN=4 - -D } } printf("#define _ast_intmax_t _ast_int%d_t\n", m); - if (m == sizeof(long)) - printf("#define _ast_intmax_long 1\n"); - printf("#define _ast_intswap %d\n", w); + printf("#if __LITTLE_ENDIAN__\n"); + printf("#define _ast_intswap 7\n"); + printf("#elif __BIG_ENDIAN__\n"); + printf("#define _ast_intswap 0\n"); + printf("#else\n"); + printf("#error Unknown byte sex\n"); + printf("#endif\n"); printf("\n"); return 0; } @@ -301,9 +309,17 @@ tst - output{ main() { register int t; - +#if 1 + printf("#define _ast_sizeof_short sizeof(short)\n"); + printf("#define _ast_sizeof_int sizeof(int)\n"); + printf("#define _ast_sizeof_long sizeof(long)\n"); + printf("#define _ast_sizeof_pointer sizeof(void*)\n"); + printf("#define _ast_sizeof_float sizeof(float)\n"); + printf("#define _ast_sizeof_double sizeof(double)\n"); +#else for (t = 0; t < elementsof(types); t++) printf("#define _ast_sizeof_%s%s %d /* sizeof(%s) */\n", types[t].name, strlen(types[t].name) < 4 ? "\t" : "", types[t].size, types[t].name); +#endif printf("\n"); return 0; }