Ian Lance Taylor [Mon, 17 Jul 1995 17:33:37 +0000 (17:33 +0000)]
* stabsread.h (struct stab_section_list): Define.
(coffstab_build_psymtabs): Remove staboff and stabsize parameters.
Add textaddr, textsize, and stabs parameters.
* gdb-stabs.h (struct dbx_symfile_info): Remove text_sect field.
Add text_addr and text_size fields.
(DBX_TEXT_SECT): Don't define.
(DBX_TEXT_ADDR, DBX_TEXT_SIZE): Define.
* coffread.c: Include <ctype.h>.
(struct coff_symfile_info): Remove stabsect and stabindexsect
fields. Add textaddr, textsize, and stabsects fields.
(coff_locate_sections): Record the address of the .text section,
and total the sizes of all sections with names beginning with
".text". Don't bother to record a .stab.index section (COFF
doesn't use them). Make a linked list of all sections with names
beginning with ".stab".
(coff_symfile_read): Adjust call to coffstab_build_psymtabs for
new parameters.
* dbxread.c (dbx_symfile_read): Use DBX_TEXT_ADDR and
DBX_TEXT_SIZE, rather than getting both from DBX_TEXT_SECT.
(dbx_symfile_init): Set DBX_TEXT_ADDR and DBX_TEXT_SIZE, not
DBX_TEXT_SECT.
(elfstab_build_psymtabs): Likewise.
(stabsect_build_psymtabs): Likewise.
(symbuf_sections, symbuf_left, symbuf_read): New static variables.
(fill_symbuf): If symbuf_sections is not NULL, read symbols from
multiple sections.
(coffstab_build_psymtabs): Remove staboffset and stabsize
parameters. Add textaddr, textsize, and stabsects parameters.
Set DBX_TEXT_ADDR and DBX_TEXT_SIZE, not DBX_TEXT_SECT. Handle
multiple stabs sections.
* os9kread.c (os9k_symfile_read): Use DBX_TEXT_ADDR and
DBX_TEXT_SIZE, rather than getting both from DBX_TEXT_SECT.
(os9k_symfile_init): Set DBX_TEXT_ADDR and DBX_TEXT_SIZE, not
DBX_TEXT_SECT.
PR 7241.
Peter Schauer [Sat, 15 Jul 1995 08:57:59 +0000 (08:57 +0000)]
* config/alpha/alpha-osf3.mh, config/alpha/nm-osf3.h: New files
for OSF/1-3.x procfs support.
* configure.in (alpha-dec-osf): Use them when configuring
for OSF/1-3.x.
* configure: Updated.
* target.c: Include <string.h>.
Ian Lance Taylor [Sat, 15 Jul 1995 00:00:32 +0000 (00:00 +0000)]
Add support for SPARC SunOS PIC:
* config/tc-sparc.h (sparc_pic_code): Always declare, not just
when OBJ_ELF.
(TC_RELOC_RTSYM_LOC_FIXUP): Define when OBJ_AOUT.
(tc_fix_adjustable): New definition for OBJ_AOUT.
* config/tc-sparc.c (sparc_pic_code): Always define, not just when
OBJ_ELF.
(md_apply_fix): Adjust reloc addend for OBJ_AOUT and PIC. In
BFD_RELOC_32_PCREL_S2 case, don't increment val for an external
symbol when PIC.
(tc_gen_reloc): Generate different PIC relocs when OBJ_AOUT, as
well as when OBJ_ELF.
(md_shortopts): If OBJ_AOUT, include `k'.
(md_parse_option): If OBJ_AOUT, handle 'k'.
(md_show_usage): Mention -k if OBJ_AOUT, and -KPIC if OBJ_ELF.
(md_pcrel_from): Don't add in size for an external symbol when
PIC.
Ian Lance Taylor [Fri, 14 Jul 1995 23:52:34 +0000 (23:52 +0000)]
* aoutx.h (KEEPIT): Change definition to udata.i.
(KEEPITTYPE): Remove.
(NAME(aout,reloc_type_lookup)): Add cases to the
extended reloc type switch: SPARC_GOT10, SPARC_GOT13, SPARC_GOT22,
SPARC_PC10, SPARC_PC22, SPARC_WPLT30.
(NAME(aout,swap_std_reloc_out)): Don't bother to use stoi when
retrieving KEEPIT value.
(NAME(aout,swap_ext_reloc_out)): Likewise. Also, only add in
output section VMA for section symbols, and check BSF_SECTION_SYM
to control whether to set r_extern to 1.
* sysdump.c (dh): Changed format of output to be 16 hex digits
followed by 16 ascii characters, similar to Emacs' hexl-mode,
to make it easier to read.
Jeff Law [Fri, 14 Jul 1995 03:19:38 +0000 (03:19 +0000)]
* config/tc-hppa.h (UNDEFINED_DIFFERENCE_OK): Define for SOM.
* write.c (adjust_reloc_syms): Set sy_used_in_reloc for both
symbols in a fixup where a defined symbol is subtracted from an
undefined symbol (when UNDEFINED_DIFFERENCE_OK is defined).
(fixup_segment): Do nothing for the difference of two symbols if
UNDEFINED_DIFFERENCE_OK is defined.
* srconv.c (wr_tr): Write out handcrafted tr block.
(walk_tree_symbol): Use evallen and evalue instead of
vallen & value because of corresponding changes in
sysroff.info.
* sysdump.c (sysroff_swap_tr_in, sysroff_print_tr_out): New
functions.
* sysroff.info (tr): the tr block is a special case --- a block
without contents --- which can't be handled by generated code.
(den, dpp): only first byte is present for DENend, DPPend.
(dsy): describe a conditional portion of block, rename some fields.
(dps): describe a conditional portion of block.
(dfl): removed.
* sysinfo.y (yyerror): write error message to standard error.
Jim Wilson [Thu, 13 Jul 1995 19:00:19 +0000 (19:00 +0000)]
Fix debug info bugs for SGI
* ecoff.c (add_file): Don't collapse multiple .file commands into
a single file structure.
(ecoff_build_lineno): Set ilineBase to sum of previous file's
ilineBase and cline.
Ian Lance Taylor [Thu, 13 Jul 1995 14:50:08 +0000 (14:50 +0000)]
* nm.c (HAVE_SBRK): Define execpt on amigados and WINDOWS_NT.
(struct size_sym): Define.
(show_stats): New static variable.
(long_options): Add undocumented option "stats".
(main): Print memory stats if requested.
(sort_bfd, sort_dynamic, sort_x, sort_y): New static variables.
(numeric_forward): Use minisymbols rather than asymbols.
(non_numeric_forward): Likewise.
(size_forward1): Rename from size_forward. Use minisymbols.
(size_forward2): New static function.
(sort_symbols_by_size): Take new arguments dynamic, size, and
symsizep. Use minisymbols. Don't store the size back in the
symbol; store in a newly allocate struct size_sym array.
(display_rel_file): Read minisymbols rather than asymbols. Set
sort_* variables. Call print_size_symbols if sorting by size.
(filter_symbols): Take new arguments dynamic and size. Use
minisymbols.
(print_symbols): Likewise. Call print_symbol for actual printing.
(print_size_symbols): New static function.
(print_symbol): New static function.
PR 5332.
Fred Fish [Wed, 12 Jul 1995 22:47:39 +0000 (22:47 +0000)]
* configure.in (configdirs): Remove gdb.chill from default list
of subdirs and then add it back in only if doing a native build.
The current chill compiler does not yet work in any cross build.
Fred Fish [Wed, 12 Jul 1995 17:27:40 +0000 (17:27 +0000)]
* Revert all signal changes from Jul 6.
* gdb.base/{sigall.c signals.c}: Define away signal() and alarm()
for sh-hms targets, allowing these tests to link, with no other
changes. Testing is suppressed by setting "nosignals" in site.exp.
Ian Lance Taylor [Wed, 12 Jul 1995 15:37:12 +0000 (15:37 +0000)]
* ldemul.h (ldemul_open_dynamic_archive): Add search parameter to
declaration.
(ld_emulation_xfer_type): Add search parameter to
open_dynamic_archive entry point.
* ldemul.c (ldemul_open_dynamic_archive): Add search parameter.
* ldfile.c (ldfile_try_open_bfd): Rename from try_open_bfd, and
make non-static. Change all callers to use new name.
(ldfile_open_file_search): Make static. If entry is dynamic, call
ldemul_open_dynamic_archive.
(ldfile_open_file): Don't call ldemul_open_dynamic_archive.
* ldfile.h (ldfile_open_file_search): Don't declare.
(ldfile_try_open_bfd): Declare.
* emultempl/elf32.em (gld${EMULATION_NAME}_open_dynamic_archive):
Accept search parameter. Don't search for a library, just look in
a single place.
* emultempl/linux.em (gld${EMULATION_NAME}_open_dynamic_archive):
Likewise.
Ian Lance Taylor [Tue, 11 Jul 1995 21:12:41 +0000 (21:12 +0000)]
* archive.c (bfd_generic_archive_p): If the archive has a map, and
the target was defaulted, but the first object in the archive can
not be matched with that target, then return a bad format error.
Ian Lance Taylor [Tue, 11 Jul 1995 20:16:48 +0000 (20:16 +0000)]
* elf64-sparc.c (elf_sparc_howto_table): Set howto for WDISP16 to
elf64_wdisp16_reloc.
(elf64_wdisp16_reloc): New static function.
(elf64_sparc_relocate_section): New static function.
(elf_backend_relocate_section): Define.
PR 7333.
Ian Lance Taylor [Tue, 11 Jul 1995 19:24:46 +0000 (19:24 +0000)]
* libelf.h (struct elf_size_info): Change type of last argument to
swap_symbol_out from char * to PTR.
(bfd_elf32_swap_symbol_out): Update declaration.
(bfd_elf64_swap_symbol_out): Likewise.
* elfcode.h (elf_swap_symbol_out): Change type of cdst from char *
to PTR.
* elf.c (swap_out_syms): Cast to PTR, not char *, when calling
swap_symbol_out routine.
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Likewise.
(elf_link_output_sym): Likewise.
(elf_link_output_extsym): Likewise.
* elf32-sparc.c (elf32_sparc_finish_dynamic_sections): Likewise.
* config/tc-mips.c (mips_4010): New static variable.
(interlocks): New static variable.
(md_begin): Check for a cpu of "r4010". Set mips_4010 correctly.
If mips_4650 or mips_4010, set interlocks.
(append_insn): Check interlocks, not mips_4650.
(mips_emit_delays): Likewise.
(mips_ip): Only permit INSN_4010 instructions if mips_4010.
(md_longopts): Add "m4010" and "no-m4010".
(md_parse_option): Accept -mcpu=r4010. Handle -m4010 and
-no-m4010.
(md_show_usage): Document -m4010 and -no-m4010.
* mips-opc.c (mips_opcodes): For the move pseudo-op, prefer daddu
if ISA 3 and addu otherwise, replacing or, since some MIPS chips
have multiple add units but only a single logical unit.
Ian Lance Taylor [Tue, 11 Jul 1995 17:26:08 +0000 (17:26 +0000)]
* ecoff.c (struct efdr): Add new field fake.
(init_file): Initialize fake.
(add_file): Add new parameter fake. Change all callers.
(ecoff_build_debug): Don't warn about a missing .end for a fake
file.
PR 6509.
Ian Lance Taylor [Tue, 11 Jul 1995 15:52:03 +0000 (15:52 +0000)]
* ppc-opc.c (powerpc_operands): Change CR to use a bitsize of 3,
shifted by 18, without any insertion or extraction function.
(insert_cr, extract_cr): Remove.
Ian Lance Taylor [Mon, 10 Jul 1995 21:16:40 +0000 (21:16 +0000)]
Based on patches from H.J. Lu <[email protected]>:
* ldlang.h (lang_input_statement_type): Add new field dynamic.
* ldlang.c (new_afile): Set dynamic from config.dynamic_link.
* ldfile.c: Include bfdlink.h.
(ldfile_open_file): Check dynamic field of entry, not global
dynamic_link field. Don't do a dynamic search when doing a
relocateable link.
* ldmain.c (main): Don't warn about dynamic_link for a
relocateable link.
* emultempl/sunos.em (gld${EMULATION_NAME}_find_so): Skip file if
dynamic is false.
(gld${EMULATION_NAME}_create_output_section_statements): Always
loop over input files.
* Makefile.in: Rebuild dependencies.
Ian Lance Taylor [Mon, 10 Jul 1995 19:01:21 +0000 (19:01 +0000)]
Based on patches from H.J. Lu <[email protected]>:
* config/tc-i386.c (md_apply_fix3): Rename from md_apply_fix1.
Accept pointer to value and segment. Fix OBJ_ELF PCREL case to
handle global defined symbols correctly.
(md_apply_fix): Remove both versions.
* config/tc-i386.h (MD_APPLY_FIX3): Define.
Ian Lance Taylor [Mon, 10 Jul 1995 17:31:31 +0000 (17:31 +0000)]
Based on patches from Eric Youngdale <[email protected]>:
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): If -Bsymbolic,
output a DT_SYMBOLIC dynamic entry.
(elf_adjust_dynamic_symbol): If -Bsymbolic, don't require a PLT
entry for a locally defined symbol.
* elf32-i386.c (elf_i386_relocate_section): If -Bsymbolic, do warn
about undefined symbols, and fill in the GOT entry for a symbol
defined in a regular object file.
(elf_i386_finish_dynamic_symbol): If -Bsymbolic, output a RELATIVE
reloc rather than a GLOB_DAT reloc for a symbol defined in a
regular object file.
* elf32-m68k.c (elf_m68k_relocate_section): If -Bsymbolic, do warn
about undefined symbols, and fill in the GOT entry for a symbol
defined in a regular object file.
(elf_m68k_finish_dynamic_symbol): If -Bsymbolic, output a RELATIVE
reloc rather than a GLOB_DAT reloc for a symbol defined in a
regular object file.
* elf32-sparc.c (elf32_sparc_relocate_section): If -Bsymbolic, do
warn about undefined symbols, and fill in the GOT entry for a
symbol defined in a regular object file.
(elf32_sparc_finish_dynamic_symbol): If -Bsymbolic, output a
RELATIVE reloc rather than a GLOB_DAT reloc for a symbol defined
in a regular object file.
* coffgen.c (coff_renumber_symbols): Sort defined symbols that are
neither BSF_FUNCTION not BSF_NOT_AT_END just before undefined
symbols.
* coffcode.h (coff_slurp_symbol_table): Set BSF_FUNCTION as well
as BSF_NOT_AT_END.
PR 5491.
* config/obj-coff.c (coff_frob_symbol): If SF_GET_FUNCTION, set
BSF_FUNCTION.
(symbol_globalP, symbol_global_lastP): New global variables.
(yank_symbols): Sort defined global symbols to the end, just
before the undefined symbols.
(glue_symbols): Add two arguments, and use them instead of
referring directly to global variables.
(crawl_symbols): Call glue_symbols twice, once for defined globals
and once for undefined. Add corresponding know calls.
PR 5491.
Add SPARC ELF PIC support.
* write.c (fixup_segment): Pass fixP to TC_RELOC_RTSYM_LOC_FIXUP,
not fixP->fx_r_type.
* config/tc-sparc.c (sparc_pic_code): New global variable.
(md_apply_fix): If generating PIC, adjust fx_addnumber for any non
PC relative reloc.
(tc_gen_reloc): If generating PIC, adjust various reloc types.
Remove fx_pcrel assert, since it is no longer true.
(md_parse_option): Handle -K PIC.
* config/tc-sparc.h (sparc_pic_code): Declare if OBJ_ELF.
(TC_RELOC_RTSYM_LOC_FIXUP): Define if OBJ_ELF.
(tc_fix_adjustable): Don't adjust PC relative relocs if PIC.
* config/tc-i386.h (TC_RELOC_RTSYM_LOC_FIXUP): Take a fixp, not a
reloc type.
PR 7131.
Fred Fish [Fri, 7 Jul 1995 04:11:42 +0000 (04:11 +0000)]
* configure.in (signaldirs): Define and add to configdirs for all
targets except some specific ones that are known to not support signals.
Also clean up formatting.
* gdb.base/Makefile.in (EXECUTABLES): Remove sigall and signals.
(signals, sigall): Remove rules to build.
* gdb.base/{sigall.c, sigall.exp, signals.c, signals.exp}:
Moved to new gdb.signals directory.
* gdb.signals: New test directory.
* gdb.signals/{Makefile.in, configure.in, sigall.c, sigall.exp,
signals.c signals.exp}: New or moved files.
Patches from Jerry Blakely <[email protected]>:
* as.c (listing_filename): New static variable.
(show_usage): Mention -a=file.
(parse_args): Support = option of -a to set name of listing file.
(main): Pass listing_filename to listing_print.
* listing.c (list_file): New static variable.
(various): Replace printf with fprintf to list_file.
(listing_print): If name argument is not NULL, open it as
list_file.
* doc/as.texinfo, doc/as.1: Document -a=file.
PR 6354.
* Makefile.in: Rebuild dependencies.
(CFILES): Added elflink.c.
(Makefile): Depend upon config.status, not configure.in.
(config.status): New target; depend upon configure configure.host
and config.bfd.
* listing.c (struct file_info_struct): Rename end_pending field to
at_end.
(file_info): Initialize at_end, not end_pending.
(buffer_line): If at_end set, just return immediately. Don't
worry about end_pending cases. Set at_end when EOF is read.
(print_source): Check at_end, not end_pending.
(listing_listing): Likewise.
PR 6636.