Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 0/5] Add gdb 8.1 support, switch to 8.0 as default, drop old versions
@ 2018-02-05 21:10 Thomas Petazzoni
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 1/5] package/gdb: rework dependency for C++11 Thomas Petazzoni
                   ` (4 more replies)
  0 siblings, 5 replies; 16+ messages in thread
From: Thomas Petazzoni @ 2018-02-05 21:10 UTC (permalink / raw)
  To: buildroot

Hello,

This is just a respin of Romain's series on gdb, with only two
changes, but somewhat important ones:

 - An additional commit (first in the series) that reworks how the
   host and target gdb dependencies are handled. Indeed, switching to
   gdb 8.0 by default has a consequence, because it needs C++11
   support in the toolchain, and that breaks with how the dependencies
   were currently expressed. See the commit log of PATCH 1 for
   details.

 - In the patch bumping to 8.1, remove the MPFR handling that Romain
   did: it was not correct to bring host-mpfr as a dependency for the
   host gdb when the target mpfr package was enabled. Since mpfr
   support in gdb for the target is not needed (it's only used when
   host != target), we don't support that and pass --without-mpfr. For
   the host, we also pass --without-mpfr, as we don't support this
   optional feature for the moment.

 - The patch bumping to 8.1 is adjust afer the dependency changes.

 - All other patches are unchanged.

Thomas

Romain Naour (4):
  package/gdb: bump to version 8.1
  package/gdb: switch to 8.0 as the default version
  package/gdb: remove 7.10
  package/gdb: remove 7.11

Thomas Petazzoni (1):
  package/gdb: rework dependency for C++11

 Config.in.legacy           | 14 ++++++++++++++
 package/gdb/Config.in      | 15 +++++++++++++++
 package/gdb/Config.in.host | 21 ++++++++-------------
 package/gdb/gdb.hash       |  3 +--
 package/gdb/gdb.mk         |  4 +++-
 5 files changed, 41 insertions(+), 16 deletions(-)

-- 
2.14.3

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 1/5] package/gdb: rework dependency for C++11
  2018-02-05 21:10 [Buildroot] [PATCH v2 0/5] Add gdb 8.1 support, switch to 8.0 as default, drop old versions Thomas Petazzoni
@ 2018-02-05 21:10 ` Thomas Petazzoni
  2018-02-07  9:58   ` Yann E. MORIN
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 2/5] package/gdb: bump to version 8.1 Thomas Petazzoni
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 16+ messages in thread
From: Thomas Petazzoni @ 2018-02-05 21:10 UTC (permalink / raw)
  To: buildroot

As we are about to switch to 8.0 as the default gdb dependency, we
need to adjust how the gdb dependencies are handled. Indeed, from 8.0
onwards, gdb needs a C++11 capable compiler, i.e at least gcc 4.8.

Until now, Config.in.host was making sure that gdb 8.0 was not
selectable if the cross-compilation toolchain did not have C++ support
with gcc >= 4.8. This worked fine because the default version of gdb,
used as the target gdb version when no host gdb is built, was 7.11,
and did not require C++11.

With the switch to 8.0 as the default version, when target gdb is
enabled but not host gdb, 8.0 is used, which means we need a C++11
capable compiler. The dependencies in Config.in.host are no longer
sufficient.

So instead, we remove the target-related dependencies from
Config.in.host and move them properly to Config.in. The overall logic
is the following:

 - In Config.in.host, BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS ensures that
   we have at least host gcc 4.8 if we're on ARC, because the ARC gdb
   needs C++11. We remove the target toolchain related dependencies
   from here.

 - In Config.in.host, the version selection ensures that 8.0 cannot be
   selected if the host toolchain does not have at least gcc 4.8. We
   remove the target toolchain related dependencies from here.

 - In Config.in, we handle gdb more like a regular target package,
   with a Config.in comment when its dependencies are not met. A
   hidden boolean BR2_PACKAGE_GDB_NEEDS_CXX11 indicates when the
   currently selected version requires C++11. Based on that, we show
   the Config.in comment, and add the proper dependencies to
   BR2_PACKAGE_GDB. It is worth mentioning that
   BR2_PACKAGE_GDB_NEEDS_CXX11 is intentionally created to be !7.10 &&
   !7.11 && !7.12 instead of 8.0, because we will gradually add more
   C++11-requiring versions, and remove non-C++11-requiring versions.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/gdb/Config.in      | 15 +++++++++++++++
 package/gdb/Config.in.host |  3 ---
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/package/gdb/Config.in b/package/gdb/Config.in
index af020f40c5..b7f0565b92 100644
--- a/package/gdb/Config.in
+++ b/package/gdb/Config.in
@@ -11,15 +11,30 @@ comment "gdb/gdbserver needs a toolchain w/ threads, threads debug"
 	depends on BR2_PACKAGE_GDB_ARCH_SUPPORTS
 	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_THREADS_DEBUG
 
+config BR2_PACKAGE_GDB_NEEDS_CXX11
+	bool
+	default y
+	depends on !BR2_GDB_VERSION_7_10
+	depends on !BR2_GDB_VERSION_7_11
+	depends on !BR2_GDB_VERSION_7_12
+
+comment "gdb/gdbserver >= 8.x needs a toolchain w/ C++, gcc >= 4.8"
+	depends on BR2_PACKAGE_GDB_NEEDS_CXX11
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+
 config BR2_PACKAGE_GDB
 	bool "gdb"
 	depends on BR2_TOOLCHAIN_HAS_THREADS && BR2_TOOLCHAIN_HAS_THREADS_DEBUG
 	depends on BR2_PACKAGE_GDB_ARCH_SUPPORTS
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_PACKAGE_GDB_NEEDS_CXX11
+	depends on BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_GDB_NEEDS_CXX11
 	# When the external toolchain gdbserver is copied to the
 	# target, we don't allow building a separate gdbserver. The
 	# one from the external toolchain should be used.
 	select BR2_PACKAGE_GDB_SERVER if \
 		(!BR2_PACKAGE_GDB_DEBUGGER && !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY)
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_PACKAGE_GDB_NEEDS_CXX11
+	depends on BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_GDB_NEEDS_CXX11
 	help
 	  GDB, the GNU Project debugger, allows you to see what is
 	  going on `inside' another program while it executes -- or
diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
index 99e1cae5ba..8676c6f01b 100644
--- a/package/gdb/Config.in.host
+++ b/package/gdb/Config.in.host
@@ -3,7 +3,6 @@ config BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS
 	default y
 	# The ARC version needs C++11, thus gcc >= 4.8, like gdb-8.0.x
 	depends on BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_arc
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_arc
 	depends on !((BR2_arm || BR2_armeb) && BR2_BINFMT_FLAT)
 	depends on !BR2_microblaze
 	depends on !BR2_nios2
@@ -63,9 +62,7 @@ config BR2_GDB_VERSION_7_12
 config BR2_GDB_VERSION_8_0
 	bool "gdb 8.0.x"
 	# Needs a C++11 compiler
