diff options
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/Makefile.in | 5 | ||||
-rw-r--r-- | gdb/config.in | 3 | ||||
-rwxr-xr-x | gdb/configure | 488 | ||||
-rw-r--r-- | gdb/configure.ac | 5 |
5 files changed, 507 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a70c5fe..ee1dea3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2020-11-15 Joel Brobecker <brobecker@adacore.com> + + * configure.ac: Add support for --with-libgmp-prefix. + * Makefile.in (LIBGMP): New variable. + (CLIBS): Include $(LIBGMP). + * configure, config.in: Regenerate + 2020-11-14 Andrew Burgess <andrew.burgess@embecosm.com> PR cli/26879 diff --git a/gdb/Makefile.in b/gdb/Makefile.in index c46935e..c461964 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -203,6 +203,9 @@ LIBXXHASH = @LIBXXHASH@ # Where is libipt? This will be empty if libipt was not available. LIBIPT = @LIBIPT@ +# Where is libgmp? +LIBGMP = @LIBGMP@ + # Where is libmpfr? This will be empty if libmpfr was not available. LIBMPFR = @LIBMPFR@ @@ -632,7 +635,7 @@ CLIBS = $(SIM) $(READLINE) $(OPCODES) $(LIBCTF) $(BFD) $(ZLIB) \ @LIBS@ @GUILE_LIBS@ @PYTHON_LIBS@ \ $(LIBEXPAT) $(LIBLZMA) $(LIBBABELTRACE) $(LIBIPT) \ $(WIN32LIBS) $(LIBGNU) $(LIBGNU_EXTRA_LIBS) $(LIBICONV) \ - $(LIBMPFR) $(SRCHIGH_LIBS) $(LIBXXHASH) $(PTHREAD_LIBS) \ + $(LIBMPFR) $(LIBGMP) $(SRCHIGH_LIBS) $(LIBXXHASH) $(PTHREAD_LIBS) \ $(DEBUGINFOD_LIBS) CDEPS = $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE_DEPS) $(CTF_DEPS) \ $(OPCODES) $(INTL_DEPS) $(LIBIBERTY) $(CONFIG_DEPS) $(LIBGNU) \ diff --git a/gdb/config.in b/gdb/config.in index 3e741c6..14a77c6 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -229,6 +229,9 @@ /* Define if you have the expat library. */ #undef HAVE_LIBEXPAT +/* Define if you have the gmp library. */ +#undef HAVE_LIBGMP + /* Define to 1 if you have the `libiconvlist' function. */ #undef HAVE_LIBICONVLIST diff --git a/gdb/configure b/gdb/configure index 4a03cd9..2bf0856 100755 --- a/gdb/configure +++ b/gdb/configure @@ -732,6 +732,9 @@ python_prog_path LTLIBMPFR LIBMPFR HAVE_LIBMPFR +LTLIBGMP +LIBGMP +HAVE_LIBGMP LTLIBEXPAT LIBEXPAT HAVE_LIBEXPAT @@ -896,6 +899,8 @@ with_jit_reader_dir with_expat with_libexpat_prefix with_libexpat_type +with_libgmp_prefix +with_libgmp_type with_mpfr with_libmpfr_prefix with_libmpfr_type @@ -1639,6 +1644,9 @@ Optional Packages: --with-libexpat-prefix[=DIR] search for libexpat in DIR/include and DIR/lib --without-libexpat-prefix don't search for libexpat in includedir and libdir --with-libexpat-type=TYPE type of library to search for (auto/static/shared) + --with-libgmp-prefix[=DIR] search for libgmp in DIR/include and DIR/lib + --without-libgmp-prefix don't search for libgmp in includedir and libdir + --with-libgmp-type=TYPE type of library to search for (auto/static/shared) --with-mpfr include MPFR support (auto/yes/no) --with-libmpfr-prefix[=DIR] search for libmpfr in DIR/include and DIR/lib --without-libmpfr-prefix don't search for libmpfr in includedir and libdir @@ -9982,6 +9990,486 @@ done fi fi +# Verify that we have a usable GMP library. + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libgmp-prefix was given. +if test "${with_libgmp_prefix+set}" = set; then : + withval=$with_libgmp_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi + +fi + + +# Check whether --with-libgmp-type was given. +if test "${with_libgmp_type+set}" = set; then : + withval=$with_libgmp_type; with_libgmp_type=$withval +else + with_libgmp_type=auto +fi + + lib_type=`eval echo \$with_libgmp_type` + + LIBGMP= + LTLIBGMP= + INCGMP= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='gmp ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBGMP="${LIBGMP}${LIBGMP:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBGMP="${LTLIBGMP}${LTLIBGMP:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext" && test x$lib_type != xstatic; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + elif test x$lib_type != xshared; then + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBGMP; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext" && test x$lib_type != xstatic; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + elif test x$lib_type != xshared; then + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBGMP="${LTLIBGMP}${LTLIBGMP:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + LIBGMP="${LIBGMP}${LIBGMP:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$hardcode_direct" = yes; then + LIBGMP="${LIBGMP}${LIBGMP:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + LIBGMP="${LIBGMP}${LIBGMP:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBGMP; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBGMP="${LIBGMP}${LIBGMP:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + LIBGMP="${LIBGMP}${LIBGMP:+ }$found_so" + else + LIBGMP="${LIBGMP}${LIBGMP:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBGMP="${LIBGMP}${LIBGMP:+ }$found_a" + else + LIBGMP="${LIBGMP}${LIBGMP:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */lib | */lib/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCGMP; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCGMP="${INCGMP}${INCGMP:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBGMP; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBGMP="${LIBGMP}${LIBGMP:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBGMP; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBGMP="${LTLIBGMP}${LTLIBGMP:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBGMP="${LIBGMP}${LIBGMP:+ }$dep" + LTLIBGMP="${LTLIBGMP}${LTLIBGMP:+ }$dep" + ;; + esac + done + fi + else + if test "x$lib_type" = "xauto" || test "x$lib_type" = "xshared"; then + LIBGMP="${LIBGMP}${LIBGMP:+ }-l$name" + LTLIBGMP="${LTLIBGMP}${LTLIBGMP:+ }-l$name" + else + LIBGMP="${LIBGMP}${LIBGMP:+ }-l:lib$name.$libext" + LTLIBGMP="${LTLIBGMP}${LTLIBGMP:+ }-l:lib$name.$libext" + fi + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBGMP="${LIBGMP}${LIBGMP:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBGMP="${LIBGMP}${LIBGMP:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBGMP="${LTLIBGMP}${LTLIBGMP:+ }-R$found_dir" + done + fi + + + ac_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCGMP; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgmp" >&5 +$as_echo_n "checking for libgmp... " >&6; } +if ${ac_cv_libgmp+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ac_save_LIBS="$LIBS" + LIBS="$LIBS $LIBGMP" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <gmp.h> +int +main () +{ +mpz_t n; + mpz_init (n); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_libgmp=yes +else + ac_cv_libgmp=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$ac_save_LIBS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libgmp" >&5 +$as_echo "$ac_cv_libgmp" >&6; } + if test "$ac_cv_libgmp" = yes; then + HAVE_LIBGMP=yes + +$as_echo "#define HAVE_LIBGMP 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libgmp" >&5 +$as_echo_n "checking how to link with libgmp... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGMP" >&5 +$as_echo "$LIBGMP" >&6; } + else + HAVE_LIBGMP=no + CPPFLAGS="$ac_save_CPPFLAGS" + LIBGMP= + LTLIBGMP= + fi + + + + + + + # Check whether --with-mpfr was given. if test "${with_mpfr+set}" = set; then : diff --git a/gdb/configure.ac b/gdb/configure.ac index 1b9548e..0264a4f 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -683,6 +683,11 @@ else fi fi +# Verify that we have a usable GMP library. +AC_LIB_HAVE_LINKFLAGS([gmp], [], [#include <gmp.h>], + [mpz_t n; + mpz_init (n);]) + AC_ARG_WITH(mpfr, AS_HELP_STRING([--with-mpfr], [include MPFR support (auto/yes/no)]), [], [with_mpfr=auto]) |