X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fconfigurator%2Fconfigurator.c;h=ecf8f9f5f1de805c9e6327fa4bacaa0185861d3d;hp=6ec30bd6deb77596fde041983175f4eaa117741d;hb=d872b7f22bc98092cad2aa4a456973bdbdb2c8fb;hpb=f15904b683f12a3add9eaa8e34f73acbf790b85e diff --git a/tools/configurator/configurator.c b/tools/configurator/configurator.c index 6ec30bd6..ecf8f9f5 100644 --- a/tools/configurator/configurator.c +++ b/tools/configurator/configurator.c @@ -159,8 +159,12 @@ static struct test tests[] = { "return __builtin_ffsl(0L) == 0 ? 0 : 1;" }, { "HAVE_BUILTIN_FFSLL", INSIDE_MAIN, NULL, NULL, "return __builtin_ffsll(0LL) == 0 ? 0 : 1;" }, + { "HAVE_BUILTIN_POPCOUNT", INSIDE_MAIN, NULL, NULL, + "return __builtin_popcount(255) == 8 ? 0 : 1;" }, { "HAVE_BUILTIN_POPCOUNTL", INSIDE_MAIN, NULL, NULL, "return __builtin_popcountl(255L) == 8 ? 0 : 1;" }, + { "HAVE_BUILTIN_POPCOUNTLL", INSIDE_MAIN, NULL, NULL, + "return __builtin_popcountll(255LL) == 8 ? 0 : 1;" }, { "HAVE_BUILTIN_TYPES_COMPATIBLE_P", INSIDE_MAIN, NULL, NULL, "return __builtin_types_compatible_p(char *, int) ? 1 : 0;" }, { "HAVE_ICCARM_INTRINSICS", DEFINES_FUNC, NULL, NULL, @@ -315,6 +319,8 @@ static struct test tests[] = { "#include \n" }, { "HAVE_SYS_TERMIOS_H", OUTSIDE_MAIN, NULL, NULL, "#include \n" }, + { "HAVE_SYS_UNISTD_H", OUTSIDE_MAIN, NULL, NULL, + "#include \n" }, { "HAVE_TYPEOF", INSIDE_MAIN, NULL, NULL, "__typeof__(argc) i; i = argc; return i == argc ? 0 : 1;" }, { "HAVE_UNALIGNED_ACCESS", DEFINES_EVERYTHING|EXECUTE, NULL, NULL, @@ -668,13 +674,15 @@ int main(int argc, const char *argv[]) const char *default_args[] = { "", DEFAULT_COMPILER, DEFAULT_FLAGS, NULL }; const char *outflag = DEFAULT_OUTPUT_EXE_FLAG; + const char *configurator_cc = NULL; + const char *orig_cc; if (argc > 0) progname = argv[0]; while (argc > 1) { if (strcmp(argv[1], "--help") == 0) { - printf("Usage: configurator [-v] [-O] [ ...]\n" + printf("Usage: configurator [-v] [-O] [--configurator-cc=] [ ...]\n" " will have \" \" appended\n" "Default: %s %s %s\n", DEFAULT_COMPILER, DEFAULT_FLAGS, @@ -699,6 +707,10 @@ int main(int argc, const char *argv[]) argc--; argv++; verbose += 2; + } else if (strncmp(argv[1], "--configurator-cc=", 18) == 0) { + configurator_cc = argv[1] + 18; + argc--; + argv++; } else { break; } @@ -707,6 +719,10 @@ int main(int argc, const char *argv[]) if (argc == 1) argv = default_args; + orig_cc = argv[1]; + if (configurator_cc) + argv[1] = configurator_cc; + cmd = connect_args(argv, outflag, OUTPUT_FILE " " INPUT_FILE); for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++) run_test(cmd, &tests[i]); @@ -721,7 +737,7 @@ int main(int argc, const char *argv[]) printf("#ifndef _GNU_SOURCE\n"); printf("#define _GNU_SOURCE /* Always use GNU extensions. */\n"); printf("#endif\n"); - printf("#define CCAN_COMPILER \"%s\"\n", argv[1]); + printf("#define CCAN_COMPILER \"%s\"\n", orig_cc); cmd = connect_args(argv + 1, "", ""); printf("#define CCAN_CFLAGS \"%s\"\n", cmd); free(cmd);