On 2026-01-17 06:15, Andreas Metzler wrote:
> configure:22126: checking for gcry_cipher_checktag in -lgcrypt
> configure:22155: gcc -o conftest -W -Wall -Wno-unused-parameter 
> -Wno-unused-function -g -O2 -Werror=implicit-function-declaration 
> -ffile-prefix-map=/home/ametzler/NDPI/ndpi-4.2=. -fstack-protector-strong 
> -fstack-clash-protection -Wformat -Werror=format-security 
> -mbranch-protection=standard -I/usr/include/json-c  -Wdate-time 
> -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now -mbranch-protection=standard 
> conftest.c -lgcrypt  -ljson-c  -ljson-c  >&5
> /usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux-gnu/libgcrypt.so: 
> warning: GCS is required by -z gcs, but this shared library lacks the 
> necessary property note. The dynamic loader might not enable GCS or refuse to 
> load the program unless all the shared library dependencies have the GCS 
> marking.
> configure:22155: $? = 0
> configure: failed program was:
> [...]
> configure:22167: result: no
> 
> However, taking the snippped "failed program" and running the quoted
> "gcc -o conftest -W ..." on it yields the warning but exits
> successfully. (exit code 0).

Thanks for your analysis, you're right to be very puzzled.

What's happening is that configure.ac uses AC_LANG_WERROR, which means
compiler warnings are considered errors:
https://sources.debian.org/src/ndpi/4.2-2.1/configure.ac#L45

That's why suppressing the GCS warning fixes the build, as Adrian found.

Reply via email to