Prepare for 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-08-24 Pedro Alves <palves@redhat.com> * Makefile.in (HFILES_NO_SRCDIR): Add common/gdb_sys_time.h. * common/gdb_sys_time.h: New file. * event-loop.c: Include gdb_sys_time.h instead of sys/time.h. * gdb_select.h: Likewise. * gdb_usleep.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-08-24 Pedro Alves <palves@redhat.com> * debug.c: Include gdb_sys_time.h instead of sys/time.h. * event-loop.c: Likewise. * remote-utils.c: Likewise. * tracepoint.c: Likewise.
This commit is contained in:
parent
a8c6d4fcd6
commit
438e1e427e
@ -1,3 +1,25 @@
|
||||
2015-08-24 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* Makefile.in (HFILES_NO_SRCDIR): Add common/gdb_sys_time.h.
|
||||
* common/gdb_sys_time.h: New file.
|
||||
* event-loop.c: Include gdb_sys_time.h instead of sys/time.h.
|
||||
* gdb_select.h: Likewise.
|
||||
* gdb_usleep.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.
|
||||
|
||||
2015-08-24 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* NEWS: Mention removed support for the various ROM monitors.
|
||||
|
@ -986,7 +986,7 @@ 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/fileio.h nat/x86-linux.h nat/x86-linux-dregs.h \
|
||||
nat/linux-namespaces.h arch/arm.h
|
||||
nat/linux-namespaces.h arch/arm.h common/gdb_sys_time.h
|
||||
|
||||
# Header files that already have srcdir in them, or which are in objdir.
|
||||
|
||||
|
38
gdb/common/gdb_sys_time.h
Normal file
38
gdb/common/gdb_sys_time.h
Normal file
@ -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 */
|
@ -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"
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -1,3 +1,10 @@
|
||||
2015-08-24 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* debug.c: Include gdb_sys_time.h instead of sys/time.h.
|
||||
* event-loop.c: Likewise.
|
||||
* remote-utils.c: Likewise.
|
||||
* tracepoint.c: Likewise.
|
||||
|
||||
2015-08-24 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* spu-low.c (spu_request_interrupt): Use lwpid_of instead of
|
||||
|
@ -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. */
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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 "ax.h"
|
||||
#include "tdesc.h"
|
||||
|
@ -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"
|
||||
|
@ -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>
|
||||
|
@ -20,7 +20,7 @@
|
||||
#ifndef MI_PARSE_H
|
||||
#define MI_PARSE_H
|
||||
|
||||
#include <sys/time.h>
|
||||
#include "gdb_sys_time.h"
|
||||
|
||||
/* MI parser */
|
||||
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -47,7 +47,7 @@
|
||||
#include "disasm.h"
|
||||
#include "location.h"
|
||||
|
||||
#include <sys/time.h>
|
||||
#include "gdb_sys_time.h"
|
||||
|
||||
#include "event-loop.h"
|
||||
#include "event-top.h"
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
||||
@ -3518,12 +3518,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
|
||||
@ -3541,7 +3541,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. */
|
||||
@ -3641,14 +3641,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;
|
||||
@ -3714,7 +3714,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. */
|
||||
|
@ -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)
|
||||
|
@ -62,7 +62,7 @@
|
||||
|
||||
#include "readline/readline.h"
|
||||
|
||||
#include <sys/time.h>
|
||||
#include "gdb_sys_time.h"
|
||||
#include <time.h>
|
||||
|
||||
#include "gdb_usleep.h"
|
||||
|
Loading…
x
Reference in New Issue
Block a user