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? Indy 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 >>>>>>> >>>>> >>> >