From 503435680f463cf5ed060ce32b902051cb19e801 Mon Sep 17 00:00:00 2001 From: Bernd Edlinger Date: Sun, 15 Nov 2020 15:37:22 +0100 Subject: [PATCH] Enable GDB build with in-tree GMP and MPFR With this patch GDB can be built with in-tree GMP and/or MPFR. This works also for cross-builds. All that is needed, is a sym-link in the source tree, like this: gmp -> ../gmp-6.1.0 mpfr -> ../mpfr-3.1.4 2020-11-15 Bernd Edlinger * Makefile.def: Prepare for GDB build with intree GMP. * Makefile.in: Regenerate. gdb: 2020-11-15 Bernd Edlinger * configure.ac: Add --with-gmp=DIR, --with-gmp-include=DIR and --with-gmp-lib=DIR as well as --with-mpfr-include=DIR and --with-mpfr-lib=DIR for compatibility with top level configure script. * configure: Regenerate. --- Makefile.def | 5 ++++- Makefile.in | 4 +++- gdb/configure | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ gdb/configure.ac | 25 +++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 2 deletions(-) diff --git a/Makefile.def b/Makefile.def index 089e70a..1b99b42 100644 --- a/Makefile.def +++ b/Makefile.def @@ -115,7 +115,8 @@ host_modules= { module= zlib; no_install=true; no_check=true; host_modules= { module= gnulib; }; host_modules= { module= gdbsupport; }; host_modules= { module= gdbserver; }; -host_modules= { module= gdb; }; +host_modules= { module= gdb; + extra_configure_flags='@extra_mpfr_configure_flags@ @extra_mpc_mpfr_configure_flags@';}; host_modules= { module= expect; }; host_modules= { module= guile; }; host_modules= { module= tk; }; @@ -391,6 +392,8 @@ dependencies = { module=all-intl; on=all-libiconv; }; // Host modules specific to gdb. dependencies = { module=configure-gdb; on=all-intl; }; +dependencies = { module=configure-gdb; on=all-gmp; }; +dependencies = { module=configure-gdb; on=all-mpfr; }; dependencies = { module=configure-gdb; on=configure-sim; }; dependencies = { module=configure-gdb; on=all-bfd; }; dependencies = { module=configure-gdb; on=all-gnulib; }; diff --git a/Makefile.in b/Makefile.in index fe34132..738fd32 100644 --- a/Makefile.in +++ b/Makefile.in @@ -29491,7 +29491,7 @@ configure-gdb: $$s/$$module_srcdir/configure \ --srcdir=$${topdir}/$$module_srcdir \ $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \ - --target=${target_alias} \ + --target=${target_alias} @extra_mpfr_configure_flags@ @extra_mpc_mpfr_configure_flags@ \ || exit 1 @endif gdb @@ -52449,6 +52449,8 @@ configure-libcc1: maybe-configure-gcc all-libcc1: maybe-all-gcc all-utils: maybe-all-libiberty configure-gdb: maybe-all-intl +configure-gdb: maybe-all-gmp +configure-gdb: maybe-all-mpfr configure-gdb: maybe-all-bfd configure-gdb: maybe-all-libiconv all-gdb: maybe-all-libiberty diff --git a/gdb/configure b/gdb/configure index a3e73b4..034485d 100755 --- a/gdb/configure +++ b/gdb/configure @@ -899,8 +899,13 @@ with_jit_reader_dir with_expat with_libexpat_prefix with_libexpat_type +with_gmp_include +with_gmp_lib +with_gmp with_libgmp_prefix with_libgmp_type +with_mpfr_include +with_mpfr_lib with_mpfr with_libmpfr_prefix with_libmpfr_type @@ -1644,9 +1649,14 @@ 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-gmp-include=DIR GMP include directory + --with-gmp-lib=DIR GMP lib directory + --with-gmp=DIR GMP install directory --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=DIR MPFR include directory + --with-mpfr-lib=DIR MPFR lib directory --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 @@ -9990,6 +10000,35 @@ done fi fi + +# Check whether --with-gmp_include was given. +if test "${with_gmp_include+set}" = set; then : + withval=$with_gmp_include; CPPFLAGS="$CPPFLAGS -I$withval" +fi + + +# Check whether --with-gmp_lib was given. +if test "${with_gmp_lib+set}" = set; then : + withval=$with_gmp_lib; LDFLAGS="$LDFLAGS -L$withval" +fi + + +# Check whether --with-gmp was given. +if test "${with_gmp+set}" = set; then : + withval=$with_gmp; + if test -z "$with_gmp_lib" && test -z "$with_gmp_include" ; then + CPPFLAGS="$CPPFLAGS -I$withval/include" + LDFLAGS="$LDFLAGS -L$withval/lib" + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Do not use --with-gmp and --with-gmp-include/--with-gmp-lib options simultaneously. +See \`config.log' for more details" "$LINENO" 5; } + fi + +fi + + # Verify that we have a usable GMP library. @@ -10474,6 +10513,19 @@ if test "$HAVE_LIBGMP" != yes; then fi +# Check whether --with-mpfr_include was given. +if test "${with_mpfr_include+set}" = set; then : + withval=$with_mpfr_include; CPPFLAGS="-I$withval $CPPFLAGS" +fi + + +# Check whether --with-mpfr_lib was given. +if test "${with_mpfr_lib+set}" = set; then : + withval=$with_mpfr_lib; LDFLAGS="-L$withval $LDFLAGS" +fi + + + # Check whether --with-mpfr was given. if test "${with_mpfr+set}" = set; then : withval=$with_mpfr; diff --git a/gdb/configure.ac b/gdb/configure.ac index 32f25d9..97f43ce 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -683,6 +683,22 @@ else fi fi +AC_ARG_WITH(gmp_include, + [ --with-gmp-include=DIR GMP include directory ], + CPPFLAGS="$CPPFLAGS -I$withval") +AC_ARG_WITH(gmp_lib, + [ --with-gmp-lib=DIR GMP lib directory ], + LDFLAGS="$LDFLAGS -L$withval") +AC_ARG_WITH(gmp, + [ --with-gmp=DIR GMP install directory ], [ + if test -z "$with_gmp_lib" && test -z "$with_gmp_include" ; then + CPPFLAGS="$CPPFLAGS -I$withval/include" + LDFLAGS="$LDFLAGS -L$withval/lib" + else + AC_MSG_FAILURE([Do not use --with-gmp and --with-gmp-include/--with-gmp-lib options simultaneously.]) + fi + ]) + # Verify that we have a usable GMP library. AC_LIB_HAVE_LINKFLAGS([gmp], [], [#include ], [mpz_t n; @@ -691,6 +707,15 @@ if test "$HAVE_LIBGMP" != yes; then AC_MSG_ERROR([GMP is missing or unusable]) fi +AC_ARG_WITH([mpfr_include], + [AC_HELP_STRING([--with-mpfr-include=DIR], + [MPFR include directory])], + [CPPFLAGS="-I$withval $CPPFLAGS"]) +AC_ARG_WITH([mpfr_lib], + [AC_HELP_STRING([--with-mpfr-lib=DIR], + [MPFR lib directory])], + [LDFLAGS="-L$withval $LDFLAGS"]) + AC_ARG_WITH(mpfr, AS_HELP_STRING([--with-mpfr], [include MPFR support (auto/yes/no)]), [], [with_mpfr=auto]) -- 1.9.1