On Mon, 2 May 2022, Philip Prindeville wrote:
Hi,
I was wondering how to do discovery of functions like open_memstream() which is only
exposed by <features.h> when compilation used -D_GNU_SOURCE or
-D_POSIX_C_SOURCE=200809L.
It might be the case that I compile everything with a certain flag, or I might
just compile one-off modules such as:
time.o: _ASTCFLAGS+=-D_XOPEN_SOURCE=700
What's best practices for handling situations like this?
How do I bracket a particular AC_CHECK_FUNCS() invocation with defines that
might be critical?
I tried using:
save_CFLAGS="$CFLAGS"
CFLAGS="CFLAGS -D_POSIX_C_SOURCE=200809L"
AC_CHECK_FUNCS([open_memstream])
CFLAGS="$save_CFLAGS"
Normally one should use CPPFLAGS rather than CFLAGS for options
pertaining to the C pre-processor.
When library function availability is checked, it is normally done
using the linker.
When in doubt, check config.log, which will show the test program and
steps which were used while performing the test.
It is not wise to mix C/OS standard influencing pre-processor options
when compiling since they may require a different ABI, which could be
provided by alternate libraries. It might not be possible to support
more than one ABI at a time.
Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt