diff mbox

[v4] gdb: enable simulator support for host build

Message ID 20160531210136.GA17122@waldemar-brodkorb.de
State Accepted
Headers show

Commit Message

Waldemar Brodkorb May 31, 2016, 9:01 p.m. UTC
Add an option to enable GDB simulator support, so
it can be used to test some no-MMU systems.

Newer GDB Blackfin Simulator need a workaround for in-tree compile.
It doesn't break for older Buildroot supported GDB Blackfin
Simulator.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
v3 -> v4:
  - the workaround is Blackfin specific and is not fixed
    upstream. Problem with ARM reported by Thomas Petazzoni
v2 -> v3:
  - add workaround for GDB bug when in-tree compile is used,
    problem reported by Thomas Petazzoni
  - tested with GDB 7.9, 7.10.1, 7.11
v1 -> v2:
  - no changes
---
 package/gdb/Config.in.host |  5 +++++
 package/gdb/gdb.mk         | 17 +++++++++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)

Comments

Thomas Petazzoni May 31, 2016, 9:24 p.m. UTC | #1
Hello,

On Tue, 31 May 2016 23:01:36 +0200, Waldemar Brodkorb wrote:
> Add an option to enable GDB simulator support, so
> it can be used to test some no-MMU systems.
> 
> Newer GDB Blackfin Simulator need a workaround for in-tree compile.
> It doesn't break for older Buildroot supported GDB Blackfin
> Simulator.
> 
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> ---
> v3 -> v4:
>   - the workaround is Blackfin specific and is not fixed
>     upstream. Problem with ARM reported by Thomas Petazzoni
> v2 -> v3:
>   - add workaround for GDB bug when in-tree compile is used,
>     problem reported by Thomas Petazzoni
>   - tested with GDB 7.9, 7.10.1, 7.11
> v1 -> v2:
>   - no changes
> ---
>  package/gdb/Config.in.host |  5 +++++
>  package/gdb/gdb.mk         | 17 +++++++++++++++--
>  2 files changed, 20 insertions(+), 2 deletions(-)

This one builds, tested for both ARM and Blackfin, so: applied to next.
Thanks!

Thomas
diff mbox

Patch

diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
index 257d68a..dc149b6 100644
--- a/package/gdb/Config.in.host
+++ b/package/gdb/Config.in.host
@@ -23,6 +23,11 @@  config BR2_PACKAGE_HOST_GDB_PYTHON
 	help
 	  This option enables the Python support in the cross gdb.
 
+config BR2_PACKAGE_HOST_GDB_SIM
+	bool "Simulator support"
+	help
+	  This option enables the simulator support in the cross gdb.
+
 choice
 	prompt "GDB debugger Version"
 	depends on !BR2_arc
diff --git a/package/gdb/gdb.mk b/package/gdb/gdb.mk
index 0a7af1e..84f2029 100644
--- a/package/gdb/gdb.mk
+++ b/package/gdb/gdb.mk
@@ -163,8 +163,7 @@  HOST_GDB_CONF_OPTS = \
 	--enable-threads \
 	--disable-werror \
 	--without-included-gettext \
-	$(GDB_DISABLE_BINUTILS_CONF_OPTS) \
-	--disable-sim
+	$(GDB_DISABLE_BINUTILS_CONF_OPTS)
 
 ifeq ($(BR2_PACKAGE_HOST_GDB_TUI),y)
 HOST_GDB_CONF_OPTS += --enable-tui
@@ -179,6 +178,20 @@  else
 HOST_GDB_CONF_OPTS += --without-python
 endif
 
+# workaround a bug if in-tree build is used for bfin sim
+define HOST_GDB_BFIN_SIM_WORKAROUND
+	$(RM) $(@D)/sim/common/tconfig.h
+endef
+
+ifeq ($(BR2_PACKAGE_HOST_GDB_SIM),y)
+HOST_GDB_CONF_OPTS += --enable-sim
+ifeq ($(BR2_bfin),y)
+HOST_GDB_PRE_CONFIGURE_HOOKS += HOST_GDB_BFIN_SIM_WORKAROUND
+endif
+else
+HOST_GDB_CONF_OPTS += --disable-sim
+endif
+
 # legacy $arch-linux-gdb symlink
 define HOST_GDB_ADD_SYMLINK
 	cd $(HOST_DIR)/usr/bin && \