[ccache] More win32 patches
joel at rosdahl.net
Sun Sep 26 14:42:25 MDT 2010
On 2010-09-22 05:17, Ramiro Polla wrote:
> I've updated my github fork at:
All applied, except for the strtok_r and AR patches.
> - There is no strtok_r() on Windows, I've implemented an ugly
> replacement using strtok().
I switched to use strtok_r because I needed nested parsing somewhere.
Although I don't see anything in the current code that needs it (I
probably rewrote it), I think we should use a reentrant replacement.
Maybe this: http://firstname.lastname@example.org/msg03067.html
> - The ar check on configure.ac fails for cross-compilation. I haven't
> investigated why, I've just removed it, but I suppose it's there for a
> reason so it's better to fix than to remove =)
Perhaps already fixed in e1b287d0ca3cdb48a5d3e8b0d46b9af51ee39abe?
> - Make test on Windows requires a certain dd to work (one that can
> emulate /dev/zero). It's the one found here:
If it's easier, I guess we could use any existing, large enough file
instead of /dev/zero, e.g. ccache.c.
> Joel, is there a way we can time how long each part of ccache takes?
> Not just a whole batch of tests, but it would be nice if under a
> certain ifdef we could print to the ccache log the time it takes to
> perform each step.
That would be a nice thing to have. Added to the TODO list.
> It seems to have gotten slower on Windows since the first port I've
> made (either that or FFmpeg has grown a lot too).
Off the top of my head, here are some things that have changed since
3.0pre0 that may affect the speed:
- The parsing in hash_source_code_string. Last time I measured, it's
actually about 2 times slower than the actual hashing, so there's room
for improvement there.
- The parsing in process_preprocessed_file is probably also possible to
- read() is now used instead of mmap(); maybe it makes a difference on
More information about the ccache