This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[patch] Fix compilation on the recent glibc CVS snapshot
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Wed, 8 Aug 2007 22:55:02 +0200
- Subject: [patch] Fix compilation on the recent glibc CVS snapshot
Hi,
recent glibc change:
2007-05-24 Ulrich Drepper <drepper@redhat.com>
* io/fcntl.h: When compiling with fortification, include bits/fcntl2.h.
* io/bits/fcntl2.h: New file.
started to sanity check the parameters of the open(2) syscall by providing
#define open(fname, flags, ...)
which errors out the GDB CVS snapshot compilation by:
gcc -c -O2 -m64 -ggdb2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -I. -I.././gdb -I.././gdb/config -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H -I.././gdb/../include/opcode -I.././gdb/../readline/.. -I../bfd -I.././gdb/../bfd -I.././gdb/../include -DMI_OUT=1 -DTUI=1 -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral -Wno-pointer-sign -Wno-unused -Wno-switch -Wno-char-subscripts -Werror serial.c
serial.c: In function ‘serial_open’:
serial.c:216: error: expected identifier before ‘(’ token
make[2]: *** [serial.o] Error 1
make[2]: Leaving directory `/root/redhat/sources/gdb'
GCC needs these options to make the problem reproducible:
-O -pedantic -Wp,-D_FORTIFY_SOURCE=2
Successful compilation requirs also the BFD patch posted as:
http://sourceware.org/ml/binutils/2007-08/msg00114.html
Regards,
Jan
2007-08-08 Jan Kratochvil <jan.kratochvil@redhat.com>
* serial.c (serial_open): Fix OPEN parameter macro expansion.
--- gdb/serial.c 8 Apr 2007 15:20:07 -0000 1.29
+++ gdb/serial.c 8 Aug 2007 20:32:10 -0000
@@ -213,7 +213,8 @@ serial_open (const char *name)
scb->bufp = scb->buf;
scb->error_fd = -1;
- if (scb->ops->open (scb, open_name))
+ /* `...->open (...)' would get expanded by an the open(2) syscall macro. */
+ if ((*scb->ops->open) (scb, open_name))
{
xfree (scb);
return NULL;