Re: GDB 7.6.90 available for testing

Eli Zaretskii
2014-01-11T08:56:10Z

> From: Joel Brobecker <brobecker@adacore.com>
> Date: Wed, 8 Jan 2014 14:14:28 +0400 (RET)
>
> I have just finished creating the gdb-7.6.90 pre-release.
> It is available for download at the following location:
>
> ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.6.90.tar.bz2
>
> A gzip'ed version is also available: gdb-7.6.90.tar.gz.
>
> Please give it a test if you can and report any problems you might find.

The gdbserver part fails to build on MinGW:

gcc -O2 -gdwarf-2 -g3 -D__USE_MINGW_ACCESS -I. -I. -I./../common -I./../regformats -I./../ -I./../../include -I./../gnulib/import -Ibuild-gnulib-gdbserver/import -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral-Wno-char-subscripts -Werror -DGDBSERVER -c -o agent.o -MT agent.o -MMD -MP -MF .deps/agent.Tpo ../common/agent.c
In file included from ./server.h:98,
from ../common/agent.c:21:
./target.h:24:27: target/resume.h: No such file or directory
./target.h:25:25: target/wait.h: No such file or directory
./target.h:26:31: target/waitstatus.h: No such file or directory
In file included from ./server.h:98,
from ../common/agent.c:21:
./target.h:43: error: field `kind' has incomplete type
./target.h:120: warning: "struct target_waitstatus" declared inside parameter list
./target.h:120: warning: its scope is only this definition or declaration, which is probably not what you want
./target.h:512: warning: "struct target_waitstatus" declared inside parameter list
In file included from ./server.h:100,
from ../common/agent.c:21:
./gdbthread.h:34: error: field `last_resume_kind' has incomplete type
./gdbthread.h:37: error: field `last_status' has incomplete type
../common/agent.c: In function `agent_run_command':
../common/agent.c:240: error: `resume_continue' undeclared (first use in this function)
../common/agent.c:240: error: (Each undeclared identifier is reported only once
../common/agent.c:240: error: for each function it appears in.)
../common/agent.c:278: error: storage size of 'status' isn't known
../common/agent.c:287: error: `resume_stop' undeclared (first use in this function)
../common/agent.c:278: warning: unused variable `status'
Makefile:516: recipe for target `agent.o' failed
make[4]: *** [agent.o] Error 1
make[4]: Leaving directory `/d/gnu/gdb-7.6.90/gdb/gdbserver'
Makefile:1323: recipe for target `subdir_do' failed
make[3]: *** [subdir_do] Error 1

This is because of the "-I./../" part on the GCC command line. My
version of GCC doesn't like the trailing slash.

That slash comes from this snippet in gdbserver/Makefile.in:

INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../common \
-I$(srcdir)/../regformats -I$(srcdir)/../ -I$(INCLUDE_DIR) \
$(INCGNU)

If I remove the trailing slash there, the build runs to completion.

OK to push the following (with a suitable log entry)?

--- gdb/gdbserver/Makefile.in~0 2014-01-08 11:23:36.000000000 +0200
+++ gdb/gdbserver/Makefile.in 2014-01-11 10:49:53.774500000 +0200
@@ -106,7 +106,7 @@
# e.g.: "target/wait.h".
#
INCLUDE_CFLAGS = -I. -I${srcdir} -I$(srcdir)/../common \
- -I$(srcdir)/../regformats -I$(srcdir)/../ -I$(INCLUDE_DIR) \
+ -I$(srcdir)/../regformats -I$(srcdir)/.. -I$(INCLUDE_DIR) \
$(INCGNU)

# M{H,T}_CFLAGS, if defined, has host- and target-dependent CFLAGS