From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id yGHXCMSYtF9pFwAAWB0awg (envelope-from ) for ; Tue, 17 Nov 2020 22:45:08 -0500 Received: by simark.ca (Postfix, from userid 112) id 1E3B31F08B; Tue, 17 Nov 2020 22:45:08 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id A60E71E58E for ; Tue, 17 Nov 2020 22:45:07 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CC61038708AE; Wed, 18 Nov 2020 03:45:06 +0000 (GMT) Received: from rock.gnat.com (rock.gnat.com [205.232.38.15]) by sourceware.org (Postfix) with ESMTP id DD6E338708AE for ; Wed, 18 Nov 2020 03:45:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org DD6E338708AE Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=brobecker@adacore.com Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id BD4D91161CF; Tue, 17 Nov 2020 22:45:00 -0500 (EST) X-Virus-Scanned: Debian amavisd-new at gnat.com Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id NlFzkFxV9iDZ; Tue, 17 Nov 2020 22:45:00 -0500 (EST) Received: from float.home (localhost.localdomain [127.0.0.1]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by rock.gnat.com (Postfix) with ESMTPS id 5D39A1161A3; Tue, 17 Nov 2020 22:45:00 -0500 (EST) Received: by float.home (Postfix, from userid 1000) id 782C4A1871; Wed, 18 Nov 2020 07:44:55 +0400 (+04) Date: Wed, 18 Nov 2020 07:44:55 +0400 From: Joel Brobecker To: Bernd Edlinger Subject: Re: [PATCH] Enable GDB build with in-tree GMP and MPFR Message-ID: <20201118034455.GE617116@adacore.com> References: <1604817017-25807-1-git-send-email-brobecker@adacore.com> <1605429345-78384-1-git-send-email-brobecker@adacore.com> <1605429345-78384-2-git-send-email-brobecker@adacore.com> <20201116034518.GA609903@adacore.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Simon Marchi , gdb-patches@sourceware.org Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" > 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 > 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. 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 > > * 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 > -- Joel