On 06/22/2018 10:35 PM, Jeff Law wrote: > On 05/16/2018 05:53 AM, Martin Liška wrote: >> On 12/21/2017 10:13 AM, Martin Liška wrote: >>> On 12/20/2017 06:45 PM, Jakub Jelinek wrote: >>>> Another thing is that the "/" in there is wrong, so >>>> const char dir_separator_str[] = { DIR_SEPARATOR, '\0' }; >>>> char *b = concat (profile_data_prefix, dir_separator_str, pwd, NULL); >>>> needs to be used instead. >>> This looks much nicer, I forgot about DIR_SEPARATOR. >>> >>>> Does profile_data_prefix have any dir separators stripped from the end? >>> That's easy to achieve.. >>> >>>> Is pwd guaranteed to be relative in this case? >>> .. however this is absolute path, which would be problematic on a DOC based >>> FS. >>> Maybe we should do the same path mangling as we do for purpose of gcov: >>> >>> https://github.com/gcc-mirror/gcc/blob/master/gcc/gcov.c#L2424 >> Hi. >> >> I decided to implement that. Which means for: >> >> $ gcc -fprofile-generate=/tmp/myfolder empty.c -O2 && ./a.out >> >> we get following file: >> /tmp/myfolder/#home#marxin#Programming#testcases#tmp#empty.gcda >> >> That guarantees we have a unique file path. As seen in the PR it >> can produce a funny ICE. >> >> I've been testing the patch. >> Ready after it finishes tests? >> >> Martin >> >>> What do you think about it? >>> Regarding the string manipulation: I'm not an expert, but work with string >>> in C >>> is for me always a pain :) >>> >>> Martin >>> >> >> 0001-When-using-fprofile-generate-some-path-mangle-absolu.patch >> >> >> From 386a4561a4d1501e8959871791289e95f6a89af5 Mon Sep 17 00:00:00 2001 >> From: marxin <mli...@suse.cz> >> Date: Wed, 16 Aug 2017 10:22:57 +0200 >> Subject: [PATCH] When using -fprofile-generate=/some/path mangle absolute >> path >> of file (PR lto/85759). >> >> gcc/ChangeLog: >> >> 2018-05-16 Martin Liska <mli...@suse.cz> >> >> PR lto/85759 >> * coverage.c (coverage_init): Mangle full path name. >> * doc/invoke.texi: Document the change. >> * gcov-io.c (mangle_path): New. >> * gcov-io.h (mangle_path): Likewise. >> * gcov.c (mangle_name): Use mangle_path for path mangling. > ISTM you can self-approve this now if you want it to move forward :-) > > jeff >
Sure, let me install the patch then. Martin