* config/tc-sparc.c (md_shortopts): Add "K:" if OBJ_ELF.
(md_parse_option): If OBJ_ELF, check for -K. Die if -K PIC, since
PIC code is not currently supported.
* as.c (parse_args): Change std_shortopts to be an array rather
than a constant string. Only include 'K' if WORKING_DOT_WORD is
not defined. Only check for 'K' in that case as well.
* as.h (flag_warn_displacement): Only declare if WORKING_DOT_WORD
is not defined.
PR 7131.
* elf32-mips.c (mips_elf_object_p): Unconditionally set
elf_bad_symtab, since sometimes the symbol table is messed up and
the last symbol is global.
PR 6921.
* ecoff.c (ecoff_debugging_seen): New global variable.
(ecoff_directive_def): Set ecoff_debugging_seen.
(ecoff_stab): Likewise.
* ecoff.h: Make idempotent.
(ecoff_debugging_seen): Declare.
* config/tc-mips.c: Include ecoff.h.
(mips_debug): New static variable.
(s_stringer, s_mips_space): Remove unneeded declarations.
(md_parse_option): In case 'g', set mips_debug to debugging level.
(mips_local_label): New function.
* tc-mips.h (LOCAL_LABEL): Call mips_local_label.
(mips_local_label): Declare.
PR 6978.
Fred Fish [Wed, 5 Jul 1995 07:47:43 +0000 (07:47 +0000)]
* ldmain.c (HAVE_SBRK): Define for everything except
specific systems that are known to not support sbrk.
(main): Use HAVE_SBRK to decide whether or not to use sbrk.
* objcopy.c (copy_archive): Record all output BFD's, and close
them before unlinking them and removing the temporary directory,
to avoid NFS problems.
PR 6795.
* ar.c (replace_members): In verbose messages, use 'r' when
replacing a member, and 'a' when adding one.
* ar.c (truncate): New static variable.
(normalize): Change return type to const char *. Add abfd
argument. Change all callers. If truncate, chop the filename to
abfd->ar_max_namelen.
(main): For the 'f' modifier, set truncate to true. Don't change
quick_append to replace to truncate is true.
(do_quick_append): If truncate, set BFD_TRADITIONAL_FORMAT.
(write_archive): Likewise.
* binutils.texi, ar.1: Document 'f' modifier.
PR 6888.
* archive.c (_bfd_construct_extended_name_table): If
BFD_TRADITIONAL_FORMAT is set, limit the length of all file names
to ar_max_namelen.
(bfd_dont_truncate_arname): If BFD_TRADITIONAL_FORMAT is set, call
bfd_bsd_truncate_arname.
PR 6888.
Jeff Law [Tue, 4 Jul 1995 17:48:37 +0000 (17:48 +0000)]
* infrun.c (wait_for_inferior): When switching from one thread to
another, save infrun's state for the old thread and load infrun's
previous state for the new thread.
* thread.c (struct thread_info): Add new fields for thread specific
state saved/restored in infrun.c.
(add_thread): Initialize new fields.
(load_infrun_state): New function.
(save_infrun_state): New function.
* thread.h (load_infrun_state): Provide external decl.
(save_infrun_state): Likewise.
Jeff Law [Tue, 4 Jul 1995 17:40:41 +0000 (17:40 +0000)]
* infrun.c (wait_for_inferior): When we hit a breakpoint for the
wrong thread, make sure to write the fixed PC value into the thread
that stopped. Restart all threads after single stepping over a
breakpoint for a different thread.
* breakpoint.c (set_momentary_breakpoint): Make momentary
breakpoints thread specific in a multi-threaded program.
* lynx-nat.c (child_resume): Add some comments. Correctly
choose between the single and multi-threaded step and continue
ptrace calls.
* libelf.h (struct elf_link_hash_table): Add needed field. Remove
saw_needed field.
* elfcode.h (elf_link_add_object_symbols): If elf_dt_needed_name
is an empty string, don't make a DT_NEEDED entry in the output
file. Record all DT_NEEDED entries found in input dynamic
objects.
(elf_link_output_extsym): Don't check saw_needed when issuing
warnings.
* elf.c (_bfd_elf_link_hash_table_init): Initialize needed, not
saw_needed.
(bfd_elf_get_needed_list): New function.
* bfd-in.h (struct bfd_elf_link_needed_list): Define.
(bfd_elf_get_needed_list): Define.
* bfd-in2.h: Rebuild.
PR 7083.
Jeff Law [Mon, 3 Jul 1995 23:33:21 +0000 (23:33 +0000)]
* config/tc-hppa.h (MAX_RELOC_EXPANSION): Bump to 6.
* config/tc-hppa.c (tc_gen_reloc, SOM version): Handle
relocations for the difference of two (possibly external)
symbols.
(hppa_fix_adjustable): For SOM, reject reductions involving
the difference of two symbols.
(hppa_force_relocation): Force relocations for expressions
involving the difference of two symbols.
Jeff Law [Mon, 3 Jul 1995 23:27:25 +0000 (23:27 +0000)]
* som.c (hppa_som_gen_reloc_type): New argument "sym_diff",
nonzero when we're generating relocations for an expression
using the difference of two symbols. All callers changed.
Handle difference of symbols for both R_HPPA and R_COMPLEX
cases.
(som_write_fixups): Handle R_COMP1, R_COMP2 and R_CODE_EXPR
fixups.
* bfd.c (enum bfd_error): Define bfd_error_no_armap.
(bfd_errmsgs): Add string for bfd_error_no_armap.
* bfd-in2.h: Rebuild.
* ecoff.c (ecoff_link_add_archive_symbols): If an archive has no
armap, set bfd_error_no_armap rather than bfd_error_no_symbols.
* elfcode.h (elf_link_add_archive_symbols): Likewise.
* linker.c (_bfd_generic_link_add_archive_symbols): Likewise.
* lexsup.c (parse_args): Let -G either set the small data size or
be equivalent to --shared, depending on the next argument. Accept
and ignore -z for Solaris compatibility.
PR 7118.
* Makefile.in: Rebuild dependencies.
(BFD32_BACKENDS): Add versados.o.
(CFILES): Add pe-i386.c, pei-i386.c, and versados.c.
start-sanitize-arc
(elf32-arc.o): New target. This should be removed when
elf32-arc.c can be added to CFILES.
end-sanitize-arc
Fred Fish [Sat, 1 Jul 1995 19:28:13 +0000 (19:28 +0000)]
* ar.c: (extract_file): Change "#if POSIX_UTIME" to
"#ifdef POSIX_UTIME" to match other tests of POSIX_UTIME
and avoid lossage when POSIX_UTIME is not defined at all.
Stan Shebs [Sat, 1 Jul 1995 00:01:19 +0000 (00:01 +0000)]
* interp.c (sim_open): If argument supplied, interpret as
desired memory size.
(parse_and_set_memory_size): New function.
(sim_do_command): New function.
Support for long filenames non-bfd coff. bfd/7288
* config/obj-coff.c (filename_list_head, filename_list_tail): New.
(yank_symbols): Notice and record filenames which are too long.
(w_strings): Write out filename strings.
(c_dot_file_symbols): Put long filenames onto list.
Fred Fish [Thu, 29 Jun 1995 17:15:30 +0000 (17:15 +0000)]
* interp.c: (SYS_wait): Define as SYS_wait4 if available and
SYS_wait is not already defined (SunOS 4.1.3 for example).
(SYS_utime): Define as SYS_utimes if available and
SYS_utime is not already defined.
* Makefile.in: versados.o is now conditionally built.
* coffcode.h (add_data_entry): New function.
(coff_write_object_contents): Clean up. Calculate
data entries.
* cofflink.c (_bfd_coff_generic_relocate_section):
.reloc and .edata sections are IMAGE_BASED too.
If there's a base_file then write out base information.
* configure.host (i386-*-pe): New.
* syms.c (coff_section_type): Only scan prefixes.
* targets.c (bfd_target_vector): Versados is now conditionally
built.
* config/m68k-coff.mt: Build versados.o
* hosts/i386pe.h: New file.
* ar.c: (print_contents.c, extract_file, do_quick_append):
Malloc buffers rather than allocate on stack (so it works
on NT).
* deflex.l: Names can have an @ in them.
* dlltool.c: Loads of stuff. Can now generate .imp files which
work with NT .dlls.
* config/obj-coff.c (fixup_segment): PE doens't use
the strange common symbol format that other 386s formats
do.
* config/tc-i386.c (md_begin): If LEX_AT defined then
'@' is in the set of identifiers.
(i386_operand): If LEX_AT, then don't look for @goto stuff.
* config/te-pe.h: Define LEX_AT.
* ldmain.c (main): Always initialize PE info in link_info.
* lexsup.c (OPTION_BASE_FILE): New option.
(parse_args): Handle new option.
* emulparams/armpe.sh: Output pei.
* emultempl/i386pe.em: Add newline to end.
* scripttempl/armpe.sc: Change output and quote the $s.
* scripttempl/i386pe.sc: Change output and quote the $s.
Ken Raeburn [Tue, 27 Jun 1995 21:22:30 +0000 (21:22 +0000)]
Move various files that are only checked out for certain modules into
the *_these_too lists before the check for existence of the items of those
lists.
Apply "sort -u" to the *_these_too lists to keep Sanitize from complaining
when it can't delete COPYING.NEWLIB twice.
I'm not convinced the right thing will be done with COPYING.NEWLIB when
keep-cygnus or keep-newlib (but not both) is supplied; that's unchanged.
Stan Shebs [Sun, 25 Jun 1995 23:23:06 +0000 (23:23 +0000)]
* remote.c (remote_read_bytes, remote_write_bytes): Second arg
should be char *, not unsigned char *.
* dcache.h (memxferfunc): Ditto.
* monitor.c (monitor_write_memory, monitor_read_memory_single):
Ditto.
(monitor_make_srec): Let compiler figure size of hextab.
Jeff Law [Sun, 25 Jun 1995 02:33:33 +0000 (02:33 +0000)]
* lynx-nat.c (child_wait): Don't restart new threads and loop
to the top of child_wait; let the machine independent code in
wait_for_inferior deal with new thread notifications.
lynx-6100 (partial)
Fixes SEGV when multi-threaded program hits a breakpoint in a new
thread.
Stan Shebs [Fri, 23 Jun 1995 04:41:37 +0000 (04:41 +0000)]
* utils.c (error): Move local `args' outside conditional,
move local `string1' inside, declare function as void if
non-ANSI compiler, dereference error_hook when calling.