Ah, the check makes use of implicit int which is now also an error and lets the check for (void *) fail leading to the assumption that (char *) is needed for qsort(): configure:23571: checking argument pointer type of qsort compare function and base configure:23600: gcc -c [...] conftest.c conftest.c:141:8: error: type defaults to 'int' in declaration of 'sortf' [-Wimplicit-int] 141 | extern sortf(const void *, const void *); | ^~~~~ [...] configure: failed program was: [...] | extern void *base; | extern sortf(const void *, const void *); | int sortf(a, b) | const void *a; | const void *b; { return 0; } [...] configure:23611: result: char