On Mon Oct 26, 2020 at 9:32 AM -03, Dmitry V. Levin wrote:
> On Sun, Oct 25, 2020 at 11:41:12PM -0300, Érico Nogueira via
> Elfutils-devel wrote:
> > diff --git a/configure.ac b/configure.ac
> > index 973409f1..628e7a74 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -542,6 +542,60 @@ else
> >  fi
> >  AC_SUBST([argp_LDADD])
> >  
> > +dnl Check if we have fts available from our libc
> > +AC_LINK_IFELSE(
> > +   [AC_LANG_PROGRAM(
> > +           [#if !defined(__x86_64__)
> > +           #undef  _FILE_OFFSET_BITS
> > +           #define _FILE_OFFSET_BITS 32
> > +           #endif
> > +           #include <fts.h>],
> > +           [FTS* fts = 0; return fts_close(fts); return 0;]
> > +           )],
> > +   [libc_has_fts="true"],
> > +   [libc_has_fts="false"]
> > +)
> > +
> > +dnl If our libc doesn't provide fts, then test for libfts
> > +if test "$libc_has_fts" = "false" ; then
> > +   AC_MSG_WARN("libc does not have fts")
> > +   AC_CHECK_LIB([fts], [fts_close], [have_fts="true"], [have_fts="false"])
> > +
> > +   if test "$have_fts" = "false"; then
> > +           AC_MSG_ERROR("no libfts found")
> > +   else
> > +           fts_LDADD="-lfts"
> > +   fi
> > +else
> > +   fts_LDADD=""
> > +fi
> > +AC_SUBST([fts_LDADD])
>
> If you are looking for fts providers, I suggest using AC_SEARCH_LIBS
> instead, e.g.
>
> saved_LIBS="$LIBS"
> AC_SEARCH_LIBS([fts_close], [fts])
> LIBS="$saved_LIBS"
> case "$ac_cv_search_fts_close" in
> no) AC_MSG_FAILURE([failed to find fts_close]) ;;
> -l*) fts_LIBS="$ac_cv_search_fts_close" ;;
> *) fts_LIBS= ;;
> esac
> AC_SUBST([fts_LIBS])

This does look a bit simpler, thanks. I will check it locally and come
back with a new patch.

> > +dnl Check if we have obstack available from our libc
> > +AC_LINK_IFELSE(
> > +   [AC_LANG_PROGRAM(
> > +           [#include <obstack.h>],
> > +           [_obstack_begin(0, 0, 0, NULL, NULL); return 0;]
> > +           )],
> > +   [libc_has_obstack="true"],
> > +   [libc_has_obstack="false"]
> > +)
> > +
> > +dnl If our libc doesn't provide obstack, then test for libobstack
> > +if test "$libc_has_obstack" = "false" ; then
> > +   AC_MSG_WARN("libc does not have obstack")
> > +   AC_CHECK_LIB([obstack], [_obstack_begin], [have_obstack="true"], 
> > [have_obstack="false"])
> > +
> > +   if test "$have_obstack" = "false"; then
> > +           AC_MSG_ERROR("no libobstack found")
> > +   else
> > +           obstack_LDADD="-lobstack"
> > +   fi
> > +else
> > +   obstack_LDADD=""
> > +fi
> > +AC_SUBST([obstack_LDADD])
>
> Likewise, e.g.
>
> saved_LIBS="$LIBS"
> AC_SEARCH_LIBS([obstack_free], [obstack])
> LIBS="$saved_LIBS"
> case "$ac_cv_search_obstack_free" in
> no) AC_MSG_FAILURE([failed to find obstack_free]) ;;
> -l*) obstack_LIBS="$ac_cv_search_obstack_free" ;;
> *) obstack_LIBS= ;;
> esac
> AC_SUBST([obstack_LIBS])
>
>
> --
> ldv

Thanks!

Reply via email to