[v2] gdb: fix header ordering for TRAP_HWBKPT

Message ID 1520351181-18084-1-git-send-email-daniel.diaz@linaro.org
State New
Headers show
Series
  • [v2] gdb: fix header ordering for TRAP_HWBKPT
Related show

Commit Message

Daniel Díaz March 6, 2018, 3:46 p.m.
This error can appear in gdb/nat/linux-ptrace.c because of
the order in which some headers are processed:
| In file included from ../../gdb-7.11.1/gdb/nat/linux-ptrace.c:20:0:
| ../../gdb-7.11.1/gdb/nat/linux-ptrace.h:175:22: error: expected identifier before numeric constant
|  # define TRAP_HWBKPT 4
|                       ^
| Makefile:2357: recipe for target 'linux-ptrace.o' failed
| make[2]: *** [linux-ptrace.o] Error 1
| make[2]: *** Waiting for unfinished jobs....
| make[2]: Leaving directory '/oe/build/tmp-rpb-glibc/work/aarch64-linaro-linux/gdb/7.11.1-r0/build-aarch64-linaro-linux/gdb'
| Makefile:8822: recipe for target 'all-gdb' failed
| make[1]: *** [all-gdb] Error 2
| make[1]: Leaving directory '/oe/build/tmp-rpb-glibc/work/aarch64-linaro-linux/gdb/7.11.1-r0/build-aarch64-linaro-linux'
| Makefile:846: recipe for target 'all' failed
| make: *** [all] Error 2

A patch from GDB's current master solves the issue.

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
---
v2: Add signed-off-by tag to patch

 meta/recipes-devtools/gdb/gdb-8.0.1.inc            |  1 +
 ...4-defining-TRAP_HWBKPT-before-including-g.patch | 56 ++++++++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 meta/recipes-devtools/gdb/gdb/gdb-Fix-ia64-defining-TRAP_HWBKPT-before-including-g.patch

Comments

Khem Raj March 6, 2018, 5:11 p.m. | #1
On Tue, Mar 6, 2018 at 7:46 AM, Daniel Díaz <daniel.diaz@linaro.org> wrote:
> This error can appear in gdb/nat/linux-ptrace.c because of
> the order in which some headers are processed:
> | In file included from ../../gdb-7.11.1/gdb/nat/linux-ptrace.c:20:0:
> | ../../gdb-7.11.1/gdb/nat/linux-ptrace.h:175:22: error: expected identifier before numeric constant
> |  # define TRAP_HWBKPT 4
> |                       ^
> | Makefile:2357: recipe for target 'linux-ptrace.o' failed
> | make[2]: *** [linux-ptrace.o] Error 1
> | make[2]: *** Waiting for unfinished jobs....
> | make[2]: Leaving directory '/oe/build/tmp-rpb-glibc/work/aarch64-linaro-linux/gdb/7.11.1-r0/build-aarch64-linaro-linux/gdb'
> | Makefile:8822: recipe for target 'all-gdb' failed
> | make[1]: *** [all-gdb] Error 2
> | make[1]: Leaving directory '/oe/build/tmp-rpb-glibc/work/aarch64-linaro-linux/gdb/7.11.1-r0/build-aarch64-linaro-linux'
> | Makefile:846: recipe for target 'all' failed
> | make: *** [all] Error 2
>
> A patch from GDB's current master solves the issue.
>

LGTM

> Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
> ---
> v2: Add signed-off-by tag to patch
>
>  meta/recipes-devtools/gdb/gdb-8.0.1.inc            |  1 +
>  ...4-defining-TRAP_HWBKPT-before-including-g.patch | 56 ++++++++++++++++++++++
>  2 files changed, 57 insertions(+)
>  create mode 100644 meta/recipes-devtools/gdb/gdb/gdb-Fix-ia64-defining-TRAP_HWBKPT-before-including-g.patch
>
> diff --git a/meta/recipes-devtools/gdb/gdb-8.0.1.inc b/meta/recipes-devtools/gdb/gdb-8.0.1.inc
> index 83c08e5..4a5299b 100644
> --- a/meta/recipes-devtools/gdb/gdb-8.0.1.inc
> +++ b/meta/recipes-devtools/gdb/gdb-8.0.1.inc
> @@ -17,6 +17,7 @@ SRC_URI = "http://ftp.gnu.org/gnu/gdb/gdb-${PV}.tar.xz \
>             file://0010-resolve-restrict-keyword-conflict.patch \
>             file://package_devel_gdb_patches_120-sigprocmask-invalid-call.patch \
>             file://0012-Unbreak-GDBserver-build-for-x32.patch \
> +           file://gdb-Fix-ia64-defining-TRAP_HWBKPT-before-including-g.patch \
>  "
>  SRC_URI[md5sum] = "48cac527e6f3018b865ece021e9723ac"
>  SRC_URI[sha256sum] = "3dbd5f93e36ba2815ad0efab030dcd0c7b211d7b353a40a53f4c02d7d56295e3"
> diff --git a/meta/recipes-devtools/gdb/gdb/gdb-Fix-ia64-defining-TRAP_HWBKPT-before-including-g.patch b/meta/recipes-devtools/gdb/gdb/gdb-Fix-ia64-defining-TRAP_HWBKPT-before-including-g.patch
> new file mode 100644
> index 0000000..2cdeafc
> --- /dev/null
> +++ b/meta/recipes-devtools/gdb/gdb/gdb-Fix-ia64-defining-TRAP_HWBKPT-before-including-g.patch
> @@ -0,0 +1,56 @@
> +From c57122f94b1c749e4c12f6449b61a3b114f705cd Mon Sep 17 00:00:00 2001
> +From: James Clarke <jrtc27@jrtc27.com>
> +Date: Fri, 19 Jan 2018 17:22:49 +0000
> +Subject: [PATCH] gdb: Fix ia64 defining TRAP_HWBKPT before including
> + gdb_wait.h
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +On ia64, gdb_wait.h eventually includes siginfo-consts-arch.h, which
> +contains an enum with TRAP_HWBKPT, along with a #define. Thus we cannot
> +define TRAP_HWBKPT to 4 beforehand, and so gdb_wait.h must be included
> +earlier; include it from linux-ptrace.h so it can never come afterwards.
> +
> +gdb/ChangeLog:
> +
> +       * nat/linux-ptrace.c: Remove unnecessary reinclusion of
> +       gdb_ptrace.h, and move including gdb_wait.h ...
> +       * nat/linux-ptrace.h: ... to here.
> +
> +Upstream-Status: Accepted [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=5a6c3296a7a90694ad4042f6256f3da6d4fa4ee8]
> +
> +Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
> +---
> + gdb/nat/linux-ptrace.c | 2 --
> + gdb/nat/linux-ptrace.h | 1 +
> + 2 files changed, 1 insertion(+), 2 deletions(-)
> +
> +diff --git a/gdb/nat/linux-ptrace.c b/gdb/nat/linux-ptrace.c
> +index 3265b16..559c2de 100644
> +--- a/gdb/nat/linux-ptrace.c
> ++++ b/gdb/nat/linux-ptrace.c
> +@@ -21,8 +21,6 @@
> + #include "linux-procfs.h"
> + #include "linux-waitpid.h"
> + #include "buffer.h"
> +-#include "gdb_wait.h"
> +-#include "gdb_ptrace.h"
> + #ifdef HAVE_SYS_PROCFS_H
> + #include <sys/procfs.h>
> + #endif
> +diff --git a/gdb/nat/linux-ptrace.h b/gdb/nat/linux-ptrace.h
> +index 5954945..6faa89b 100644
> +--- a/gdb/nat/linux-ptrace.h
> ++++ b/gdb/nat/linux-ptrace.h
> +@@ -21,6 +21,7 @@
> + struct buffer;
> +
> + #include "nat/gdb_ptrace.h"
> ++#include "gdb_wait.h"
> +
> + #ifdef __UCLIBC__
> + #if !(defined(__UCLIBC_HAS_MMU__) || defined(__ARCH_HAS_MMU__))
> +--
> +2.7.4
> +
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/recipes-devtools/gdb/gdb-8.0.1.inc b/meta/recipes-devtools/gdb/gdb-8.0.1.inc
index 83c08e5..4a5299b 100644
--- a/meta/recipes-devtools/gdb/gdb-8.0.1.inc
+++ b/meta/recipes-devtools/gdb/gdb-8.0.1.inc
@@ -17,6 +17,7 @@  SRC_URI = "http://ftp.gnu.org/gnu/gdb/gdb-${PV}.tar.xz \
            file://0010-resolve-restrict-keyword-conflict.patch \
            file://package_devel_gdb_patches_120-sigprocmask-invalid-call.patch \
            file://0012-Unbreak-GDBserver-build-for-x32.patch \
+           file://gdb-Fix-ia64-defining-TRAP_HWBKPT-before-including-g.patch \
 "
 SRC_URI[md5sum] = "48cac527e6f3018b865ece021e9723ac"
 SRC_URI[sha256sum] = "3dbd5f93e36ba2815ad0efab030dcd0c7b211d7b353a40a53f4c02d7d56295e3"
