As ctf_dict_t can be an opaque type depending on the version of
ctf-api.h, using AC_CHECK_TYPE won't work to detect it because that
macro invokes sizeof(ctf_dict_t).
With this change, we don't require that ctf_dict_t be fully defined.
* configure.ac: Use AC_COMPILE_IFELSE to try and compile a code
snippet that doesn't need that ctf_dict_t be fully defined.
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
fi
if test x$LIBCTF = xyes; then
- dnl Test if struct btf_enum64 is present.
- AC_CHECK_TYPE([struct ctf_dict_t],
- [HAVE_CTF_DICT_T=yes],
- [HAVE_CTF_DICT_T=no],
- [#include <ctf-api.h>])
+ dnl Test if struct struct ctf_dict_t is present.
+ AC_LANG(C++)
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <ctf-api.h>
+ ctf_dict_t* c;]])],
+ [HAVE_CTF_DICT_T=yes],
+ [HAVE_CTF_DICT_T=no])
if test x$HAVE_CTF_DICT_T = xyes; then
AC_DEFINE([HAVE_CTF_DICT_T], 1, [struct ctf_dict_t is present])