Hi, On 2022-06-01 12:39:50 +0300, Aleksander Alekseev wrote: > > > ``` > > > ../src/include/parser/kwlist.h:332:25: error: ‘PARAMETER’ undeclared here > > > (not > > > in a function) > > > 332 | PG_KEYWORD("parameter", PARAMETER, UNRESERVED_KEYWORD, BARE_LABEL) > > > > > > ../src/interfaces/ecpg/preproc/keywords.c:32:55: note: in definition of > > > macro > > > ‘PG_KEYWORD’ > > > 32 | #define PG_KEYWORD(kwname, value, category, collabel) value, > > > ``` > > > > Huh. I've not seen this before - could you provide a bit more detail about > > what you did? CI isn't testing ubuntu, but it is testing Debian, so I'd > > expect > > this to work. > > I used PIP to install Meson, since the default APT package is too old, v0.53: > > $ pip3 install --user meson > $ meson --version > 0.62.1 > $ ninja --version > 1.10.0 > > The branch was checked out as it was described in the first email. > Then to reproduce the issue: > > $ git status > On branch meson > Your branch is up to date with 'andres/meson'. > $ git fetch andres > $ git rebase -i andres/meson > $ meson setup build --buildtype debug > $ cd build > $ ninja > > This is pretty much the default Ubuntu 20.04.4 LTS system with all the > recent updates installed, so it shouldn't be a problem to reproduce > the issue with a VM.
Chatting with a colleague (who unbeknownst to me hit something similar in the past) I think we figured it out. It's not due to Ubuntu 20.04 or such. It's likely due to previously having an in-tree build with autoconf, doing make clean, doing a git pull, then building with meson. The meson build doesn't yet handle pre-existing flex / bison output. I had tried to defend against conflicts with in-tree builds by detecting an in-tree pg_config.h, but that doesn't help with files that aren't removed by make clean. Like bison / flex output. And I didn't notice this problem because it doesn't cause visible issues until the lexer / grammar changes... I'm not quite sure what the proper behaviour is when doing an out-of-tree build with meson (all builds are out-of-tree), with a pre-existing flex / bison output in the source tree that is out of date. Greetings, Andres Freund