git head build failure

Started by Devrim Gündüz3 months ago3 messages
#1Devrim Gündüz
devrim@gunduz.org

Hi,

My daily alpha RPMs failed to build in the last 2 days. Using the
tarball here:

https://ftp.postgresql.org/pub/snapshot/dev/

This happens on all of my RHEL/Fedora boxes (gcc 8.5.0 to 15.2.1) (clang 19 to clang 21):
=======================================
/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -Wno-format-truncation -O2 -I. -I. -I../../src/include -D_GNU_SOURCE -I/usr/include -I/usr/include/libxml2 -DWITH_GZFILEOP -flto=thin -emit-llvm -c -o funcs.bc funcs.c
funcs.c:74:35: error: call to undeclared function 'VARSIZE_ANY_EXHDR'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
74 | text *new_t = (text *) palloc(VARSIZE_ANY_EXHDR(t) + VARHDRSZ);
| ^
funcs.c:76:2: error: call to undeclared function 'SET_VARSIZE'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
76 | SET_VARSIZE(new_t, VARSIZE_ANY_EXHDR(t) + VARHDRSZ);
| ^
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -Wmissing-variable-declarations -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -g -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fPIC -fvisibility=hidden complex.o -L../../src/port -L../../src/common -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -L/usr/lib64 -Wl,--as-needed -Wl,-rpath,'/usr/pgsql-19/lib',--enable-new-dtags -fvisibility=hidden -shared -o complex.so
funcs.c:82:9: error: call to undeclared function 'VARDATA'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
82 | memcpy(VARDATA(new_t), /* destination */
| ^
funcs.c:83:6: error: call to undeclared function 'VARDATA_ANY'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
83 | VARDATA_ANY(t), /* source */
| ^
funcs.c:82:9: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'void *' [-Wint-conversion]
82 | memcpy(VARDATA(new_t), /* destination */
| ^~~~~~~~~~~~~~
/usr/include/string.h:43:39: note: passing argument to parameter '__dest' here
43 | extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
| ^
funcs.c:83:6: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'const void *' [-Wint-conversion]
83 | VARDATA_ANY(t), /* source */
| ^~~~~~~~~~~~~~
/usr/include/string.h:43:70: note: passing argument to parameter '__src' here
43 | extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
| ^
funcs.c:95:21: error: call to undeclared function 'VARSIZE_ANY_EXHDR'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
95 | int32 arg1_size = VARSIZE_ANY_EXHDR(arg1);
| ^
funcs.c:100:2: error: call to undeclared function 'SET_VARSIZE'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
100 | SET_VARSIZE(new_text, new_text_size);
| ^
funcs.c:101:9: error: call to undeclared function 'VARDATA'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
101 | memcpy(VARDATA(new_text), VARDATA_ANY(arg1), arg1_size);
| ^
funcs.c:101:28: error: call to undeclared function 'VARDATA_ANY'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
101 | memcpy(VARDATA(new_text), VARDATA_ANY(arg1), arg1_size);
| ^
funcs.c:101:9: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'void *' [-Wint-conversion]
101 | memcpy(VARDATA(new_text), VARDATA_ANY(arg1), arg1_size);
| ^~~~~~~~~~~~~~~~~
/usr/include/string.h:43:39: note: passing argument to parameter '__dest' here
43 | extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
| ^
funcs.c:101:28: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'const void *' [-Wint-conversion]
101 | memcpy(VARDATA(new_text), VARDATA_ANY(arg1), arg1_size);
| ^~~~~~~~~~~~~~~~~
/usr/include/string.h:43:70: note: passing argument to parameter '__src' here
43 | extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
| ^
funcs.c:102:9: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'void *' [-Wint-conversion]
102 | memcpy(VARDATA(new_text) + arg1_size, VARDATA_ANY(arg2), arg2_size);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/string.h:43:39: note: passing argument to parameter '__dest' here
43 | extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
| ^
funcs.c:102:40: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'const void *' [-Wint-conversion]
102 | memcpy(VARDATA(new_text) + arg1_size, VARDATA_ANY(arg2), arg2_size);
| ^~~~~~~~~~~~~~~~~
/usr/include/string.h:43:70: note: passing argument to parameter '__src' here
43 | extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
| ^
14 errors generated.
make[1]: *** [../../src/Makefile.global:1100: funcs.bc] Error 1
make[1]: *** Waiting for unfinished jobs....
funcs.c: In function ‘copytext’:
funcs.c:74:45: error: implicit declaration of function ‘VARSIZE_ANY_EXHDR’ [-Wimplicit-function-declaration]
74 | text *new_t = (text *) palloc(VARSIZE_ANY_EXHDR(t) + VARHDRSZ);
| ^~~~~~~~~~~~~~~~~
funcs.c:76:9: error: implicit declaration of function ‘SET_VARSIZE’ [-Wimplicit-function-declaration]
76 | SET_VARSIZE(new_t, VARSIZE_ANY_EXHDR(t) + VARHDRSZ);
| ^~~~~~~~~~~
funcs.c:82:16: error: implicit declaration of function ‘VARDATA’ [-Wimplicit-function-declaration]
82 | memcpy(VARDATA(new_t), /* destination */
| ^~~~~~~
funcs.c:83:20: error: implicit declaration of function ‘VARDATA_ANY’ [-Wimplicit-function-declaration]
83 | VARDATA_ANY(t), /* source */
| ^~~~~~~~~~~
funcs.c:82:16: error: passing argument 1 of ‘memcpy’ makes pointer from integer without a cast [-Wint-conversion]
82 | memcpy(VARDATA(new_t), /* destination */
| ^~~~~~~~~~~~~~
| |
| int
In file included from /usr/include/features.h:524,
from /usr/include/inttypes.h:25,
from ../../src/include/c.h:62,
from ../../src/include/postgres.h:48,
from funcs.c:11:
/usr/include/bits/string_fortified.h:26:1: note: expected ‘void *’ but argument is of type ‘int’
26 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
| ^~~~~
funcs.c:83:20: error: passing argument 2 of ‘memcpy’ makes pointer from integer without a cast [-Wint-conversion]
83 | VARDATA_ANY(t), /* source */
| ^~~~~~~~~~~~~~
| |
| int
/usr/include/bits/string_fortified.h:26:1: note: expected ‘const void *’ but argument is of type ‘int’
26 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
| ^~~~~
funcs.c: In function ‘concat_text’:
funcs.c:101:16: error: passing argument 1 of ‘memcpy’ makes pointer from integer without a cast [-Wint-conversion]
101 | memcpy(VARDATA(new_text), VARDATA_ANY(arg1), arg1_size);
| ^~~~~~~~~~~~~~~~~
| |
| int
/usr/include/bits/string_fortified.h:26:1: note: expected ‘void *’ but argument is of type ‘int’
26 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
| ^~~~~
funcs.c:101:35: error: passing argument 2 of ‘memcpy’ makes pointer from integer without a cast [-Wint-conversion]
101 | memcpy(VARDATA(new_text), VARDATA_ANY(arg1), arg1_size);
| ^~~~~~~~~~~~~~~~~
| |
| int
/usr/include/bits/string_fortified.h:26:1: note: expected ‘const void *’ but argument is of type ‘int’
26 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
| ^~~~~
funcs.c:102:34: error: passing argument 1 of ‘memcpy’ makes pointer from integer without a cast [-Wint-conversion]
102 | memcpy(VARDATA(new_text) + arg1_size, VARDATA_ANY(arg2), arg2_size);
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
| |
| int32 {aka int}
/usr/include/bits/string_fortified.h:26:1: note: expected ‘void *’ but argument is of type ‘int32’ {aka ‘int’}
26 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
| ^~~~~
funcs.c:102:47: error: passing argument 2 of ‘memcpy’ makes pointer from integer without a cast [-Wint-conversion]
102 | memcpy(VARDATA(new_text) + arg1_size, VARDATA_ANY(arg2), arg2_size);
| ^~~~~~~~~~~~~~~~~
| |
| int
/usr/include/bits/string_fortified.h:26:1: note: expected ‘const void *’ but argument is of type ‘int’
26 | __NTH (memcpy (void *__restrict __dest, const void *__restrict __src,
| ^~~~~

=======================================

Regards,
--
Devrim Gündüz
Open Source Solution Architect, PostgreSQL Major Contributor
BlueSky: @devrim.gunduz.org , @gunduz.org

#2Álvaro Herrera
alvherre@kurilemu.de
In reply to: Devrim Gündüz (#1)
Re: git head build failure

Hello,

On 2025-Oct-07, Devrim Gündüz wrote:

My daily alpha RPMs failed to build in the last 2 days. Using the
tarball here:

https://ftp.postgresql.org/pub/snapshot/dev/

This happens on all of my RHEL/Fedora boxes (gcc 8.5.0 to 15.2.1) (clang 19 to clang 21):
=======================================
/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -Wno-format-truncation -O2 -I. -I. -I../../src/include -D_GNU_SOURCE -I/usr/include -I/usr/include/libxml2 -DWITH_GZFILEOP -flto=thin -emit-llvm -c -o funcs.bc funcs.c
funcs.c:74:35: error: call to undeclared function 'VARSIZE_ANY_EXHDR'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
74 | text *new_t = (text *) palloc(VARSIZE_ANY_EXHDR(t) + VARHDRSZ);
| ^

Thanks for reporting. I'm going to bet that this is related to the
recent header inclusion changes I did two days ago, but I wonder why
don't I see them ...

... oh, this file is in src/tutorial/. I can find no Makefile rule that
compiles these files -- in fact, its own Makefile doesn't even work
under VPATH, and Meson has never heard of them (so I had to create a
separate workdir in order to test the fix, because none of my existing
trees are capable of compiling these files). So if this code wasn't
referenced from the documentation, it would all be pretty much dead
code. I wonder if anyone other than ancient forgotten RPM .spec files
compiles these files anymore.

Anyway, I've fixed it now, thanks for reporting.

--
Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/
"El miedo atento y previsor es la madre de la seguridad" (E. Burke)

#3Devrim Gündüz
devrim@gunduz.org
In reply to: Álvaro Herrera (#2)
Re: git head build failure

Hi,

On Tue, 2025-10-07 at 10:44 +0200, Álvaro Herrera wrote:

I wonder if anyone other than ancient forgotten RPM .spec files
compiles these files anymore.

I feel like I should rewrite the main spec file from scratch. Will look.

Anyway, I've fixed it now, thanks for reporting.

Thanks a lot!

Regards,
--
Devrim Gündüz
Open Source Solution Architect, PostgreSQL Major Contributor
BlueSky: @devrim.gunduz.org , @gunduz.org