Initial support for PE object files.
* configure.in, configure (i386-*-pe, i386-*-*nt): Add.
* config/obj-coff.c (fixup_segment): Cope with PE wierdness.
* config/obj-coff.h (TE_PE): New target format.
* (unwind_command): Clean it up and make it print things out
nicer.
* monitor.c: Add ^C handling capability (mostly ripped off from
remote.c).
* (monitor_printf): Make it check the command echo.
* (monitor_printf_noecho): Similar to above, but doesn't check
for echo.
* (monitor_stop): No longer waits for prompt. That is the job of
the caller. This makes things work much better for monitor_wait,
which waits for the prompt itself.
* (monitor_open): Deal with new monitor_stop semantics. Also,
flush input after sending init strings to get rid of junk that may
be output. Also, don't always send \r to remote. Use
monitor_ops->line_term cuz proper character isn't always \r.
* (monitor_fetch_register): Switch to completely different
algorithm to deal with lame-ass monitors which put spaces in the
middle of numbers, and prompt with a space!!!!!
* (monitor_read_memory_single): New routine to be used with
monitors that can only return one byte/short/long at a time. This
is selected via MO_GETMEM_READ_SINGLE.
* (monitor_load_srec): Use monitor_printf_noecho for sending S
records. Most targets don't echo them.
* (monitor.h): Get rid of cmd_delim. Add line_delim.
* op50n-rom.c (op50n_cmds): Fill it up. Make it work.
* w89k-rom.c: Change all eols from \r to \n. Change load_resp to
^Q to prevent error message.
* config/pa/tm-hppa.h (CALL_DUMMY (for hppro)): Add special
instruction sequence at end to make restore_pc_queue happy.
config/rom68k.exp: New tcl glue for the appropriate monitors.
These all just end up calling monitor.exp.
* config/monitor.exp (gdb_target_monitor): Handle `Connection
refused' by retrying. Cleanup some timeout issues.
* (gdb_load): Reduce timeout. Cleanup some timeout issues.
* lib/gdb.exp (gdb_test gdb_test_exact): Upvar timeout so that
callers don't have to set/restore global timeout variable.
* The following set of changes centralizes management of the global
timeout variable. This way, it can be set in one target dependent
place instead of dozens of places scattered throughout the test suite.
If you need to lengthen a timeout, then you should either set timeout
in one of the config/{target}.exp files, or multiply it by a factor.
Setting it to an absolute value is always going to lose for some
targets.
* gdb.base/a1-selftest.exp (test_with_self): Only use local timeout.
* gdb.base/callfuncs.exp (do_function_calls): Don't set timeout.
* gdb.base/funcargs.exp: Don't set timeout.
* gdb.base/list.exp (test_forward_search): Only use local timeout.
* gdb.base/printcmds.exp (test_print_string_constants
test_print_array_constants): Don't set timeout.
* gdb.base/ptype.exp: Don't set timeout.
* gdb.base/recurse.exp: Don't set timeout.
* gdb.base/return.exp: Don't set timeout.
* gdb.base/watchpoint.exp: Don't set timeout.
* gdb.c++/classes.exp (do_tests): Don't set timeout.
* gdb.c++/virtfunc.exp (test_virtual_calls): Don't set timeout.
non-MANY_SEGMENTS configuration. It should never get invoked, but this is
easier than conditionalizing some of the uses.
(struct seg_info_trash): Dummy type used by above to make code compile.
isn't set, abort.
(SEPARATE_STAB_SECTIONS): Default to zero.
(aout_process_stab): New function, split out from s_stab_generic.
(OBJ_PROCESS_STAB) [AOUT_STABS]: Define to call aout_process_stab, if not
already defined.
(s_stab_generic): Test SEPARATE_STAB_SECTIONS at run time. If it's not set,
and OBJ_PROCESS_STAB isn't defined, abort. Always pass six arguments to
OBJ_PROCESS_STAB.
* config/obj-aout.h (AOUT_STABS): Define.
* config/obj-bout.h (AOUT_STABS): Define.
them to zero.
* config/tc-*.h, config/te-*.h: If defining them, define them to be 1 instead
of empty.
* expr.c (integer_constant, operand): Test them at run time instead of compile
time.
* read.c (read_a_source_file): Ditto.
* symbols.c (colon): Ditto.
(dollar_*, define_dollar_label, fb_*): Define unconditionally.
* symbols.h (dollar_*, define_dollar_label, fb_*): Declare unconditionally.
PC relative call since those only occur in cases where the linker
can fix them up.
(hppa_force_relocation): Force relocations for out of range PC
relative calls.
* Makefile.in (REMOTE_OBS): Rename from REMOTE_O, append
value of NETROM_OBS.
(NETROM_OBS): New variable.
* remote-nrom.c: New file, NetROM target support.
* config/a29k/a29k-udi.mt, config/i960/vxworks960.mt: Use
REMOTE_OBS instead of REMOTE_O.
start-sanitize-arc
* config/arc/arc.mt: Ditto.
end-sanitize-arc
* config/tc-mips.c (mips_target_format): Changed to a function, checking flavor
and byte order at run time.
(md_parse_option, cases OPTION_EB and OPTION_EL): Set target_big_endian here.
(md_begin): Not here.
* config/tc-mips.h (mips_target_format): Adjust declaration.
(TARGET_FORMAT): Call mips_target_format.
* config/tc-mips.h (USE_GLOBAL_POINTER_OPT): Define in terms of OUTPUT_FLAVOR.
* config/tc-mips.c (g_switch_value, g_switch_seen): Define unconditionally.
(md_begin, mips_ip, md_parse_option, s_change_sec, s_option, s_abicalls,
nopic_need_relax): Check USE_GLOBAL_POINTER_OPT at run time, instead of
compiling conditionally on GPOPT.
(GPOPT): Don't define.
(md_shortopts): Always include -G.
(RDATA_SECTION_NAME): Select at run time.
(md_begin): Test for ELF format at run time instead of compile time.
(mips_ip, s_change_sec): Ditto.
(md_parse_option, cases OPTION_CALL_SHARED and OPTION_NON_SHARED): Ditto.
(OPTION_CALL_SHARED, OPTION_NON_SHARED, mips_regmask_frag): Define
unconditionally.
(pop_override_ok, pop_table_name): New variables.
(md_pop_insert, obj_pop_insert): New macros.
(pobegin): Use them.
(target_big_endian): If TARGET_BYTES_BIG_ENDIAN is defined, initialize to 1.