"Nicholas \"Indy\" Ray" <arelius@xxxxxxxxx> writes: > One more small thing, currently if it finds dl it adds -ldl to > $pluginlibs in addition to $LIBS, is it possible to do that with the > AC_SEARCH_LIBS macro as well? Not directly. You would have to compare $LIBS before and after. Or use AC_CHECK_FUNC and AC_CHECK_LIB. Ian > On Mon, Oct 5, 2009 at 5:28 PM, Ian Lance Taylor <iant@xxxxxxxxxx> wrote: >> "Nicholas \"Indy\" Ray" <arelius@xxxxxxxxx> writes: >> >>> That would probably work, but then the configure script won't test for >>> dlopen functionality, which is required. maybee I should put an >>> additional AC_TRY_LINK in the test failure? is there a better way to >>> do that then just a wholesale duplication of the macro? >> >> AC_SEARCH_LIBS(dlopen, -ldl, found_dlopen=yes, found_dlopen=no) >> >> This will add -ldl to $LIBS if necessary (i.e., don't reset LIBS) and >> set found_dlopen to indicate whether it was found or not. >> >> Ian >> >>> On Mon, Oct 5, 2009 at 4:22 PM, Ian Lance Taylor <iant@xxxxxxxxxx> wrote: >>>> "Nicholas \"Indy\" Ray" <arelius@xxxxxxxxx> writes: >>>> >>>>> So are you suggesting that the entire block: >>>>> >>>>> LIBS="$LIBS -ldl" >>>>> AC_MSG_CHECKING([for -ldl]) >>>>> AC_TRY_LINK( >>>>> [#include <dlfcn.h>], >>>>> [volatile int f = 0; if (f) dlopen ("dummy", 0);], >>>>> [AC_MSG_RESULT([yes]); have_dl=yes], >>>>> [AC_MSG_RESULT([no])]) >>>>> if test x"$have_dl" = x"yes"; then >>>>> pluginlibs="$pluginlibs -ldl" >>>>> fi >>>>> >>>>> should be replaced with something based on AC_CHECK_LIB? I'll give that a test! >>>> >>>> I hadn't looked at that code. That all looks fine to me, although >>>> AC_CHECK_LIB would be simpler. >>>> >>>> Are you saying that that does not work on FreeBSD? How does it fail? >>>> >>>> Wait, I think I see the problem: the code sets LIBS to include -ldl, >>>> but fails to reset it if the test fails. Probably all it needs is two >>>> new lines: >>>> >>>> if test x"$have_dl" = x"yes"; then >>>> pluginlibs="$pluginlibs -ldl" >>>> + else >>>> + LIBS="$saved_LIBS" >>>> fi >>>> >>>> Ian >>>> >>>> >>>>> On Mon, Oct 5, 2009 at 3:38 PM, Ian Lance Taylor <iant@xxxxxxxxxx> wrote: >>>>>> "Nicholas \"Indy\" Ray" <arelius@xxxxxxxxx> writes: >>>>>> >>>>>>> The problem is that on FreeBSD -ldl is not available or required, the >>>>>>> functionality is provided by libc >>>>>> >>>>>> I think understand that. What I am saying is that the configure >>>>>> script should test for that property--the fact that -ldl is not >>>>>> available or required--rather than test the type of host for which gcc >>>>>> is being configured. >>>>>> >>>>>> Ian >>>>>> >>>>>> >>>>>>> Nicholas "Indy" Ray >>>>>>> >>>>>>> On Mon, Oct 5, 2009 at 3:05 PM, Ian Lance Taylor <iant@xxxxxxxxxx> wrote: >>>>>>>> "Nicholas \"Indy\" Ray" <arelius@xxxxxxxxx> writes: >>>>>>>> >>>>>>>>> Indeed, I've sent in a small patch for a warning I got on FreeBSD, >>>>>>>>> however I'm not sure how to get autoconf to check the host system, >>>>>>>>> I'll examine other locations in the code and see if I can't cobble a >>>>>>>>> patch together. >>>>>>>> >>>>>>>> When possible, a configure script should test for features, not >>>>>>>> operating systems. So, for example, the goal would be not to check >>>>>>>> for FreeBSD, but rather to check for the availability of -ldl, which >>>>>>>> is typically done using AC_CHECK_LIB. >>>>>>>> >>>>>>>> Ian >>>>>>>> >>>>>> >>>> >>