From patchwork Fri Jan 17 18:15:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Brobecker X-Patchwork-Id: 37425 Received: (qmail 50869 invoked by alias); 17 Jan 2020 18:16:09 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 50846 invoked by uid 89); 17 Jan 2020 18:16:08 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-18.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=lift, PWD, theyll, they'll X-HELO: rock.gnat.com Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 17 Jan 2020 18:15:58 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 2D4E611668F; Fri, 17 Jan 2020 13:15:57 -0500 (EST) 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 uC-rt6EhENDy; Fri, 17 Jan 2020 13:15:57 -0500 (EST) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id EEBC111667F; Fri, 17 Jan 2020 13:15:56 -0500 (EST) Received: by joel.gnat.com (Postfix, from userid 1000) id ECDA6838B5; Fri, 17 Jan 2020 19:15:54 +0100 (CET) Date: Fri, 17 Jan 2020 19:15:54 +0100 From: Joel Brobecker To: Simon Marchi Cc: gdb-patches@sourceware.org, Tom Tromey Subject: Re: [RFA/gdb-9-branch] Abort configure immediately if building GDB in tree Message-ID: <20200117181554.GB7007@adacore.com> References: <20200105073000.1012-1-brobecker@adacore.com> <4d350c75-6e52-5c4c-5901-4c391970b643@simark.ca> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <4d350c75-6e52-5c4c-5901-4c391970b643@simark.ca> User-Agent: Mutt/1.9.4 (2018-02-28) Hi Simon, Thanks for the review. > > +if test x"${enable_gdb}" != x"no"; then > > + # For this branch, we do not support building GDB in-tree. > > + # Try to detect whether we are in this situation or not by > > + # searching for a couple of known files in the source directory. > > + if test -f gnulib/update-gnulib.sh -a -f gdb/ChangeLog; then > > + AC_MSG_ERROR([GDB must be configured and built in a directory separate from its sources]) > > Finish the message with a period? Of course! FWIW, I modeled this to other calls to AC_MSG_ERROR ;-) > Some people who only know the "./configure && make && make install" recipe > might not know how (or that it's even possible) to configure and build in a > separate directory, so they'll be stuck there. I think it would be helpful > to give an example of how to do that, like: > > GDB must be configured and built in a directory separate from its sources. > > To do so, create a dedicated directory for your GDB build and invoke the configure > script from that directory: > > $ mkdir my-gdb-build > $ cd my-gdb-build > $ ../path/to/gdb-x.y.z/configure [configure args] > $ make > > Otherwise, that looks good to me. Attached is a revised patch. I chose to use the same sequence as the one in gdb/README, just for consistency. ChangeLog: * configure.ac: Abort the build with an error if trying to build GDB in tree. * configure: Regenerate. For gdb-9-branch only... OK to push? From 8664d4b725eeb9c5845fa36331f2184d2c1f8596 Mon Sep 17 00:00:00 2001 From: Joel Brobecker Date: Fri, 17 Jan 2020 19:13:15 +0100 Subject: [PATCH] Abort configure immediately if building GDB in tree The move of gnulib to the top src directory is causing the GDB build to break if configured in tree. We hope to lift that limitation at some point but, in the meantime, this commit allows us to abort the initial configure right away with a clear error message should the user attempt to build in tree. ChangeLog: * configure.ac: Abort the build with an error if trying to build GDB in tree. * configure: Regenerate. --- configure | 17 +++++++++++++++++ configure.ac | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/configure b/configure index 6a9719f6091..7168a4e90e0 100755 --- a/configure +++ b/configure @@ -2279,6 +2279,23 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test x"${enable_gdb}" != x"no"; then + # For this branch, we do not support building GDB in-tree. + # Try to detect whether we are in this situation or not by + # searching for a couple of known files in the source directory. + if test -f gnulib/update-gnulib.sh -a -f gdb/ChangeLog; then + as_fn_error $? "GDB must be configured and built in a directory separate from its sources. + +To do so, create a dedicated directory for your GDB build and invoke +the configure script from that directory: + + $ mkdir build + $ cd build + $ /gdb-VERSION/configure [etc...] + $ make" "$LINENO" 5 + fi +fi + progname=$0 # if PWD already has a value, it is probably wrong. if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi diff --git a/configure.ac b/configure.ac index 7433badc217..e5ca1eaa57a 100644 --- a/configure.ac +++ b/configure.ac @@ -33,6 +33,23 @@ m4_include([config/isl.m4]) AC_INIT(move-if-change) AC_DISABLE_OPTION_CHECKING +if test x"${enable_gdb}" != x"no"; then + # For this branch, we do not support building GDB in-tree. + # Try to detect whether we are in this situation or not by + # searching for a couple of known files in the source directory. + if test -f gnulib/update-gnulib.sh -a -f gdb/ChangeLog; then + AC_MSG_ERROR([GDB must be configured and built in a directory separate from its sources. + +To do so, create a dedicated directory for your GDB build and invoke +the configure script from that directory: + + $ mkdir build + $ cd build + $ /gdb-VERSION/configure [[etc...]] + $ make]) + fi +fi + progname=$0 # if PWD already has a value, it is probably wrong. if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi -- 2.17.1