Thread

  1. MinGW ccache snafu on CI

    Thomas Munro <thomas.munro@gmail.com> — 2026-07-04T04:44:47Z

    Hi,
    
    As previously reported[1] (also discussed on Discord a few times), the
    MinGW CI job is capable of getting confused like this:
    
    Cache restored from key: ccache:windows-mingw:thread-work:28559723796:1
    
    # check for "D:/a/postgres/postgres/build/tmp_install/usr/local/pgsql/bin/vacuumdb"
    failed: incorrect version: found "vacuumdb (PostgreSQL) 19beta1",
    expected "vacuumdb (PostgreSQL) 20devel"
    
    Apparently ccache failed to recompile stuff that it should have, and
    produced a stale .o from an earlier build in the same repo/branch.
    While "19beta1" and "20devel" have the same length, I doubt that a
    mere few hundred monkeys with typewriters have found multiple hash
    collisions...
    
    One observation is that the MinGW job is using precompiled headers
    (-Db_pch=true).  I wonder if we might be using the wrong switches[2],
    but I don't claim to understand that stuff...
    
    So is the MSVC job, but I don't recall hearing of any problems there.
    
    [1] https://www.postgresql.org/message-id/flat/E1vOJwR-001XFf-0r%40gemulon.postgresql.org
    [2] https://ccache.dev/manual/4.1.html#_precompiled_headers
    
    
    
    
  2. Re: MinGW ccache snafu on CI

    Andres Freund <andres@anarazel.de> — 2026-07-07T17:37:03Z

    Hi,
    
    On 2026-07-04 16:44:47 +1200, Thomas Munro wrote:
    > As previously reported[1] (also discussed on Discord a few times), the
    > MinGW CI job is capable of getting confused like this:
    > 
    > Cache restored from key: ccache:windows-mingw:thread-work:28559723796:1
    > 
    > # check for "D:/a/postgres/postgres/build/tmp_install/usr/local/pgsql/bin/vacuumdb"
    > failed: incorrect version: found "vacuumdb (PostgreSQL) 19beta1",
    > expected "vacuumdb (PostgreSQL) 20devel"
    > 
    > Apparently ccache failed to recompile stuff that it should have, and
    > produced a stale .o from an earlier build in the same repo/branch.
    > While "19beta1" and "20devel" have the same length, I doubt that a
    > mere few hundred monkeys with typewriters have found multiple hash
    > collisions...
    > 
    > One observation is that the MinGW job is using precompiled headers
    > (-Db_pch=true).  I wonder if we might be using the wrong switches[2],
    > but I don't claim to understand that stuff...
    > 
    > So is the MSVC job, but I don't recall hearing of any problems there.
    > 
    > [1] https://www.postgresql.org/message-id/flat/E1vOJwR-001XFf-0r%40gemulon.postgresql.org
    > [2] https://ccache.dev/manual/4.1.html#_precompiled_headers
    
    There's another thread about this:
    https://www.postgresql.org/message-id/CAN55FZ0tqR6Xz%3DiVFLc1BBoLOEHU775ARhcGYwggHA3XLA%3DoQg%40mail.gmail.com
    
    As suggested there, I think we need to add -fpch-deps for gcc, until either
    ccache is fixed or meson adds it automatically.
    
    Greetings,
    
    Andres Freund