-	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_HOST_GCC_AT_LEAST_4_8
-	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
 
 endchoice
 
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 2/5] package/gdb: bump to version 8.1
  2018-02-05 21:10 [Buildroot] [PATCH v2 0/5] Add gdb 8.1 support, switch to 8.0 as default, drop old versions Thomas Petazzoni
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 1/5] package/gdb: rework dependency for C++11 Thomas Petazzoni
@ 2018-02-05 21:10 ` Thomas Petazzoni
  2018-02-07 10:02   ` Yann E. MORIN
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 3/5] package/gdb: switch to 8.0 as the default version Thomas Petazzoni
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 16+ messages in thread
From: Thomas Petazzoni @ 2018-02-05 21:10 UTC (permalink / raw)
  To: buildroot

From: Romain Naour <romain.naour@gmail.com>

https://sourceware.org/ml/gdb-announce/2018/msg00001.html

gdb 8.1 has a new optional dependency on mpfr, which according to the
NEWS file:

   GDB now uses the GNU MPFR library, if available, to emulate target
   floating-point arithmetic during expression evaluation when the
   target uses different floating-point formats than the host.  At
   least version 3.1 of GNU MPFR is required.

So for the target gdb, this is unnecessary, and therefore we
forcefully disable mpfr support by passing --without-mpfr.

For the host gdb, it would potentially be useful, but since it's a new
feature that isn't essential, we for now keep it disabled as well. An
option may be added later if needed.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
[Thomas: change mpfr handling.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/gdb/Config.in.host | 6 ++++++
 package/gdb/gdb.hash       | 1 +
 package/gdb/gdb.mk         | 4 +++-
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
index 8676c6f01b..ae9a7257dd 100644
--- a/package/gdb/Config.in.host
+++ b/package/gdb/Config.in.host
@@ -64,6 +64,11 @@ config BR2_GDB_VERSION_8_0
 	# Needs a C++11 compiler
 	depends on BR2_HOST_GCC_AT_LEAST_4_8
 
+config BR2_GDB_VERSION_8_1
+	bool "gdb 8.1.x"
+	# Needs a C++11 compiler
+	depends on BR2_HOST_GCC_AT_LEAST_4_8
+
 endchoice
 
 endif
@@ -76,4 +81,5 @@ config BR2_GDB_VERSION
 	default "7.11.1"   if BR2_GDB_VERSION_7_11 || !BR2_PACKAGE_HOST_GDB
 	default "7.12.1"   if BR2_GDB_VERSION_7_12
 	default "8.0.1"    if BR2_GDB_VERSION_8_0
+	default "8.1"      if BR2_GDB_VERSION_8_1
 	depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
diff --git a/package/gdb/gdb.hash b/package/gdb/gdb.hash
index 62edd93792..3af72db23d 100644
--- a/package/gdb/gdb.hash
+++ b/package/gdb/gdb.hash
@@ -3,6 +3,7 @@ sha512	17a5138277a31685a5c2a841cb47ed9bc4626ea617b8ca77750513b300299f4fbbffe5049
 sha512  f80ec6c8a0f0b54c8b945666e875809174402b7e121efb378ebac931a91f9a1cc0048568f8e2f42ae8ae2392ff8d144c2e51d41c7398935017450aaf29838360	gdb-7.11.1.tar.xz
 sha512  0ac8d0a495103611ef41167a08313a010dce6ca4c6d827cbe8558a0c1a1a8a6bfa53f1b7704251289cababbfaaf9e075550cdf741a54d6cd9ca3433d910efcd8	gdb-7.12.1.tar.xz
 sha512  5eb328910033f0918058be2f92caebf1e8dfc6caa3c730d99d621627e53de3c1b43761c2f683d53555893253c2f06768cbf56cdea051a3d291ffb6cfae87b5e1	gdb-8.0.1.tar.xz
+sha512  ffd82f415d7652d62dad1716c307836f594217a363429609beb7d70239e8bf06b73b393345b0e000796228e56681ed7656ac3c8be05e91d6d652ab0d5b1dc357	gdb-8.1.tar.xz
 
 # Locally calculated (fetched from Github)
 sha512  e57582766e7d510b26bea63606429e6289414c31c60e28fef24d3d82fa20fb5a1f92b3831fde53e4f7c178c9e099609d3292628cf921a99109e297af4e5f83d9 	gdb-arc-2017.09-release-gdb.tar.gz
diff --git a/package/gdb/gdb.mk b/package/gdb/gdb.mk
index 5ca464ad46..4aa1a42b0a 100644
--- a/package/gdb/gdb.mk
+++ b/package/gdb/gdb.mk
@@ -113,7 +113,8 @@ GDB_CONF_OPTS = \
 	--with-curses \
 	--without-included-gettext \
 	--disable-werror \
-	--enable-static
+	--enable-static \
+	--without-mpfr
 
 # When gdb is built as C++ application for ARC it segfaults at runtime
 # So we pass --disable-build-with-cxx config option to force gdb not to
@@ -200,6 +201,7 @@ HOST_GDB_CONF_OPTS = \
 	--disable-werror \
 	--without-included-gettext \
 	--with-curses \
+	--without-mpfr \
 	$(GDB_DISABLE_BINUTILS_CONF_OPTS)
 
 ifeq ($(BR2_PACKAGE_HOST_GDB_TUI),y)
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 3/5] package/gdb: switch to 8.0 as the default version
  2018-02-05 21:10 [Buildroot] [PATCH v2 0/5] Add gdb 8.1 support, switch to 8.0 as default, drop old versions Thomas Petazzoni
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 1/5] package/gdb: rework dependency for C++11 Thomas Petazzoni
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 2/5] package/gdb: bump to version 8.1 Thomas Petazzoni
@ 2018-02-05 21:10 ` Thomas Petazzoni
  2018-02-07 10:10   ` Yann E. MORIN
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 4/5] package/gdb: remove 7.10 Thomas Petazzoni
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 5/5] package/gdb: remove 7.11 Thomas Petazzoni
  4 siblings, 1 reply; 16+ messages in thread
From: Thomas Petazzoni @ 2018-02-05 21:10 UTC (permalink / raw)
  To: buildroot

From: Romain Naour <romain.naour@gmail.com>

8.1 is around, 8.0 has already seen a point release, so it's time to
make 8.0 the default version for gdb.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/gdb/Config.in.host | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
index ae9a7257dd..8324271283 100644
--- a/package/gdb/Config.in.host
+++ b/package/gdb/Config.in.host
@@ -45,7 +45,7 @@ config BR2_PACKAGE_HOST_GDB_SIM
 
 choice
 	prompt "GDB debugger Version"
-	default BR2_GDB_VERSION_7_11
+	default BR2_GDB_VERSION_8_0
 	depends on !BR2_arc
 	help
 	  Select the version of gdb you wish to use.
@@ -78,8 +78,8 @@ config BR2_GDB_VERSION
 	string
 	default "arc-2017.09-release-gdb" if BR2_arc
 	default "7.10.1"   if BR2_GDB_VERSION_7_10
-	default "7.11.1"   if BR2_GDB_VERSION_7_11 || !BR2_PACKAGE_HOST_GDB
+	default "7.11.1"   if BR2_GDB_VERSION_7_11
 	default "7.12.1"   if BR2_GDB_VERSION_7_12
