[ccache] More win32 patches

Joel Rosdahl 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:
> http://github.com/ramiropolla/ccache

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://www.mail-archive.com/mutt-dev@mutt.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:
> http://www.chrysocome.net/dd

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
improve.
- read() is now used instead of mmap(); maybe it makes a difference on
Windows.

-- Joel


More information about the ccache mailing list