This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix gdb.arch/aarch64-dbreg-contents.exp build failures


On 2/26/20 8:46 AM, Alan Hayward wrote:


On 25 Feb 2020, at 13:15, Luis Machado <luis.machado@linaro.org> wrote:

I ran into the following failures when running tests under QEMU:

--

gdb compile failed, binutils-gdb/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c: In function 'set_watchpoint':
binutils-gdb/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c:41:29: error: storage size of 'dreg_state' isn't known
   struct user_hwdebug_state dreg_state;
                             ^~~~~~~~~~
In file included from /usr/include/aarch64-linux-gnu/bits/types/struct_iovec.h:23:0,
                 from /usr/include/aarch64-linux-gnu/sys/uio.h:23,
                 from binutils-gdb/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c:17:
binutils-gdb/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c:69:18: error: invalid use of undefined type 'struct user_hwdebug_state'
   iov.iov_len = (offsetof (struct user_hwdebug_state, dbg_regs)
                  ^
binutils-gdb/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c:74:5: warning: implicit declaration of function 'error'; did you mean 'errno'? [-Wimplicit-function-declaration]
     error (1, errno, "PTRACE_SETREGSET: NT_ARM_HW_WATCH");
     ^~~~~
     errno
binutils-gdb/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c: In function 'main':
binutils-gdb/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c:87:3: warning: implicit declaration of function 'atexit'; did you mean '_Exit'? [-Wimplicit-function-declaration]
   atexit (cleanup);
   ^~~~~~
   _Exit
binutils-gdb/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c:89:11: warning: implicit declaration of function 'fork' [-Wimplicit-function-declaration]
   child = fork ();

           ^~~~

--

The following patch fixes those by adding the necessary include files.

With that said, the test doesn't pass at present. I'll have to investigate it
a bit more.

gdb/testsuite/ChangeLog:

2020-02-25  Luis Machado  <luis.machado@linaro.org>

	* gdb.arch/aarch64-dbreg-contents.c: Include stdlib.h, unistd,
	asm/ptrace.h and error.h.

Signed-off-by: Luis Machado <luis.machado@linaro.org>
---
gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c b/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c
index 66ca76f847..ca690f63de 100644
--- a/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c
+++ b/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.c
@@ -9,13 +9,17 @@
   freely.  */

#define _GNU_SOURCE 1
+#include <stdlib.h>
+#include <unistd.h>
#include <sys/ptrace.h>
+#include <asm/ptrace.h>

I get a little concerned when we have to include multiple sys, asm, bits etc
version of a header. However, saying that we include both of these in many
aarch64 gdb files (eg aarch64-linux-hw-point.c).

I was expecting sys/ptrace.h to include asm/ptrace.h or something a bit cleaner. But it seems to be the way things are laid out at the moment, as some other files are doing the same.


Ok to push.

Thanks. Pushed now.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]