-	default "8.0.1"    if BR2_GDB_VERSION_8_0
+	default "8.0.1"    if BR2_GDB_VERSION_8_0 || !BR2_PACKAGE_HOST_GDB
 	default "8.1"      if BR2_GDB_VERSION_8_1
 	depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 4/5] package/gdb: remove 7.10
  2018-02-05 21:10 [Buildroot] [PATCH v2 0/5] Add gdb 8.1 support, switch to 8.0 as default, drop old versions Thomas Petazzoni
                   ` (2 preceding siblings ...)
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 3/5] package/gdb: switch to 8.0 as the default version Thomas Petazzoni
@ 2018-02-05 21:10 ` Thomas Petazzoni
  2018-02-07 10:12   ` Yann E. MORIN
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 5/5] package/gdb: remove 7.11 Thomas Petazzoni
  4 siblings, 1 reply; 16+ messages in thread
From: Thomas Petazzoni @ 2018-02-05 21:10 UTC (permalink / raw)
  To: buildroot

From: Romain Naour <romain.naour@gmail.com>

Now that 8.1 has been added and 8.0 is the default version, let's
remove the old 7.10 release.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 Config.in.legacy           | 7 +++++++
 package/gdb/Config.in.host | 4 ----
 package/gdb/gdb.hash       | 1 -
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/Config.in.legacy b/Config.in.legacy
index 60f9148234..9cfe961d11 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -145,6 +145,13 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2018.02"
 
+config BR2_GDB_VERSION_7_10
+	bool "gdb 7.10 has been removed"
+	select BR2_LEGACY
+	help
+	  The 7.10 version of gdb has been removed. Use a newer version
+	  instead.
+
 config BR2_KERNEL_HEADERS_3_4
 	bool "kernel headers version 3.4.x are no longer supported"
 	select BR2_KERNEL_HEADERS_4_1
diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
index 8324271283..8e872dbc6b 100644
--- a/package/gdb/Config.in.host
+++ b/package/gdb/Config.in.host
@@ -50,9 +50,6 @@ choice
 	help
 	  Select the version of gdb you wish to use.
 
-config BR2_GDB_VERSION_7_10
-	bool "gdb 7.10.x"
-
 config BR2_GDB_VERSION_7_11
 	bool "gdb 7.11.x"
 
@@ -77,7 +74,6 @@ endif
 config BR2_GDB_VERSION
 	string
 	default "arc-2017.09-release-gdb" if BR2_arc
-	default "7.10.1"   if BR2_GDB_VERSION_7_10
 	default "7.11.1"   if BR2_GDB_VERSION_7_11
 	default "7.12.1"   if BR2_GDB_VERSION_7_12
 	default "8.0.1"    if BR2_GDB_VERSION_8_0 || !BR2_PACKAGE_HOST_GDB
diff --git a/package/gdb/gdb.hash b/package/gdb/gdb.hash
index 3af72db23d..cb76dca198 100644
--- a/package/gdb/gdb.hash
+++ b/package/gdb/gdb.hash
@@ -1,5 +1,4 @@
 # From ftp://gcc.gnu.org/pub/gdb/releases/sha512.sum
-sha512	17a5138277a31685a5c2a841cb47ed9bc4626ea617b8ca77750513b300299f4fbbffe504958b5372de610dcb952c679cf8fa9c1bdadd380294fbf59b6e366010	gdb-7.10.1.tar.xz
 sha512  f80ec6c8a0f0b54c8b945666e875809174402b7e121efb378ebac931a91f9a1cc0048568f8e2f42ae8ae2392ff8d144c2e51d41c7398935017450aaf29838360	gdb-7.11.1.tar.xz
 sha512  0ac8d0a495103611ef41167a08313a010dce6ca4c6d827cbe8558a0c1a1a8a6bfa53f1b7704251289cababbfaaf9e075550cdf741a54d6cd9ca3433d910efcd8	gdb-7.12.1.tar.xz
 sha512  5eb328910033f0918058be2f92caebf1e8dfc6caa3c730d99d621627e53de3c1b43761c2f683d53555893253c2f06768cbf56cdea051a3d291ffb6cfae87b5e1	gdb-8.0.1.tar.xz
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 5/5] package/gdb: remove 7.11
  2018-02-05 21:10 [Buildroot] [PATCH v2 0/5] Add gdb 8.1 support, switch to 8.0 as default, drop old versions Thomas Petazzoni
                   ` (3 preceding siblings ...)
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 4/5] package/gdb: remove 7.10 Thomas Petazzoni
@ 2018-02-05 21:10 ` Thomas Petazzoni
  2018-02-07 10:13   ` Yann E. MORIN
  4 siblings, 1 reply; 16+ messages in thread
From: Thomas Petazzoni @ 2018-02-05 21:10 UTC (permalink / raw)
  To: buildroot

From: Romain Naour <romain.naour@gmail.com>

Now that 8.1 has been added and 8.0 is the default version, let's
remove the old 7.11 release.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 Config.in.legacy           | 7 +++++++
 package/gdb/Config.in.host | 4 ----
 package/gdb/gdb.hash       | 1 -
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/Config.in.legacy b/Config.in.legacy
index 9cfe961d11..b5f9c2e145 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -145,6 +145,13 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2018.02"
 
+config BR2_GDB_VERSION_7_11
+	bool "gdb 7.11 has been removed"
+	select BR2_LEGACY
+	help
+	  The 7.11 version of gdb has been removed. Use a newer version
+	  instead.
+
 config BR2_GDB_VERSION_7_10
 	bool "gdb 7.10 has been removed"
 	select BR2_LEGACY
diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
index 8e872dbc6b..fe49263b1a 100644
--- a/package/gdb/Config.in.host
+++ b/package/gdb/Config.in.host
@@ -50,9 +50,6 @@ choice
 	help
 	  Select the version of gdb you wish to use.
 
-config BR2_GDB_VERSION_7_11
-	bool "gdb 7.11.x"
-
 config BR2_GDB_VERSION_7_12
 	bool "gdb 7.12.x"
 
@@ -74,7 +71,6 @@ endif
 config BR2_GDB_VERSION
 	string
 	default "arc-2017.09-release-gdb" if BR2_arc
-	default "7.11.1"   if BR2_GDB_VERSION_7_11
 	default "7.12.1"   if BR2_GDB_VERSION_7_12
 	default "8.0.1"    if BR2_GDB_VERSION_8_0 || !BR2_PACKAGE_HOST_GDB
 	default "8.1"      if BR2_GDB_VERSION_8_1
diff --git a/package/gdb/gdb.hash b/package/gdb/gdb.hash
index cb76dca198..5571f98330 100644
--- a/package/gdb/gdb.hash
+++ b/package/gdb/gdb.hash
@@ -1,5 +1,4 @@
 # From ftp://gcc.gnu.org/pub/gdb/releases/sha512.sum
