Re: [RFA/gdb-9-branch] Abort configure immediately if building GDB in tree

Sergio Durigan Junior
2020-02-01T20:38:10Z

On Saturday, February 01 2020, Joel Brobecker wrote:

>> > >>> I'm wondering what to do here. I think I found a hacky and ugly
>> > >>> solution here, but I'm trying to see if there's a better approach.
>> > >>
>> > >> A special command-line switch to 'configure', to be used by
>> > >> src-release.sh?
>> > >
>> > > A quick attempt here didn't really work. The script is able to finish
>> > > the build and create a tarball, but for some reason the gdb directory is
>> > > not configured/built.
>> >
>> > OK, I think I have something that works. When 'configure' is invoked
>> > with '--enable-src-release-build', a tarball is generated and, as far as
>> > I have checked, contains the correct snapshot.
>> >
>> > WDYT?
>>
>> Thanks! I didn't realize that this would impact source packaging
>> like that.
>>
>> Let's go with your patch. I'm about to start working on the release,
>> so I'll apply it for you.
>
> Or not. Jonah just reported another blocking issue :-(, so I won't
> be creating this release this weekend.
>
> So the "good" news is that you can push the patch yourself!

Thanks for the quick review, Joel :-).

Below is what I pushed.

Cheers,

--
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/

From 1aa93c3a9b9a216703aaf882b3af541f3bc3042a Mon Sep 17 00:00:00 2001
From: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Sat, 1 Feb 2020 15:33:31 -0500
Subject: [PATCH] Implement '--enable-src-release-build' option and make
src-release.sh use it

The generation of snapshots has been broken since we've disable
in-tree builds for GDB. Given that src-release.sh performs a build
before creating the release tarball, and that this build is performed
in-tree, the solution we found is to implement a new top-level
configure flag called '--enable-src-release-build' which disables the
in-tree build restriction, and then make src-release.sh use it.

ChangeLog:
2020-02-01 Sergio Durigan Junior <sergiodj@redhat.com>
Eli Zaretskii <eliz@gnu.org>

* configure.ac: Don't abort the build if trying to build GDB in tree
_and_ invoking with '--enable-src-release-build'.
* configure: Regenerate.
* src-release.sh (do_proto_toplev): Invoke 'configure' using

Change-Id: Ic6dd55accd9a03e62fe498f7fd704fb67f44bfa9
---
ChangeLog | 8 ++++++++
configure | 2 +-
configure.ac | 2 +-
src-release.sh | 4 ++--
4 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 0bfe989885..211451345e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2020-02-01 Sergio Durigan Junior <sergiodj@redhat.com>
+
+ * configure.ac: Don't abort the build if trying to build GDB in tree
+ _and_ invoking with '--enable-src-release-build'.
+ * configure: Regenerate.
+ * src-release.sh (do_proto_toplev): Invoke 'configure' using
+ '--enable-src-release-build'.
+
2020-01-17 Joel Brobecker <brobecker@adacore.com>

* configure.ac: Abort the build with an error if trying to build
diff --git a/configure b/configure
index 7168a4e90e..276f33fee3 100755
--- a/configure
+++ b/configure
@@ -2279,7 +2279,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu

-if test x"${enable_gdb}" != x"no"; then
+if test x"${enable_gdb}" != x"no" -a x"${enable_src_release_build}" != x"yes"; 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.
diff --git a/configure.ac b/configure.ac
index e5ca1eaa57..cd0867dd76 100644
--- a/configure.ac
+++ b/configure.ac
@@ -33,7 +33,7 @@ m4_include([config/isl.m4])
AC_INIT(move-if-change)
AC_DISABLE_OPTION_CHECKING

-if test x"${enable_gdb}" != x"no"; then
+if test x"${enable_gdb}" != x"no" -a x"${enable_src_release_build}" != x"yes"; 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.
diff --git a/src-release.sh b/src-release.sh
index 275f0f24b5..68e824c749 100755
--- a/src-release.sh
+++ b/src-release.sh
@@ -99,8 +99,8 @@ do_proto_toplev()
*) disables="$disables --disable-$dir" ;;
esac
done
- echo "==> configure --target=i386-pc-linux-gnu $disables $enables"
- ./configure --target=i386-pc-linux-gnu $disables $enables
+ echo "==> configure --target=i386-pc-linux-gnu --enable-src-release-build=yes $disables $enables"
+ ./configure --target=i386-pc-linux-gnu --enable-src-release-build=yes $disables $enables
$MAKE configure-host configure-target \
ALL_GCC="" ALL_GCC_C="" ALL_GCC_CXX="" \
CC_FOR_TARGET="$CC" CXX_FOR_TARGET="$CXX"
--
2.21.0