diff options
Diffstat (limited to 'scripts/mod/sumversion.c')
| -rw-r--r-- | scripts/mod/sumversion.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/scripts/mod/sumversion.c b/scripts/mod/sumversion.c index ecf9c7dc182..9dfcd6d988d 100644 --- a/scripts/mod/sumversion.c +++ b/scripts/mod/sumversion.c | |||
| @@ -300,8 +300,8 @@ static int is_static_library(const char *objfile) | |||
| 300 | return 0; | 300 | return 0; |
| 301 | } | 301 | } |
| 302 | 302 | ||
| 303 | /* We have dir/file.o. Open dir/.file.o.cmd, look for deps_ line to | 303 | /* We have dir/file.o. Open dir/.file.o.cmd, look for source_ and deps_ line |
| 304 | * figure out source file. */ | 304 | * to figure out source files. */ |
| 305 | static int parse_source_files(const char *objfile, struct md4_ctx *md) | 305 | static int parse_source_files(const char *objfile, struct md4_ctx *md) |
| 306 | { | 306 | { |
| 307 | char *cmd, *file, *line, *dir; | 307 | char *cmd, *file, *line, *dir; |
| @@ -340,6 +340,21 @@ static int parse_source_files(const char *objfile, struct md4_ctx *md) | |||
| 340 | */ | 340 | */ |
| 341 | while ((line = get_next_line(&pos, file, flen)) != NULL) { | 341 | while ((line = get_next_line(&pos, file, flen)) != NULL) { |
| 342 | char* p = line; | 342 | char* p = line; |
| 343 | |||
| 344 | if (strncmp(line, "source_", sizeof("source_")-1) == 0) { | ||
| 345 | p = strrchr(line, ' '); | ||
| 346 | if (!p) { | ||
| 347 | warn("malformed line: %s\n", line); | ||
| 348 | goto out_file; | ||
| 349 | } | ||
| 350 | p++; | ||
| 351 | if (!parse_file(p, md)) { | ||
| 352 | warn("could not open %s: %s\n", | ||
| 353 | p, strerror(errno)); | ||
| 354 | goto out_file; | ||
| 355 | } | ||
| 356 | continue; | ||
| 357 | } | ||
| 343 | if (strncmp(line, "deps_", sizeof("deps_")-1) == 0) { | 358 | if (strncmp(line, "deps_", sizeof("deps_")-1) == 0) { |
| 344 | check_files = 1; | 359 | check_files = 1; |
| 345 | continue; | 360 | continue; |