-sha512  f80ec6c8a0f0b54c8b945666e875809174402b7e121efb378ebac931a91f9a1cc0048568f8e2f42ae8ae2392ff8d144c2e51d41c7398935017450aaf29838360	gdb-7.11.1.tar.xz
 sha512  0ac8d0a495103611ef41167a08313a010dce6ca4c6d827cbe8558a0c1a1a8a6bfa53f1b7704251289cababbfaaf9e075550cdf741a54d6cd9ca3433d910efcd8	gdb-7.12.1.tar.xz
 sha512  5eb328910033f0918058be2f92caebf1e8dfc6caa3c730d99d621627e53de3c1b43761c2f683d53555893253c2f06768cbf56cdea051a3d291ffb6cfae87b5e1	gdb-8.0.1.tar.xz
 sha512  ffd82f415d7652d62dad1716c307836f594217a363429609beb7d70239e8bf06b73b393345b0e000796228e56681ed7656ac3c8be05e91d6d652ab0d5b1dc357	gdb-8.1.tar.xz
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 1/5] package/gdb: rework dependency for C++11
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 1/5] package/gdb: rework dependency for C++11 Thomas Petazzoni
@ 2018-02-07  9:58   ` Yann E. MORIN
  2018-02-07 12:36     ` Thomas Petazzoni
  0 siblings, 1 reply; 16+ messages in thread
From: Yann E. MORIN @ 2018-02-07  9:58 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2018-02-05 22:10 +0100, Thomas Petazzoni spake thusly:
> As we are about to switch to 8.0 as the default gdb dependency, we
> need to adjust how the gdb dependencies are handled. Indeed, from 8.0
> onwards, gdb needs a C++11 capable compiler, i.e at least gcc 4.8.
> 
> Until now, Config.in.host was making sure that gdb 8.0 was not
> selectable if the cross-compilation toolchain did not have C++ support
> with gcc >= 4.8. This worked fine because the default version of gdb,
> used as the target gdb version when no host gdb is built, was 7.11,
> and did not require C++11.
> 
> With the switch to 8.0 as the default version, when target gdb is
> enabled but not host gdb, 8.0 is used, which means we need a C++11
> capable compiler. The dependencies in Config.in.host are no longer
> sufficient.
> 
> So instead, we remove the target-related dependencies from
> Config.in.host and move them properly to Config.in. The overall logic
> is the following:
> 
>  - In Config.in.host, BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS ensures that
>    we have at least host gcc 4.8 if we're on ARC, because the ARC gdb
>    needs C++11. We remove the target toolchain related dependencies
>    from here.
> 
>  - In Config.in.host, the version selection ensures that 8.0 cannot be
>    selected if the host toolchain does not have at least gcc 4.8. We
>    remove the target toolchain related dependencies from here.
> 
>  - In Config.in, we handle gdb more like a regular target package,
>    with a Config.in comment when its dependencies are not met. A
>    hidden boolean BR2_PACKAGE_GDB_NEEDS_CXX11 indicates when the
>    currently selected version requires C++11. Based on that, we show
>    the Config.in comment, and add the proper dependencies to
>    BR2_PACKAGE_GDB. It is worth mentioning that
>    BR2_PACKAGE_GDB_NEEDS_CXX11 is intentionally created to be !7.10 &&
>    !7.11 && !7.12 instead of 8.0, because we will gradually add more
>    C++11-requiring versions, and remove non-C++11-requiring versions.

Nice refactoring. :-)

Yet, a comment below...

> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/gdb/Config.in      | 15 +++++++++++++++
>  package/gdb/Config.in.host |  3 ---
>  2 files changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/package/gdb/Config.in b/package/gdb/Config.in
> index af020f40c5..b7f0565b92 100644
> --- a/package/gdb/Config.in
> +++ b/package/gdb/Config.in
> @@ -11,15 +11,30 @@ comment "gdb/gdbserver needs a toolchain w/ threads, threads debug"
>  	depends on BR2_PACKAGE_GDB_ARCH_SUPPORTS
>  	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_THREADS_DEBUG
>  
> +config BR2_PACKAGE_GDB_NEEDS_CXX11
> +	bool
> +	default y
> +	depends on !BR2_GDB_VERSION_7_10
> +	depends on !BR2_GDB_VERSION_7_11
> +	depends on !BR2_GDB_VERSION_7_12

I would have expected that the various versions would select this,
i.e. something like:

    config BR2_PACKAGE_GDB_NEEDS_CXX11
        bool


    config BR2_GDB_VERSION_7_10
        bool "7.10"

    config BR2_GDB_VERSION_8_0
        bool "8.0"
        select BR2_PACKAGE_GDB_NEEDS_CXX11

