--- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -336,7 +336,6 @@ libbfd_la_LDFLAGS = $(am__append_1) -release `cat libtool-soversion` \ @INSTALL_LIBBFD_FALSE@noinst_LTLIBRARIES = libbfd.la AM_CFLAGS = $(WARN_CFLAGS) AM_CPPFLAGS = -DBINDIR='"$(bindir)"' -@PLUGINS_TRUE@LIBDL = -ldl # bfd.h goes here, for now BFD_H = bfd.h @@ -1054,7 +1053,7 @@ OFILES = $(BFD_BACKENDS) $(BFD_MACHINES) @COREFILE@ @bfd64_libs@ libbfd_la_SOURCES = $(BFD32_LIBS_CFILES) EXTRA_libbfd_la_SOURCES = $(CFILES) libbfd_la_DEPENDENCIES = $(OFILES) ofiles -libbfd_la_LIBADD = `cat ofiles` @SHARED_LIBADD@ $(LIBDL) +libbfd_la_LIBADD = `cat ofiles` @SHARED_LIBADD@ # libtool will build .libs/libbfd.a. We create libbfd.a in the build # directory so that we don't have to convert all the programs that use --- a/bfd/configure.in +++ b/bfd/configure.in @@ -23,9 +23,15 @@ AC_PROG_CC AM_CONDITIONAL(PLUGINS, test "$plugins" = "yes") if test "$plugins" = "yes"; then - if test "$enable_dlopen" != "yes" ; then + has_dlopen=yes + # Check for dlopen support + AC_CHECK_HEADER([dlfcn.h],[],[has_dlopen=no],[AC_INCLUDES_DEFAULT]) + AC_SEARCH_LIBS([dlopen],[dl],[],[has_dlopen=no],[]) + AC_CHECK_FUNCS([dlsym dlclose],[],[has_dlopen=no]) + + if test "$has_dlopen" != "yes" ; then AC_MSG_ERROR([ - Building BFD with plugin support requires a host that supports -ldl.]) + Building BFD with plugin support requires a host that supports dlopen.]) fi enable_targets="$enable_targets plugin" fi diff --git a/gold/Makefile.am b/gold/Makefile.am index df5e66c..2aae464 100644 --- a/gold/Makefile.am +++ b/gold/Makefile.am @@ -19,10 +19,6 @@ AM_CPPFLAGS = \ LIBIBERTY = ../libiberty/libiberty.a -if PLUGINS -LIBDL = -ldl -endif - if THREADS THREADSLIB = -lpthread endif @@ -152,7 +148,7 @@ libgold_a_LIBADD = $(LIBOBJS) sources_var = main.cc deps_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL_DEP) ldadd_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL) \ - $(THREADSLIB) $(LIBDL) + $(THREADSLIB) ld_new_SOURCES = $(sources_var) ld_new_DEPENDENCIES = $(deps_var) @@ -160,7 +160,7 @@ incremental_dump_SOURCES = incremental-dump.cc incremental_dump_DEPENDENCIES = $(TARGETOBJS) libgold.a $(LIBIBERTY) \ $(LIBINTL_DEP) incremental_dump_LDADD = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL) \ - $(THREADSLIB) $(LIBDL) + $(THREADSLIB) # Use an explicit dependency for the bison generated header file. expression.$(OBJEXT): yyscript.h diff --git a/gold/configure.ac b/gold/configure.ac index 685e85b..a10428b 100644 --- a/gold/configure.ac +++ b/gold/configure.ac @@ -97,6 +97,10 @@ AC_ARG_ENABLE([plugins], if test "$plugins" = "yes"; then AC_DEFINE(ENABLE_PLUGINS, 1, [Define to enable linker plugins]) + # Check for dlopen support + AC_CHECK_HEADER([dlfcn.h],[],[has_dlopen=no],[AC_INCLUDES_DEFAULT]) + AC_SEARCH_LIBS([dlopen],[dl],[],[has_dlopen=no],[]) + AC_CHECK_FUNCS([dlopen dlsym dlclose],[],[has_dlopen=no]) fi AM_CONDITIONAL(PLUGINS, test "$plugins" = "yes")