ccache news
===========
+Unreleased 3.2.9
+----------------
+
+Bug fixes
+~~~~~~~~~
+
+- Fixed a regression in ccache 3.2.8: ccache could get confused when using the
+ compiler option `-Wp,` to pass multiple options to the preprocessor,
+ resulting in missing dependency files from direct mode cache hits.
+
ccache 3.2.8
------------
output_dep = make_relative_path(x_strdup(argv[i] + 9));
args_add(dep_args, argv[i]);
continue;
- } else if (str_startswith(argv[i], "-Wp,-M")) {
- /* -MF, -MP, -MQ, -MT, etc. TODO: Make argument to MF/MQ/MT
- * relative. */
+ } else if (str_eq(argv[i], "-Wp,-MP")
+ || (strlen(argv[i]) > 8
+ && str_startswith(argv[i], "-Wp,-M")
+ && argv[i][7] == ','
+ && (argv[i][6] == 'F'
+ || argv[i][6] == 'Q'
+ || argv[i][6] == 'T')
+ && !strchr(argv[i] + 8, ','))) {
+ /* TODO: Make argument to MF/MQ/MT relative. */
args_add(dep_args, argv[i]);
continue;
} else if (conf->direct_mode) {