Otherwise, I'm OK with the patch.

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> +comment "gdb/gdbserver >= 8.x needs a toolchain w/ C++, gcc >= 4.8"
> +	depends on BR2_PACKAGE_GDB_NEEDS_CXX11
> +	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
> +
>  config BR2_PACKAGE_GDB
>  	bool "gdb"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS && BR2_TOOLCHAIN_HAS_THREADS_DEBUG
>  	depends on BR2_PACKAGE_GDB_ARCH_SUPPORTS
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_PACKAGE_GDB_NEEDS_CXX11
> +	depends on BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_GDB_NEEDS_CXX11
>  	# When the external toolchain gdbserver is copied to the
>  	# target, we don't allow building a separate gdbserver. The
>  	# one from the external toolchain should be used.
>  	select BR2_PACKAGE_GDB_SERVER if \
>  		(!BR2_PACKAGE_GDB_DEBUGGER && !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY)
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_PACKAGE_GDB_NEEDS_CXX11
> +	depends on BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_GDB_NEEDS_CXX11
>  	help
>  	  GDB, the GNU Project debugger, allows you to see what is
>  	  going on `inside' another program while it executes -- or
> diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
> index 99e1cae5ba..8676c6f01b 100644
> --- a/package/gdb/Config.in.host
> +++ b/package/gdb/Config.in.host
> @@ -3,7 +3,6 @@ config BR2_PACKAGE_HOST_GDB_ARCH_SUPPORTS
>  	default y
>  	# The ARC version needs C++11, thus gcc >= 4.8, like gdb-8.0.x
>  	depends on BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_arc
> -	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_arc
>  	depends on !((BR2_arm || BR2_armeb) && BR2_BINFMT_FLAT)
>  	depends on !BR2_microblaze
>  	depends on !BR2_nios2
> @@ -63,9 +62,7 @@ config BR2_GDB_VERSION_7_12
>  config BR2_GDB_VERSION_8_0
>  	bool "gdb 8.0.x"
>  	# Needs a C++11 compiler
> -	depends on BR2_INSTALL_LIBSTDCPP
>  	depends on BR2_HOST_GCC_AT_LEAST_4_8
> -	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
>  
>  endchoice
>  
> -- 
> 2.14.3
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 2/5] package/gdb: bump to version 8.1
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 2/5] package/gdb: bump to version 8.1 Thomas Petazzoni
@ 2018-02-07 10:02   ` Yann E. MORIN
  2018-02-07 12:36     ` Thomas Petazzoni
  0 siblings, 1 reply; 16+ messages in thread
From: Yann E. MORIN @ 2018-02-07 10:02 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2018-02-05 22:10 +0100, Thomas Petazzoni spake thusly:
> From: Romain Naour <romain.naour@gmail.com>
> 
> https://sourceware.org/ml/gdb-announce/2018/msg00001.html
> 
> gdb 8.1 has a new optional dependency on mpfr, which according to the
> NEWS file:
> 
>    GDB now uses the GNU MPFR library, if available, to emulate target
>    floating-point arithmetic during expression evaluation when the
>    target uses different floating-point formats than the host.  At
>    least version 3.1 of GNU MPFR is required.
> 
> So for the target gdb, this is unnecessary, and therefore we
> forcefully disable mpfr support by passing --without-mpfr.
> 
> For the host gdb, it would potentially be useful, but since it's a new
> feature that isn't essential, we for now keep it disabled as well. An
> option may be added later if needed.

Agreed.

> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> [Thomas: change mpfr handling.]
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  package/gdb/Config.in.host | 6 ++++++
>  package/gdb/gdb.hash       | 1 +
>  package/gdb/gdb.mk         | 4 +++-
>  3 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
> index 8676c6f01b..ae9a7257dd 100644
> --- a/package/gdb/Config.in.host
> +++ b/package/gdb/Config.in.host
> @@ -64,6 +64,11 @@ config BR2_GDB_VERSION_8_0
>  	# Needs a C++11 compiler
>  	depends on BR2_HOST_GCC_AT_LEAST_4_8
>  
> +config BR2_GDB_VERSION_8_1
> +	bool "gdb 8.1.x"
> +	# Needs a C++11 compiler
> +	depends on BR2_HOST_GCC_AT_LEAST_4_8

And there you would have added:

    select BR2_PACKAGE_GDB_NEEDS_CXX11

Otherwise;

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> +
>  endchoice
>  
>  endif
> @@ -76,4 +81,5 @@ config BR2_GDB_VERSION
>  	default "7.11.1"   if BR2_GDB_VERSION_7_11 || !BR2_PACKAGE_HOST_GDB
>  	default "7.12.1"   if BR2_GDB_VERSION_7_12
>  	default "8.0.1"    if BR2_GDB_VERSION_8_0
> +	default "8.1"      if BR2_GDB_VERSION_8_1
>  	depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
> diff --git a/package/gdb/gdb.hash b/package/gdb/gdb.hash
> index 62edd93792..3af72db23d 100644
> --- a/package/gdb/gdb.hash
> +++ b/package/gdb/gdb.hash
> @@ -3,6 +3,7 @@ sha512	17a5138277a31685a5c2a841cb47ed9bc4626ea617b8ca77750513b300299f4fbbffe5049
>  sha512  f80ec6c8a0f0b54c8b945666e875809174402b7e121efb378ebac931a91f9a1cc0048568f8e2f42ae8ae2392ff8d144c2e51d41c7398935017450aaf29838360	gdb-7.11.1.tar.xz
>  sha512  0ac8d0a495103611ef41167a08313a010dce6ca4c6d827cbe8558a0c1a1a8a6bfa53f1b7704251289cababbfaaf9e075550cdf741a54d6cd9ca3433d910efcd8	gdb-7.12.1.tar.xz
>  sha512  5eb328910033f0918058be2f92caebf1e8dfc6caa3c730d99d621627e53de3c1b43761c2f683d53555893253c2f06768cbf56cdea051a3d291ffb6cfae87b5e1	gdb-8.0.1.tar.xz
> +sha512  ffd82f415d7652d62dad1716c307836f594217a363429609beb7d70239e8bf06b73b393345b0e000796228e56681ed7656ac3c8be05e91d6d652ab0d5b1dc357	gdb-8.1.tar.xz
>  
>  # Locally calculated (fetched from Github)
>  sha512  e57582766e7d510b26bea63606429e6289414c31c60e28fef24d3d82fa20fb5a1f92b3831fde53e4f7c178c9e099609d3292628cf921a99109e297af4e5f83d9 	gdb-arc-2017.09-release-gdb.tar.gz
> diff --git a/package/gdb/gdb.mk b/package/gdb/gdb.mk
> index 5ca464ad46..4aa1a42b0a 100644
> --- a/package/gdb/gdb.mk
> +++ b/package/gdb/gdb.mk
> @@ -113,7 +113,8 @@ GDB_CONF_OPTS = \
>  	--with-curses \
>  	--without-included-gettext \
>  	--disable-werror \
> -	--enable-static
> +	--enable-static \
> +	--without-mpfr
>  
>  # When gdb is built as C++ application for ARC it segfaults at runtime
>  # So we pass --disable-build-with-cxx config option to force gdb not to
> @@ -200,6 +201,7 @@ HOST_GDB_CONF_OPTS = \
>  	--disable-werror \
>  	--without-included-gettext \
>  	--with-curses \
> +	--without-mpfr \
>  	$(GDB_DISABLE_BINUTILS_CONF_OPTS)
>  
>  ifeq ($(BR2_PACKAGE_HOST_GDB_TUI),y)
> -- 
> 2.14.3
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 3/5] package/gdb: switch to 8.0 as the default version
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 3/5] package/gdb: switch to 8.0 as the default version Thomas Petazzoni
@ 2018-02-07 10:10   ` Yann E. MORIN
  0 siblings, 0 replies; 16+ messages in thread
From: Yann E. MORIN @ 2018-02-07 10:10 UTC (permalink / raw)
  To: buildroot

Thomas, Romain, All,

