This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
gdb (gdbserver.exe) build problem under msys
- From: asmwarrior <asmwarrior at gmail dot com>
- To: MinGW Users List <mingw-users at lists dot sourceforge dot net>, gdb at sourceware dot org
- Cc: Chris Sutcliffe <ir0nh34d at gmail dot com>, Xun Xun <xunxun1982 at gmail dot com>
- Date: Wed, 26 Oct 2011 20:28:34 +0800
- Subject: gdb (gdbserver.exe) build problem under msys
Hi, when using msys + gcc 4.6.1 to build the latest version of gdb (gdb cvs head code), I found a problem.
the build step looks like:
mkdir build
cd build
CFLAGS="-O2 -fno-omit-frame-pointer -mtune=i686" \
../gdb/configure \
--prefix=/mingw \
--host=mingw32 \
--build=mingw32 \
--target=mingw32 \
--with-python=/python/python \
--with-expat \
--disable-nls
Then, I just run "make" under the build folder.
I found that gdb.exe was successfully built, but the gdbserver.exe failed. the error log is below:
make[3]: Entering directory `/f/build_gdb/gdb/gdbgit/build/gdb'
make[4]: Entering directory `/f/build_gdb/gdb/gdbgit/build/gdb/doc'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/f/build_gdb/gdb/gdbgit/build/gdb/doc'
make[4]: Entering directory `/f/build_gdb/gdb/gdbgit/build/gdb/gdbserver'
CONFIG_FILES="" CONFIG_HEADERS=config.h:config.in /bin/sh ./config.status
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing default commands
gcc -c -O2 -fno-omit-frame-pointer -mtune=i686 -D__USE_MINGW_ACCESS -I. -I../../../gdb/gdb/gdbserver -I../../../gdb/gdb/gdbserver/../common -I../../../gdb/gdb/gdbserver/../regformats -I../../../gdb/gdb/gdbserver/../../include -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral -Wno-char-subscripts -Werror ../../../gdb/gdb/gdbserver/inferiors.c
gcc -c -O2 -fno-omit-frame-pointer -mtune=i686 -D__USE_MINGW_ACCESS -I. -I../../../gdb/gdb/gdbserver -I../../../gdb/gdb/gdbserver/../common -I../../../gdb/gdb/gdbserver/../regformats -I../../../gdb/gdb/gdbserver/../../include -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral -Wno-char-subscripts -Werror ../../../gdb/gdb/gdbserver/regcache.c
gcc -c -O2 -fno-omit-frame-pointer -mtune=i686 -D__USE_MINGW_ACCESS -I. -I../../../gdb/gdb/gdbserver -I../../../gdb/gdb/gdbserver/../common -I../../../gdb/gdb/gdbserver/../regformats -I../../../gdb/gdb/gdbserver/../../include -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral -Wno-char-subscripts -Werror ../../../gdb/gdb/gdbserver/remote-utils.c
../../../gdb/gdb/gdbserver/remote-utils.c: In function 'handle_accept_event':
../../../gdb/gdb/gdbserver/remote-utils.c:150:22: error: storage size of 'sockaddr' isn't known
../../../gdb/gdb/gdbserver/remote-utils.c:157:3: error: implicit declaration of function 'accept' [-Werror=implicit-function-declaration]
....
I just looked at the build tree, and found that the file:
build/gdb/gdbserver/config.h (this file size if about 9K)
there contains some code:
/* Define if we should use the Windows API, instead of the POSIX API. On
Windows, we use the Windows API when building for MinGW, but the POSIX API
when building for Cygwin. */
#undef USE_WIN32API
This is wrong, because the USE_WIN32API should be defined under Windows MSYS.
But when I check the file in the parent folder "build/gdb/config.h", the USE_WIN32API is correctly defined, so that's why gdb.exe can build successfully.
By checking the file "build/gdb/gdbserver/config.log", it looks like all the checking works fine.
So, I guess that something was wrong one the time when
"build\gdb\gdbserver\config.status" was creating the config.h.
Any one can help me to test it or find the problem?
Thanks.
asmwarrior
ollydbg from codeblocks' forum