summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2015-03-23 15:20:09 +0000
committerPedro Alves <palves@redhat.com>2015-03-23 23:23:20 +0000
commitb44bcf6a187fc0a6f25c388fb810958db1c49db6 (patch)
tree9214e3f5b7e12f483a403bca907fa74f8b84fb64
parent36cb495a1664264d39cfb0786f4716e38780b496 (diff)
downloadbinutils-gdb-users/palves/gnulib-update.tar.gz
Prepare for gnulib updateusers/palves/gnulib-update
After the last gnulib import (Dec 2012), gnulib upstream started replacing mingw's 'struct timeval' with a version with 64-bit time_t, for POSIX compliance: commit f8e84098084b3b53bc6943a5542af1f607ffd477 Author: Bruno Haible <bruno@clisp.org> Date: Sat Jan 28 18:12:10 2012 +0100 sys_time: Override 'struct timeval' on some native Windows platforms. See: https://lists.gnu.org/archive/html/bug-gnulib/2012-01/msg00372.html However, that results in conflicts with native Winsock2's 'select': select()'s argument http://sourceforge.net/p/mingw-w64/mailman/message/29610438/ ... and libiberty's timeval-utils.h timeval_add/timeval_sub, at the least. We don't really need the POSIX compliance, so this patch prepares us to simply not use gnulib's 'struct timeval' replacement once a more recent gnulib is imported, thus preserving the current behavior, by adding a sys/time.h wrapper header that undefs gnulib's replacements, and including that everywhere instead. The SIZE -> OSIZE change is necessary because newer gnulib's sys/time.h also includes windows.h/winsock2.h, which defines a conflicting SIZE symbol. Cross build-tested mingw-w64 32-bit and 64-bit. Regtested on x86_64 Fedora 20. gdb/ChangeLog: 2015-03-23 Pedro Alves <palves@redhat.com> * Makefile.in (HFILES_NO_SRCDIR): Add common/gdb_sys_time.h. * common/gdb_sys_time.h: New file. * dsrec.c: Include gdb_sys_time.h instead of sys/time.h. * event-loop.c: Likewise. * gdb_select.h: Likewise. * gdb_usleep.c: Likewise. * m32r-rom.c: Likewise. * maint.c: Likewise. * mi/mi-main.c: Likewise. * mi/mi-parse.h: Likewise. * remote-fileio.c: Likewise. * remote-m32r-sdi.c: Likewise. * remote.c: Likewise. * ser-base.c: Likewise. * ser-pipe.c: Likewise. * ser-tcp.c: Likewise. * ser-unix.c: Likewise. * symfile.c: Likewise. * symfile.c: Likewise. Rename OSIZE to SIZE throughout. * target-memory.c: Include gdb_sys_time.h instead of sys/time.h. * utils.c: Likewise. gdb/gdbserver/ChangeLog: 2015-03-23 Pedro Alves <palves@redhat.com> * debug.c: Include gdb_sys_time.h instead of sys/time.h. * gdbserver/event-loop.c: Likewise. * gdbserver/remote-utils.c: Likewise. * gdbserver/tracepoint.c: Likewise.
-rw-r--r--gdb/Makefile.in2
-rw-r--r--gdb/common/gdb_sys_time.h38
-rw-r--r--gdb/dsrec.c2
-rw-r--r--gdb/event-loop.c2
-rw-r--r--gdb/gdb_select.h2
-rw-r--r--gdb/gdb_usleep.c3
-rw-r--r--gdb/gdbserver/debug.c2
-rw-r--r--gdb/gdbserver/event-loop.c2
-rw-r--r--gdb/gdbserver/remote-utils.c2
-rw-r--r--gdb/gdbserver/tracepoint.c2
-rw-r--r--gdb/m32r-rom.c2
-rw-r--r--gdb/maint.c2
-rw-r--r--gdb/mi/mi-main.c2
-rw-r--r--gdb/mi/mi-parse.h2
-rw-r--r--gdb/remote-fileio.c2
-rw-r--r--gdb/remote-m32r-sdi.c2
-rw-r--r--gdb/remote.c2
-rw-r--r--gdb/ser-base.c2
-rw-r--r--gdb/ser-pipe.c2
-rw-r--r--gdb/ser-tcp.c2
-rw-r--r--gdb/ser-unix.c2
-rw-r--r--gdb/symfile.c14
-rw-r--r--gdb/target-memory.c2
-rw-r--r--gdb/utils.c2
24 files changed, 67 insertions, 30 deletions
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index dbace2df995..afff3c6f2e0 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -968,7 +968,7 @@ i386-linux-nat.h common/common-defs.h common/errors.h common/common-types.h \
common/common-debug.h common/cleanups.h common/gdb_setjmp.h \
common/common-exceptions.h target/target.h common/symbol.h \
common/common-regcache.h fbsd-tdep.h nat/linux-personality.h \
-common/common-remote-fileio.h
+common/common-remote-fileio.h common/gdb_sys_time.h
# Header files that already have srcdir in them, or which are in objdir.
diff --git a/gdb/common/gdb_sys_time.h b/gdb/common/gdb_sys_time.h
new file mode 100644
index 00000000000..0f764f888b1
--- /dev/null
+++ b/gdb/common/gdb_sys_time.h
@@ -0,0 +1,38 @@
+/* Copyright (C) 2015 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDB_SYS_TIME_H
+#define GDB_SYS_TIME_H
+
+#include <sys/time.h>
+
+/* On MinGW-w64, gnulib's sys/time.h replaces 'struct timeval' and
+ gettimeofday with versions that support 64-bit time_t, for POSIX
+ compliance. However, the gettimeofday replacement does not ever
+ return time_t values larger than 31-bit, as it simply returns the
+ system's gettimeofday's (signed) 32-bit result as (signed) 64-bit.
+ Because we don't really need the POSIX compliance, and it ends up
+ causing conflicts with other libraries we use that don't use gnulib
+ and thus work with the native struct timeval, such as Winsock2's
+ native 'select' and libiberty, simply undefine away gnulib's
+ replacements. */
+#if GNULIB_defined_struct_timeval
+# undef timeval
+# undef gettimeofday
+#endif
+
+#endif /* #ifndef GDB_SYS_TIME_H */
diff --git a/gdb/dsrec.c b/gdb/dsrec.c
index 82cc9682bc1..c4e535265a4 100644
--- a/gdb/dsrec.c
+++ b/gdb/dsrec.c
@@ -19,7 +19,7 @@
#include "defs.h"
#include "serial.h"
#include "srec.h"
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#include <time.h>
#include "gdb_bfd.h"
diff --git a/gdb/event-loop.c b/gdb/event-loop.c
index 79e41fd549e..7c97fc44888 100644
--- a/gdb/event-loop.c
+++ b/gdb/event-loop.c
@@ -31,7 +31,7 @@
#endif
#include <sys/types.h>
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#include "gdb_select.h"
#include "observer.h"
diff --git a/gdb/gdb_select.h b/gdb/gdb_select.h
index b608f2a9651..9748a13974f 100644
--- a/gdb/gdb_select.h
+++ b/gdb/gdb_select.h
@@ -23,7 +23,7 @@
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#else
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#endif
#ifdef USE_WIN32API
diff --git a/gdb/gdb_usleep.c b/gdb/gdb_usleep.c
index 22ee6a08bac..67e43962595 100644
--- a/gdb/gdb_usleep.c
+++ b/gdb/gdb_usleep.c
@@ -18,8 +18,7 @@
#include "defs.h"
#include "gdb_usleep.h"
#include "gdb_select.h"
-
-#include <sys/time.h>
+#include "gdb_sys_time.h"
int
gdb_usleep (int usec)
diff --git a/gdb/gdbserver/debug.c b/gdb/gdbserver/debug.c
index 1a1e3332d45..5bbd3816621 100644
--- a/gdb/gdbserver/debug.c
+++ b/gdb/gdbserver/debug.c
@@ -17,7 +17,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "server.h"
-#include <sys/time.h>
+#include "gdb_sys_time.h"
/* Enable miscellaneous debugging output. The name is historical - it
was originally used to debug LinuxThreads support. */
diff --git a/gdb/gdbserver/event-loop.c b/gdb/gdbserver/event-loop.c
index 08a503f49e7..b1716449f99 100644
--- a/gdb/gdbserver/event-loop.c
+++ b/gdb/gdbserver/event-loop.c
@@ -22,7 +22,7 @@
#include "queue.h"
#include <sys/types.h>
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#ifdef USE_WIN32API
#include <windows.h>
diff --git a/gdb/gdbserver/remote-utils.c b/gdb/gdbserver/remote-utils.c
index 1de86beecfb..bc3c3d011e7 100644
--- a/gdb/gdbserver/remote-utils.c
+++ b/gdb/gdbserver/remote-utils.c
@@ -51,7 +51,7 @@
#if HAVE_FCNTL_H
#include <fcntl.h>
#endif
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#include <unistd.h>
#if HAVE_ARPA_INET_H
#include <arpa/inet.h>
diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c
index 1acee8c55a8..48c571078e4 100644
--- a/gdb/gdbserver/tracepoint.c
+++ b/gdb/gdbserver/tracepoint.c
@@ -25,7 +25,7 @@
#include <ctype.h>
#include <fcntl.h>
#include <unistd.h>
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#include <inttypes.h>
#include <stdint.h>
diff --git a/gdb/m32r-rom.c b/gdb/m32r-rom.c
index a2ac53795a6..d639aa5584a 100644
--- a/gdb/m32r-rom.c
+++ b/gdb/m32r-rom.c
@@ -31,7 +31,7 @@
#include "command.h"
#include "gdbcmd.h"
#include "symfile.h" /* for generic load */
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#include <time.h> /* for time_t */
#include "objfiles.h" /* for ALL_OBJFILES etc. */
#include "inferior.h"
diff --git a/gdb/maint.c b/gdb/maint.c
index 1adea2f9e93..5d7fca50f1c 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -24,7 +24,7 @@
#include "arch-utils.h"
#include <ctype.h>
#include <signal.h>
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#include <time.h>
#include "command.h"
#include "gdbcmd.h"
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index acbdb5593d7..85ec281c129 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -55,7 +55,7 @@
#include "gdbcmd.h"
#include <ctype.h>
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#if defined HAVE_SYS_RESOURCE_H
#include <sys/resource.h>
diff --git a/gdb/mi/mi-parse.h b/gdb/mi/mi-parse.h
index 4c10f925531..5900a6f4e2e 100644
--- a/gdb/mi/mi-parse.h
+++ b/gdb/mi/mi-parse.h
@@ -20,7 +20,7 @@
#ifndef MI_PARSE_H
#define MI_PARSE_H
-#include <sys/time.h>
+#include "gdb_sys_time.h"
/* MI parser */
diff --git a/gdb/remote-fileio.c b/gdb/remote-fileio.c
index 3882321cdbb..6af3c4b1453 100644
--- a/gdb/remote-fileio.c
+++ b/gdb/remote-fileio.c
@@ -31,7 +31,7 @@
#include "filestuff.h"
#include <fcntl.h>
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#ifdef __CYGWIN__
#include <sys/cygwin.h> /* For cygwin_conv_path. */
#endif
diff --git a/gdb/remote-m32r-sdi.c b/gdb/remote-m32r-sdi.c
index 01cb5b65fab..811d0697b1f 100644
--- a/gdb/remote-m32r-sdi.c
+++ b/gdb/remote-m32r-sdi.c
@@ -36,7 +36,7 @@
#include <netinet/in.h>
#endif
#include <sys/types.h>
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#include <time.h>
#include "gdb_bfd.h"
#include "cli/cli-utils.h"
diff --git a/gdb/remote.c b/gdb/remote.c
index dfa68b3a4d4..4c79d4979a8 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -45,7 +45,7 @@
#include "filestuff.h"
#include "rsp-low.h"
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#include "event-loop.h"
#include "event-top.h"
diff --git a/gdb/ser-base.c b/gdb/ser-base.c
index 87817c40e03..48ee98d5ff8 100644
--- a/gdb/ser-base.c
+++ b/gdb/ser-base.c
@@ -23,7 +23,7 @@
#include "event-loop.h"
#include "gdb_select.h"
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#ifdef USE_WIN32API
#include <winsock2.h>
#endif
diff --git a/gdb/ser-pipe.c b/gdb/ser-pipe.c
index bf5e4d4943c..bf8418bb753 100644
--- a/gdb/ser-pipe.c
+++ b/gdb/ser-pipe.c
@@ -27,7 +27,7 @@
#include <sys/types.h>
#include <sys/socket.h>
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#include <fcntl.h>
#include "filestuff.h"
diff --git a/gdb/ser-tcp.c b/gdb/ser-tcp.c
index 9c3dcf4ee4d..df7bb11914c 100644
--- a/gdb/ser-tcp.c
+++ b/gdb/ser-tcp.c
@@ -35,7 +35,7 @@
#include <sys/ioctl.h> /* For FIONBIO. */
#endif
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#ifdef USE_WIN32API
#include <winsock2.h>
diff --git a/gdb/ser-unix.c b/gdb/ser-unix.c
index 4125797ad7d..6182aba36eb 100644
--- a/gdb/ser-unix.c
+++ b/gdb/ser-unix.c
@@ -26,7 +26,7 @@
#include <sys/types.h>
#include "terminal.h"
#include <sys/socket.h>
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#include "gdb_select.h"
#include "gdbcmd.h"
diff --git a/gdb/symfile.c b/gdb/symfile.c
index ba099d3a29b..e4eca2b2057 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -62,7 +62,7 @@
#include <sys/stat.h>
#include <ctype.h>
#include <time.h>
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#include "psymtab.h"
@@ -3544,12 +3544,12 @@ overlay_command (char *args, int from_tty)
In this simple implementation, the target data structures are as follows:
unsigned _novlys; /# number of overlay sections #/
unsigned _ovly_table[_novlys][4] = {
- {VMA, SIZE, LMA, MAPPED}, /# one entry per overlay section #/
+ {VMA, OSIZE, LMA, MAPPED}, /# one entry per overlay section #/
{..., ..., ..., ...},
}
unsigned _novly_regions; /# number of overlay regions #/
unsigned _ovly_region_table[_novly_regions][3] = {
- {VMA, SIZE, MAPPED_TO_LMA}, /# one entry per overlay region #/
+ {VMA, OSIZE, MAPPED_TO_LMA}, /# one entry per overlay region #/
{..., ..., ...},
}
These functions will attempt to update GDB's mappedness state in the
@@ -3567,7 +3567,7 @@ static unsigned cache_novlys = 0;
static CORE_ADDR cache_ovly_table_base = 0;
enum ovly_index
{
- VMA, SIZE, LMA, MAPPED
+ VMA, OSIZE, LMA, MAPPED
};
/* Throw away the cached copy of _ovly_table. */
@@ -3667,14 +3667,14 @@ simple_overlay_update_1 (struct obj_section *osect)
for (i = 0; i < cache_novlys; i++)
if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
&& cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect)
- /* && cache_ovly_table[i][SIZE] == size */ )
+ /* && cache_ovly_table[i][OSIZE] == size */ )
{
read_target_long_array (cache_ovly_table_base + i * word_size,
(unsigned int *) cache_ovly_table[i],
4, word_size, byte_order);
if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
&& cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect)
- /* && cache_ovly_table[i][SIZE] == size */ )
+ /* && cache_ovly_table[i][OSIZE] == size */ )
{
osect->ovly_mapped = cache_ovly_table[i][MAPPED];
return 1;
@@ -3740,7 +3740,7 @@ simple_overlay_update (struct obj_section *osect)
for (i = 0; i < cache_novlys; i++)
if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
&& cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect)
- /* && cache_ovly_table[i][SIZE] == size */ )
+ /* && cache_ovly_table[i][OSIZE] == size */ )
{ /* obj_section matches i'th entry in ovly_table. */
osect->ovly_mapped = cache_ovly_table[i][MAPPED];
break; /* finished with inner for loop: break out. */
diff --git a/gdb/target-memory.c b/gdb/target-memory.c
index 5e5b1d7d027..177deb6ef36 100644
--- a/gdb/target-memory.c
+++ b/gdb/target-memory.c
@@ -23,7 +23,7 @@
#include "target.h"
#include "memory-map.h"
-#include <sys/time.h>
+#include "gdb_sys_time.h"
static int
compare_block_starting_address (const void *a, const void *b)
diff --git a/gdb/utils.c b/gdb/utils.c
index 7172bba719e..439e3431a8f 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -62,7 +62,7 @@
#include "readline/readline.h"
-#include <sys/time.h>
+#include "gdb_sys_time.h"
#include <time.h>
#include "gdb_usleep.h"