<div dir="ltr"><div><div><div>OK :-)<br><br></div>(don't know how this works, and perhaps obvious, but I don't have commit rights) <br><br></div>thanks,<br></div>  Johan<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 15, 2015 at 12:46 AM, Xinliang David Li <span dir="ltr"><<a href="mailto:davidxl@google.com" target="_blank">davidxl@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Mon, Dec 14, 2015 at 3:37 PM, Johan Engelen <<a href="mailto:jbc.engelen@gmail.com">jbc.engelen@gmail.com</a>> wrote:<br>
> Hi David,<br>
><br>
> On Tue, Dec 15, 2015 at 12:06 AM, Xinliang David Li <<a href="mailto:davidxl@google.com">davidxl@google.com</a>><br>
> wrote:<br>
>><br>
>> For the second one, I suggest adding one portability macro for the<br>
>> mode strings in InstrProfilingPort.h.<br>
><br>
><br>
> Because the instrprof file is a binary file, isn't it better on any platform<br>
> to fopen with mode string "ab"?<br>
<br>
</span>Yes -- in theory ;) Ok with this change.<br>
<br>
thanks,<br>
<br>
David<br>
<div class="HOEnZb"><div class="h5"><br>
> I don't see the benefit of making the mode-string "portable", but perhaps I<br>
> am missing something.<br>
><br>
> regards,<br>
>   Johan<br>
><br>
><br>
> On Tue, Dec 15, 2015 at 12:06 AM, Xinliang David Li <<a href="mailto:davidxl@google.com">davidxl@google.com</a>><br>
> wrote:<br>
>><br>
>> Can you submit both fixes to trunk?<br>
>><br>
>> For the second one, I suggest adding one portability macro for the<br>
>> mode strings in InstrProfilingPort.h.<br>
>><br>
>> thanks,<br>
>><br>
>> David<br>
>><br>
>> On Mon, Dec 14, 2015 at 3:01 PM, Johan Engelen <<a href="mailto:jbc.engelen@gmail.com">jbc.engelen@gmail.com</a>><br>
>> wrote:<br>
>> > Hello,<br>
>> >   I recently started using compiler-rt/lib/profile for<br>
>> > Instrumentation-based<br>
>> > PGO in LDC (LLVM D Compiler), but ran into two issues with the code on<br>
>> > Windows:<br>
>> > (1) The code does not compile with MSVC because of "__attribute__"<br>
>> > (2) The file written by InstrProfilingFile.c is in a corrupt format on<br>
>> > Windows<br>
>> ><br>
>> ><br>
>> > (1) is easily fixed, and I will submit a patch in a second email.<br>
>> ><br>
>> ><br>
>> > (2) The file is corrupt because the file is opened in text mode with<br>
>> > fopen(..., "a"), instead of in binary mode fopen(..., "ab"). With MSVC,<br>
>> > this<br>
>> > means that fwrite will silently add bytes to "fix" line-endings (i.e.<br>
>> > 0x0A<br>
>> > --> 0x0D 0x0A) !<br>
>> > The bug fix is trivial: open the file explicitly in binary mode.<br>
>> ><br>
>> > I have attached a patch for the release_37 branch (I much appreciate it<br>
>> > if<br>
>> > it can be committed, because I currently use this version of<br>
>> > /lib/profile<br>
>> > successfully for PGO in LDC), and I have also attached a patch for<br>
>> > trunk.<br>
>> ><br>
>> > (btw, thanks for the work on /lib/profile! It made it very easy to add<br>
>> > PGO<br>
>> > to LDC and worked flawlessly on OS X and Ubuntu!)<br>
>> ><br>
>> > Cheers,<br>
>> >   Johan<br>
>> ><br>
><br>
><br>
</div></div></blockquote></div><br></div>