* coff-i960.c (optcall_callback): don't try and optimize
undefined refs.
(coff_write_relocs): Search for broken relocs on the way
out and fix them up.
(coff_renumber_symbols): Calculate and return index of
first undefined symbol.
(coff_write_object_contents): Call coff_renumber_symbols
and coff_write_relocs with the new args.
* libcoff.h: (coff_renumber_symbols, coff_renumber_symbols):
Modified prototypes.
* Makefile.in, targets.c, configure.in, config.bfd:
Add support for i386-*-winnt and i386-*-pe.
* archive.c (do_slurp_coff_armap): Understand NTPE format
archives.
(_bfd_slurp_extended_name_table): Turn \ in a filename
into /.
* bfd-in.h (bfd_link_subsystem, _bfd_link_stack_heap): New.
* coff-i386.c (howto_table): Conditionalize PCRELOFFSET.
* coffcode.h (IMAGE_BASE): New.
(coff_compute_section_file_positions): Throw away .junk
sections for PE, align symbols.
(coff_write_object_contents): Throw away .junk sections
for PE. Remember info on .idata and .rsrc sections.
Fill in the PE header.
(coff_slurp_symbol_table): PE uses C_SECTION class.
* cofflink.c (_bfd_coff_final_link): Keep PE info up to date.
(_bfd_coff_generic_relocate_section): Cope with PE relocs.
* coffswap.h (coff_swap_{aout/file/scn/sym}hdr_{in/out}):
New code for PE headers.
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.
Stu Grossman [Thu, 11 May 1995 22:13:46 +0000 (22:13 +0000)]
* config/monitor.exp (gdb_target_monitor): Fix loop interator so
that loop eventually terminates. Fix Connection refused logic so
that testsuite will expire nicely.
Stu Grossman [Thu, 11 May 1995 02:26:00 +0000 (02:26 +0000)]
* hppa-tdep.c (read_unwind_info): Cosmetic cleanup.
* (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.
Stu Grossman [Thu, 11 May 1995 01:03:50 +0000 (01:03 +0000)]
* config/cpu32bug.exp, config/est.exp, config/hppro.exp,
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.
Ken Raeburn [Tue, 9 May 1995 01:50:04 +0000 (01:50 +0000)]
* subsegs.h (seg_info): Provide dummy version for non-BFD_ASSEMBLER,
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.
Ken Raeburn [Thu, 4 May 1995 23:40:26 +0000 (23:40 +0000)]
* stabs.c (get_stab_string_offset): Always define. If SEPARATE_STAB_SECTIONS
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.
Ken Raeburn [Thu, 4 May 1995 01:56:40 +0000 (01:56 +0000)]
* as.h (LOCAL_LABELS_DOLLAR, LOCAL_LABELS_FB): If not already defined, 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.
Jeff Law [Wed, 3 May 1995 19:10:55 +0000 (19:10 +0000)]
* config/tc-hppa.c (md_apply_fix): Do nothing for an out of range
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.
Stan Shebs [Wed, 3 May 1995 01:43:27 +0000 (01:43 +0000)]
* configure.in (--enable-netrom): New configuration option.
* 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
Ken Raeburn [Tue, 2 May 1995 19:33:00 +0000 (19:33 +0000)]
* config/tc-mips.c: Use USE_STDARG and USE_VARARGS instead of NO_STDARG &c.
* 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.
Ken Raeburn [Tue, 2 May 1995 06:46:21 +0000 (06:46 +0000)]
Move cpu-specific dependencies into Makefile.in, instead of having sometimes
multiple copies in config/*.mt. Select between several make variables with
autoconf substitution of cpu_type into a variable name reference.
Ken Raeburn [Mon, 1 May 1995 20:44:46 +0000 (20:44 +0000)]
* read.c (s_app_file): If obj_app_file is defined, call it with string as argument.
Don't call c_dot_file_symbol or elf_file_symbol.
* config/obj-coff.h (obj_app_file): Define as c_dot_file_symbol.
* config/obj-elf.h (obj_app_file): Define as elf_file_symbol.
Stu Grossman [Sat, 29 Apr 1995 06:34:44 +0000 (06:34 +0000)]
* array-rom.c (_initialize_array array_open): Move baud_rate
initialization from _initxxx to array_open to fix bug with
overriding -b command line option.
Ken Raeburn [Wed, 26 Apr 1995 20:02:18 +0000 (20:02 +0000)]
Support for more portable alignment handling in assembly code, based on patches
from Bryan Ford <[email protected]>:
* read.c (potable): Added balign and p2align, for aligning by bytes or powers
of two independent of what ".align" does for a given target.
* doc/as.texinfo: Document them.
Kung Hsu [Fri, 21 Apr 1995 20:02:50 +0000 (20:02 +0000)]
* minsyms.c: add new function lookup_minimal_symbol_text, to look
for text symbol only.
* breakpoint.c (create_longjmp_breakpoint): call
lookup_minimal_symbol_text instead of lookup_minimal_symbol.
* symtab.h: add lookup_minimal_symbol_text prototype.
Ken Raeburn [Fri, 21 Apr 1995 16:53:57 +0000 (16:53 +0000)]
Patches from H.J. Lu for Linux ELF core file support.
* elfcode.h (elf_core_file_matches_executable_p) [HAVE_PROCFS]: Use prpsinfo_t
instead of struct prpsinfo, for consistency.
* hosts/i386linux.h (HAVE_PROCFS): Define.
Stu Grossman [Thu, 20 Apr 1995 00:46:15 +0000 (00:46 +0000)]
* config/est.exp: Fix copyright and comments. Remove dead code.
Use targetname, serialport and baud variables instead of fixed
constants.
* config/rom68k.exp: Fix copyright and comments. Remove dead code.
* config/cpu32bug.exp: New file to support cpu32bug monitors.
Stu Grossman [Thu, 20 Apr 1995 00:15:14 +0000 (00:15 +0000)]
* hppa-tdep.c (deposit_17): New routine to deposit 17 bit
constants into PA instructions.
* Put #ifdefs around all signal handling code. Not generally
needed for embedded boards.
* (hppa_fix_call_dummy): Parameterize offsets into call dummy to
allow different dummys to be used by this code. Use
INSTRUCTION_SIZE instead of REGISTER_SIZE for things.
Conditionalize setup of _sr4export fixup. Improve comments.
* config/pa/tm-hppa.h: Define INSTRUCTION_SIZE. Use a different
call dummy if PA_LEVEL_0 is defined. Better comments for call
dummys. Define offsets for LDIL/LDO instructions which load
function addresses.
* config/pa/tm-pro.h: Get rid of signal handling stuff. Define
PA_LEVEL_0 to disable mucking with space regs and such.