Re: ccache, MSVC, and meson

From: Andres Freund <andres(at)anarazel(dot)de>
To: Justin Pryzby <pryzby(at)telsasoft(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Robert Haas <robertmhaas(at)gmail(dot)com>, Andrew Dunstan <andrew(at)dunslane(dot)net>, pgsql-hackers(at)postgresql(dot)org, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Melanie Plageman <melanieplageman(at)gmail(dot)com>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, Daniel Gustafsson <daniel(at)yesql(dot)se>
Subject: Re: ccache, MSVC, and meson
Date: 2022-05-24 19:30:59
Message-ID: 20220524193059.n432rlzezckxr6x2@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2022-05-22 18:26:06 -0500, Justin Pryzby wrote:
> forking: <20220307191054(dot)n5enrlf6kdn7zc42(at)alap3(dot)anarazel(dot)de>
>
> An update.
>
> ccache 4.6.1 was released which allows compiling postgres
> I submitted a request to update the package in chocolatey.
>
> But with the existing build system, it's no faster anyway, I guess due to poor
> use of parallelism.
> https://cirrus-ci.com/task/5972008205811712

No, because it never uses caching, because the way we set the output director
causes ccache to never cache.

> Currently, meson doesn't (automatically) use ccache with MSVC - see
> mesonbuild/environment.py.
>
> And CC=ccache gives an error - I suppose it should not try to pop ccache off the
> compiler list if the list has only one element.
> [...]

> But it can be convinced to use ccache by renaming the executable to "pgccache".
> Which builds in 46sec: https://cirrus-ci.com/task/4862234995195904
> This requires ccache 4.6, released in Feburary and already in choco.
> Note that ccache supports neither /Zi debugging nor precompiled headers.
> I'm not sure, but -Dc_args=/Z7 may do what's wanted here.

The spurious message should be fixed, of course. I suspect you dont need a
wrapper, you can just set CC='ccache cl.exe' or similar? Afaics it's not
meaningful to do 'CC=ccache.exe' alone, because then it'll interpret arguments
as ccache options, rather than compiler options.

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Matthias van de Meent 2022-05-24 19:37:46 Re: adding status for COPY progress report
Previous Message Christoph Berg 2022-05-24 19:00:33 Re: 15beta1 test failure on mips in isolation/expected/stats