meson: Fix ccache issues when using precompiled headers with gcc
authorAndres Freund <andres@anarazel.de>
Fri, 17 Jul 2026 15:23:18 +0000 (11:23 -0400)
committerAndres Freund <andres@anarazel.de>
Fri, 17 Jul 2026 15:25:46 +0000 (11:25 -0400)
commitcf9d76d78d69aa0b11a50a50b31aa83506304cac
treee5a90d0491151f00e023adbeef06e94e83d6ef1e
parent2521f9e75e910cec13591c1af76a69ea7f96109e
meson: Fix ccache issues when using precompiled headers with gcc

Unfortunately the combination of gcc, precompiled headers, ccache and meson
currently is not safe without further options. The dependencies emitted by gcc
are insufficient to trigger rebuilds when headers "below" the precompiled
headers are changed. Whether that's a ccache, gcc or meson bug is
debatable. Luckily gcc's -fpch-deps option fixes the issue.

This problem occasionally leads to build failures, e.g. if only c.h,
postgres.h or pg_config_manual.h change. That's e.g. the case when creating a
new major version branch.

Reviewed-by: Nazir Bilal Yavuz <byavuz81@gmail.com>
Reviewed-by: Jelte Fennema-Nio <postgres@jeltef.nl>
Discussion: https://postgr.es/m/CAN55FZ0tqR6Xz%3DiVFLc1BBoLOEHU775ARhcGYwggHA3XLA%3DoQg%40mail.gmail.com
Discussion: https://postgr.es/m/CA+hUKG+s7Yvt0PUnSQUEjCjysV-7-51n9B1h468Le3VJi0x4ZQ@mail.gmail.com
Discussion: https://postgr.es/m/phsrssp75npoyalqsolcd7fmnmlbzbmquc2p7w7mqjlw7432jk@bzskz3luyjvb
Discussion: https://github.com/ccache/ccache/issues/1686
Backpatch-through: 16, where meson support was added
meson.build