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

Reply via email to