#1128545 gcl: FTBFS with glibc 2.43 due to ISO C23 const return types

Package:
src:gcl
Source:
src:gcl
Submitter:
Aurelien Jarno
Date:
2026-02-20 22:49:02 UTC
Severity:
normal
Tags:
#1128545#5
Date:
2026-02-20 22:47:33 UTC
From:
To:
Dear maintainer(s),

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

| gcc -c -g -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/gcl-2.6.14=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -fsigned-char -pipe -fcommon -fno-builtin-malloc -fno-builtin-free -fno-PIE -fno-pie -fno-PIC -fno-pic -std=gnu17 -Wall -Wno-empty-body -Wno-unused-but-set-variable -Wno-tautological-compare  -I/usr/include/tirpc  -Wdate-time -D_FORTIFY_SOURCE=2 -O2  -I/build/reproducible-path/gcl-2.6.14/o -I../h -I../gcl-tk number.c
| In file included from /usr/include/features.h:539,
|                  from /usr/include/link.h:23,
|                  from ../h/linux.h:12,
|                  from ../h/config.h:1,
|                  from ../h/include.h:74,
|                  from number.c:31:
| ../h/../h/protoize.h:106:35: error: expected identifier or ‘(’ before ‘_Generic’
|   106 | /* bsearch.c:5:OF */ extern void *bsearch (const void *key, const void *base, size_t nel, size_t keysize, int (*compar) (const void *,const void *)); /* (key, base, nel, keysize, compar) char *key; char *base; unsigned int nel; unsigned int keysize; int (*compar)(); */
|       |                                   ^~~~~~~
| make[2]: *** [makefile:43: number.o] Error 1
| make[2]: Leaving directory '/build/reproducible-path/gcl-2.6.14/o'
| make[1]: *** [makefile:77: unixport/saved_pre_gcl] Error 2
| rm h/mcompdefs.h
| make[1]: Leaving directory '/build/reproducible-path/gcl-2.6.14'
| make: *** [debian/rules:122: build-gprof-stamp] Error 2
| 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/gcl_arm64.build
[2] https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=e271fb2e4d76903c77a302aaec1ca22ce31027d0;hb=f762ccf84f122d1354f103a151cba8bde797d521#l19