diff options
Diffstat (limited to 'src/arg.c')
-rw-r--r-- | src/arg.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -212,8 +212,15 @@ int dcc_scan_args(char *argv[], char **input_file, char **output_file, } else if (!strcmp(a, "-frepo")) { rs_log_info("compiler will emit .rpo files; must be local"); return EXIT_DISTCC_FAILED; - } else if (str_startswith("-x", a)) { - rs_log_info("gcc's -x handling is complex; running locally"); + } else if (str_startswith("-x", a) + && argv[i+1] + && !str_startswith("c", argv[i+1]) + && !str_startswith("c++", argv[i+1]) + && !str_startswith("objective-c", argv[i+1]) + && !str_startswith("objective-c++", argv[i+1]) + && !str_startswith("go", argv[i+1]) + ) { + rs_log_info("gcc's -x handling is complex; running locally for %s", argv[i+1] ? argv[i+1] : "empty"); return EXIT_DISTCC_FAILED; } else if (str_startswith("-dr", a)) { rs_log_info("gcc's debug option %s may write extra files; " |