*Posted on 8 Oct 2026 by Boris Kolpackov*

Configuration probing as implemented in autoconf/CMake/etc involves compiling and linking a test program to determine whether a particular feature, such as a function, is available on the platform being targeted. For example, we may prefer to use the strl*() family of functions in our codebase. However, these functions are not (yet) standard and are not provided by all libc implementations. As a result, we may wish to detect whether they are present and if not, provide fallback implementations or use alternatives. One way to do this detection would be to compile and link a test program that tries to use the functions we are interested in. If that succeeds, then we conclude the functions are available.