X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=tools%2Fccanlint%2Ftests%2Freduce_features.c;h=d7f5c24209f845ae792233e53dd3c9b20d7729af;hb=199023653cd6020218fbc4d0712591fc7ee0c5e1;hp=39a2bde067a96dbc0072514f5633eebff39974aa;hpb=939fab341caaa06d032b29f06362335de0db82cc;p=ccan diff --git a/tools/ccanlint/tests/reduce_features.c b/tools/ccanlint/tests/reduce_features.c index 39a2bde0..d7f5c242 100644 --- a/tools/ccanlint/tests/reduce_features.c +++ b/tools/ccanlint/tests/reduce_features.c @@ -40,7 +40,20 @@ static bool option_cmp(const char *name1, const char *name2) return streq(name1, name2); } -HTABLE_DEFINE_TYPE(char, option_name, option_hash, option_cmp, option); +HTABLE_DEFINE_TYPE(char, option_name, option_hash, option_cmp, htable_option); + +static struct htable_option *htable_option_new(void) +{ + struct htable_option *opts = malloc(sizeof(*opts)); + htable_option_init(opts); + return opts; +} + +static void htable_option_free(struct htable_option *opts) +{ + htable_option_clear(opts); + free(opts); +} static unsigned int add_options(struct htable_option *opts, struct pp_conditions *cond) @@ -108,6 +121,9 @@ static struct htable_option *get_config_options(struct manifest *m) /* Don't override endian... */ if (strends(sym, "_ENDIAN")) continue; + /* Don't override HAVE_STRUCT_TIMESPEC. */ + if (streq(sym, "HAVE_STRUCT_TIMESPEC")) + continue; if (!get_token(&lines[i], "1")) continue; htable_option_add(opts, sym); @@ -116,7 +132,6 @@ static struct htable_option *get_config_options(struct manifest *m) } static void do_reduce_features(struct manifest *m, - bool keep, unsigned int *timeleft, struct score *score) { struct htable_option *options_used, *options_avail, *options; @@ -160,10 +175,10 @@ static void do_reduce_features(struct manifest *m, hdr = talloc_asprintf_append (hdr, "#undef %s\n#define %s 0\n", sym, sym); } - if (mkdir("reduced-features", 0700) != 0) + if (mkdir("reduced-features", 0700) != 0 && errno != EEXIST) err(1, "Creating reduced-features directory"); - fd = open("reduced-features/config.h", O_EXCL|O_CREAT|O_RDWR, 0600); + fd = open("reduced-features/config.h", O_TRUNC|O_CREAT|O_RDWR, 0600); if (fd < 0) err(1, "Creating reduced-features/config.h"); if (!write_all(fd, hdr, strlen(hdr)))