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.
Ken Raeburn [Thu, 6 Jul 1995 02:22:00 +0000 (02:22 +0000)]
Added new files elflink.c, elflink.h, elfcore.h.
Moved some mostly size-independent stuff from elfcode.h to elf.c, adding a data
structure to elfcode.h with some misc data and callback functions. Added a
pointer to that structure to the target back end data. More work can be done
here.
Renamed generic elf routines (not cpu-specific stuff) to start with bfd_elf or
_bfd_elf. Updated most call sites, sometimes defined some macros.
Moved some dynamic linking support code from m68k, sparc, i386 to common files,
using target back end flags to control behavior. More work can probably be
done here too.
Moved core- and linker-support code out of elfcode.h to elf.c, elfcore.h,
elflink.h, or elflink.c. Now elfcode.h contains only .o and executable
support, plus #includes of elfcore.h and elflink.h. Much of the contents of
these other header files can probably still be moved from the .h files to the
.c files, to get compiled only once.
Cleaned up some "gcc -Wall" warnings regarding unused or uninitialized
variables, in generic and cpu-specific code.
* Makefile.in (all, clean, distclean, mostlyclean, realclean,
install): Changed targets so that they descend all
subdirectories in $(SUBDIRS).
(*-all, *-clean, *-install): Removed targets.
* configure.in: Don't bother with target makefile fragments, they
are no longer needed.
* configure: regenerated.
* 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.