Fix missing "struct iovec" definition on some x86-linux.
authorJoel Brobecker <brobecker@adacore.com>
Tue, 9 Sep 2014 14:49:13 +0000 (16:49 +0200)
committerJoel Brobecker <brobecker@adacore.com>
Tue, 9 Sep 2014 15:01:27 +0000 (17:01 +0200)
The following patch...

    commit 3116063bd617de56fbc3bad046a692b1fb363a9d
    Date:   Fri Jun 27 09:52:29 2014 +0100
    Subject: Tidy #include lists

... introduced a build failure on certain x86 GNU/Linux distributions
(reproduced on SuSE 10 and RHES4) due to "struct iovec" not being
defined. This struct is defined in <sys/uio.h>, which used to be
explicitly included, but no longer is after the commit above was
applied.

    [...]/i386-linux-nat.c: In function 'fetch_xstateregs':
    [...]/i386-linux-nat.c:325:16: error: storage size of 'iov' isn't known
    [...]/i386-linux-nat.c: In function 'store_xstateregs':
    [...]/i386-linux-nat.c:348:16: error: storage size of 'iov' isn't known
    make[2]: *** [i386-linux-nat.o] Error 1

It seems to be working on newer GNU/Linux distros thanks to indirect
inclusion of <sys/uio.h>, but it does not work on some other versions
of the same distros. This is why indirect includes of public APIs
should be avoided if at all possible.

This patch fixes the issue by adding the explicit include back.

gdb/ChangeLog:

        * i386-linux-nat.c, x86-linux-nat.c: Add <sys/uio.h> #include.

gdb/ChangeLog
gdb/i386-linux-nat.c
gdb/x86-linux-nat.c

index 9d3f392554b576a6c94608b3a75851c21b2ef2a6..393e4a0a7e8dd1781acdbc75911ea70d361330d0 100644 (file)
@@ -1,3 +1,7 @@
+2014-09-09  Joel Brobecker  <brobecker@adacore.com>
+
+       * i386-linux-nat.c, x86-linux-nat.c: Add <sys/uio.h> #include.
+
 2014-09-08  Doug Evans  <xdje42@gmail.com>
 
        PR 17247
index 32a82e903a050da24b79d50c27d5f9d629047b18..a08b9b85cf49ed980a4cdd9bd78f98bfeffd7242 100644 (file)
@@ -23,6 +23,7 @@
 #include "regcache.h"
 #include "elf/common.h"
 #include <sys/ptrace.h>
+#include <sys/uio.h>
 #include "gregset.h"
 #include "gdb_proc_service.h"
 
index 67300d8053d3aeda5407b66a8aec2a45457ee616..b2141ebcd335b2fffde7041ee3501031dff61daa 100644 (file)
@@ -24,6 +24,7 @@
 #include <sys/ptrace.h>
 #include <sys/user.h>
 #include <sys/procfs.h>
+#include <sys/uio.h>
 
 #include "x86-nat.h"
 #include "linux-nat.h"