diff --git a/meta/recipes-devtools/gdb/gdb/gdb-Fix-ia64-defining-TRAP_HWBKPT-before-including-g.patch b/meta/recipes-devtools/gdb/gdb/gdb-Fix-ia64-defining-TRAP_HWBKPT-before-including-g.patch
new file mode 100644
index 0000000..2cdeafc
--- /dev/null
+++ b/meta/recipes-devtools/gdb/gdb/gdb-Fix-ia64-defining-TRAP_HWBKPT-before-including-g.patch
@@ -0,0 +1,56 @@ 
+From c57122f94b1c749e4c12f6449b61a3b114f705cd Mon Sep 17 00:00:00 2001
+From: James Clarke <jrtc27@jrtc27.com>
+Date: Fri, 19 Jan 2018 17:22:49 +0000
+Subject: [PATCH] gdb: Fix ia64 defining TRAP_HWBKPT before including
+ gdb_wait.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+On ia64, gdb_wait.h eventually includes siginfo-consts-arch.h, which
+contains an enum with TRAP_HWBKPT, along with a #define. Thus we cannot
+define TRAP_HWBKPT to 4 beforehand, and so gdb_wait.h must be included
+earlier; include it from linux-ptrace.h so it can never come afterwards.
+
+gdb/ChangeLog:
+
+	* nat/linux-ptrace.c: Remove unnecessary reinclusion of
+	gdb_ptrace.h, and move including gdb_wait.h ...
+	* nat/linux-ptrace.h: ... to here.
+
+Upstream-Status: Accepted [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=5a6c3296a7a90694ad4042f6256f3da6d4fa4ee8]
+
+Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
+---
+ gdb/nat/linux-ptrace.c | 2 --
+ gdb/nat/linux-ptrace.h | 1 +
+ 2 files changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/gdb/nat/linux-ptrace.c b/gdb/nat/linux-ptrace.c
+index 3265b16..559c2de 100644
+--- a/gdb/nat/linux-ptrace.c
++++ b/gdb/nat/linux-ptrace.c
+@@ -21,8 +21,6 @@
+ #include "linux-procfs.h"
+ #include "linux-waitpid.h"
+ #include "buffer.h"
+-#include "gdb_wait.h"
+-#include "gdb_ptrace.h"
+ #ifdef HAVE_SYS_PROCFS_H
+ #include <sys/procfs.h>
+ #endif
+diff --git a/gdb/nat/linux-ptrace.h b/gdb/nat/linux-ptrace.h
+index 5954945..6faa89b 100644
+--- a/gdb/nat/linux-ptrace.h
++++ b/gdb/nat/linux-ptrace.h
+@@ -21,6 +21,7 @@
+ struct buffer;
+ 
+ #include "nat/gdb_ptrace.h"
++#include "gdb_wait.h"
+ 
+ #ifdef __UCLIBC__
+ #if !(defined(__UCLIBC_HAS_MMU__) || defined(__ARCH_HAS_MMU__))
+-- 
+2.7.4
+