#1128737 patchutils: FTBFS with glibc 2.43 due to ISO C23 const return types

Package:
src:patchutils
Source:
src:patchutils
Submitter:
Aurelien Jarno
Date:
2026-02-22 16:17:05 UTC
Severity:
normal
Tags:
#1128737#5
Date:
2026-02-22 16:16:36 UTC
From:
To:
Dear maintainer(s),

patchutils fails to build from source with glibc 2.43, currently in
experimental. From the build log:

| gcc -DHAVE_CONFIG_H -I. -I..   -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_FORTIFY_SOURCE=2  -Wno-cast-qual -Wno-conversion -Wno-float-equal -Wno-sign-compare -Wno-undef -Wno-unused-function -Wno-unused-parameter -Wno-float-conversion -Wimplicit-fallthrough -Wno-pedantic -Wno-sign-conversion -Wno-type-limits -Wno-unused-const-variable -Wno-unsuffixed-float-constants -Wno-error -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/patchutils-0.4.3=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wall -c -o libgnu_a-malloca.o `test -f 'malloca.c' || echo './'`malloca.c

...

| In file included from /usr/include/features.h:539,
|                  from /usr/include/aarch64-linux-gnu/bits/libc-header-start.h:33,
|                  from /usr/include/stdlib.h:26,
|                  from ./stdlib.h:51,
|                  from malloca.h:29,
|                  from malloca.c:22:
| ./stdlib.h:814:20: error: expected identifier or ‘(’ before ‘_Generic’
|   814 | _GL_EXTERN_C void *bsearch (const void *__key,
|       |                    ^~~~~~~
| In file included from /usr/include/features.h:539,
|                  from /usr/include/aarch64-linux-gnu/bits/libc-header-start.h:33,
|                  from /usr/include/stdlib.h:26,
|                  from ./stdlib.h:51,
|                  from fd-hook.c:23:
| ./stdlib.h:814:20: error: expected identifier or ‘(’ before ‘_Generic’
|   814 | _GL_EXTERN_C void *bsearch (const void *__key,
|       |                    ^~~~~~~
| In file included from /usr/include/features.h:539,
|                  from /usr/include/aarch64-linux-gnu/bits/libc-header-start.h:33,
|                  from /usr/include/stdlib.h:26,
|                  from ./stdlib.h:51,
|                  from getprogname.c:20:
| ./stdlib.h:814:20: error: expected identifier or ‘(’ before ‘_Generic’
|   814 | _GL_EXTERN_C void *bsearch (const void *__key,
|       |                    ^~~~~~~
| In file included from /usr/include/features.h:539,
|                  from /usr/include/aarch64-linux-gnu/bits/libc-header-start.h:33,
|                  from /usr/include/stdlib.h:26,
|                  from ./stdlib.h:51,
|                  from stdlib.c:21:
| ./stdlib.h:814:20: error: expected identifier or ‘(’ before ‘_Generic’
|   814 | _GL_EXTERN_C void *bsearch (const void *__key,
|       |                    ^~~~~~~
| In file included from /usr/include/features.h:539,
|                  from /usr/include/aarch64-linux-gnu/sys/types.h:25,
|                  from ./sys/types.h:46,
|                  from ./fcntl.h:63,
|                  from fcntl.c:23:
| ./stdlib.h:814:20: error: expected identifier or ‘(’ before ‘_Generic’
|   814 | _GL_EXTERN_C void *bsearch (const void *__key,
|       |                    ^~~~~~~
| make[4]: *** [Makefile:1726: libgnu_a-malloca.o] Error 1
| make[4]: *** Waiting for unfinished jobs....
| make[4]: *** [Makefile:1600: libgnu_a-fd-hook.o] Error 1
| make[4]: *** [Makefile:1698: libgnu_a-getprogname.o] Error 1
| make[4]: *** [Makefile:1838: libgnu_a-stdlib.o] Error 1
| make[4]: *** [Makefile:1586: libgnu_a-fcntl.o] Error 1
| make[4]: Leaving directory '/build/reproducible-path/patchutils-0.4.3/lib'
| make[3]: *** [Makefile:1931: all-recursive] Error 1
| make[3]: Leaving directory '/build/reproducible-path/patchutils-0.4.3/lib'
| make[2]: *** [Makefile:1403: all] Error 2
| make[2]: Leaving directory '/build/reproducible-path/patchutils-0.4.3/lib'
| make[1]: *** [Makefile:3925: lib/libgnu.a] Error 2
| make[1]: Leaving directory '/build/reproducible-path/patchutils-0.4.3'
| dh_auto_build: error: make -j128 returned exit code 2
| make: *** [debian/rules:16: binary] Error 25
| dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2

The full build log is available here [1].

The issue is due to ISO C23 declaration of bsearch, memchr, strchr,
strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr,
which now returns a pointer to a const-qualified type when the input
argument is a pointer to a const-qualified type [2].

I would like to thanks Emanuele Rocca for doing the archive rebuild on
a fast arm64 server.

Regards
Aurelien

[1] https://people.debian.org/~ema/glibc-2.43-rebuilds/output-1/patchutils_arm64.build
[2] https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=e271fb2e4d76903c77a302aaec1ca22ce31027d0;hb=f762ccf84f122d1354f103a151cba8bde797d521#l19