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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.