On 2018-02-05 22:10 +0100, Thomas Petazzoni spake thusly:
> From: Romain Naour <romain.naour@gmail.com>
> 
> 8.1 is around, 8.0 has already seen a point release, so it's time to
> make 8.0 the default version for gdb.
> 
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> ---
>  package/gdb/Config.in.host | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
> index ae9a7257dd..8324271283 100644
> --- a/package/gdb/Config.in.host
> +++ b/package/gdb/Config.in.host
> @@ -45,7 +45,7 @@ config BR2_PACKAGE_HOST_GDB_SIM
>  
>  choice
>  	prompt "GDB debugger Version"
> -	default BR2_GDB_VERSION_7_11
> +	default BR2_GDB_VERSION_8_0
>  	depends on !BR2_arc
>  	help
>  	  Select the version of gdb you wish to use.
> @@ -78,8 +78,8 @@ config BR2_GDB_VERSION
>  	string
>  	default "arc-2017.09-release-gdb" if BR2_arc
>  	default "7.10.1"   if BR2_GDB_VERSION_7_10
> -	default "7.11.1"   if BR2_GDB_VERSION_7_11 || !BR2_PACKAGE_HOST_GDB
> +	default "7.11.1"   if BR2_GDB_VERSION_7_11
>  	default "7.12.1"   if BR2_GDB_VERSION_7_12
> -	default "8.0.1"    if BR2_GDB_VERSION_8_0
> +	default "8.0.1"    if BR2_GDB_VERSION_8_0 || !BR2_PACKAGE_HOST_GDB
>  	default "8.1"      if BR2_GDB_VERSION_8_1
>  	depends on BR2_PACKAGE_GDB || BR2_PACKAGE_HOST_GDB
> -- 
> 2.14.3
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 4/5] package/gdb: remove 7.10
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 4/5] package/gdb: remove 7.10 Thomas Petazzoni
@ 2018-02-07 10:12   ` Yann E. MORIN
  0 siblings, 0 replies; 16+ messages in thread
From: Yann E. MORIN @ 2018-02-07 10:12 UTC (permalink / raw)
  To: buildroot

Thomas, Romain, all,

On 2018-02-05 22:10 +0100, Thomas Petazzoni spake thusly:
> From: Romain Naour <romain.naour@gmail.com>
> 
> Now that 8.1 has been added and 8.0 is the default version, let's
> remove the old 7.10 release.
> 
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  Config.in.legacy           | 7 +++++++
>  package/gdb/Config.in.host | 4 ----
>  package/gdb/gdb.hash       | 1 -
>  3 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/Config.in.legacy b/Config.in.legacy
> index 60f9148234..9cfe961d11 100644
> --- a/Config.in.legacy
> +++ b/Config.in.legacy
> @@ -145,6 +145,13 @@ endif
>  ###############################################################################
>  comment "Legacy options removed in 2018.02"
>  
> +config BR2_GDB_VERSION_7_10
> +	bool "gdb 7.10 has been removed"
> +	select BR2_LEGACY
> +	help
> +	  The 7.10 version of gdb has been removed. Use a newer version
> +	  instead.
> +
>  config BR2_KERNEL_HEADERS_3_4
>  	bool "kernel headers version 3.4.x are no longer supported"
>  	select BR2_KERNEL_HEADERS_4_1
> diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
> index 8324271283..8e872dbc6b 100644
> --- a/package/gdb/Config.in.host
> +++ b/package/gdb/Config.in.host
> @@ -50,9 +50,6 @@ choice
>  	help
>  	  Select the version of gdb you wish to use.
>  
> -config BR2_GDB_VERSION_7_10
> -	bool "gdb 7.10.x"

You forgot to remove it from the BR2_PACKAGE_GDB_NEEDS_CXX11 symbol,
which would not have hapenned if you did as I suggest in reply to patch
1/5 of the series. ;-)

Regards,
Yann E. MORIN.

>  config BR2_GDB_VERSION_7_11
>  	bool "gdb 7.11.x"
>  
> @@ -77,7 +74,6 @@ endif
>  config BR2_GDB_VERSION
>  	string
>  	default "arc-2017.09-release-gdb" if BR2_arc
> -	default "7.10.1"   if BR2_GDB_VERSION_7_10
>  	default "7.11.1"   if BR2_GDB_VERSION_7_11
>  	default "7.12.1"   if BR2_GDB_VERSION_7_12
>  	default "8.0.1"    if BR2_GDB_VERSION_8_0 || !BR2_PACKAGE_HOST_GDB
> diff --git a/package/gdb/gdb.hash b/package/gdb/gdb.hash
> index 3af72db23d..cb76dca198 100644
> --- a/package/gdb/gdb.hash
> +++ b/package/gdb/gdb.hash
> @@ -1,5 +1,4 @@
>  # From ftp://gcc.gnu.org/pub/gdb/releases/sha512.sum
> -sha512	17a5138277a31685a5c2a841cb47ed9bc4626ea617b8ca77750513b300299f4fbbffe504958b5372de610dcb952c679cf8fa9c1bdadd380294fbf59b6e366010	gdb-7.10.1.tar.xz
>  sha512  f80ec6c8a0f0b54c8b945666e875809174402b7e121efb378ebac931a91f9a1cc0048568f8e2f42ae8ae2392ff8d144c2e51d41c7398935017450aaf29838360	gdb-7.11.1.tar.xz
>  sha512  0ac8d0a495103611ef41167a08313a010dce6ca4c6d827cbe8558a0c1a1a8a6bfa53f1b7704251289cababbfaaf9e075550cdf741a54d6cd9ca3433d910efcd8	gdb-7.12.1.tar.xz
>  sha512  5eb328910033f0918058be2f92caebf1e8dfc6caa3c730d99d621627e53de3c1b43761c2f683d53555893253c2f06768cbf56cdea051a3d291ffb6cfae87b5e1	gdb-8.0.1.tar.xz
> -- 
> 2.14.3
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 5/5] package/gdb: remove 7.11
  2018-02-05 21:10 ` [Buildroot] [PATCH v2 5/5] package/gdb: remove 7.11 Thomas Petazzoni
@ 2018-02-07 10:13   ` Yann E. MORIN
  0 siblings, 0 replies; 16+ messages in thread
From: Yann E. MORIN @ 2018-02-07 10:13 UTC (permalink / raw)
  To: buildroot

Thomas, Romain, All,

On 2018-02-05 22:10 +0100, Thomas Petazzoni spake thusly:
> From: Romain Naour <romain.naour@gmail.com>
> 
> Now that 8.1 has been added and 8.0 is the default version, let's
> remove the old 7.11 release.
> 
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
>  Config.in.legacy           | 7 +++++++
>  package/gdb/Config.in.host | 4 ----
>  package/gdb/gdb.hash       | 1 -
>  3 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/Config.in.legacy b/Config.in.legacy
> index 9cfe961d11..b5f9c2e145 100644
> --- a/Config.in.legacy
> +++ b/Config.in.legacy
> @@ -145,6 +145,13 @@ endif
>  ###############################################################################
>  comment "Legacy options removed in 2018.02"
>  
> +config BR2_GDB_VERSION_7_11
> +	bool "gdb 7.11 has been removed"
> +	select BR2_LEGACY
> +	help
> +	  The 7.11 version of gdb has been removed. Use a newer version
> +	  instead.
> +
>  config BR2_GDB_VERSION_7_10
>  	bool "gdb 7.10 has been removed"
>  	select BR2_LEGACY
> diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
> index 8e872dbc6b..fe49263b1a 100644
> --- a/package/gdb/Config.in.host
> +++ b/package/gdb/Config.in.host
> @@ -50,9 +50,6 @@ choice
>  	help
>  	  Select the version of gdb you wish to use.
>  
> -config BR2_GDB_VERSION_7_11
> -	bool "gdb 7.11.x"

Ditto, you forgot to remove it from BR2_PACKAGE_GDB_NEEDS_CXX11.

Regards,
Yann E. MORIN.

>  config BR2_GDB_VERSION_7_12
>  	bool "gdb 7.12.x"
>  
> @@ -74,7 +71,6 @@ endif
>  config BR2_GDB_VERSION
>  	string
>  	default "arc-2017.09-release-gdb" if BR2_arc
> -	default "7.11.1"   if BR2_GDB_VERSION_7_11
>  	default "7.12.1"   if BR2_GDB_VERSION_7_12
>  	default "8.0.1"    if BR2_GDB_VERSION_8_0 || !BR2_PACKAGE_HOST_GDB
>  	default "8.1"      if BR2_GDB_VERSION_8_1
> diff --git a/package/gdb/gdb.hash b/package/gdb/gdb.hash
> index cb76dca198..5571f98330 100644
> --- a/package/gdb/gdb.hash
> +++ b/package/gdb/gdb.hash
> @@ -1,5 +1,4 @@
>  # From ftp://gcc.gnu.org/pub/gdb/releases/sha512.sum
> -sha512  f80ec6c8a0f0b54c8b945666e875809174402b7e121efb378ebac931a91f9a1cc0048568f8e2f42ae8ae2392ff8d144c2e51d41c7398935017450aaf29838360	gdb-7.11.1.tar.xz
>  sha512  0ac8d0a495103611ef41167a08313a010dce6ca4c6d827cbe8558a0c1a1a8a6bfa53f1b7704251289cababbfaaf9e075550cdf741a54d6cd9ca3433d910efcd8	gdb-7.12.1.tar.xz
>  sha512  5eb328910033f0918058be2f92caebf1e8dfc6caa3c730d99d621627e53de3c1b43761c2f683d53555893253c2f06768cbf56cdea051a3d291ffb6cfae87b5e1	gdb-8.0.1.tar.xz
>  sha512  ffd82f415d7652d62dad1716c307836f594217a363429609beb7d70239e8bf06b73b393345b0e000796228e56681ed7656ac3c8be05e91d6d652ab0d5b1dc357	gdb-8.1.tar.xz
> -- 
> 2.14.3
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 1/5] package/gdb: rework dependency for C++11
  2018-02-07  9:58   ` Yann E. MORIN
