X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=scripts%2Fbasic%2Ffixdep.c;h=da7fb2cd4dde9cd1ca52e8981628fdb9e3ad05f7;hb=f9b0b8d4ee6d5515305470eeb909506c90b5d331;hp=20fed03beabad5c5b915e51763e338c7ab8833f4;hpb=7c0e5d865ff0b86dfce492b656238919c659d756;p=oweals%2Fu-boot.git diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c index 20fed03bea..da7fb2cd4d 100644 --- a/scripts/basic/fixdep.c +++ b/scripts/basic/fixdep.c @@ -123,7 +123,7 @@ char *target; char *depfile; char *cmdline; -int is_spl_build = 0; /* hack for U-boot */ +int is_spl_build = 0; /* hack for U-Boot */ static void usage(void) { @@ -192,23 +192,6 @@ static void define_config(const char *name, int len, unsigned int hash) hashtab[hash % HASHSZ] = aux; } -/* - * Clear the set of configuration strings. - */ -static void clear_config(void) -{ - struct item *aux, *next; - unsigned int i; - - for (i = 0; i < HASHSZ; i++) { - for (aux = hashtab[i]; aux; aux = next) { - next = aux->next; - free(aux); - } - hashtab[i] = NULL; - } -} - /* * Record the use of a CONFIG_* word. */ @@ -266,10 +249,17 @@ static void parse_config_file(const char *map, size_t len) if (q - p < 0) continue; - /* U-Boot also handles CONFIG_IS_{ENABLED/BUILTIN/MODULE} */ + /* + * U-Boot also handles + * CONFIG_IS_ENABLED(...) + * CONFIG_IS_BUILTIN(...) + * CONFIG_IS_MODULE(...) + * CONFIG_VAL(...) + */ if ((q - p == 10 && !memcmp(p, "IS_ENABLED(", 11)) || (q - p == 10 && !memcmp(p, "IS_BUILTIN(", 11)) || - (q - p == 9 && !memcmp(p, "IS_MODULE(", 10))) { + (q - p == 9 && !memcmp(p, "IS_MODULE(", 10)) || + (q - p == 3 && !memcmp(p, "VAL(", 4))) { p = q + 1; for (q = p; q < map + len; q++) if (*q == ')') @@ -313,7 +303,11 @@ static void do_config_file(const char *filename) perror(filename); exit(2); } - fstat(fd, &st); + if (fstat(fd, &st) < 0) { + fprintf(stderr, "fixdep: error fstat'ing config file: "); + perror(filename); + exit(2); + } if (st.st_size == 0) { close(fd); return; @@ -347,8 +341,6 @@ static void parse_dep_file(void *map, size_t len) int saw_any_target = 0; int is_first_dep = 0; - clear_config(); - while (m < end) { /* Skip any "white space" */ while (m < end && (*m == ' ' || *m == '\\' || *m == '\n')) @@ -478,7 +470,7 @@ int main(int argc, char *argv[]) target = argv[2]; cmdline = argv[3]; - /* hack for U-boot */ + /* hack for U-Boot */ if (!strncmp(target, "spl/", 4) || !strncmp(target, "tpl/", 4)) is_spl_build = 1;