Re: [PATCH 1/1] erc32 sim: Add libdl to build of sis
Joel Sherrill <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
I just tried psim and it fails missing libdl also. Did something change in general in the simulators build procedure or does something like this need to be propagated? --joel On 8/14/2014 5:21 PM, Joel Sherrill wrote: > sis failed to link on Fedora 20 because it was not linking against > libdl. There may be a better way but this does work. > > 2013-08-14 Joel Sherrill <[email protected]> > > * Makefile.in, configure.ac: Probe for libdl and use if available. > * configure: Regenerated > --- > sim/erc32/Makefile.in | 3 +- > sim/erc32/configure | 94 +++++++++++++++++++++++++++++++++++++++++++++----- > sim/erc32/configure.ac | 3 ++ > 3 files changed, 90 insertions(+), 10 deletions(-) > > diff --git a/sim/erc32/Makefile.in b/sim/erc32/Makefile.in > index 0ce58a6..b5a6c4b 100644 > --- a/sim/erc32/Makefile.in > +++ b/sim/erc32/Makefile.in > @@ -20,9 +20,10 @@ > > TERMCAP_LIB = @TERMCAP@ > READLINE_LIB = @READLINE@ > +DL_LIB = @DLLIB@ > > SIM_OBJS = exec.o erc32.o func.o help.o float.o interf.o > -SIM_EXTRA_LIBS = $(READLINE_LIB) $(TERMCAP_LIB) -lm > +SIM_EXTRA_LIBS = $(READLINE_LIB) $(TERMCAP_LIB) $(DL_LIB) -lm > SIM_EXTRA_ALL = sis > SIM_EXTRA_INSTALL = install-sis > SIM_EXTRA_CLEAN = clean-sis > diff --git a/sim/erc32/configure b/sim/erc32/configure > index b8fd852..dd9882e 100755 > --- a/sim/erc32/configure > +++ b/sim/erc32/configure > @@ -601,6 +601,7 @@ ac_includes_default="\ > ac_subst_vars='LTLIBOBJS > LIBOBJS > cgen_breaks > +DLLIB > READLINE > TERMCAP > REPORT_BUGS_TEXI > @@ -1389,7 +1390,7 @@ Optional Features: > --disable-option-checking ignore unrecognized --enable/--with options > --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) > --enable-FEATURE[=ARG] include FEATURE [ARG=yes] > - --enable-plugins Enable support for plugins (defaults no) > + --enable-plugins Enable support for plugins > --enable-shared[=PKGS] build shared libraries [default=yes] > --enable-static[=PKGS] build static libraries [default=yes] > --enable-fast-install[=PKGS] > @@ -8768,15 +8769,46 @@ fi > > # BFD uses libdl when when plugins enabled. > > -# Check whether --enable-plugins was given. > + maybe_plugins=no > + for ac_header in dlfcn.h > +do : > + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default > +" > +if test "x$ac_cv_header_dlfcn_h" = x""yes; then : > + cat >>confdefs.h <<_ACEOF > +#define HAVE_DLFCN_H 1 > +_ACEOF > + maybe_plugins=yes > +fi > + > +done > + > + for ac_header in windows.h > +do : > + ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default > +" > +if test "x$ac_cv_header_windows_h" = x""yes; then : > + cat >>confdefs.h <<_ACEOF > +#define HAVE_WINDOWS_H 1 > +_ACEOF > + maybe_plugins=yes > +fi > + > +done > + > + > + # Check whether --enable-plugins was given. > if test "${enable_plugins+set}" = set; then : > enableval=$enable_plugins; case "${enableval}" in > - yes | "") plugins=yes ;; > - no) plugins=no ;; > - *) plugins=yes ;; > - esac > + no) plugins=no ;; > + *) plugins=yes > + if test "$maybe_plugins" != "yes" ; then > + as_fn_error "Building with plugin support requires a host that supports dlopen." "$LINENO" 5 > + fi ;; > + esac > else > - plugins=no > + plugins=$maybe_plugins > + > fi > > > @@ -12265,7 +12297,7 @@ else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<_LT_EOF > -#line 12268 "configure" > +#line 12300 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -12371,7 +12403,7 @@ else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<_LT_EOF > -#line 12374 "configure" > +#line 12406 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -13022,6 +13054,50 @@ fi > fi > > > +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dl in -ldl" >&5 > +$as_echo_n "checking for dl in -ldl... " >&6; } > +if test "${ac_cv_lib_dl_dl+set}" = set; then : > + $as_echo_n "(cached) " >&6 > +else > + ac_check_lib_save_LIBS=$LIBS > +LIBS="-ldl $LIBS" > +cat confdefs.h - <<_ACEOF >conftest.$ac_ext > +/* end confdefs.h. */ > + > +/* Override any GCC internal prototype to avoid an error. > + Use char because int might match the return type of a GCC > + builtin and then its argument prototype would still apply. */ > +#ifdef __cplusplus > +extern "C" > +#endif > +char dl (); > +int > +main () > +{ > +return dl (); > + ; > + return 0; > +} > +_ACEOF > +if ac_fn_c_try_link "$LINENO"; then : > + ac_cv_lib_dl_dl=yes > +else > + ac_cv_lib_dl_dl=no > +fi > +rm -f core conftest.err conftest.$ac_objext \ > + conftest$ac_exeext conftest.$ac_ext > +LIBS=$ac_check_lib_save_LIBS > +fi > +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dl" >&5 > +$as_echo "$ac_cv_lib_dl_dl" >&6; } > +if test "x$ac_cv_lib_dl_dl" = x""yes; then : > + DLLIB=-ldl > +else > + : > +fi > + > + > + > ac_sources="$sim_link_files" > ac_dests="$sim_link_links" > while test -n "$ac_sources"; do > diff --git a/sim/erc32/configure.ac b/sim/erc32/configure.ac > index bc46091..21e5813 100644 > --- a/sim/erc32/configure.ac > +++ b/sim/erc32/configure.ac > @@ -32,4 +32,7 @@ else > AC_ERROR([the required "readline" library is missing]), $TERMCAP) > fi > AC_SUBST(READLINE) > + > +AC_CHECK_LIB(dl, dl, DLLIB=-ldl, :, ) > +AC_SUBST(DLLIB) > SIM_AC_OUTPUT -- Joel Sherrill, Ph.D. Director of Research & Development [email protected] On-Line Applications Research Ask me about RTEMS: a free RTOS Huntsville AL 35805 Support Available (256) 722-9985