@ 2018-02-07 12:36     ` Thomas Petazzoni
  2018-02-07 17:34       ` Yann E. MORIN
  0 siblings, 1 reply; 16+ messages in thread
From: Thomas Petazzoni @ 2018-02-07 12:36 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 7 Feb 2018 10:58:28 +0100, Yann E. MORIN wrote:

> >  - In Config.in, we handle gdb more like a regular target package,
> >    with a Config.in comment when its dependencies are not met. A
> >    hidden boolean BR2_PACKAGE_GDB_NEEDS_CXX11 indicates when the
> >    currently selected version requires C++11. Based on that, we show
> >    the Config.in comment, and add the proper dependencies to
> >    BR2_PACKAGE_GDB. It is worth mentioning that
> >    BR2_PACKAGE_GDB_NEEDS_CXX11 is intentionally created to be !7.10 &&
> >    !7.11 && !7.12 instead of 8.0, because we will gradually add more
> >    C++11-requiring versions, and remove non-C++11-requiring versions.  
> 
> Nice refactoring. :-)

Thanks!


> > +config BR2_PACKAGE_GDB_NEEDS_CXX11
> > +	bool
> > +	default y
> > +	depends on !BR2_GDB_VERSION_7_10
> > +	depends on !BR2_GDB_VERSION_7_11
> > +	depends on !BR2_GDB_VERSION_7_12  
> 
> I would have expected that the various versions would select this,
> i.e. something like:
> 
>     config BR2_PACKAGE_GDB_NEEDS_CXX11
>         bool
> 
> 
>     config BR2_GDB_VERSION_7_10
>         bool "7.10"
> 
>     config BR2_GDB_VERSION_8_0
>         bool "8.0"
>         select BR2_PACKAGE_GDB_NEEDS_CXX11

But this doesn't work; The BR2_GDB_VERSION_8_0 symbol is only enabled
if we build a host variant of gdb. If we build just the target
variant, then no version is selected at all, and therefore this symbol
would not be selected.

So in fact, even my code is slightly wrong: it becomes correct once the
default version of gdb is 8.0, but it is wrong when the default version
is still 7.12 (which is the case at the time my patch is introduced).

Indeed, when my patch is introduced, 7.12 is the default gdb version,
used if you build only the target gdb. When you build just the target
gdb version, BR2_GDB_VERSION_7_12 is not enabled, and therefore
BR2_PACKAGE_GDB_NEEDS_CXX11=y even if it's not true.

So I should adjust that. I could use the BR2_GDB_VERSION string
option, which exists regardless of whether host gdb is enabled or not.
Or I could rely on BR2_PACKAGE_HOST_GDB somehow.

Meh. This is crappy :)

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 2/5] package/gdb: bump to version 8.1
  2018-02-07 10:02   ` Yann E. MORIN
@ 2018-02-07 12:36     ` Thomas Petazzoni
  0 siblings, 0 replies; 16+ messages in thread
From: Thomas Petazzoni @ 2018-02-07 12:36 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 7 Feb 2018 11:02:13 +0100, Yann E. MORIN wrote:

> > +config BR2_GDB_VERSION_8_1
> > +	bool "gdb 8.1.x"
> > +	# Needs a C++11 compiler
> > +	depends on BR2_HOST_GCC_AT_LEAST_4_8  
> 
> And there you would have added:
> 
>     select BR2_PACKAGE_GDB_NEEDS_CXX11

No: see my reply to PATCH 1/5 to explain why this doesn't work :)

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 1/5] package/gdb: rework dependency for C++11
  2018-02-07 12:36     ` Thomas Petazzoni
@ 2018-02-07 17:34       ` Yann E. MORIN
  2018-02-08  0:22         ` Arnout Vandecappelle
  0 siblings, 1 reply; 16+ messages in thread
From: Yann E. MORIN @ 2018-02-07 17:34 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2018-02-07 13:36 +0100, Thomas Petazzoni spake thusly:
> On Wed, 7 Feb 2018 10:58:28 +0100, Yann E. MORIN wrote:
[--SNIP--]
> > > +config BR2_PACKAGE_GDB_NEEDS_CXX11
> > > +	bool
> > > +	default y
> > > +	depends on !BR2_GDB_VERSION_7_10
> > > +	depends on !BR2_GDB_VERSION_7_11
> > > +	depends on !BR2_GDB_VERSION_7_12  
> > I would have expected that the various versions would select this,
> > i.e. something like:
> > 
> >     config BR2_PACKAGE_GDB_NEEDS_CXX11
> >         bool
> > 
> > 
> >     config BR2_GDB_VERSION_7_10
> >         bool "7.10"
> > 
> >     config BR2_GDB_VERSION_8_0
> >         bool "8.0"
> >         select BR2_PACKAGE_GDB_NEEDS_CXX11
> 
> But this doesn't work; The BR2_GDB_VERSION_8_0 symbol is only enabled
> if we build a host variant of gdb. If we build just the target
> variant, then no version is selected at all, and therefore this symbol
> would not be selected.

Gah, I missed that...

> So in fact, even my code is slightly wrong: it becomes correct once the
> default version of gdb is 8.0, but it is wrong when the default version
> is still 7.12 (which is the case at the time my patch is introduced).
> 
> Indeed, when my patch is introduced, 7.12 is the default gdb version,
> used if you build only the target gdb. When you build just the target
> gdb version, BR2_GDB_VERSION_7_12 is not enabled, and therefore
> BR2_PACKAGE_GDB_NEEDS_CXX11=y even if it's not true.
> 
> So I should adjust that. I could use the BR2_GDB_VERSION string
> option, which exists regardless of whether host gdb is enabled or not.
> Or I could rely on BR2_PACKAGE_HOST_GDB somehow.
> 
> Meh. This is crappy :)

OK, I think I have an idea about all this mess... But since I can have
pretty weird ideas, I make no promise that it will materialise into
something usefull...

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 1/5] package/gdb: rework dependency for C++11
  2018-02-07 17:34       ` Yann E. MORIN
