build failure, --enable-targets=all vs plugin support

Doug Evans dje@sebabeach.org
Sun Oct 18 18:11:00 GMT 2009


Hi.

With cvs head I'm getting a build failure,
all programs using bfd are failing to link:

../bfd/.libs/libbfd.so: undefined reference to `dlsym'
../bfd/.libs/libbfd.so: undefined reference to `dlerror'
../bfd/.libs/libbfd.so: undefined reference to `dlopen'

I haven't been following bfd plugin support,
so I'm not sure what the right fix is.
AFAICT, bfd uses plugin.c unconditionally (when --enable-targets=all,
via BFD32_BACKENDS), but adds -ldl conditionally (on "if PLUGINS").

This hack to bfd/Makefile got everything to build:

--- Makefile.~1~	2009-10-18 09:13:14.000000000 -0700
+++ Makefile	2009-10-18 10:47:53.000000000 -0700
@@ -330,7 +330,7 @@
 #noinst_LTLIBRARIES = libbfd.la
 AM_CFLAGS = $(WARN_CFLAGS)
 AM_CPPFLAGS = -DBINDIR='"$(bindir)"'
-#LIBDL = -ldl
+LIBDL = -ldl
 
 # bfd.h goes here, for now
 BFD_H = bfd.h

but I'm guessing BFD32_BACKENDS needs to include plugin support
conditionally.

config details:
../src/configure \
  --build=i686-linux \
  --host=i686-linux \
  --target=m32r-elf \
  --prefix=$prefix \
  --enable-targets=all \
  --enable-shared \
  --enable-cgen-maint



More information about the Binutils mailing list