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 | expand |
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
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 +
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