@ 2018-02-08  0:22         ` Arnout Vandecappelle
  2018-02-08  8:05           ` Thomas Petazzoni
  0 siblings, 1 reply; 16+ messages in thread
From: Arnout Vandecappelle @ 2018-02-08  0:22 UTC (permalink / raw)
  To: buildroot



On 07-02-18 18:34, Yann E. MORIN wrote:
> Thomas, All,
> 
> On 2018-02-07 13:36 +0100, Thomas Petazzoni spake thusly:
>> On Wed, 7 Feb 2018 10:58:28 +0100, Yann E. MORIN wrote:
> [--SNIP--]
>>>> +config BR2_PACKAGE_GDB_NEEDS_CXX11
>>>> +	bool
>>>> +	default y
>>>> +	depends on !BR2_GDB_VERSION_7_10
>>>> +	depends on !BR2_GDB_VERSION_7_11
>>>> +	depends on !BR2_GDB_VERSION_7_12  
>>> I would have expected that the various versions would select this,
>>> i.e. something like:
>>>
>>>     config BR2_PACKAGE_GDB_NEEDS_CXX11
>>>         bool
>>>
>>>
>>>     config BR2_GDB_VERSION_7_10
>>>         bool "7.10"
>>>
>>>     config BR2_GDB_VERSION_8_0
>>>         bool "8.0"
>>>         select BR2_PACKAGE_GDB_NEEDS_CXX11
>>
>> But this doesn't work; The BR2_GDB_VERSION_8_0 symbol is only enabled
>> if we build a host variant of gdb. If we build just the target
>> variant, then no version is selected at all, and therefore this symbol
>> would not be selected.
> 
> Gah, I missed that...
> 
>> So in fact, even my code is slightly wrong: it becomes correct once the
>> default version of gdb is 8.0, but it is wrong when the default version
>> is still 7.12 (which is the case at the time my patch is introduced).
>>
>> Indeed, when my patch is introduced, 7.12 is the default gdb version,
>> used if you build only the target gdb. When you build just the target
>> gdb version, BR2_GDB_VERSION_7_12 is not enabled, and therefore
>> BR2_PACKAGE_GDB_NEEDS_CXX11=y even if it's not true.
>>
>> So I should adjust that. I could use the BR2_GDB_VERSION string
>> option, which exists regardless of whether host gdb is enabled or not.
>> Or I could rely on BR2_PACKAGE_HOST_GDB somehow.
>>
>> Meh. This is crappy :)
> 
> OK, I think I have an idea about all this mess... But since I can have
> pretty weird ideas, I make no promise that it will materialise into
> something usefull...

 Given this mess, let's ask the question: why do we need version selection to
begin with? For GCC I can still see it (it breaks things), for binutils maybe,
but gdb? Has been pretty stable lately, no?

 That said, the C++11 support is obviously problematic. Since we anyway have the
versioned gdb infrastructure in place now, I would remove the user-visible
choice, but make an automatic choice based on the availability of C++11.

 It still is a little tricky to express, since we want to use 7.12 when
(BR2_PACKAGE_GDB && !(BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 && BR2_INSTALL_LIBSTDCPP)
|| (BR2_PACKAGE_HOST_GDB && !BR2_HOST_GCC_AT_LEAST_4_8). Or we would have to
allow varying the gdb version on host and target (which by the way *should* be
OK, but may not be...).

 So I messed around with gdb a bit, I noticed a couple of things.

- gdbserver really needs C++11; some of the shared files in the common directory
are C++ files.

- host-gdb does not build gdbserver. So all the dependencies we have in host-gdb
on the target's toolchain are phony. Or perhaps they are there just in case
target gdb is selected as well, but then it's not expressed very well...

- With the above in mind, the depends on !BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
in host-gdb is definitely phony. Perhaps it should be in target gdb?


 Bottom line, I think could be simplified a lot here by removing the version choice.

 Regards,
 Arnout

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Buildroot] [PATCH v2 1/5] package/gdb: rework dependency for C++11
  2018-02-08  0:22         ` Arnout Vandecappelle
@ 2018-02-08  8:05           ` Thomas Petazzoni
  0 siblings, 0 replies; 16+ messages in thread
From: Thomas Petazzoni @ 2018-02-08  8:05 UTC (permalink / raw)
  To: buildroot

Hello,

On Thu, 8 Feb 2018 01:22:20 +0100, Arnout Vandecappelle wrote:

>  So I messed around with gdb a bit, I noticed a couple of things.
> 
> - gdbserver really needs C++11; some of the shared files in the common directory
> are C++ files.

Correct.

> - host-gdb does not build gdbserver. So all the dependencies we have in host-gdb
> on the target's toolchain are phony. Or perhaps they are there just in case
> target gdb is selected as well, but then it's not expressed very well...

Those target toolchain dependencies in the host-gdb package where here
to avoid selecting a wrong version of host-gdb (which affects the
target gdb version) when the target toolchain does not have the
required feature. For example, we would allow to select 8.0 only if the
host toolchain *and* the target toolchain had C++11 support.

My PATCH 1/5 in this series is precisely here to rework that.

>  Bottom line, I think could be simplified a lot here by removing the version choice.

Everything can be simplified with less options, it's pretty obvious.
The question is whether having those options is useful :-)

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2018-02-08  8:05 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-05 21:10 [Buildroot] [PATCH v2 0/5] Add gdb 8.1 support, switch to 8.0 as default, drop old versions Thomas Petazzoni
2018-02-05 21:10 ` [Buildroot] [PATCH v2 1/5] package/gdb: rework dependency for C++11 Thomas Petazzoni
2018-02-07  9:58   ` Yann E. MORIN
2018-02-07 12:36     ` Thomas Petazzoni
2018-02-07 17:34       ` Yann E. MORIN
2018-02-08  0:22         ` Arnout Vandecappelle
2018-02-08  8:05           ` Thomas Petazzoni
2018-02-05 21:10 ` [Buildroot] [PATCH v2 2/5] package/gdb: bump to version 8.1 Thomas Petazzoni
2018-02-07 10:02   ` Yann E. MORIN
2018-02-07 12:36     ` Thomas Petazzoni
2018-02-05 21:10 ` [Buildroot] [PATCH v2 3/5] package/gdb: switch to 8.0 as the default version Thomas Petazzoni
2018-02-07 10:10   ` Yann E. MORIN
2018-02-05 21:10 ` [Buildroot] [PATCH v2 4/5] package/gdb: remove 7.10 Thomas Petazzoni
2018-02-07 10:12   ` Yann E. MORIN
2018-02-05 21:10 ` [Buildroot] [PATCH v2 5/5] package/gdb: remove 7.11 Thomas Petazzoni
2018-02-07 10:13   ` Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox