#1128741 procenv: FTBFS with glibc 2.43 due to ISO C23 const return types

Package:
src:procenv
Source:
src:procenv
Submitter:
Aurelien Jarno
Date:
2026-02-22 16:17:09 UTC
Severity:
normal
Tags:
#1128741#5
Date:
2026-02-22 16:16:51 UTC
From:
To:
Dear maintainer(s),

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

| make[3]: Entering directory '/build/reproducible-path/procenv-0.51/src'
| gcc -DHAVE_CONFIG_H -I. -I..  -I . -I ./platform  -I ./platform/linux -D PROCENV_PLATFORM_LINUX         -Wdate-time -D_FORTIFY_SOURCE=2 -pedantic -std=gnu99 -Wall -Wunused -fstack-protector -Wformat  -fdata-sections -ffunction-sections -Werror -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/procenv-0.51=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -c -o procenv-procenv.o `test -f 'procenv.c' || echo './'`procenv.c
| procenv.c: In function ‘show_stat’:
| procenv.c:1870:9: error: the comparison will always evaluate as ‘true’ for the address of ‘cwd’ will never be NULL [-Werror=address]
|  1870 |         assert (misc.cwd);
|       |         ^~~~~~
| In file included from ./util.h:41,
|                  from ./procenv.h:81,
|                  from procenv.c:29:
| ./platform.h:90:16: note: ‘cwd’ declared here
|    90 |         char   cwd[PATH_MAX];
|       |                ^~~
| procenv.c: In function ‘get_path’:
| procenv.c:3697:15: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
|  3697 |         slash = strchr (argv0, '/');
|       |               ^
| cc1: all warnings being treated as errors
| make[3]: *** [Makefile:691: procenv-procenv.o] Error 1
| make[3]: Leaving directory '/build/reproducible-path/procenv-0.51/src'
| make[2]: *** [Makefile:462: all-recursive] Error 1
| make[2]: Leaving directory '/build/reproducible-path/procenv-0.51'
| make[1]: *** [Makefile:360: all] Error 2
| make[1]: Leaving directory '/build/reproducible-path/procenv-0.51'
| dh_auto_build: error: make -j1 returned exit code 2
| make: *** [debian/rules:5: binary] Error 255
| 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/procenv_arm64.build
[2] https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=e271fb2e4d76903c77a302aaec1ca22ce31027d0;hb=f762ccf84f122d1354f103a151cba8bde797d521#l19