Fix race with LLVM and bison.

From: "Maksim(dot)Melnikov" <m(dot)melnikov(at)postgrespro(dot)ru>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Fix race with LLVM and bison.
Date: 2026-03-27 11:31:52
Message-ID: f070a61e-1dd3-4fd9-bbc9-18d100b6722a@postgrespro.ru
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi All.

I've found build error in configuration --with-llvm

CPPFLAGS="-O2" ./configure --enable-debug --enable-cassert
--enable-tap-tests --with-openssl --with-icu  --with-llvm

....

make world-bin -j3

....

cubescan.c:9:10: fatal error: 'cubeparse.h' file not found
    9 | #include "cubeparse.h"  /* must be after cubedata.h for YYSTYPE
and NDBOX */

....
segscan.c:9:10: fatal error: 'segparse.h' file not found
    9 | #include "segparse.h"   /* must be after segdata.h for SEG */

The reason is race, that exist between LLVM compilation and bison source
code generation and compilation can occur first.

Ideally LLVM compilation target should depend on header files targets.

The error is difficult to reproduce and I've done simple patch to have
stable reproducing. Fix patch is also attached.

Thanks.

Attachment Content-Type Size
v1-0002-Patch-simplify-reproducing-of-race-with-LLVM-and-.patch text/x-patch 635 bytes
v1-0001-Fix-race-with-LLVM-compilation-and-bison-code-gen.patch text/x-patch 1.5 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Etsuro Fujita 2026-03-27 11:41:29 Re: Options to control remote transactions’ access/deferrable modes in postgres_fdw
Previous Message Peter Eisentraut 2026-03-27 11:23:24 Re: Make copyObject work in C++