Обсуждение: git head build failure

Поиск
Список
Период
Сортировка

git head build failure

От
Devrim Gündüz
Дата:

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.bcfuncs.c 
funcs.c:74:35: error: call to undeclared function 'VARSIZE_ANY_EXHDR'; ISO C99 and later do not support implicit
functiondeclarations [-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
functiondeclarations [-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

Вложения

Re: git head build failure

От
Álvaro Herrera
Дата:
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.bcfuncs.c
 
> funcs.c:74:35: error: call to undeclared function 'VARSIZE_ANY_EXHDR'; ISO C99 and later do not support implicit
functiondeclarations [-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)



Re: git head build failure

От
Devrim Gündüz
Дата:
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

Вложения