[PATCH] fix sim build when configured with --enable-plugins

Pavel Chupin
2012-11-15T14:32:05Z

Hi,
Patch below fix sim builds for some targets when bfd build is
configured with --enable-plugins. In this case libbfd.a (plugin.o) has
dependencies on libdl so it should be included into link commands,
similar as zlib.
Is it OK for trunk?

Patch:

diff --git a/sim/common/acinclude.m4 b/sim/common/acinclude.m4
index fe0a5b7..1d2fd1c 100644
--- a/sim/common/acinclude.m4
+++ b/sim/common/acinclude.m4
@@ -21,6 +21,7 @@
# Include global overrides and fixes for Autoconf.
m4_include(../../config/override.m4)
sinclude([../../config/zlib.m4])
+sinclude([../../config/plugins.m4])
sinclude([../../config/depstand.m4])

AC_DEFUN([SIM_AC_COMMON],
@@ -90,6 +91,12 @@ AC_CHECK_LIB(nsl, gethostbyname)
# using the same condition.
AM_ZLIB

+# BFD uses libdl when when plugins enabled.
+AC_PLUGINS
+if test "x$plugins" = "xyes"; then
+ LIBS+=" -ldl"
+fi
+
. ${srcdir}/../../bfd/configure.host

dnl Standard (and optional) simulator options.

sim/ChangeLog entry:

2012-11-09 Pavel Chupin <pavel.v.chupin@intel.com>

Fix sim build when bfd is configured with --enable-plugins
* arm/configure: Regenerate.
* avr/configure: Regenerate.
* bfin/configure: Regenerate.
* common/acinclude.m4: Add libdl into LIBS.
* common/configure: Regenerate.
* cr16/configure: Regenerate.
* cris/configure: Regenerate.
* d10v/configure: Regenerate.
* erc32/configure: Regenerate.
* frv/configure: Regenerate.
* h8300/configure: Regenerate.
* igen/configure: Regenerate.
* iq2000/configure: Regenerate.
* lm32/configure: Regenerate.
* m32c/configure: Regenerate.
* m32r/configure: Regenerate.
* m68hc11/configure: Regenerate.
* mcore/configure: Regenerate.
* microblaze/configure: Regenerate.
* mips/configure: Regenerate.
* mn10300/configure: Regenerate.
* moxie/configure: Regenerate.
* ppc/configure: Regenerate.
* rl78/configure: Regenerate.
* rx/configure: Regenerate.
* sh/configure: Regenerate.
* sh64/configure: Regenerate.
* testsuite/configure: Regenerate.
* v850/configure: Regenerate.

Can be reproduced on trunk with (for example):

configure --enable-plugins --target arm-linux-androideabi
make

Error:

gcc -DHAVE_CONFIG_H -DPROFILE=1 -DWITH_PROFILE=-1
-DDEFAULT_INLINE=0 -DMODET -DNEED_UI_LOOP_HOOK
-DSIM_TARGET_SWITCHES -I. -I../../../sim/arm -I../common
-I../../../sim/arm/../common -I../../include
-I../../../sim/arm/../../include -I../../bfd
-I../../../sim/arm/../../bfd -I../../opcodes
-I../../../sim/arm/../../opcodes -g -O2 -static-libstdc++
-static-libgcc -o run \
run.o libsim.a ../../bfd/libbfd.a ../../opcodes/libopcodes.a
../../libiberty/libiberty.a -lz -lnsl
../../bfd/libbfd.a(plugin.o): In function `try_load_plugin':
/tmp/gdb/BUILD/bfd/../../bfd/plugin.c:170: undefined reference to `dlopen'
/tmp/gdb/BUILD/bfd/../../bfd/plugin.c:177: undefined reference to `dlsym'
/tmp/gdb/BUILD/bfd/../../bfd/plugin.c:173: undefined reference to `dlerror'

--
Pavel Chupin
Intel Corporation