From: Joel Brobecker <brobecker@adacore.com>
To: Bernd Edlinger <bernd.edlinger@hotmail.de>
Cc: Simon Marchi <simark@simark.ca>, gdb-patches@sourceware.org
Subject: Re: [PATCH] Enable GDB build with in-tree GMP and MPFR
Date: Wed, 18 Nov 2020 07:44:55 +0400 [thread overview]
Message-ID: <20201118034455.GE617116@adacore.com> (raw)
In-Reply-To: <AM6PR03MB51701BB1945F319E3B404E46E4E20@AM6PR03MB5170.eurprd03.prod.outlook.com>
> this enables GDB build with in-tree GMP and MPFR.
>
> This updated version of my patch added support for in-tree MPFR.
>
> While there is no preexisting --with-gmp configure option in gdb,
> this leaves the current --with-mpfr=yes/no/auto as it is, since it seems
> to work by accident. The top level config script thinks "no" is
> a DIR, and skips the detection of in-tree MPFR in that case, while
> gdb honors --with-mpfr=no, so that is what's expected.
>
> The in-tree build works only when no --with-mpfr and no
> --with-gmp is given. While it does not advertise --with-gmp-prefix=DIR
> and/or --with-mpfr-prefix=DIR with "./configure --help", I'll leave that
> for another patch.
I think we better sort the discrepancy between GCC and GDB
if we can, but this is going to take time. From what you were
explaining before, I believe you can separate this part of
your patch (adding the above to GDB's configury) from the part
where you're adding support for in-tree building?
> Tested on x86_64-pc-linux-gnu and cross-build for arm.
> Is it OK for the trunk?
These are changes in areas I am not familiar with, and wouldn't
have very much time to look into. I talked to Tom yesterday,
and he kindly agreed to take a look.
> From 503435680f463cf5ed060ce32b902051cb19e801 Mon Sep 17 00:00:00 2001
> From: Bernd Edlinger <bernd.edlinger@hotmail.de>
> 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 <bernd.edlinger@hotmail.de>
>
> * Makefile.def: Prepare for GDB build with intree GMP.
> * Makefile.in: Regenerate.
I got the answer about approval for toplevel tree changes; we're still
keeping in sync with GCC. However, Tom said that these kinds of changes
are OK to discuss and eventually push locally, before we bring them
to GCC next. It's better the other way around, but discussing them
here is also an option, because it's a minor change taking advantage
of infrastructure that's already in place.
In this particular instance, I would indeed _not_ rush discussing
with GCC, in case the tie with GDB affects the changes we would need
in toplevel.
> gdb:
> 2020-11-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
>
> * 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 <gmp.h>],
> [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
>
--
Joel
next prev parent reply other threads:[~2020-11-18 3:45 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-08 6:30 RFA: Add support for DWARF-based fixed point types Joel Brobecker
2020-11-08 6:30 ` [PATCH 1/9] gdb/configure: Add --with-libgmp-prefix option Joel Brobecker
2020-11-08 6:30 ` [PATCH 2/9] gdb: Make GMP a required dependency for building GDB Joel Brobecker
2020-12-15 6:55 ` Sebastian Huber
2020-12-15 8:57 ` Joel Brobecker
2020-11-08 6:30 ` [PATCH 3/9] gmp-utils: New API to simply use of GMP's integer/rational/float objects Joel Brobecker
2020-11-10 20:15 ` Simon Marchi
2020-11-13 8:12 ` Joel Brobecker
2020-11-13 15:04 ` Tom Tromey
2020-11-13 15:06 ` Simon Marchi
2020-11-16 16:18 ` Tom Tromey
2020-11-16 16:34 ` Luis Machado via Gdb-patches
2020-11-18 3:52 ` Joel Brobecker
2020-11-08 6:30 ` [PATCH 4/9] Move uinteger_pow gdb/valarith.c to gdb/utils.c and make it public Joel Brobecker
2020-11-08 6:30 ` [PATCH 5/9] Add support for printing value of DWARF-based fixed-point type objects Joel Brobecker
2020-11-10 21:06 ` Simon Marchi
2020-11-14 10:48 ` Joel Brobecker
2020-11-14 13:20 ` Simon Marchi
2020-11-14 11:30 ` Joel Brobecker
2020-11-14 16:14 ` Simon Marchi
2020-11-15 5:30 ` Joel Brobecker
2020-11-15 6:33 ` Joel Brobecker
2020-11-16 0:13 ` Simon Marchi
2020-11-08 6:30 ` [PATCH 6/9] fix printing of DWARF fixed-point type objects with format modifier Joel Brobecker
2020-11-10 22:50 ` Simon Marchi
2020-11-08 6:30 ` [PATCH 7/9] Add ptype support for DWARF-based fixed-point types Joel Brobecker
2020-11-10 23:00 ` Simon Marchi
2020-11-15 6:57 ` Joel Brobecker
2020-11-15 7:09 ` Joel Brobecker
2020-11-16 0:16 ` Simon Marchi
2020-11-16 4:03 ` Joel Brobecker
2020-11-08 6:30 ` [PATCH 8/9] Add support for fixed-point type arithmetic Joel Brobecker
2020-11-10 23:18 ` Simon Marchi
2020-11-08 6:30 ` [PATCH 9/9] Add support for fixed-point type comparison operators Joel Brobecker
2020-11-10 23:21 ` RFA: Add support for DWARF-based fixed point types Simon Marchi
2020-11-11 4:53 ` Joel Brobecker
2020-11-15 8:35 ` pushed: " Joel Brobecker
2020-11-15 8:35 ` [pushed/v2 1/9] gdb/configure: Add --with-libgmp-prefix option Joel Brobecker
2020-11-15 15:52 ` Bernd Edlinger
2020-11-16 3:45 ` Joel Brobecker
2020-11-16 14:20 ` Bernd Edlinger
2020-11-17 7:41 ` [PATCH] Enable GDB build with in-tree GMP and MPFR Bernd Edlinger
2020-11-18 3:44 ` Joel Brobecker [this message]
2020-11-18 8:14 ` Bernd Edlinger
2020-12-01 19:29 ` Bernd Edlinger
2020-12-01 19:32 ` Simon Marchi
2020-12-01 19:38 ` Bernd Edlinger
2020-12-01 20:29 ` Bernd Edlinger
2020-12-01 20:30 ` Simon Marchi
2020-12-02 3:21 ` Joel Brobecker
2020-12-08 20:39 ` [PING] " Bernd Edlinger
2020-12-14 17:40 ` [PATCH v2] " Bernd Edlinger
2020-12-14 18:47 ` Simon Marchi
2020-12-14 21:35 ` Tom Tromey
2020-12-14 22:17 ` Simon Marchi
2020-12-15 2:33 ` Joel Brobecker
2020-12-15 14:39 ` Simon Marchi via Gdb-patches
2020-12-15 16:24 ` Bernd Edlinger
2020-12-16 7:33 ` Joel Brobecker
2020-12-16 18:16 ` Bernd Edlinger
2020-12-25 12:05 ` Bernd Edlinger
2020-12-27 22:01 ` Simon Marchi via Gdb-patches
2020-12-29 8:36 ` Bernd Edlinger
2020-12-29 14:50 ` Simon Marchi via Gdb-patches
2021-01-10 14:12 ` Bernd Edlinger
2021-01-10 15:32 ` Simon Marchi via Gdb-patches
2021-01-11 3:22 ` Joel Brobecker
2021-01-16 18:01 ` Bernd Edlinger
2020-12-15 15:33 ` Bernd Edlinger
2020-12-15 15:10 ` Bernd Edlinger
2020-11-15 8:35 ` [pushed/v2 2/9] gdb: Make GMP a required dependency for building GDB Joel Brobecker
2020-11-15 8:35 ` [pushed/v2 3/9] gmp-utils: New API to simply use of GMP's integer/rational/float objects Joel Brobecker
2020-11-15 8:35 ` [pushed/v2 4/9] Move uinteger_pow gdb/valarith.c to gdb/utils.c and make it public Joel Brobecker
2020-11-15 8:35 ` [pushed/v2 5/9] Add support for printing value of DWARF-based fixed-point type objects Joel Brobecker
2020-11-15 8:35 ` [pushed/v2 6/9] fix printing of DWARF fixed-point type objects with format modifier Joel Brobecker
2020-11-15 8:35 ` [pushed/v2 7/9] Add ptype support for DWARF-based fixed-point types Joel Brobecker
2020-11-15 8:35 ` [pushed/v2 8/9] Add support for fixed-point type arithmetic Joel Brobecker
2020-11-15 8:35 ` [pushed/v2 9/9] Add support for fixed-point type comparison operators Joel Brobecker
2020-11-16 23:48 ` pushed: Add support for DWARF-based fixed point types Pedro Alves
2020-11-17 14:25 ` Simon Marchi
2020-11-18 3:47 ` Joel Brobecker
2020-11-22 13:12 ` [RFA] Add TYPE_CODE_FIXED_POINT handling in print_type_scalar Joel Brobecker
2020-11-22 14:35 ` Simon Marchi
2020-11-24 3:04 ` Joel Brobecker
2020-11-22 14:00 ` pushed: Add support for DWARF-based fixed point types Joel Brobecker
2020-11-22 20:11 ` Simon Marchi
2020-11-23 4:27 ` Joel Brobecker
2020-11-23 16:12 ` Simon Marchi
2020-11-24 2:39 ` Joel Brobecker
2020-11-29 15:45 ` RFA: wrap mpz_export into gdb_mpz::safe_export Joel Brobecker
2020-11-29 15:45 ` [RFA 1/2] Fix TARGET_CHAR_BIT/HOST_CHAR_BIT confusion in gmp-utils.c Joel Brobecker
2020-11-30 15:42 ` Simon Marchi
2020-12-05 8:05 ` Joel Brobecker
2020-11-29 15:45 ` [RFA 2/2] gmp-utils: protect gdb_mpz exports against out-of-range values Joel Brobecker
2020-11-30 15:56 ` Simon Marchi
2020-12-01 3:37 ` Joel Brobecker
2020-12-01 4:02 ` Simon Marchi
2020-12-01 7:11 ` Joel Brobecker
2020-12-05 8:10 ` [RFAv2 " Joel Brobecker
2020-12-05 23:26 ` Simon Marchi
2020-12-06 4:58 ` Joel Brobecker
2020-11-30 12:44 ` RFA: wrap mpz_export into gdb_mpz::safe_export Christian Biesinger via Gdb-patches
2020-11-20 14:08 ` pushed: Add support for DWARF-based fixed point types Pedro Alves
2020-11-20 14:14 ` Joel Brobecker
2020-11-22 11:56 ` RFA/doco: Various changes related to GMP and fixed point type support Joel Brobecker
2020-11-22 11:56 ` [RFA/doco 1/4] gdb/NEWS: Document that building GDB now requires GMP Joel Brobecker
2020-11-22 15:31 ` Eli Zaretskii via Gdb-patches
2020-11-24 3:11 ` Joel Brobecker
2020-11-22 11:56 ` [RFA/doco 2/4] gdb/NEWS: Document that GDB now supports DWARF-based fixed point types Joel Brobecker
2020-11-22 15:33 ` Eli Zaretskii via Gdb-patches
2020-11-24 3:12 ` Joel Brobecker
2020-11-22 11:56 ` [RFA/doco 3/4] gdb/README: Document the --with-libgmp-prefix configure option Joel Brobecker
2020-11-22 15:32 ` Eli Zaretskii via Gdb-patches
2020-11-24 3:11 ` Joel Brobecker
2020-11-22 11:56 ` [RFA/doco 4/4] gdb/README: Fix the URL of the MPFR website (now https) Joel Brobecker
2020-11-22 15:33 ` Eli Zaretskii via Gdb-patches
2020-11-24 3:11 ` Joel Brobecker
2020-11-15 8:49 ` RFA: Various enhancements to the fixed-point support implementation Joel Brobecker
2020-11-15 8:49 ` [RFA 1/6] change gmp_string_asprintf to return an std::string Joel Brobecker
2020-11-16 0:41 ` Simon Marchi
2020-11-16 3:55 ` Joel Brobecker
2020-11-16 20:10 ` Simon Marchi
2020-11-15 8:49 ` [RFA 2/6] gmp-utils: Convert the read/write methods to using gdb::array_view Joel Brobecker
2020-11-16 0:52 ` Simon Marchi
2020-11-16 23:05 ` Pedro Alves
2020-11-17 14:32 ` Simon Marchi
2020-11-15 8:49 ` [RFA 3/6] gdbtypes.h: Get rid of the TYPE_FIXED_POINT_INFO macro Joel Brobecker
2020-11-15 8:49 ` [RFA 4/6] Make fixed_point_type_base_type a method of struct type Joel Brobecker
2020-11-15 8:49 ` [RFA 5/6] Make function fixed_point_scaling_factor " Joel Brobecker
2020-11-15 8:49 ` [RFA 6/6] valarith.c: Replace INIT_VAL_WITH_FIXED_POINT_VAL macro by lambda Joel Brobecker
2020-11-16 1:01 ` RFA: Various enhancements to the fixed-point support implementation Simon Marchi
2020-11-22 11:14 ` RFA v2: " Joel Brobecker
2020-11-22 11:14 ` [RFA v2 1/6] change and rename gmp_string_asprintf to return an std::string Joel Brobecker
2020-11-22 11:14 ` [RFA v2 2/6] gmp-utils: Convert the read/write methods to using gdb::array_view Joel Brobecker
2020-11-22 11:14 ` [RFA v2 3/6] gdbtypes.h: Get rid of the TYPE_FIXED_POINT_INFO macro Joel Brobecker
2020-11-22 11:14 ` [RFA v2 4/6] Make fixed_point_type_base_type a method of struct type Joel Brobecker
2020-11-22 11:14 ` [RFA v2 5/6] Make function fixed_point_scaling_factor " Joel Brobecker
2020-11-22 11:14 ` [RFA v2 6/6] valarith.c: Replace INIT_VAL_WITH_FIXED_POINT_VAL macro by lambda Joel Brobecker
2020-11-23 16:46 ` RFA v2: Various enhancements to the fixed-point support implementation Simon Marchi
2020-11-24 2:56 ` Joel Brobecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201118034455.GE617116@adacore.com \
--to=brobecker@adacore.com \
--cc=bernd.edlinger@hotmail.de \
--cc=gdb-patches@sourceware.org \
--cc=simark@simark.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox