[patch 1/2] mingw: update gnulib: prepare the sources
Jan Kratochvil
jan.kratochvil@redhat.com
Mon Dec 22 22:12:00 GMT 2014
Hi,
GDB sources currently contain gdb/gnulib/ import from Dec 2012.
To fix a bit unrelated problem
gdb build failure with -Werror
https://sourceware.org/bugzilla/show_bug.cgi?id=17718
gdb/compile/compile.c: In function ‘do_rmdir’:
gdb/compile/compile.c:176:10: error: ignoring return value of ‘system’, declared with attribute warn_unused_result [-Werror=unused-result]
It is being discussed in the long thread:
[patch] compile: rm -rf -> ftw()+rmdir()+unlink() [Re: [patch] compile: Fix MinGW build]
https://sourceware.org/ml/gdb-patches/2014-12/msg00501.html
I need to update gnulib first to prevent a bug in that 2012 gnulib when trying
to import its fts module (unrelated to this patchset) which was:
i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I../../../../gdb/gnulib/import -I.. -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -D__USE_MINGW_ACCESS -MT msvc-inval.o -MD -MP -MF .deps/msvc-inval.Tpo -c -o msvc-inval.o ../../../../gdb/gnulib/import/msvc-inval.c
../../../../gdb/gnulib/import/msvc-inval.c:32:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'gl_msvc_invalid_parameter_handler'
gl_msvc_invalid_parameter_handler (const wchar_t *expression,
^
../../../../gdb/gnulib/import/msvc-inval.c: In function 'gl_msvc_inval_ensure_handler':
../../../../gdb/gnulib/import/msvc-inval.c:124:39: error: 'gl_msvc_invalid_parameter_handler' undeclared (first use in this function)
_set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler);
^
../../../../gdb/gnulib/import/msvc-inval.c:124:39: note: each undeclared identifier is reported only once for each function it appears in
Makefile:1511: recipe for target 'msvc-inval.o' failed
make[8]: *** [msvc-inval.o] Error 1
Besides that it would be probably good to update gdb/gnulib/ anyway.
------------------------------------------------------------------------------
The whole problem is that the gnulib update (in [patch 2/2]) will cause (only)
for build_win64 many errors like this one:
x86_64-w64-mingw32-gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -D__USE_MINGW_ACCESS -I. -I../../gdb -I../../gdb/common -I../../gdb/config -DLOCALEDIR="\"/usr/x86_64-w64-mingw32/sys-root/mingw/share/locale\"" -DHAVE_CONFIG_H -I../../gdb/../include/opcode -I../../gdb/../opcodes/.. -I../../gdb/../readline/.. -I../bfd -I../../gdb/../bfd -I../../gdb/../include -I../libdecnumber -I../../gdb/../libdecnumber -I./../intl -I../../gdb/gnulib/import -Ibuild-gnulib/import -Wall -Wdeclaration-after-statement -Wpointer-arith -Wpointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -Wmissing-parameter-type -Wold-style-declaration -Wold-style-definition -Wno-format -Werror -c -o ser-tcp.o -MT ser-tcp.o -MMD -MP -MF .deps/ser-tcp.Tpo ../../gdb/ser-tcp.c
../../gdb/ser-tcp.c: In function 'wait_for_connect':
../../gdb/ser-tcp.c:137:53: error: passing argument 5 of 'select' from incompatible pointer type [-Werror]
n = select (scb->fd + 1, &rset, &wset, &eset, &t);
^
In file included from ../../gdb/serial.h:23:0,
from ../../gdb/ser-tcp.c:21:
/usr/x86_64-w64-mingw32/sys-root/mingw/include/winsock2.h:995:34: note: expected 'PTIMEVAL' but argument is of type 'struct rpl_timeval *'
WINSOCK_API_LINKAGE int WSAAPI select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,const PTIMEVAL timeout);
^
cc1: all warnings being treated as errors
Makefile:1100: recipe for target 'ser-tcp.o' failed
This IIUC comes from this mingw64 change:
[Mingw-w64-public] [patch] Replace struct timeval usage with PTIMEVAL and define TIMEVAL differently on LP64
http://sourceforge.net/p/mingw-w64/mailman/message/29610438/
This is because occasional #include <sys/time.h> will then #include also
MS-Windows headers and provide an incompatible definition of struct timeval.
IIUC one should always #include <sys/time.h> to get all the struct timeval
definitions in the codebase the same.
But #including <sys/time.h> (and thus <windows.h>) is a problem as sourceware
include/coff/ headers have duplicate/conflicting definitions with MS-Windows
headers. So I have #ifndef-out their duplicate/conflicting parts during 64-bit
MS-Windows builds.
I have no idea what is the best way, my only goal was to make it buildable
(not runtime tested as Wine does not work so well for gdb.exe).
Thanks,
Jan
-------------- next part --------------
bfd/ChangeLog
2014-12-22 Jan Kratochvil <jan.kratochvil@redhat.com>
* coffgen.c (N_TMASK, N_BTSHFT): Redefine them on _WIN64.
* cofflink.c (N_TMASK, N_BTSHFT, N_BTMASK): Redefine them on _WIN64.
* peXXigen.c (max, min): Define them only if they do not yet exist.
(IMAGE_NT_OPTIONAL_HDR_MAGIC): Rename to ...
(IMAGE_NT_OPTIONAL_HDR32_MAGIC): ... here.
gdb/ChangeLog
2014-12-22 Jan Kratochvil <jan.kratochvil@redhat.com>
* ada-exp.y: Rename symbols conflicting with MS-Windows to TOK_*.
* ada-lang.c: Rename ada_inferior_data::exception_info to
ada_exception_info due to its conflict on MS-Windows.
* ada-lex.l: Rename symbols conflicting with MS-Windows to TOK_*.
* c-exp.y: Likewise.
* coff-pe-read.c: Do not define symbols conflicting with MS-Windows on
_WIN64.
* coffread.c: Redefine symbols conflicting with MS-Windows on _WIN64.
* cp-name-parser.y: Rename symbols conflicting with MS-Windows to TOK_*.
* d-exp.y: Likewise.
* defs.h: Include sys/time.h.
* f-exp.y: Rename symbols conflicting with MS-Windows to TOK_*.
* go-exp.y: Likewise.
* jv-exp.y: Likewise.
* m2-exp.y: Likewise.
* p-exp.y: Likewise.
* ser-tcp.c (close): Redefine it on _WIN64.
(wait_for_connect): Use TIMEVAL.
* symfile.c (SIZE): Rename to ...
(OVLY_SIZE): ... here.
gdb/gdbserver/ChangeLog
2014-12-22 Jan Kratochvil <jan.kratochvil@redhat.com>
* remote-utils.c (input_interrupt): Use TIMEVAL.
include/coff/ChangeLog
2014-12-22 Jan Kratochvil <jan.kratochvil@redhat.com>
* ecoff.h: Do not define symbols conflicting with MS-Windows on _WIN64.
* internal.h: Include windows.h on _WIN64. Do not define symbols
conflicting with MS-Windows on _WIN64.
* pe.h: Do not define symbols conflicting with MS-Windows on _WIN64.
--- old/orig/bfd/coffgen.c 2014-12-14 02:48:36.000000000 +0100
+++ ./bfd/coffgen.c 2014-12-22 20:08:32.551511966 +0100
@@ -1530,6 +1530,10 @@ coff_pointerize_aux (bfd *abfd,
BFD_ASSERT (! auxent->is_sym);
/* Otherwise patch up. */
+#ifdef _WIN64
+# undef N_TMASK
+# undef N_BTSHFT
+#endif
#define N_TMASK coff_data (abfd)->local_n_tmask
#define N_BTSHFT coff_data (abfd)->local_n_btshft
--- old/orig/bfd/cofflink.c 2014-12-14 02:48:36.000000000 +0100
+++ ./bfd/cofflink.c 2014-12-22 20:07:22.583498498 +0100
@@ -50,6 +50,11 @@ static bfd_boolean coff_link_add_symbols
variables with the appropriate names, and with values from the
coff_data (abfd) structure. */
+#ifdef _WIN64
+# undef N_TMASK
+# undef N_BTSHFT
+# undef N_BTMASK
+#endif
#define N_TMASK n_tmask
#define N_BTSHFT n_btshft
#define N_BTMASK n_btmask
diff -dup -rup orig/bfd/peXXigen.c origx/bfd/peXXigen.c
--- orig/bfd/peXXigen.c 2014-12-14 02:48:37.000000000 +0100
+++ origx/bfd/peXXigen.c 2014-12-22 21:43:43.346869824 +0100
@@ -2394,8 +2394,12 @@ rsrc_print_resource_entries (FILE *
return regions->section_start + (addr - rva_bias) + size;
}
-#define max(a,b) ((a) > (b) ? (a) : (b))
-#define min(a,b) ((a) < (b) ? (a) : (b))
+#ifndef max
+# define max(a,b) ((a) > (b) ? (a) : (b))
+#endif
+#ifndef min
+# define min(a,b) ((a) < (b) ? (a) : (b))
+#endif
static bfd_byte *
rsrc_print_resource_directory (FILE * file,
@@ -2722,8 +2726,8 @@ _bfd_XX_print_private_bfd_data_common (b
fprintf (file, "\nTime/Date\t\t%s", ctime (&t));
}
-#ifndef IMAGE_NT_OPTIONAL_HDR_MAGIC
-# define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b
+#ifndef IMAGE_NT_OPTIONAL_HDR32_MAGIC
+# define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b
#endif
#ifndef IMAGE_NT_OPTIONAL_HDR64_MAGIC
# define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b
@@ -2734,7 +2738,7 @@ _bfd_XX_print_private_bfd_data_common (b
switch (i->Magic)
{
- case IMAGE_NT_OPTIONAL_HDR_MAGIC:
+ case IMAGE_NT_OPTIONAL_HDR32_MAGIC:
name = "PE32";
break;
case IMAGE_NT_OPTIONAL_HDR64_MAGIC:
--- old/orig/gdb/ada-exp.y 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/ada-exp.y 2014-12-22 20:26:50.900743191 +0100
@@ -192,8 +192,8 @@ static struct type *type_system_address
%type <lval> aggregate_component_list
%type <tval> var_or_type
-%token <typed_val> INT NULL_PTR CHARLIT
-%token <typed_val_float> FLOAT
+%token <typed_val> TOK_INT NULL_PTR CHARLIT
+%token <typed_val_float> TOK_FLOAT
%token TRUEKEYWORD FALSEKEYWORD
%token COLONCOLON
%token <sval> STRING NAME DOT_ID
@@ -210,7 +210,7 @@ static struct type *type_system_address
%nonassoc ASSIGN
%left _AND_ OR XOR THEN ELSE
-%left '=' NOTEQUAL '<' '>' LEQ GEQ IN DOTDOT
+%left '=' NOTEQUAL '<' '>' LEQ GEQ TOK_IN DOTDOT
%left '@'
%left '+' '-' '&'
%left UNARY
@@ -433,14 +433,14 @@ relation : simple_exp LEQ simple_exp
{ write_exp_elt_opcode (pstate, BINOP_LEQ); }
;
-relation : simple_exp IN simple_exp DOTDOT simple_exp
+relation : simple_exp TOK_IN simple_exp DOTDOT simple_exp
{ write_exp_elt_opcode (pstate, TERNOP_IN_RANGE); }
- | simple_exp IN primary TICK_RANGE tick_arglist
+ | simple_exp TOK_IN primary TICK_RANGE tick_arglist
{ write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS);
write_exp_elt_longcst (pstate, (LONGEST) $5);
write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS);
}
- | simple_exp IN var_or_type %prec TICK_ACCESS
+ | simple_exp TOK_IN var_or_type %prec TICK_ACCESS
{
if ($3 == NULL)
error (_("Right operand of 'in' must be type"));
@@ -448,17 +448,17 @@ relation : simple_exp IN simple_exp DOTD
write_exp_elt_type (pstate, $3);
write_exp_elt_opcode (pstate, UNOP_IN_RANGE);
}
- | simple_exp NOT IN simple_exp DOTDOT simple_exp
+ | simple_exp NOT TOK_IN simple_exp DOTDOT simple_exp
{ write_exp_elt_opcode (pstate, TERNOP_IN_RANGE);
write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT);
}
- | simple_exp NOT IN primary TICK_RANGE tick_arglist
+ | simple_exp NOT TOK_IN primary TICK_RANGE tick_arglist
{ write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS);
write_exp_elt_longcst (pstate, (LONGEST) $6);
write_exp_elt_opcode (pstate, BINOP_IN_BOUNDS);
write_exp_elt_opcode (pstate, UNOP_LOGICAL_NOT);
}
- | simple_exp NOT IN var_or_type %prec TICK_ACCESS
+ | simple_exp NOT TOK_IN var_or_type %prec TICK_ACCESS
{
if ($4 == NULL)
error (_("Right operand of 'in' must be type"));
@@ -567,7 +567,7 @@ primary : primary TICK_ACCESS
tick_arglist : %prec '('
{ $$ = 1; }
- | '(' INT ')'
+ | '(' TOK_INT ')'
{ $$ = $2.val; }
;
@@ -591,7 +591,7 @@ opt_type_prefix :
;
-primary : INT
+primary : TOK_INT
{ write_int (pstate, (LONGEST) $1.val, $1.type); }
;
@@ -603,7 +603,7 @@ primary : CHARLIT
}
;
-primary : FLOAT
+primary : TOK_FLOAT
{ write_exp_elt_opcode (pstate, OP_DOUBLE);
write_exp_elt_type (pstate, $1.type);
write_exp_elt_dblcst (pstate, $1.dval);
--- old/orig/gdb/ada-lang.c 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/ada-lang.c 2014-12-22 20:44:15.484005755 +0100
@@ -382,7 +382,7 @@ struct ada_inferior_data
/* The exception_support_info data. This data is used to determine
how to implement support for Ada exception catchpoints in a given
inferior. */
- const struct exception_support_info *exception_info;
+ const struct exception_support_info *ada_exception_info;
};
/* Our key to this module's inferior data. */
@@ -11530,7 +11530,7 @@ ada_has_this_exception_support (const st
/* Inspect the Ada runtime and determine which exception info structure
should be used to provide support for exception catchpoints.
- This function will always set the per-inferior exception_info,
+ This function will always set the per-inferior ada_exception_info,
or raise an error. */
static void
@@ -11539,20 +11539,20 @@ ada_exception_support_info_sniffer (void
struct ada_inferior_data *data = get_ada_inferior_data (current_inferior ());
/* If the exception info is already known, then no need to recompute it. */
- if (data->exception_info != NULL)
+ if (data->ada_exception_info != NULL)
return;
/* Check the latest (default) exception support info. */
if (ada_has_this_exception_support (&default_exception_support_info))
{
- data->exception_info = &default_exception_support_info;
+ data->ada_exception_info = &default_exception_support_info;
return;
}
/* Try our fallback exception suport info. */
if (ada_has_this_exception_support (&exception_support_info_fallback))
{
- data->exception_info = &exception_support_info_fallback;
+ data->ada_exception_info = &exception_support_info_fallback;
return;
}
@@ -11712,7 +11712,7 @@ ada_unhandled_exception_name_addr_from_r
make_cleanup (xfree, func_name);
if (strcmp (func_name,
- data->exception_info->catch_exception_sym) == 0)
+ data->ada_exception_info->catch_exception_sym) == 0)
break; /* We found the frame we were looking for... */
fi = get_prev_frame (fi);
}
@@ -11745,7 +11745,7 @@ ada_exception_name_addr_1 (enum ada_exce
break;
case ada_catch_exception_unhandled:
- return data->exception_info->unhandled_exception_name_addr ();
+ return data->ada_exception_info->unhandled_exception_name_addr ();
break;
case ada_catch_assert:
@@ -12477,18 +12477,18 @@ ada_exception_sym_name (enum ada_excepti
{
struct ada_inferior_data *data = get_ada_inferior_data (current_inferior ());
- gdb_assert (data->exception_info != NULL);
+ gdb_assert (data->ada_exception_info != NULL);
switch (ex)
{
case ada_catch_exception:
- return (data->exception_info->catch_exception_sym);
+ return (data->ada_exception_info->catch_exception_sym);
break;
case ada_catch_exception_unhandled:
- return (data->exception_info->catch_exception_unhandled_sym);
+ return (data->ada_exception_info->catch_exception_unhandled_sym);
break;
case ada_catch_assert:
- return (data->exception_info->catch_assert_sym);
+ return (data->ada_exception_info->catch_assert_sym);
break;
default:
internal_error (__FILE__, __LINE__,
--- old/orig/gdb/ada-lex.l 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/ada-lex.l 2014-12-22 20:31:00.939803092 +0100
@@ -182,7 +182,7 @@ thread{WHITE}+{DIG} {
abs { return ABS; }
and { return _AND_; }
else { return ELSE; }
-in { return IN; }
+in { return TOK_IN; }
mod { return MOD; }
new { return NEW; }
not { return NOT; }
@@ -319,7 +319,7 @@ canonicalizeNumeral (char *s1, const cha
/* Interprets the prefix of NUM that consists of digits of the given BASE
as an integer of that BASE, with the string EXP as an exponent.
- Puts value in yylval, and returns INT, if the string is valid. Causes
+ Puts value in yylval, and returns TOK_INT, if the string is valid. Causes
an error if the number is improperly formated. BASE, if NULL, defaults
to "10", and EXP to "1". The EXP does not contain a leading 'e' or 'E'.
*/
@@ -383,13 +383,13 @@ processInt (struct parser_state *par_sta
- (LONGEST_SIGN>>1) - (LONGEST_SIGN>>1);
else
yylval.typed_val.val = (LONGEST) result;
- return INT;
+ return TOK_INT;
}
else
yylval.typed_val.type = type_long_long (par_state);
yylval.typed_val.val = (LONGEST) result;
- return INT;
+ return TOK_INT;
}
static int
@@ -405,7 +405,7 @@ processReal (struct parser_state *par_st
/ TARGET_CHAR_BIT)
yylval.typed_val_float.type = type_long_double (par_state);
- return FLOAT;
+ return TOK_FLOAT;
}
--- old/orig/gdb/c-exp.y 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/c-exp.y 2014-12-22 20:24:33.564713894 +0100
@@ -195,8 +195,8 @@ static void c_print_token (FILE *file, i
%type <type_stack> ptr_operator_ts abs_decl direct_abs_decl
-%token <typed_val_int> INT
-%token <typed_val_float> FLOAT
+%token <typed_val_int> TOK_INT
+%token <typed_val_float> TFLOAT
%token <typed_val_decfloat> DECFLOAT
/* Both NAME and TYPENAME tokens represent symbols in the input,
@@ -210,7 +210,7 @@ static void c_print_token (FILE *file, i
%token <tsval> STRING
%token <sval> NSSTRING /* ObjC Foundation "NSString" literal */
%token SELECTOR /* ObjC "@selector" pseudo-operator */
-%token <tsval> CHAR
+%token <tsval> TOK_CHAR
%token <ssym> NAME /* BLOCKNAME defined below to give it higher precedence. */
%token <ssym> UNKNOWN_CPP_NAME
%token <voidval> COMPLETE
@@ -236,8 +236,8 @@ static void c_print_token (FILE *file, i
%token OPERATOR
%token STRUCT CLASS UNION ENUM SIZEOF UNSIGNED COLONCOLON
%token TEMPLATE
-%token ERROR
-%token NEW DELETE
+%token TOK_ERROR
+%token NEW TOK_DELETE
%type <sval> operator
%token REINTERPRET_CAST DYNAMIC_CAST STATIC_CAST CONST_CAST
%token ENTRY
@@ -247,7 +247,7 @@ static void c_print_token (FILE *file, i
/* Special type cases, put in to allow the parser to distinguish different
legal basetypes. */
-%token SIGNED_KEYWORD LONG SHORT INT_KEYWORD CONST_KEYWORD VOLATILE_KEYWORD DOUBLE_KEYWORD
+%token SIGNED_KEYWORD TOK_LONG TOK_SHORT INT_KEYWORD CONST_KEYWORD VOLATILE_KEYWORD DOUBLE_KEYWORD
%token <sval> VARIABLE
@@ -727,14 +727,14 @@ exp : exp ASSIGN_MODIFY exp
BINOP_ASSIGN_MODIFY); }
;
-exp : INT
+exp : TOK_INT
{ write_exp_elt_opcode (pstate, OP_LONG);
write_exp_elt_type (pstate, $1.type);
write_exp_elt_longcst (pstate, (LONGEST) ($1.val));
write_exp_elt_opcode (pstate, OP_LONG); }
;
-exp : CHAR
+exp : TOK_CHAR
{
struct stoken_vector vec;
vec.len = 1;
@@ -756,7 +756,7 @@ exp : NAME_OR_INT
;
-exp : FLOAT
+exp : TFLOAT
{ write_exp_elt_opcode (pstate, OP_DOUBLE);
write_exp_elt_type (pstate, $1.type);
write_exp_elt_dblcst (pstate, $1.dval);
@@ -1192,9 +1192,9 @@ array_mod: '[' ']'
{ $$ = -1; }
| OBJC_LBRAC ']'
{ $$ = -1; }
- | '[' INT ']'
+ | '[' TOK_INT ']'
{ $$ = $2.val; }
- | OBJC_LBRAC INT ']'
+ | OBJC_LBRAC TOK_INT ']'
{ $$ = $2.val; }
;
@@ -1222,103 +1222,103 @@ typebase /* Implements (approximately):
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"int"); }
- | LONG
+ | TOK_LONG
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long"); }
- | SHORT
+ | TOK_SHORT
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"short"); }
- | LONG INT_KEYWORD
+ | TOK_LONG INT_KEYWORD
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long"); }
- | LONG SIGNED_KEYWORD INT_KEYWORD
+ | TOK_LONG SIGNED_KEYWORD INT_KEYWORD
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long"); }
- | LONG SIGNED_KEYWORD
+ | TOK_LONG SIGNED_KEYWORD
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long"); }
- | SIGNED_KEYWORD LONG INT_KEYWORD
+ | SIGNED_KEYWORD TOK_LONG INT_KEYWORD
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long"); }
- | UNSIGNED LONG INT_KEYWORD
+ | UNSIGNED TOK_LONG INT_KEYWORD
{ $$ = lookup_unsigned_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long"); }
- | LONG UNSIGNED INT_KEYWORD
+ | TOK_LONG UNSIGNED INT_KEYWORD
{ $$ = lookup_unsigned_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long"); }
- | LONG UNSIGNED
+ | TOK_LONG UNSIGNED
{ $$ = lookup_unsigned_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long"); }
- | LONG LONG
+ | TOK_LONG TOK_LONG
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long long"); }
- | LONG LONG INT_KEYWORD
+ | TOK_LONG TOK_LONG INT_KEYWORD
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long long"); }
- | LONG LONG SIGNED_KEYWORD INT_KEYWORD
+ | TOK_LONG TOK_LONG SIGNED_KEYWORD INT_KEYWORD
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long long"); }
- | LONG LONG SIGNED_KEYWORD
+ | TOK_LONG TOK_LONG SIGNED_KEYWORD
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long long"); }
- | SIGNED_KEYWORD LONG LONG
+ | SIGNED_KEYWORD TOK_LONG TOK_LONG
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long long"); }
- | SIGNED_KEYWORD LONG LONG INT_KEYWORD
+ | SIGNED_KEYWORD TOK_LONG TOK_LONG INT_KEYWORD
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long long"); }
- | UNSIGNED LONG LONG
+ | UNSIGNED TOK_LONG TOK_LONG
{ $$ = lookup_unsigned_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long long"); }
- | UNSIGNED LONG LONG INT_KEYWORD
+ | UNSIGNED TOK_LONG TOK_LONG INT_KEYWORD
{ $$ = lookup_unsigned_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long long"); }
- | LONG LONG UNSIGNED
+ | TOK_LONG TOK_LONG UNSIGNED
{ $$ = lookup_unsigned_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long long"); }
- | LONG LONG UNSIGNED INT_KEYWORD
+ | TOK_LONG TOK_LONG UNSIGNED INT_KEYWORD
{ $$ = lookup_unsigned_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long long"); }
- | SHORT INT_KEYWORD
+ | TOK_SHORT INT_KEYWORD
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"short"); }
- | SHORT SIGNED_KEYWORD INT_KEYWORD
+ | TOK_SHORT SIGNED_KEYWORD INT_KEYWORD
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"short"); }
- | SHORT SIGNED_KEYWORD
+ | TOK_SHORT SIGNED_KEYWORD
{ $$ = lookup_signed_typename (parse_language (pstate),
parse_gdbarch (pstate),
"short"); }
- | UNSIGNED SHORT INT_KEYWORD
+ | UNSIGNED TOK_SHORT INT_KEYWORD
{ $$ = lookup_unsigned_typename (parse_language (pstate),
parse_gdbarch (pstate),
"short"); }
- | SHORT UNSIGNED
+ | TOK_SHORT UNSIGNED
{ $$ = lookup_unsigned_typename (parse_language (pstate),
parse_gdbarch (pstate),
"short"); }
- | SHORT UNSIGNED INT_KEYWORD
+ | TOK_SHORT UNSIGNED INT_KEYWORD
{ $$ = lookup_unsigned_typename (parse_language (pstate),
parse_gdbarch (pstate),
"short"); }
@@ -1328,7 +1328,7 @@ typebase /* Implements (approximately):
"double",
(struct block *) NULL,
0); }
- | LONG DOUBLE_KEYWORD
+ | TOK_LONG DOUBLE_KEYWORD
{ $$ = lookup_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long double",
@@ -1428,7 +1428,7 @@ typename: TYPENAME
parse_gdbarch (pstate),
"int");
}
- | LONG
+ | TOK_LONG
{
$$.stoken.ptr = "long";
$$.stoken.length = 4;
@@ -1436,7 +1436,7 @@ typename: TYPENAME
parse_gdbarch (pstate),
"long");
}
- | SHORT
+ | TOK_SHORT
{
$$.stoken.ptr = "short";
$$.stoken.length = 5;
@@ -1503,15 +1503,15 @@ const_or_volatile_noopt: const_and_vol
operator: OPERATOR NEW
{ $$ = operator_stoken (" new"); }
- | OPERATOR DELETE
+ | OPERATOR TOK_DELETE
{ $$ = operator_stoken (" delete"); }
| OPERATOR NEW '[' ']'
{ $$ = operator_stoken (" new[]"); }
- | OPERATOR DELETE '[' ']'
+ | OPERATOR TOK_DELETE '[' ']'
{ $$ = operator_stoken (" delete[]"); }
| OPERATOR NEW OBJC_LBRAC ']'
{ $$ = operator_stoken (" new[]"); }
- | OPERATOR DELETE OBJC_LBRAC ']'
+ | OPERATOR TOK_DELETE OBJC_LBRAC ']'
{ $$ = operator_stoken (" delete[]"); }
| OPERATOR '+'
{ $$ = operator_stoken ("+"); }
@@ -1819,8 +1819,8 @@ parse_number (struct parser_state *par_s
if (! parse_c_float (parse_gdbarch (par_state), p, len,
&putithere->typed_val_float.dval,
&putithere->typed_val_float.type))
- return ERROR;
- return FLOAT;
+ return TOK_ERROR;
+ return TFLOAT;
}
/* Handle base-switching prefixes 0x, 0t, 0d, 0 */
@@ -1874,7 +1874,7 @@ parse_number (struct parser_state *par_s
if (c >= '0' && c <= '9')
{
if (found_suffix)
- return ERROR;
+ return TOK_ERROR;
n += i = c - '0';
}
else
@@ -1882,7 +1882,7 @@ parse_number (struct parser_state *par_s
if (base > 10 && c >= 'a' && c <= 'f')
{
if (found_suffix)
- return ERROR;
+ return TOK_ERROR;
n += i = c - 'a' + 10;
}
else if (c == 'l')
@@ -1896,10 +1896,10 @@ parse_number (struct parser_state *par_s
found_suffix = 1;
}
else
- return ERROR; /* Char not a digit */
+ return TOK_ERROR; /* Char not a digit */
}
if (i >= base)
- return ERROR; /* Invalid digit in this base */
+ return TOK_ERROR; /* Invalid digit in this base */
/* Portably test for overflow (only works for nonzero values, so make
a second check for zero). FIXME: Can't we just make n and prevn
@@ -1982,7 +1982,7 @@ parse_number (struct parser_state *par_s
putithere->typed_val_int.type = signed_type;
}
- return INT;
+ return TOK_INT;
}
/* Temporary obstack used for holding strings. */
@@ -2157,7 +2157,7 @@ c_parse_escape (const char **ptr, struct
character may be wide or unicode. *OUTPTR is set to just after the
end of the literal in the input string. The resulting token is
stored in VALUE. This returns a token value, either STRING or
- CHAR, depending on what was parsed. *HOST_CHARS is set to the
+ TOK_CHAR, depending on what was parsed. *HOST_CHARS is set to the
number of host characters in the literal. */
static int
parse_string_or_char (const char *tokptr, const char **outptr,
@@ -2252,7 +2252,7 @@ parse_string_or_char (const char *tokptr
*outptr = tokptr;
- return quote == '"' ? (is_objc ? NSSTRING : STRING) : CHAR;
+ return quote == '"' ? (is_objc ? NSSTRING : STRING) : TOK_CHAR;
}
/* This is used to associate some attributes with a token. */
@@ -2326,14 +2326,14 @@ static const struct token ident_tokens[]
{"false", FALSEKEYWORD, OP_NULL, FLAG_CXX},
{"class", CLASS, OP_NULL, FLAG_CXX},
{"union", UNION, OP_NULL, 0},
- {"short", SHORT, OP_NULL, 0},
+ {"short", TOK_SHORT, OP_NULL, 0},
{"const", CONST_KEYWORD, OP_NULL, 0},
{"enum", ENUM, OP_NULL, 0},
- {"long", LONG, OP_NULL, 0},
+ {"long", TOK_LONG, OP_NULL, 0},
{"true", TRUEKEYWORD, OP_NULL, FLAG_CXX},
{"int", INT_KEYWORD, OP_NULL, 0},
{"new", NEW, OP_NULL, FLAG_CXX},
- {"delete", DELETE, OP_NULL, FLAG_CXX},
+ {"delete", TOK_DELETE, OP_NULL, FLAG_CXX},
{"operator", OPERATOR, OP_NULL, FLAG_CXX},
{"and", ANDAND, BINOP_END, FLAG_CXX},
@@ -2637,7 +2637,7 @@ lex_one_token (struct parser_state *par_
}
toktype = parse_number (par_state, tokstart, p - tokstart,
got_dot|got_e, &yylval);
- if (toktype == ERROR)
+ if (toktype == TOK_ERROR)
{
char *err_copy = (char *) alloca (p - tokstart + 1);
@@ -2713,7 +2713,7 @@ lex_one_token (struct parser_state *par_
int host_len;
int result = parse_string_or_char (tokstart, &lexptr, &yylval.tsval,
&host_len);
- if (result == CHAR)
+ if (result == TOK_CHAR)
{
if (host_len == 0)
error (_("Empty character constant."));
@@ -2972,7 +2972,7 @@ classify_name (struct parser_state *par_
YYSTYPE newlval; /* Its value is ignored. */
int hextype = parse_number (par_state, copy, yylval.sval.length,
0, &newlval);
- if (hextype == INT)
+ if (hextype == TOK_INT)
{
yylval.ssym.sym = sym;
yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL;
@@ -3009,7 +3009,7 @@ classify_inner_name (struct parser_state
type = check_typedef (context);
if (!type_aggregate_p (type))
- return ERROR;
+ return TOK_ERROR;
copy = copy_name (yylval.ssym.stoken);
yylval.ssym.sym = cp_lookup_nested_symbol (type, copy, block);
@@ -3027,7 +3027,7 @@ classify_inner_name (struct parser_state
return TYPENAME;
}
- return ERROR;
+ return TOK_ERROR;
}
switch (SYMBOL_CLASS (yylval.ssym.sym))
@@ -3046,7 +3046,7 @@ classify_inner_name (struct parser_state
return TYPENAME;
}
}
- return ERROR;
+ return TOK_ERROR;
case LOC_TYPEDEF:
yylval.tsym.type = SYMBOL_TYPE (yylval.ssym.sym);;
@@ -3273,13 +3273,13 @@ c_print_token (FILE *file, int type, YYS
{
switch (type)
{
- case INT:
+ case TOK_INT:
fprintf (file, "typed_val_int<%s, %s>",
TYPE_SAFE_NAME (value.typed_val_int.type),
pulongest (value.typed_val_int.val));
break;
- case CHAR:
+ case TOK_CHAR:
case STRING:
{
char *copy = alloca (value.tsval.length + 1);
--- old/orig/gdb/coff-pe-read.c 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/coff-pe-read.c 2014-12-22 20:41:57.160970473 +0100
@@ -57,9 +57,11 @@ struct read_pe_section_data
char *section_name; /* Recorded section name. */
};
+#ifndef _WIN64
#define IMAGE_SCN_CNT_CODE 0x20
#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x40
#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x80
+#endif
#define PE_SECTION_INDEX_TEXT 0
#define PE_SECTION_INDEX_DATA 1
#define PE_SECTION_INDEX_BSS 2
--- old/orig/gdb/coffread.c 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/coffread.c 2014-12-22 20:41:36.096965101 +0100
@@ -106,6 +106,12 @@ static unsigned local_n_btshft;
static unsigned local_n_tmask;
static unsigned local_n_tshift;
+#ifdef _WIN64
+# undef N_BTMASK
+# undef N_BTSHFT
+# undef N_TMASK
+# undef N_TSHIFT
+#endif
#define N_BTMASK local_n_btmask
#define N_BTSHFT local_n_btshft
#define N_TMASK local_n_tmask
--- old/orig/gdb/cp-name-parser.y 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/cp-name-parser.y 2014-12-22 20:26:04.620733318 +0100
@@ -302,22 +302,22 @@ make_name (const char *name, int len)
%type <lval> int_part int_seq
-%token <comp> INT
-%token <comp> FLOAT
+%token <comp> TOK_INT
+%token <comp> TOK_FLOAT
%token <comp> NAME
%type <comp> name
%token STRUCT CLASS UNION ENUM SIZEOF UNSIGNED COLONCOLON
%token TEMPLATE
-%token ERROR
-%token NEW DELETE OPERATOR
+%token TOK_ERROR
+%token NEW TOK_DELETE OPERATOR
%token STATIC_CAST REINTERPRET_CAST DYNAMIC_CAST
/* Special type cases, put in to allow the parser to distinguish different
legal basetypes. */
-%token SIGNED_KEYWORD LONG SHORT INT_KEYWORD CONST_KEYWORD VOLATILE_KEYWORD DOUBLE_KEYWORD BOOL
-%token ELLIPSIS RESTRICT VOID FLOAT_KEYWORD CHAR WCHAR_T
+%token SIGNED_KEYWORD TOK_LONG TOK_SHORT INT_KEYWORD CONST_KEYWORD VOLATILE_KEYWORD DOUBLE_KEYWORD TOK_BOOL
+%token ELLIPSIS RESTRICT TOK_VOID FLOAT_KEYWORD TOK_CHAR WCHAR_T
%token <opname> ASSIGN_MODIFY
@@ -335,16 +335,16 @@ make_name (const char *name, int len)
associate greedily. */
%nonassoc NAME
-/* Give NEW and DELETE lower precedence than ']', because we can not
+/* Give NEW and TOK_DELETE lower precedence than ']', because we can not
have an array of type operator new. This causes NEW '[' to be
parsed as operator new[]. */
-%nonassoc NEW DELETE
+%nonassoc NEW TOK_DELETE
-/* Give VOID higher precedence than NAME. Then we can use %prec NAME
- to prefer (VOID) to (function_args). */
-%nonassoc VOID
+/* Give TOK_VOID higher precedence than NAME. Then we can use %prec NAME
+ to prefer (TOK_VOID) to (function_args). */
+%nonassoc TOK_VOID
-/* Give VOID lower precedence than ')' for similar reasons. */
+/* Give TOK_VOID lower precedence than ')' for similar reasons. */
%nonassoc ')'
%left ','
@@ -445,7 +445,7 @@ operator : OPERATOR NEW
It would abort on unrecognized string otherwise. */
$$ = make_operator ("new", 3);
}
- | OPERATOR DELETE
+ | OPERATOR TOK_DELETE
{
/* Match the whitespacing of cplus_demangle_operators.
It would abort on unrecognized string otherwise. */
@@ -457,7 +457,7 @@ operator : OPERATOR NEW
It would abort on unrecognized string otherwise. */
$$ = make_operator ("new[]", 3);
}
- | OPERATOR DELETE '[' ']'
+ | OPERATOR TOK_DELETE '[' ']'
{
/* Match the whitespacing of cplus_demangle_operators.
It would abort on unrecognized string otherwise. */
@@ -692,7 +692,7 @@ function_arglist: '(' function_args ')'
{ $$.comp = fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, $2.comp);
$$.last = &d_left ($$.comp);
$$.comp = d_qualify ($$.comp, $4, 1); }
- | '(' VOID ')' qualifiers_opt
+ | '(' TOK_VOID ')' qualifiers_opt
{ $$.comp = fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE, NULL, NULL);
$$.last = &d_left ($$.comp);
$$.comp = d_qualify ($$.comp, $4, 1); }
@@ -730,11 +730,11 @@ int_part : INT_KEYWORD
{ $$ = INT_SIGNED; }
| UNSIGNED
{ $$ = INT_UNSIGNED; }
- | CHAR
+ | TOK_CHAR
{ $$ = INT_CHAR; }
- | LONG
+ | TOK_LONG
{ $$ = INT_LONG; }
- | SHORT
+ | TOK_SHORT
{ $$ = INT_SHORT; }
;
@@ -749,13 +749,13 @@ builtin_type : int_seq
{ $$ = make_builtin_type ("float"); }
| DOUBLE_KEYWORD
{ $$ = make_builtin_type ("double"); }
- | LONG DOUBLE_KEYWORD
+ | TOK_LONG DOUBLE_KEYWORD
{ $$ = make_builtin_type ("long double"); }
- | BOOL
+ | TOK_BOOL
{ $$ = make_builtin_type ("bool"); }
| WCHAR_T
{ $$ = make_builtin_type ("wchar_t"); }
- | VOID
+ | TOK_VOID
{ $$ = make_builtin_type ("void"); }
;
@@ -791,7 +791,7 @@ array_indicator : '[' ']'
{ $$ = make_empty (DEMANGLE_COMPONENT_ARRAY_TYPE);
d_left ($$) = NULL;
}
- | '[' INT ']'
+ | '[' TOK_INT ']'
{ $$ = make_empty (DEMANGLE_COMPONENT_ARRAY_TYPE);
d_left ($$) = $2;
}
@@ -1185,11 +1185,11 @@ exp : exp '?' exp ':' exp %prec '?'
}
;
-exp : INT
+exp : TOK_INT
;
/* Not generally allowed. */
-exp : FLOAT
+exp : TOK_FLOAT
;
exp : SIZEOF '(' type ')' %prec UNARY
@@ -1396,12 +1396,12 @@ parse_number (const char *p, int len, in
else if (ISDIGIT (c) || c == '.')
type = make_builtin_type ("double");
else
- return ERROR;
+ return TOK_ERROR;
name = make_name (p, len);
yylval.comp = fill_comp (literal_type, type, name);
- return FLOAT;
+ return TOK_FLOAT;
}
/* This treats 0x1 and 1 as different literals. We also do not
@@ -1450,7 +1450,7 @@ parse_number (const char *p, int len, in
name = make_name (p, len);
yylval.comp = fill_comp (literal_type, type, name);
- return INT;
+ return TOK_INT;
}
static char backslashable[] = "abefnrtv";
@@ -1608,14 +1608,14 @@ yylex (void)
else if (c == '\'')
{
yyerror (_("empty character constant"));
- return ERROR;
+ return TOK_ERROR;
}
c = *lexptr++;
if (c != '\'')
{
yyerror (_("invalid character constant"));
- return ERROR;
+ return TOK_ERROR;
}
/* FIXME: We should refer to a canonical form of the character,
@@ -1626,7 +1626,7 @@ yylex (void)
make_builtin_type ("char"),
make_name (tokstart, lexptr - tokstart));
- return INT;
+ return TOK_INT;
case '(':
if (strncmp (tokstart, "(anonymous namespace)", 21) == 0)
@@ -1732,14 +1732,14 @@ yylex (void)
break;
}
toktype = parse_number (tokstart, p - tokstart, got_dot|got_e);
- if (toktype == ERROR)
+ if (toktype == TOK_ERROR)
{
char *err_copy = (char *) alloca (p - tokstart + 1);
memcpy (err_copy, tokstart, p - tokstart);
err_copy[p - tokstart] = 0;
yyerror (_("invalid number"));
- return ERROR;
+ return TOK_ERROR;
}
lexptr = p;
return toktype;
@@ -1815,14 +1815,14 @@ yylex (void)
case '"':
/* These can't occur in C++ names. */
yyerror (_("unexpected string literal"));
- return ERROR;
+ return TOK_ERROR;
}
if (!(c == '_' || c == '$' || ISALPHA (c)))
{
/* We must have come across a bad character (e.g. ';'). */
yyerror (_("invalid character"));
- return ERROR;
+ return TOK_ERROR;
}
/* It's a name. See how long it is. */
@@ -1905,7 +1905,7 @@ yylex (void)
HANDLE_SPECIAL ("vtable for ", DEMANGLE_COMPONENT_VTABLE);
if (strncmp (tokstart, "delete", 6) == 0)
- return DELETE;
+ return TOK_DELETE;
if (strncmp (tokstart, "struct", 6) == 0)
return STRUCT;
if (strncmp (tokstart, "signed", 6) == 0)
@@ -1926,21 +1926,21 @@ yylex (void)
if (strncmp (tokstart, "float", 5) == 0)
return FLOAT_KEYWORD;
if (strncmp (tokstart, "short", 5) == 0)
- return SHORT;
+ return TOK_SHORT;
if (strncmp (tokstart, "const", 5) == 0)
return CONST_KEYWORD;
break;
case 4:
if (strncmp (tokstart, "void", 4) == 0)
- return VOID;
+ return TOK_VOID;
if (strncmp (tokstart, "bool", 4) == 0)
- return BOOL;
+ return TOK_BOOL;
if (strncmp (tokstart, "char", 4) == 0)
- return CHAR;
+ return TOK_CHAR;
if (strncmp (tokstart, "enum", 4) == 0)
return ENUM;
if (strncmp (tokstart, "long", 4) == 0)
- return LONG;
+ return TOK_LONG;
if (strncmp (tokstart, "true", 4) == 0)
return TRUEKEYWORD;
break;
--- old/orig/gdb/d-exp.y 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/d-exp.y 2014-12-22 20:32:43.627829285 +0100
@@ -184,7 +184,7 @@ static void push_expression_name (struct
%type <ival> ArrayLiteral
%token ENTRY
-%token ERROR
+%token TOK_ERROR
/* Keywords that have a constant value. */
%token TRUE_KEYWORD FALSE_KEYWORD NULL_KEYWORD
@@ -688,7 +688,7 @@ parse_number (struct parser_state *ps, c
len = strlen (s);
if (! parse_float (s, len, &putithere->typed_val_float.dval, &suffix))
- return ERROR;
+ return TOK_ERROR;
suffix_len = s + len - suffix;
@@ -716,7 +716,7 @@ parse_number (struct parser_state *ps, c
= parse_d_type (ps)->builtin_idouble;
}
else
- return ERROR;
+ return TOK_ERROR;
}
else if (suffix_len == 2)
{
@@ -732,10 +732,10 @@ parse_number (struct parser_state *ps, c
= parse_d_type (ps)->builtin_ireal;
}
else
- return ERROR;
+ return TOK_ERROR;
}
else
- return ERROR;
+ return TOK_ERROR;
return FLOAT_LITERAL;
}
@@ -781,7 +781,7 @@ parse_number (struct parser_state *ps, c
if (c >= '0' && c <= '9')
{
if (found_suffix)
- return ERROR;
+ return TOK_ERROR;
n += i = c - '0';
}
else
@@ -789,7 +789,7 @@ parse_number (struct parser_state *ps, c
if (base > 10 && c >= 'a' && c <= 'f')
{
if (found_suffix)
- return ERROR;
+ return TOK_ERROR;
n += i = c - 'a' + 10;
}
else if (c == 'l' && long_p == 0)
@@ -803,10 +803,10 @@ parse_number (struct parser_state *ps, c
found_suffix = 1;
}
else
- return ERROR; /* Char not a digit */
+ return TOK_ERROR; /* Char not a digit */
}
if (i >= base)
- return ERROR; /* Invalid digit in this base. */
+ return TOK_ERROR; /* Invalid digit in this base. */
/* Portably test for integer overflow. */
if (c != 'l' && c != 'u')
{
@@ -1448,7 +1448,7 @@ yylex (void)
toktype = parse_number (pstate, tokstart, p - tokstart,
got_dot|got_e, &yylval);
- if (toktype == ERROR)
+ if (toktype == TOK_ERROR)
{
char *err_copy = (char *) alloca (p - tokstart + 1);
--- old/orig/gdb/defs.h 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/defs.h 2014-12-22 20:39:33.882933928 +0100
@@ -27,6 +27,10 @@
#include "common-defs.h"
+// gnulib sys/time.h will include MinGW headers which provide
+// alternative binary incompatible definition of struct timeval.
+#include <sys/time.h>
+
#include <sys/types.h>
#include <limits.h>
#include <stdint.h>
--- gdb-7.8.50.20141222/gdb/f-exp.y-orig 2014-12-22 02:48:39.000000000 +0100
+++ gdb-7.8.50.20141222/gdb/f-exp.y 2014-12-22 22:03:01.005129083 +0100
@@ -175,8 +175,8 @@ static int parse_number (struct parser_s
%type <voidval> func_mod direct_abs_decl abs_decl
%type <tval> ptype
-%token <typed_val> INT
-%token <dval> FLOAT
+%token <typed_val> TOK_INT
+%token <dval> TOK_FLOAT
/* Both NAME and TYPENAME tokens represent symbols in the input,
and both convey their data as strings.
@@ -201,7 +201,7 @@ static int parse_number (struct parser_s
%token <ssym> NAME_OR_INT
%token SIZEOF
-%token ERROR
+%token TOK_ERROR
/* Special type cases, put in to allow the parser to distinguish different
legal basetypes. */
@@ -449,7 +449,7 @@ exp : exp ASSIGN_MODIFY exp
write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY); }
;
-exp : INT
+exp : TOK_INT
{ write_exp_elt_opcode (pstate, OP_LONG);
write_exp_elt_type (pstate, $1.type);
write_exp_elt_longcst (pstate, (LONGEST) ($1.val));
@@ -467,7 +467,7 @@ exp : NAME_OR_INT
write_exp_elt_opcode (pstate, OP_LONG); }
;
-exp : FLOAT
+exp : TOK_FLOAT
{ write_exp_elt_opcode (pstate, OP_DOUBLE);
write_exp_elt_type (pstate,
parse_f_type (pstate)
@@ -713,7 +713,7 @@ parse_number (struct parser_state *par_s
*tmp2 = 'e';
putithere->dval = atof (tmp);
free (tmp);
- return FLOAT;
+ return TOK_FLOAT;
}
/* Handle base-switching prefixes 0x, 0t, 0d, 0 */
@@ -764,9 +764,9 @@ parse_number (struct parser_state *par_s
else if (c >= 'a' && c <= 'f')
i = c - 'a' + 10;
else
- return ERROR; /* Char not a digit */
+ return TOK_ERROR; /* Char not a digit */
if (i >= base)
- return ERROR; /* Invalid digit in this base */
+ return TOK_ERROR; /* Invalid digit in this base */
n *= base;
n += i;
}
@@ -825,7 +825,7 @@ parse_number (struct parser_state *par_s
else
putithere->typed_val.type = signed_type;
- return INT;
+ return TOK_INT;
}
struct token
@@ -1117,7 +1117,7 @@ yylex (void)
toktype = parse_number (pstate, tokstart, p - tokstart,
got_dot|got_e|got_d,
&yylval);
- if (toktype == ERROR)
+ if (toktype == TOK_ERROR)
{
char *err_copy = (char *) alloca (p - tokstart + 1);
@@ -1244,7 +1244,7 @@ yylex (void)
{
YYSTYPE newlval; /* Its value is ignored. */
hextype = parse_number (pstate, tokstart, namelen, 0, &newlval);
- if (hextype == INT)
+ if (hextype == TOK_INT)
{
yylval.ssym.sym = sym;
yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL;
--- old/orig/gdb/gdbserver/remote-utils.c 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/gdbserver/remote-utils.c 2014-12-22 20:45:36.881026517 +0100
@@ -727,7 +727,7 @@ static void
input_interrupt (int unused)
{
fd_set readset;
- struct timeval immediate = { 0, 0 };
+ TIMEVAL immediate = { 0, 0 };
/* Protect against spurious interrupts. This has been observed to
be a problem under NetBSD 1.4 and 1.5. */
--- old/orig/gdb/go-exp.y 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/go-exp.y 2014-12-22 20:33:34.698842311 +0100
@@ -172,8 +172,8 @@ static int parse_go_float (struct gdbarc
%type <lval> rcurly
%type <tval> type
-%token <typed_val_int> INT
-%token <typed_val_float> FLOAT
+%token <typed_val_int> TOK_INT
+%token <typed_val_float> TOK_FLOAT
/* Both NAME and TYPENAME tokens represent symbols in the input,
and both convey their data as strings.
@@ -185,7 +185,7 @@ static int parse_go_float (struct gdbarc
%token <tsval> RAW_STRING
%token <tsval> STRING
-%token <tsval> CHAR
+%token <tsval> TOK_CHAR
%token <ssym> NAME
%token <tsym> TYPENAME /* Not TYPE_NAME cus already taken. */
%token <voidval> COMPLETE
@@ -208,7 +208,7 @@ static int parse_go_float (struct gdbarc
%token CONST_KEYWORD
%token DOTDOTDOT
%token ENTRY
-%token ERROR
+%token TOK_ERROR
/* Special type cases. */
%token BYTE_KEYWORD /* An alias of uint8. */
@@ -455,14 +455,14 @@ exp : exp ASSIGN_MODIFY exp
write_exp_elt_opcode (pstate, BINOP_ASSIGN_MODIFY); }
;
-exp : INT
+exp : TOK_INT
{ write_exp_elt_opcode (pstate, OP_LONG);
write_exp_elt_type (pstate, $1.type);
write_exp_elt_longcst (pstate, (LONGEST)($1.val));
write_exp_elt_opcode (pstate, OP_LONG); }
;
-exp : CHAR
+exp : TOK_CHAR
{
struct stoken_vector vec;
vec.len = 1;
@@ -484,7 +484,7 @@ exp : NAME_OR_INT
;
-exp : FLOAT
+exp : TOK_FLOAT
{ write_exp_elt_opcode (pstate, OP_DOUBLE);
write_exp_elt_type (pstate, $1.type);
write_exp_elt_dblcst (pstate, $1.dval);
@@ -743,8 +743,8 @@ parse_number (struct parser_state *par_s
if (! parse_go_float (parse_gdbarch (par_state), p, len,
&putithere->typed_val_float.dval,
&putithere->typed_val_float.type))
- return ERROR;
- return FLOAT;
+ return TOK_ERROR;
+ return TOK_FLOAT;
}
/* Handle base-switching prefixes 0x, 0t, 0d, 0. */
@@ -798,7 +798,7 @@ parse_number (struct parser_state *par_s
if (c >= '0' && c <= '9')
{
if (found_suffix)
- return ERROR;
+ return TOK_ERROR;
n += i = c - '0';
}
else
@@ -806,7 +806,7 @@ parse_number (struct parser_state *par_s
if (base > 10 && c >= 'a' && c <= 'f')
{
if (found_suffix)
- return ERROR;
+ return TOK_ERROR;
n += i = c - 'a' + 10;
}
else if (c == 'l')
@@ -820,10 +820,10 @@ parse_number (struct parser_state *par_s
found_suffix = 1;
}
else
- return ERROR; /* Char not a digit */
+ return TOK_ERROR; /* Char not a digit */
}
if (i >= base)
- return ERROR; /* Invalid digit in this base. */
+ return TOK_ERROR; /* Invalid digit in this base. */
/* Portably test for overflow (only works for nonzero values, so make
a second check for zero). FIXME: Can't we just make n and prevn
@@ -906,7 +906,7 @@ parse_number (struct parser_state *par_s
putithere->typed_val_int.type = signed_type;
}
- return INT;
+ return TOK_INT;
}
/* Temporary obstack used for holding strings. */
@@ -917,7 +917,7 @@ static int tempbuf_init;
character may be wide or unicode. *OUTPTR is set to just after the
end of the literal in the input string. The resulting token is
stored in VALUE. This returns a token value, either STRING or
- CHAR, depending on what was parsed. *HOST_CHARS is set to the
+ TOK_CHAR, depending on what was parsed. *HOST_CHARS is set to the
number of host characters in the literal. */
static int
@@ -983,7 +983,7 @@ parse_string_or_char (const char *tokptr
*outptr = tokptr;
- return quote == '\'' ? CHAR : STRING;
+ return quote == '\'' ? TOK_CHAR : STRING;
}
struct token
@@ -1190,7 +1190,7 @@ lex_one_token (struct parser_state *par_
}
toktype = parse_number (par_state, tokstart, p - tokstart,
got_dot|got_e, &yylval);
- if (toktype == ERROR)
+ if (toktype == TOK_ERROR)
{
char *err_copy = (char *) alloca (p - tokstart + 1);
@@ -1245,7 +1245,7 @@ lex_one_token (struct parser_state *par_
int host_len;
int result = parse_string_or_char (tokstart, &lexptr, &yylval.tsval,
&host_len);
- if (result == CHAR)
+ if (result == TOK_CHAR)
{
if (host_len == 0)
error (_("Empty character constant."));
@@ -1515,7 +1515,7 @@ classify_name (struct parser_state *par_
YYSTYPE newlval; /* Its value is ignored. */
int hextype = parse_number (par_state, copy, yylval.sval.length,
0, &newlval);
- if (hextype == INT)
+ if (hextype == TOK_INT)
{
yylval.ssym.sym = NULL;
yylval.ssym.is_a_field_of_this = 0;
--- old/orig/gdb/jv-exp.y 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/jv-exp.y 2014-12-22 20:32:26.083824810 +0100
@@ -183,11 +183,11 @@ static int parse_number (struct parser_s
%token <sval> NAME_OR_INT
-%token ERROR
+%token TOK_ERROR
/* Special type cases, put in to allow the parser to distinguish different
legal basetypes. */
-%token LONG SHORT BYTE INT CHAR BOOLEAN DOUBLE FLOAT
+%token TOK_LONG TOK_SHORT TOK_BYTE TOK_INT TOK_CHAR TOK_BOOLEAN TOK_DOUBLE TOK_FLOAT
%token VARIABLE
@@ -278,7 +278,7 @@ Type:
PrimitiveType:
NumericType
-| BOOLEAN
+| TOK_BOOLEAN
{ $$ = parse_java_type (pstate)->builtin_boolean; }
;
@@ -288,22 +288,22 @@ NumericType:
;
IntegralType:
- BYTE
+ TOK_BYTE
{ $$ = parse_java_type (pstate)->builtin_byte; }
-| SHORT
+| TOK_SHORT
{ $$ = parse_java_type (pstate)->builtin_short; }
-| INT
+| TOK_INT
{ $$ = parse_java_type (pstate)->builtin_int; }
-| LONG
+| TOK_LONG
{ $$ = parse_java_type (pstate)->builtin_long; }
-| CHAR
+| TOK_CHAR
{ $$ = parse_java_type (pstate)->builtin_char; }
;
FloatingPointType:
- FLOAT
+ TOK_FLOAT
{ $$ = parse_java_type (pstate)->builtin_float; }
-| DOUBLE
+| TOK_DOUBLE
{ $$ = parse_java_type (pstate)->builtin_double; }
;
@@ -734,7 +734,7 @@ parse_number (struct parser_state *par_s
int suffix_len;
if (! parse_float (p, len, &putithere->typed_val_float.dval, &suffix))
- return ERROR;
+ return TOK_ERROR;
suffix_len = p + len - suffix;
@@ -751,10 +751,10 @@ parse_number (struct parser_state *par_s
putithere->typed_val_float.type =
parse_type (par_state)->builtin_double;
else
- return ERROR;
+ return TOK_ERROR;
}
else
- return ERROR;
+ return TOK_ERROR;
return FLOATING_POINT_LITERAL;
}
@@ -815,9 +815,9 @@ parse_number (struct parser_state *par_s
else if (c >= 'a' && c <= 'z')
c -= 'a' - 10;
else
- return ERROR; /* Char not a digit */
+ return TOK_ERROR; /* Char not a digit */
if (c >= base)
- return ERROR;
+ return TOK_ERROR;
if (n > limit_div_base
|| (n *= base) > limit - c)
error (_("Numeric constant too large"));
@@ -1030,7 +1030,7 @@ yylex (void)
}
toktype = parse_number (pstate, tokstart, p - tokstart,
got_dot|got_e, &yylval);
- if (toktype == ERROR)
+ if (toktype == TOK_ERROR)
{
char *err_copy = (char *) alloca (p - tokstart + 1);
@@ -1159,15 +1159,15 @@ yylex (void)
{
case 7:
if (strncmp (tokstart, "boolean", 7) == 0)
- return BOOLEAN;
+ return TOK_BOOLEAN;
break;
case 6:
if (strncmp (tokstart, "double", 6) == 0)
- return DOUBLE;
+ return TOK_DOUBLE;
break;
case 5:
if (strncmp (tokstart, "short", 5) == 0)
- return SHORT;
+ return TOK_SHORT;
if (strncmp (tokstart, "false", 5) == 0)
{
yylval.lval = 0;
@@ -1176,15 +1176,15 @@ yylex (void)
if (strncmp (tokstart, "super", 5) == 0)
return SUPER;
if (strncmp (tokstart, "float", 5) == 0)
- return FLOAT;
+ return TOK_FLOAT;
break;
case 4:
if (strncmp (tokstart, "long", 4) == 0)
- return LONG;
+ return TOK_LONG;
if (strncmp (tokstart, "byte", 4) == 0)
- return BYTE;
+ return TOK_BYTE;
if (strncmp (tokstart, "char", 4) == 0)
- return CHAR;
+ return TOK_CHAR;
if (strncmp (tokstart, "true", 4) == 0)
{
yylval.lval = 1;
@@ -1193,7 +1193,7 @@ yylex (void)
break;
case 3:
if (strncmp (tokstart, "int", 3) == 0)
- return INT;
+ return TOK_INT;
if (strncmp (tokstart, "new", 3) == 0)
return NEW;
break;
--- old/orig/gdb/m2-exp.y 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/m2-exp.y 2014-12-22 20:36:46.442891219 +0100
@@ -156,9 +156,9 @@ static int number_sign = 1;
%type <bval> block
%type <sym> fblock
-%token <lval> INT HEX ERROR
-%token <ulval> UINT M2_TRUE M2_FALSE CHAR
-%token <dval> FLOAT
+%token <lval> TOK_INT HEX TOK_ERROR
+%token <ulval> TOK_UINT M2_TRUE M2_FALSE TOK_CHAR
+%token <dval> TOK_FLOAT
/* Both NAME and TYPENAME tokens represent symbols in the input,
and both convey their data as strings.
@@ -173,7 +173,7 @@ static int number_sign = 1;
%token <sval> NAME BLOCKNAME IDENT VARNAME
%token <sval> TYPENAME
-%token SIZE CAP ORD HIGH ABS MIN_FUNC MAX_FUNC FLOAT_FUNC VAL CHR ODD TRUNC
+%token TOK_SIZE CAP ORD HIGH ABS MIN_FUNC MAX_FUNC FLOAT_FUNC VAL CHR ODD TRUNC
%token TSIZE
%token INC DEC INCL EXCL
@@ -186,7 +186,7 @@ static int number_sign = 1;
%left ','
%left ABOVE_COMMA
%nonassoc ASSIGN
-%left '<' '>' LEQ GEQ '=' NOTEQUAL '#' IN
+%left '<' '>' LEQ GEQ '=' NOTEQUAL '#' TOK_IN
%left OROR
%left LOGICAL_AND '&'
%left '@'
@@ -293,7 +293,7 @@ exp : TSIZE '(' exp ')'
{ write_exp_elt_opcode (pstate, UNOP_SIZEOF); }
;
-exp : SIZE exp %prec UNARY
+exp : TOK_SIZE exp %prec UNARY
{ write_exp_elt_opcode (pstate, UNOP_SIZEOF); }
;
@@ -329,7 +329,7 @@ exp : exp DOT NAME
exp : set
;
-exp : exp IN set
+exp : exp TOK_IN set
{ error (_("Sets are not implemented."));}
;
@@ -499,7 +499,7 @@ exp : M2_FALSE
write_exp_elt_opcode (pstate, OP_BOOL); }
;
-exp : INT
+exp : TOK_INT
{ write_exp_elt_opcode (pstate, OP_LONG);
write_exp_elt_type (pstate,
parse_m2_type (pstate)->builtin_int);
@@ -507,7 +507,7 @@ exp : INT
write_exp_elt_opcode (pstate, OP_LONG); }
;
-exp : UINT
+exp : TOK_UINT
{
write_exp_elt_opcode (pstate, OP_LONG);
write_exp_elt_type (pstate,
@@ -518,7 +518,7 @@ exp : UINT
}
;
-exp : CHAR
+exp : TOK_CHAR
{ write_exp_elt_opcode (pstate, OP_LONG);
write_exp_elt_type (pstate,
parse_m2_type (pstate)
@@ -528,7 +528,7 @@ exp : CHAR
;
-exp : FLOAT
+exp : TOK_FLOAT
{ write_exp_elt_opcode (pstate, OP_DOUBLE);
write_exp_elt_type (pstate,
parse_m2_type (pstate)
@@ -540,7 +540,7 @@ exp : FLOAT
exp : variable
;
-exp : SIZE '(' type ')' %prec UNARY
+exp : TOK_SIZE '(' type ')' %prec UNARY
{ write_exp_elt_opcode (pstate, OP_LONG);
write_exp_elt_type (pstate,
parse_type (pstate)->builtin_int);
@@ -709,7 +709,7 @@ parse_number (int olen)
/* It's a float since it contains a point. */
yylval.dval = atof (p);
lexptr += len;
- return FLOAT;
+ return TOK_FLOAT;
}
if (p[c] == '.' && base != 10)
error (_("Floating point numbers must be base 10."));
@@ -730,11 +730,11 @@ parse_number (int olen)
if (base == 16 && c >= 'A' && c <= 'F')
i = c - 'A' + 10;
else
- return ERROR;
+ return TOK_ERROR;
}
n+=i;
if(i >= base)
- return ERROR;
+ return TOK_ERROR;
if(!unsigned_p && number_sign == 1 && (prevn >= n))
unsigned_p=1; /* Try something unsigned */
/* Don't do the range check if n==i and i==0, since that special
@@ -755,19 +755,19 @@ parse_number (int olen)
if (ischar)
{
yylval.ulval = n;
- return CHAR;
+ return TOK_CHAR;
}
else if ( unsigned_p && number_sign == 1)
{
yylval.ulval = n;
- return UINT;
+ return TOK_UINT;
}
else if((unsigned_p && (n<0))) {
range_error (_("Overflow on numeric constant -- number too large."));
/* But, this can return if range_check == range_warn. */
}
yylval.lval = n;
- return INT;
+ return TOK_INT;
}
@@ -797,7 +797,7 @@ struct keyword {
static struct keyword keytab[] =
{
{"OR" , OROR },
- {"IN", IN },/* Note space after IN */
+ {"IN", TOK_IN },/* Note space after TOK_IN */
{"AND", LOGICAL_AND},
{"ABS", ABS },
{"CHR", CHR },
@@ -815,10 +815,10 @@ static struct keyword keytab[] =
{"EXCL", EXCL },
{"HIGH", HIGH },
{"INCL", INCL },
- {"SIZE", SIZE },
+ {"SIZE", TOK_SIZE },
{"FLOAT", FLOAT_FUNC },
{"TRUNC", TRUNC },
- {"TSIZE", SIZE },
+ {"TSIZE", TOK_SIZE },
};
@@ -933,7 +933,7 @@ yylex (void)
if(namelen == 2) /* Single character */
{
yylval.ulval = tokstart[1];
- return CHAR;
+ return TOK_CHAR;
}
else
return STRING;
@@ -966,7 +966,7 @@ yylex (void)
break;
}
toktype = parse_number (p - tokstart);
- if (toktype == ERROR)
+ if (toktype == TOK_ERROR)
{
char *err_copy = (char *) alloca (p - tokstart + 1);
--- old/orig/gdb/p-exp.y 2014-12-14 02:48:38.000000000 +0100
+++ ./gdb/p-exp.y 2014-12-22 20:35:33.514872617 +0100
@@ -181,8 +181,8 @@ static int search_field;
/* Fancy type parsing. */
%type <tval> ptype
-%token <typed_val_int> INT
-%token <typed_val_float> FLOAT
+%token <typed_val_int> TOK_INT
+%token <typed_val_float> TOK_FLOAT
/* Both NAME and TYPENAME tokens represent symbols in the input,
and both convey their data as strings.
@@ -208,7 +208,7 @@ static int search_field;
%token <ssym> NAME_OR_INT
%token STRUCT CLASS SIZEOF COLONCOLON
-%token ERROR
+%token TOK_ERROR
/* Special type cases, put in to allow the parser to distinguish different
legal basetypes. */
@@ -217,7 +217,7 @@ static int search_field;
/* Object pascal */
-%token THIS
+%token TOK_THIS
%token <lval> TRUEKEYWORD FALSEKEYWORD
%left ','
@@ -543,7 +543,7 @@ exp : FALSEKEYWORD
write_exp_elt_opcode (pstate, OP_BOOL); }
;
-exp : INT
+exp : TOK_INT
{ write_exp_elt_opcode (pstate, OP_LONG);
write_exp_elt_type (pstate, $1.type);
current_type = $1.type;
@@ -565,7 +565,7 @@ exp : NAME_OR_INT
;
-exp : FLOAT
+exp : TOK_FLOAT
{ write_exp_elt_opcode (pstate, OP_DOUBLE);
write_exp_elt_type (pstate, $1.type);
current_type = $1.type;
@@ -638,7 +638,7 @@ exp : STRING
;
/* Object pascal */
-exp : THIS
+exp : TOK_THIS
{
struct value * this_val;
struct type * this_type;
@@ -913,8 +913,8 @@ parse_number (struct parser_state *par_s
if (! parse_c_float (parse_gdbarch (par_state), p, len,
&putithere->typed_val_float.dval,
&putithere->typed_val_float.type))
- return ERROR;
- return FLOAT;
+ return TOK_ERROR;
+ return TOK_FLOAT;
}
/* Handle base-switching prefixes 0x, 0t, 0d, 0. */
@@ -958,7 +958,7 @@ parse_number (struct parser_state *par_s
if (c >= '0' && c <= '9')
{
if (found_suffix)
- return ERROR;
+ return TOK_ERROR;
n += i = c - '0';
}
else
@@ -966,7 +966,7 @@ parse_number (struct parser_state *par_s
if (base > 10 && c >= 'a' && c <= 'f')
{
if (found_suffix)
- return ERROR;
+ return TOK_ERROR;
n += i = c - 'a' + 10;
}
else if (c == 'l')
@@ -980,10 +980,10 @@ parse_number (struct parser_state *par_s
found_suffix = 1;
}
else
- return ERROR; /* Char not a digit */
+ return TOK_ERROR; /* Char not a digit */
}
if (i >= base)
- return ERROR; /* Invalid digit in this base. */
+ return TOK_ERROR; /* Invalid digit in this base. */
/* Portably test for overflow (only works for nonzero values, so make
a second check for zero). FIXME: Can't we just make n and prevn
@@ -1066,7 +1066,7 @@ parse_number (struct parser_state *par_s
putithere->typed_val_int.type = signed_type;
}
- return INT;
+ return TOK_INT;
}
@@ -1240,7 +1240,7 @@ yylex (void)
}
error (_("Invalid character constant."));
}
- return INT;
+ return TOK_INT;
case '(':
paren_depth++;
@@ -1322,7 +1322,7 @@ yylex (void)
}
toktype = parse_number (pstate, tokstart,
p - tokstart, got_dot | got_e, &yylval);
- if (toktype == ERROR)
+ if (toktype == TOK_ERROR)
{
char *err_copy = (char *) alloca (p - tokstart + 1);
@@ -1511,7 +1511,7 @@ yylex (void)
VAR_DOMAIN, NULL))
{
free (uptokstart);
- return THIS;
+ return TOK_THIS;
}
}
break;
@@ -1727,7 +1727,7 @@ yylex (void)
{
YYSTYPE newlval; /* Its value is ignored. */
hextype = parse_number (pstate, tokstart, namelen, 0, &newlval);
- if (hextype == INT)
+ if (hextype == TOK_INT)
{
yylval.ssym.sym = sym;
yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL;
--- old/orig/gdb/ser-tcp.c 2014-12-14 02:48:39.000000000 +0100
+++ ./gdb/ser-tcp.c 2014-12-22 19:27:27.393845431 +0100
@@ -42,6 +42,8 @@
#ifndef ETIMEDOUT
#define ETIMEDOUT WSAETIMEDOUT
#endif
+/* gnulib/ may define 'close'. */
+#undef close
#define close(fd) closesocket (fd)
#define ioctl ioctlsocket
#else
@@ -120,11 +122,15 @@ wait_for_connect (struct serial *scb, un
if (scb)
{
fd_set rset, wset, eset;
+ TIMEVAL t_mingw;
FD_ZERO (&rset);
FD_SET (scb->fd, &rset);
wset = rset;
eset = rset;
+
+ t_mingw.tv_sec = t.tv_sec;
+ t_mingw.tv_usec = t.tv_usec;
/* POSIX systems return connection success or failure by signalling
wset. Windows systems return success in wset and failure in
@@ -134,7 +140,7 @@ wait_for_connect (struct serial *scb, un
the serial structure has not yet been initialized - the
MinGW select wrapper will not know that this FD refers
to a socket. */
- n = select (scb->fd + 1, &rset, &wset, &eset, &t);
+ n = select (scb->fd + 1, &rset, &wset, &eset, &t_mingw);
}
else
/* Use gdb_select here, since we have no file descriptors, and on
--- old/orig/gdb/symfile.c 2014-12-14 02:48:39.000000000 +0100
+++ ./gdb/symfile.c 2014-12-22 20:36:24.115885524 +0100
@@ -3541,12 +3541,12 @@ overlay_command (char *args, int from_tt
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, OVLY_SIZE, 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, OVLY_SIZE, MAPPED_TO_LMA}, /# one entry per overlay region #/
{..., ..., ...},
}
These functions will attempt to update GDB's mappedness state in the
@@ -3564,7 +3564,7 @@ static unsigned cache_novlys = 0;
static CORE_ADDR cache_ovly_table_base = 0;
enum ovly_index
{
- VMA, SIZE, LMA, MAPPED
+ VMA, OVLY_SIZE, LMA, MAPPED
};
/* Throw away the cached copy of _ovly_table. */
@@ -3664,14 +3664,14 @@ simple_overlay_update_1 (struct obj_sect
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][OVLY_SIZE] == 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][OVLY_SIZE] == size */ )
{
osect->ovly_mapped = cache_ovly_table[i][MAPPED];
return 1;
@@ -3737,7 +3737,7 @@ simple_overlay_update (struct obj_sectio
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][OVLY_SIZE] == 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. */
--- old/orig/include/coff/ecoff.h 2014-12-14 02:48:39.000000000 +0100
+++ ./include/coff/ecoff.h 2014-12-22 20:01:14.471204731 +0100
@@ -148,10 +148,12 @@
/* gcc also uses mips-tfile to output COFF debugging information.
These are the values it uses when outputting the .type directive.
These should also be in a shared include file. */
+#ifndef _WIN64
#define N_BTMASK (017)
#define N_TMASK (060)
#define N_BTSHFT (4)
#define N_TSHIFT (2)
+#endif
/********************** AUX **********************/
--- old/orig/include/coff/internal.h 2014-12-14 02:48:39.000000000 +0100
+++ ./include/coff/internal.h 2014-12-22 20:01:48.439246332 +0100
@@ -21,6 +21,10 @@
#ifndef GNU_COFF_INTERNAL_H
#define GNU_COFF_INTERNAL_H 1
+#ifdef _WIN64
+# include <windows.h>
+#endif
+
/* First, make "signed char" work, even on old compilers. */
#ifndef signed
#ifndef __STDC__
@@ -109,11 +113,13 @@ struct internal_filehdr
#define F_GO32STUB (0x4000)
/* Extra structure which is used in the optional header. */
+#ifndef _WIN64
typedef struct _IMAGE_DATA_DIRECTORY
{
bfd_vma VirtualAddress;
long Size;
} IMAGE_DATA_DIRECTORY;
+#endif
#define PE_EXPORT_TABLE 0
#define PE_IMPORT_TABLE 1
#define PE_RESOURCE_TABLE 2
@@ -533,6 +539,7 @@ struct internal_syment
#define BTYPE(x) ((x) & N_BTMASK)
#define DTYPE(x) (((x) & N_TMASK) >> N_BTSHFT)
+#ifndef _WIN64
#define ISPTR(x) \
(((unsigned long) (x) & N_TMASK) == ((unsigned long) DT_PTR << N_BTSHFT))
#define ISFCN(x) \
@@ -543,6 +550,7 @@ struct internal_syment
((x) == C_STRTAG || (x) == C_UNTAG || (x) == C_ENTAG)
#define DECREF(x) \
((((x) >> N_TSHIFT) & ~ N_BTMASK) | ((x) & N_BTMASK))
+#endif
union internal_auxent
{
--- old/orig/include/coff/pe.h 2014-12-14 02:48:39.000000000 +0100
+++ ./include/coff/pe.h 2014-12-22 20:11:01.742540716 +0100
@@ -86,6 +90,7 @@
#define IMAGE_SCN_ALIGN_POWER_CONST(val) \
(((val) + 1) << IMAGE_SCN_ALIGN_POWER_BIT_POS)
+#ifndef _WIN64
#define IMAGE_SCN_ALIGN_1BYTES IMAGE_SCN_ALIGN_POWER_CONST (0)
#define IMAGE_SCN_ALIGN_2BYTES IMAGE_SCN_ALIGN_POWER_CONST (1)
#define IMAGE_SCN_ALIGN_4BYTES IMAGE_SCN_ALIGN_POWER_CONST (2)
@@ -101,6 +106,7 @@
#define IMAGE_SCN_ALIGN_2048BYTES IMAGE_SCN_ALIGN_POWER_CONST (11)
#define IMAGE_SCN_ALIGN_4096BYTES IMAGE_SCN_ALIGN_POWER_CONST (12)
#define IMAGE_SCN_ALIGN_8192BYTES IMAGE_SCN_ALIGN_POWER_CONST (13)
+#endif
/* Encode alignment power into IMAGE_SCN_ALIGN bits of s_flags. */
#define COFF_ENCODE_ALIGNMENT(SECTION, ALIGNMENT_POWER) \
@@ -113,14 +119,17 @@
/* COMDAT selection codes. */
+#ifndef _WIN64
#define IMAGE_COMDAT_SELECT_NODUPLICATES (1) /* Warn if duplicates. */
#define IMAGE_COMDAT_SELECT_ANY (2) /* No warning. */
#define IMAGE_COMDAT_SELECT_SAME_SIZE (3) /* Warn if different size. */
#define IMAGE_COMDAT_SELECT_EXACT_MATCH (4) /* Warn if different. */
#define IMAGE_COMDAT_SELECT_ASSOCIATIVE (5) /* Base on other section. */
+#endif
/* Machine numbers. */
+#ifndef _WIN64
#define IMAGE_FILE_MACHINE_UNKNOWN 0x0000
#define IMAGE_FILE_MACHINE_ALPHA 0x0184
#define IMAGE_FILE_MACHINE_ALPHA64 0x0284
@@ -134,7 +143,9 @@
#define IMAGE_FILE_MACHINE_I386 0x014c
#define IMAGE_FILE_MACHINE_IA64 0x0200
#define IMAGE_FILE_MACHINE_M32R 0x9041
+#endif
#define IMAGE_FILE_MACHINE_M68K 0x0268
+#ifndef _WIN64
#define IMAGE_FILE_MACHINE_MIPS16 0x0266
#define IMAGE_FILE_MACHINE_MIPSFPU 0x0366
#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466
@@ -152,6 +163,7 @@
#define IMAGE_FILE_MACHINE_TRICORE 0x0520
#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169
#define IMAGE_FILE_MACHINE_AMD64 0x8664
+#endif
#define IMAGE_SUBSYSTEM_UNKNOWN 0
#define IMAGE_SUBSYSTEM_NATIVE 1
@@ -501,11 +513,15 @@ struct external_pex64_unwind_code
#define PEX64_UNWCODE_INFO(VAL) (((VAL) >> 4) & 0xf)
/* The unwind info. */
+#ifndef _WIN64
#define UNW_FLAG_NHANDLER 0
#define UNW_FLAG_EHANDLER 1
#define UNW_FLAG_UHANDLER 2
+#endif
#define UNW_FLAG_FHANDLER 3
+#ifndef _WIN64
#define UNW_FLAG_CHAININFO 4
+#endif
#define UNW_FLAG_MASK 0x1f
More information about the Gdb-patches
mailing list