public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Bernd Edlinger <bernd.edlinger@hotmail.de>
To: Joel Brobecker <brobecker@adacore.com>,
	Simon Marchi <simon.marchi@polymtl.ca>
Cc: Simon Marchi <simark@simark.ca>, Tom Tromey <tom@tromey.com>,
	Pedro Alves <palves@redhat.com>, Eli Zaretskii <eliz@gnu.org>,
	Andrew Burgess <andrew.burgess@embecosm.com>,
	"gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [PATCH v2] Enable GDB build with in-tree GMP and MPFR
Date: Wed, 16 Dec 2020 19:16:43 +0100	[thread overview]
Message-ID: <AM6PR03MB517071BB5EA5302030CC44FAE4C50@AM6PR03MB5170.eurprd03.prod.outlook.com> (raw)
In-Reply-To: <20201216073333.GA934694@adacore.com>

[-- Attachment #1: Type: text/plain, Size: 5450 bytes --]

On 12/16/20 8:33 AM, Joel Brobecker wrote:
> Hi Simon,
> 
>>> Here's a radical question: Do we really need to stay in sync with GCC,
>>> at this point? What are the benefits and requirements of doing so?
>>> Because GCC doesn't coordinate with us when they make changes to
>>> the toplevel configury, we're only going to get into these problems
>>> more.
>>
>> Indeed, it's a bit annoying that the burden of syncing is only on one
>> side.
>>
>> What are the original reasons for staying in sync with gcc?
> 
> I don't know. It was like that when I first joined the project
> 20 years ago. I assumed it was convenient in the CVS days to
> have everything under the same "roof", especially for those
> who want to rebuild the works, knowing that CVS allowed partial
> checkouts for those who diddn't.
> 
>> Instead of manually syncing files, I know Pedro already mentioned the
>> idea of having a single repo with binutils + gcc + gdb, a bit like
>> LLVM have moved to a big mono repo.  Especially with gcc being a C++
>> program as well, we want to share more.  So desyncing from gcc would
>> make such a move more difficult.  But it's just an idea at this point,
>> so maybe it's not that important.
> 
> It'd be interesting in knowing more about what it is that we would
> be sharing. GCC is absolutely huge (4.5GB), and GDB isn't bad either
> (1.2GB). Both GCC and GDB move very fast, so reuniting them would be
> causing a large burden both ways for everyone. If we do, I feel
> it has to be for strong reasons.
> 
>> Otherwise, just for convenience reasons, it would be nice to think more
>> of gcc + binutils + gdb (an maybe others) as a single toolchain, and
>> having consistency and no suprises in how you build them is a good thing
>> for those build and integrate them.
> 
> It would be nice, but is that a sufficiently strong reason to break
> with the past?
> 
>>> In fact, how much does the toplevel configure really need to do?
>>> Intuitively, it doesn't really need to do very much, if we ignore
>>> all the stuff that's GCC-specific.
>>
>> I know next to nothing about the top-level configure, because I never
>> needed to dig into it.
>>
>>> A more relevant conundrum, for me, might be to look at keeping
>>> binutils and GDB in sync in terms of the options being used.
>>>
>>> And then we have the question of how to provide users who want to
>>> configure parts or all of binutils-gdb what options they can use,
>>> and what they do. I don't know how easy we can do that via the
>>> toplevel configure's --help. One interesting question is: Would
>>> doing so help us avoid inconsistencies with binutils?
>>
>> I'm not sure I understand.  Do you mean, how do users get to learn about
>> the configure switches of all projects?
>>
>> All I know is that you can do "./configure --help=recursive" from the
>> top-level, but that's not particularly convenient, it just dumps all
>> the helps from all the configure scripts.  It's good if you want to
>> find / grep.
> 
> I didn't know that! This answers my question.
> 
> To recap where I am on this discussion: First, I need to be honest
> and upfront in saying that I can't seem to be able to summon the energy
> to motivate myself towards discussing reunification or even just making
> GCC and binutils-gdb more consistent in the naming of the configure
> options.
> 
> In fact, pending more info, I would still prefer we break the minimal
> tie we have left in terms of synchronization with GCC, and use that
> to help ourselves simplify and clarify, without breaking the existing
> option.
> 
> In the meantime, if the group decides after discussion that the name
> of the configure options in GDB for GMP are wrong, and must be changed
> to follow GCC's lead, then so be it, I will change it. It'll be a bit
> of a heartbreaker for me because:
>   - It breaks consistency with the way we have been handling dependencies
>     in GDB;
>   - We won't be able to use this nice macro to implement those options,
>     and will end up hand-writing them the same way toplevel configure
>     does (it seems like a lot of code, although I would hope I can
>     do this better and shorter).
> Note that no one has complained about MPFR in the years we've had it...
> 

That may be because this does not break anything if it is not available.
I for one did not notice anything before I knew that mpfr could be missing...

I looked at AC_LIB_HAVE_LINKFLAGS and I am surprised that it considers
to look for *.la/*.a/*.so at $prefix/lib directory instead of for instance
simply using pkg-config.

Using prefix/lib and prefix/include is also a bit unexpected, because that
is where I would normally expect the generated libraries from gdb to be
installed, instead of used from to build the gdb package.
And, it is also not clear if the user uses make install DESTDIR=X to install
everyting in X/prefix/..., for instance when prefix=/

So I think the configure flags for GMP can still be changed if we want, but the
AC_LIB_HAVE_LINKFLAGS-style configure flags for MPFR have already been there
for too long to simply remove them now.  But I still think that it would
be nice to be more compatible with other configures, maybe at least
understand the --with-gmp-include --with-gmp-lib where there is no equivalent
for at the moment.

However I think I found a way to fix the in-tree build issue without adding
now configure options at all.

How would you like this new patch?


Thanks
Bernd.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Enable-GDB-build-with-in-tree-GMP-and-MPFR.patch --]
[-- Type: text/x-patch; name="0001-Enable-GDB-build-with-in-tree-GMP-and-MPFR.patch", Size: 15197 bytes --]

From f165e60dab1d677fe27915bb49bc897525d22a70 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-12-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* Makefile.def: Prepare for GDB build with intree GMP.
	* Makefile.in: Regenerate.

gdb:
2020-12-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* configure.ac: Detect in-tree GMP and MPFR.
	* configure: Regenerate.
	* README: Mention ./contrib/download_prerequisites.

contrib:
2020-12-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* download_prerequisites: New helper script.
	* prerequisites.md5: checksums.
	* prerequisites.sha512: checksums.
---
 Makefile.def                   |   2 +
 Makefile.in                    |   2 +
 contrib/download_prerequisites | 263 +++++++++++++++++++++++++++++++++++++++++
 contrib/prerequisites.md5      |   2 +
 contrib/prerequisites.sha512   |   2 +
 gdb/README                     |  12 ++
 gdb/configure                  |  20 +++-
 gdb/configure.ac               |  20 +++-
 8 files changed, 315 insertions(+), 8 deletions(-)
 create mode 100755 contrib/download_prerequisites
 create mode 100644 contrib/prerequisites.md5
 create mode 100644 contrib/prerequisites.sha512

diff --git a/Makefile.def b/Makefile.def
index 089e70a..b6872c9 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -391,6 +391,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..ead9430 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -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/contrib/download_prerequisites b/contrib/download_prerequisites
new file mode 100755
index 0000000..0d04030
--- /dev/null
+++ b/contrib/download_prerequisites
@@ -0,0 +1,263 @@
+#! /bin/sh
+#! -*- coding:utf-8; mode:shell-script; -*-
+
+# Download some prerequisites needed by GDB.
+# Run this from the top level of the GDB source tree and the GDB build will do
+# the right thing.  Run it with the `--help` option for more information.
+#
+# (C) 2010-2020 Free Software Foundation
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see http://www.gnu.org/licenses/.
+
+program='download_prerequisites'
+version='(unversioned)'
+
+# MAINTAINERS: If you update the package versions below, please
+# remember to also update the files `contrib/prerequisites.sha512` and
+# `contrib/prerequisites.md5` with the new checksums.
+
+gmp='gmp-6.1.0.tar.bz2'
+mpfr='mpfr-3.1.4.tar.bz2'
+
+base_url='http://gcc.gnu.org/pub/gcc/infrastructure/'
+
+echo_archives() {
+    echo "${gmp}"
+    echo "${mpfr}"
+}
+
+verify=1
+force=0
+OS=$(uname)
+
+case $OS in
+  "Darwin"|"FreeBSD"|"DragonFly"|"AIX")
+    chksum='shasum -a 512 --check'
+  ;;
+  "OpenBSD")
+    chksum='sha512 -c'
+  ;;
+  *)
+    chksum='sha512sum -c'
+  ;;
+esac
+
+if type wget > /dev/null ; then
+  fetch='wget'
+else
+  fetch='curl -LO'
+fi
+chksum_extension='sha512'
+directory='.'
+
+helptext="usage: ${program} [OPTION...]
+
+Downloads some prerequisites needed by GDB.  Run this from the top level of the
+GDB source tree and the GDB build will do the right thing.
+
+The following options are available:
+
+ --directory=DIR  download and unpack packages into DIR instead of '.'
+ --force          download again overwriting existing packages
+ --no-force       do not download existing packages again (default)
+ --verify         verify package integrity after download (default)
+ --no-verify      don't verify package integrity
+ --sha512         use SHA512 checksum to verify package integrity (default)
+ --md5            use MD5 checksum to verify package integrity
+ --help           show this text and exit
+ --version        show version information and exit
+"
+
+versiontext="${program} ${version}
+Copyright (C) 2020 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+die() {
+    echo "error: $@" >&2
+    exit 1
+}
+
+for arg in "$@"
+do
+    case "${arg}" in
+        --help)
+            echo "${helptext}"
+            exit
+            ;;
+        --version)
+            echo "${versiontext}"
+            exit
+            ;;
+    esac
+done
+unset arg
+
+# Emulate Linux's 'md5 --check' on macOS
+md5_check() {
+  # Store the standard input: a line from contrib/prerequisites.md5:
+  md5_checksum_line=$(cat -)
+  # Grab the text before the first space
+  md5_checksum_expected="${md5_checksum_line%% *}"
+  # Grab the text after the first space
+  file_to_check="${md5_checksum_line##* }"
+  # Calculate the md5 checksum for the downloaded file
+  md5_checksum_output=$(md5 -r "${file_to_check}")
+  # Grab the text before the first space
+  md5_checksum_detected="${md5_checksum_output%% *}"
+  [ "${md5_checksum_expected}" == "${md5_checksum_detected}" ] \
+    || die "Cannot verify integrity of possibly corrupted file ${file_to_check}"
+  echo "${file_to_check}: OK"
+}
+
+
+argnext=
+for arg in "$@"
+do
+    if [ "x${argnext}" = x ]
+    then
+        case "${arg}" in
+            --directory)
+                argnext='directory'
+                ;;
+            --directory=*)
+                directory="${arg#--directory=}"
+                ;;
+            --force)
+                force=1
+                ;;
+            --no-force)
+                force=0
+                ;;
+            --verify)
+                verify=1
+                ;;
+            --no-verify)
+                verify=0
+                ;;
+            --sha512)
+                case $OS in
+                  "Darwin")
+                    chksum='shasum -a 512 --check'
+                  ;;
+                  *)
+                    chksum='sha512sum --check'
+                  ;;
+                esac
+                chksum_extension='sha512'
+                verify=1
+                ;;
+            --md5)
+                case $OS in
+                  "Darwin")
+                    chksum='md5_check'
+                  ;;
+                  *)
+                    chksum='md5 --check'
+                  ;;
+                esac
+                chksum_extension='md5'
+                verify=1
+                ;;
+            -*)
+                die "unknown option: ${arg}"
+                ;;
+            *)
+                die "too many arguments"
+                ;;
+        esac
+    else
+        case "${arg}" in
+            -*)
+                die "Missing argument for option --${argnext}"
+                ;;
+        esac
+        case "${argnext}" in
+            directory)
+                directory="${arg}"
+                ;;
+            *)
+                die "The impossible has happened"
+                ;;
+        esac
+        argnext=
+    fi
+done
+[ "x${argnext}" = x ] || die "Missing argument for option --${argnext}"
+unset arg argnext
+
+[ -e ./gdb/version.in ]                                                       \
+    || die "You must run this script in the top-level GDB source directory"
+
+[ -d "${directory}" ]                                                         \
+    || die "No such directory: ${directory}"
+
+for ar in $(echo_archives)
+do
+    if [ ${force} -gt 0 ]; then rm -f "${directory}/${ar}"; fi
+    [ -e "${directory}/${ar}" ]                                               \
+        || ( cd "${directory}" && ${fetch} --no-verbose "${base_url}${ar}" )  \
+        || die "Cannot download ${ar} from ${base_url}"
+done
+unset ar
+
+if [ ${verify} -gt 0 ]
+then
+    chksumfile="contrib/prerequisites.${chksum_extension}"
+    [ -r "${chksumfile}" ] || die "No checksums available"
+    for ar in $(echo_archives)
+    do
+        grep "${ar}" "${chksumfile}"                                          \
+            | ( cd "${directory}" && ${chksum} )                              \
+            || die "Cannot verify integrity of possibly corrupted file ${ar}"
+    done
+    unset chksumfile
+fi
+unset ar
+
+for ar in $(echo_archives)
+do
+    package="${ar%.tar*}"
+    if [ ${force} -gt 0 ]; then rm -rf "${directory}/${package}"; fi
+    case $ar in
+    *.gz)
+	uncompress='gzip -d'
+	;;
+    *.bz2)
+	uncompress='bzip2 -d'
+	;;
+    *)
+	uncompress='cat'
+	;;
+    esac
+    [ -e "${directory}/${package}" ]                                          \
+        || ( cd "${directory}" && $uncompress <"${ar}" | tar -xf - )          \
+        || die "Cannot extract package from ${ar}"
+    unset package
+done
+unset ar
+
+for ar in $(echo_archives)
+do
+    target="${directory}/${ar%.tar*}/"
+    linkname="${ar%-*}"
+    if [ ${force} -gt 0 ]; then rm -f "${linkname}"; fi
+    [ -e "${linkname}" ]                                                      \
+        || ln -s "${target}" "${linkname}"                                    \
+        || die "Cannot create symbolic link ${linkname} --> ${target}"
+    unset target linkname
+done
+unset ar
+
+echo "All prerequisites downloaded successfully."
diff --git a/contrib/prerequisites.md5 b/contrib/prerequisites.md5
new file mode 100644
index 0000000..cf7be0d
--- /dev/null
+++ b/contrib/prerequisites.md5
@@ -0,0 +1,2 @@
+86ee6e54ebfc4a90b643a65e402c4048  gmp-6.1.0.tar.bz2
+b8a2f6b0e68bef46e53da2ac439e1cf4  mpfr-3.1.4.tar.bz2
diff --git a/contrib/prerequisites.sha512 b/contrib/prerequisites.sha512
new file mode 100644
index 0000000..8f05aff
--- /dev/null
+++ b/contrib/prerequisites.sha512
@@ -0,0 +1,2 @@
+3c82aeab9c1596d4da8afac2eec38e429e84f3211e1a572cf8fd2b546493c44c039b922a1133eaaa48bd7f3e11dbe795a384e21ed95cbe3ecc58d7ac02246117  gmp-6.1.0.tar.bz2
+51066066ff2c12ed2198605ecf68846b0c96b548adafa5b80e0c786d0df488411a5e8973358fce7192dc977ad4e68414cf14500e3c39746de62465eb145bb819  mpfr-3.1.4.tar.bz2
diff --git a/gdb/README b/gdb/README
index e65c5ea..2b9c382 100644
--- a/gdb/README
+++ b/gdb/README
@@ -488,6 +488,12 @@ more obscure GDB `configure' options are not listed here.
      Build GDB using the GMP library installed at the directory DIR.
      If your host does not have GMP installed, you can get the latest
      version at `https://gmplib.org/'.
+     You can also build GMP in-tree when you use the script
+     ./contrib/download_prerequisites.
+     This must be done before configure.  No --with-gmp options must
+     be used when invoking configure in this case.
+     Note however, that this does only work with a separate build
+     directory.
 
 `--with-mpfr'
      Build GDB with GNU MPFR, a library for multiple-precision
@@ -499,6 +505,12 @@ more obscure GDB `configure' options are not listed here.
      available, GDB will fall back to using host floating-point
      arithmetic.  If your host does not have GNU MPFR installed, you
      can get the latest version from `https://www.mpfr.org/'.
+     You can also build MPFR in-tree when you use the script
+     ./contrib/download_prerequisites.
+     This must be done before configure.  No --with-mpfr options must
+     be used when invoking configure in this case.
+     Note however, that this does only work with a separate build
+     directory.
 
 `--with-python[=PYTHON]'
      Build GDB with Python scripting support.  (Done by default if
diff --git a/gdb/configure b/gdb/configure
index 24e6fbc..2bf8014 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -9991,6 +9991,13 @@ done
 fi
 
 # Verify that we have a usable GMP library.
+if test -d "../gmp"; then
+  CPPFLAGS="$CPPFLAGS -I../gmp"
+  LIBGMP="../gmp/.libs/libgmp.a"
+
+$as_echo "#define HAVE_LIBGMP 1" >>confdefs.h
+
+else
 
 
 
@@ -10431,7 +10438,7 @@ int
 main ()
 {
 mpz_t n;
-                       mpz_init (n);
+                         mpz_init (n);
   ;
   return 0;
 }
@@ -10469,8 +10476,9 @@ $as_echo "$LIBGMP" >&6; }
 
 
 
-if test "$HAVE_LIBGMP" != yes; then
-  as_fn_error $? "GMP is missing or unusable" "$LINENO" 5
+  if test "$HAVE_LIBGMP" != yes; then
+    as_fn_error $? "GMP is missing or unusable" "$LINENO" 5
+  fi
 fi
 
 
@@ -10490,6 +10498,12 @@ if test "${with_mpfr}" = no; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: MPFR support disabled; some features may be unavailable." >&5
 $as_echo "$as_me: WARNING: MPFR support disabled; some features may be unavailable." >&2;}
   HAVE_LIBMPFR=no
+elif test -d "../mpfr"; then
+  CPPFLAGS="$CPPFLAGS -I${srcdir}/../mpfr/src"
+  LIBMPFR="../mpfr/src/.libs/libmpfr.a"
+
+$as_echo "#define HAVE_LIBMPFR 1" >>confdefs.h
+
 else
 
 
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 32f25d9..376643c 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -684,11 +684,17 @@ else
 fi
 
 # Verify that we have a usable GMP library.
-AC_LIB_HAVE_LINKFLAGS([gmp], [], [#include <gmp.h>],
-                      [mpz_t n;
-                       mpz_init (n);])
-if test "$HAVE_LIBGMP" != yes; then
-  AC_MSG_ERROR([GMP is missing or unusable])
+if test -d "../gmp"; then
+  CPPFLAGS="$CPPFLAGS -I../gmp"
+  LIBGMP="../gmp/.libs/libgmp.a"
+  AC_DEFINE(HAVE_LIBGMP, 1, [Define if you have the GMP library.])
+else
+  AC_LIB_HAVE_LINKFLAGS([gmp], [], [#include <gmp.h>],
+                        [mpz_t n;
+                         mpz_init (n);])
+  if test "$HAVE_LIBGMP" != yes; then
+    AC_MSG_ERROR([GMP is missing or unusable])
+  fi
 fi
 
 AC_ARG_WITH(mpfr,
@@ -700,6 +706,10 @@ AC_MSG_RESULT([$with_mpfr])
 if test "${with_mpfr}" = no; then
   AC_MSG_WARN([MPFR support disabled; some features may be unavailable.])
   HAVE_LIBMPFR=no
+elif test -d "../mpfr"; then
+  CPPFLAGS="$CPPFLAGS -I${srcdir}/../mpfr/src"
+  LIBMPFR="../mpfr/src/.libs/libmpfr.a"
+  AC_DEFINE(HAVE_LIBMPFR, 1, [Define if you have the MPFR library.])
 else
   AC_LIB_HAVE_LINKFLAGS([mpfr], [gmp], [#include <mpfr.h>],
 			[mpfr_exp_t exp; mpfr_t x;
-- 
1.9.1


  reply	other threads:[~2020-12-16 18:16 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
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
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
2020-12-15 16:24                                     ` Bernd Edlinger
2020-12-16  7:33                                     ` Joel Brobecker
2020-12-16 18:16                                       ` Bernd Edlinger [this message]
2020-12-25 12:05                                         ` Bernd Edlinger
2020-12-27 22:01                                           ` Simon Marchi
2020-12-29  8:36                                             ` Bernd Edlinger
2020-12-29 14:50                                               ` Simon Marchi
2021-01-10 14:12                                                 ` Bernd Edlinger
2021-01-10 15:32                                                   ` Simon Marchi
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
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
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
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
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
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=AM6PR03MB517071BB5EA5302030CC44FAE4C50@AM6PR03MB5170.eurprd03.prod.outlook.com \
    --to=bernd.edlinger@hotmail.de \
    --cc=andrew.burgess@embecosm.com \
    --cc=brobecker@adacore.com \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    --cc=simark@simark.ca \
    --cc=simon.marchi@polymtl.ca \
    --cc=tom@tromey.com \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).