cache_add_dep_file: handle ErrorFileNotFound specially

This commit is contained in:
Andrew Kelley 2019-05-13 12:15:55 -04:00
parent f3db3b3c13
commit 7330a6102f
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9
2 changed files with 9 additions and 2 deletions

View File

@ -470,6 +470,11 @@ Error cache_add_dep_file(CacheHash *ch, Buf *dep_file_path, bool verbose) {
Error err;
Buf *contents = buf_alloc();
if ((err = os_fetch_file_path(dep_file_path, contents))) {
if (err == ErrorFileNotFound)
return err;
if (verbose) {
fprintf(stderr, "unable to read .d file: %s\n", err_str(err));
}
return ErrorReadingDepFile;
}
SplitIterator it = memSplit(buf_to_slice(contents), str("\r\n"));

View File

@ -8732,12 +8732,14 @@ static void gen_c_object(CodeGen *g, Buf *self_exe_path, CFile *c_file) {
if ((err = cache_add_dep_file(cache_hash, out_dep_path, true))) {
// Don't treat the absence of the .d file as a fatal error, the
// compiler may not produce one eg. when compiling .s files
if (err != ErrorReadingDepFile) {
if (err != ErrorFileNotFound) {
fprintf(stderr, "Failed to add C source dependencies to cache: %s\n", err_str(err));
exit(1);
}
}
os_delete_file(out_dep_path);
if (err != ErrorFileNotFound) {
os_delete_file(out_dep_path);
}
if ((err = cache_final(cache_hash, &digest))) {
fprintf(stderr, "Unable to finalize cache hash: %s\n", err_str(err));