Hi,
See https://cirrus-ci.com/task/5880116075560960
[18:14:04.821] time make -s -j${BUILD_JOBS} world-bin
[18:15:49.090] pg_locale.c: In function ‘get_collation_actual_version’:
[18:15:49.090] pg_locale.c:1763:42: error: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long
unsignedint’ [-Werror=format=]
[18:15:49.090] 1763 | collversion = psprintf("%d.%d,%d.%d",
[18:15:49.090] | ~^
[18:15:49.090] | |
[18:15:49.090] | int
[18:15:49.090] | %ld
[18:15:49.090] 1764 | (version.dwNLSVersion >> 8) &
0xFFFF,
[18:15:49.090] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[18:15:49.090] | |
[18:15:49.090] | long
unsignedint
I have no idea why we are seeing this error now when we didn't in the past -
there don't seem to have been any relevant changes?
It does reproduce on my debian sid machine, so it's something we ought to fix,
I think?
We did fix it in newer versions:
Author: Peter Eisentraut <peter@eisentraut.org>
Branch: master Release: REL_16_BR [a9bc04b21] 2023-03-24 07:21:40 +0100
Fix incorrect format placeholders
The fields of NLSVERSIONINFOEX are of type DWORD, which is unsigned
long, so the results of the computations being printed are also of
type unsigned long.
Peter, any reason you didn't backpatch that?
Greetings,
Andres Freund