This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] When using -fprofile-generate=/some/path mangle absolute path of file (PR lto/85759).
- From: Jeff Law <law at redhat dot com>
- To: Martin Liška <mliska at suse dot cz>, Jakub Jelinek <jakub at redhat dot com>, Martin Sebor <msebor at gmail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Richard Biener <richard dot guenther at gmail dot com>, Jan Hubicka <hubicka at ucw dot cz>
- Date: Fri, 22 Jun 2018 14:35:28 -0600
- Subject: Re: [PATCH] When using -fprofile-generate=/some/path mangle absolute path of file (PR lto/85759).
- References: <f61115af-55e1-8d59-545f-295f7e5b53cb@suse.cz> <41f0b7e4-1a6b-3f5e-1e3a-750502e73043@suse.cz> <08c9b11b-6420-f056-ae27-38394662deca@gmail.com> <20171220174525.GK2353@tucnak> <3b996c3b-6dc5-12d3-26bf-0aa27977dc66@suse.cz> <d771c196-0ded-6a5b-f67f-f1e51e3ddc15@suse.cz>
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 <mliska@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 <mliska@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