Re: [ccache] use_relative_paths_in_depfile not called in preprocessor mode

2017-12-30 Thread Joel Rosdahl via ccache
Hi Venkat,

> cache hit(preprocessed) puts the .d file from the workspace as-is into the
> cache, thus, if such a compilation resulted in absolute paths in the .d
> file(in workspace), then, the cache will also contain .d files with
> absolute paths, resulting in troubles later on(from another users
workspace)
> [...]

Thanks for noting this!

I had a look at it and I think that the

put_file_in_cache(output_dep, cached_dep);


call in from_cache is just a mistake in commit 38301c0d – it should have
been removed when I added the corresponding call in to_cache. So currently
on a preprocessed hit, the .d file that already exists in the cache (with
absolute paths adjusted to relative) will be overwritten with a new version
(potentially with absolute paths).

Thus I think that the proper fix looks like this:

--- a/ccache.c
+++ b/ccache.c
@@ -1964,11 +1964,6 @@ from_cache(enum fromcache_call_mode mode, bool
put_object_in_manifest)
update_mtime(cached_dwo);
}

-   if (generating_dependencies && mode == FROMCACHE_CPP_MODE
-   && !conf->read_only && !conf->read_only_direct) {
-   put_file_in_cache(output_dep, cached_dep);
-   }
-
send_cached_stderr();

if (put_object_in_manifest) {


What do you think?

-- Joel


On 6 October 2017 at 15:50, Karanam Suryanarayana Rao Venkata Krishna via
ccache  wrote:

> Hello,
> cache hit(preprocessed) puts the .d file from the workspace as-is into the
> cache, thus, if such a compilation resulted in absolute paths in the .d
> file(in workspace), then, the cache will also contain .d files with
> absolute paths, resulting in troubles later on(from another users
> workspace)
>
> I mean, https://github.com/ccache/ccache/blob/3.3-maint/ccache.c#L1969
> should precede a function call use_relative_paths_in_depfile(output_dep);
> just the way it is on
> https://github.com/ccache/ccache/blob/3.3-maint/ccache.c#L1307
>
> Please comment.
>
> best regards,
> Venkat.
> ___
> ccache mailing list
> ccache@lists.samba.org
> https://lists.samba.org/mailman/listinfo/ccache
>
___
ccache mailing list
ccache@lists.samba.org
https://lists.samba.org/mailman/listinfo/ccache


[ccache] use_relative_paths_in_depfile not called in preprocessor mode

2017-10-06 Thread Karanam Suryanarayana Rao Venkata Krishna via ccache
Hello,
cache hit(preprocessed) puts the .d file from the workspace as-is into the
cache, thus, if such a compilation resulted in absolute paths in the .d
file(in workspace), then, the cache will also contain .d files with
absolute paths, resulting in troubles later on(from another users workspace)

I mean, https://github.com/ccache/ccache/blob/3.3-maint/ccache.c#L1969
should precede a function call use_relative_paths_in_depfile(output_dep);
just the way it is on
https://github.com/ccache/ccache/blob/3.3-maint/ccache.c#L1307

Please comment.

best regards,
Venkat.
___
ccache mailing list
ccache@lists.samba.org
https://lists.samba.org/mailman/listinfo/ccache