* elf64-alpha.c (elf64_alpha_merge_ind_symbols): New function to
merge got and reloc entries from ind syms to their target.
(elf64_alpha_always_size_sections): Call it.
(elf64_alpha_check_relocs): Operate on the target of indirect symbols.
(elf64_alpha_can_merge_gots): Likewise.
(elf64_alpha_merge_gots): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Back out HJ's change,
as it is insufficient to handle the relocation changes as well.
Andrew Cagney [Tue, 14 Oct 1997 07:27:31 +0000 (07:27 +0000)]
o Add support for configuring wordsize, fp hardware and target
endianness. Provide defaults for some tier-1 mips targets.
o Parameterize all functions with SIM_DESC.
* elf64-alpha.c (elf64_alpha_calc_dynrel_sizes): Allow for RELATIVE
relocs for symbols in shlibs that have been forced local.
(elf64_alpha_relocate_section): Output RELATIVEs in .got for same.
* bfd/elf64-alpha.c (elf64_alpha_relocate_section): Use the
got_enties of the default symbol for the default versioned
symbol. Patch from hjl@gnu.ai.mit.edu, modified not to use
alloca in the loop.
Andrew Cagney [Tue, 14 Oct 1997 02:54:08 +0000 (02:54 +0000)]
Output line-ref to original igen source file when generating trace
statements.
Define NIA macro (dependant on gen-delayed-branch).
Verify opening/closing quote in input assembler strings.
* nm.c (lineno_cache_bfd): New file static variable.
(lineno_cache_rel_bfd): New file static variable.
(display_archive): Clear lineno_cache_bfd and lineno_cache_rel_bfd
when closing a BFD.
(display_file): Likewise.
(print_symbol): Use lineno_cache_bfd and lineno_cache_rel_bfd
instead of cache_bfd and cache_rel_bfd. Make seccount static, and
only set it when setting relocs.
Andrew Cagney [Thu, 9 Oct 1997 08:35:33 +0000 (08:35 +0000)]
Add -Wnodiscard option so that warning about discarded instructions
can be suppressed.
Allow ``<insn-spec> { <nmemonic> | <model> }'' in instruction file.
* objcopy.c (keep_specific_list, privatize_specific_list,
weaken_specific_list): New variables.
(keep_symbols): Removed.
(add_specific_symbol): New function from the carcas of
add_strip_symbol. Takes a list as an argument.
(is_specified_symbol): Likewise from is_strip_symbol.
(filter_symbols): Honor the new privatize and weaken lists.
Optimize bfd_asymbol_name handling.
(copy_object, copy_options, copy_usage): Add privatize-symbol &
weaken-symbol options.
Updated first round of test suite drivers to accept symbol-offset
listings from "objdump" disassembly with or without the new "0x"
prefix before hexadecimal numbers.
David Edelsohn [Tue, 7 Oct 1997 19:53:17 +0000 (19:53 +0000)]
* config/tc-sparc.h (TARGET_FORMAT support): Moved to tc-sparc.c.
Redefine TARGET_FORMAT to call sparc_target_format.
* config/tc-sparc.c (in_unsigned_range): New function.
(sparc_arch_size): Make static.
(sparc_target_format): New function.
(sparc_ip): Delete variable immediate_max. Rewrite %hi/etc reloc
handling. Add support for %hh,%hm,%lm,%h44,%m44,%l44.
(output_insn): Set `fx_no_overflow'.
(md_apply_fix3): Handle BFD_RELOC_SPARC_{7,H44,M44,L44}.
(tc_gen_reloc): Likewise.
Per Bothner [Fri, 3 Oct 1997 23:05:12 +0000 (23:05 +0000)]
* c-lang.h, cp-valprint.c (static_field_print): Make non-static.
* parse.c, parser-defs.h (length_of_subexp): Make non-static.
* jv-exp.y (FieldAccess): Handle dollar-VARIABLE as primary.
(ArrayAccess): Likewise. Also remove warnings.
(CastExpression): Implement (typename) UnaryExpression.
(push_qualified_expression_name): Fix small bug.
* jv-lang.c: Use TYPE_TAG_NAME, not TYPE_NAME for class names.
(_initialize_jave_language): Fix typo (jave -> java).
(java_language): Java does *not* have C-style arrays.
(java_class_from_object): Make more general (and complicated).
(java_link_class_type): Fix typo "super" -> "class". Handle arrays.
(java_emit_char, java_printchar): New function.
(evaluate_subexp_java case BINOP_SUBSCRIPT): Handle Java arrays.
* jv-valprint.c (java_value_print): Implement printing of Java arrays.
(java_print_value_fields): New function.
(java_val_print): Better printing of TYPE_CODE_CHAR, TYPE_CODE_STRUCT.
* config/tc-mips.c: Undef OBJ_COPY_SYMBOL_ATTRIBUTES before
including obj-elf.h in OBJ_MAYBE_ELF case.
(mips_target_format): Return NULL after abort to avoid warning.
* objcopy.c (set_times): New static function, replacing
make_same_dates.
(strip_main): If preserve_dates, stat the input file before
copying it, and call set_times afterward.
(copy_main): Likewise.
Make ld -s work on AIX:
* xcofflink.c (xcoff_link_add_symbols): Don't create the .debug
section if we are stripping.
(bfd_xcoff_size_dynamic_sections): Don't set the .debug section
size if we are stripping.
(_bfd_xcoff_bfd_final_link): Don't set SEC_RELOC or rel_filepos,
and don't write out relocs, if we are stripping.
(xcoff_link_input_bfd): Don't set up reloc if we are stripping.
(xcoff_write_global_symbol): Don't write out symbol or reloc if we
are stripping.
Mark Alexander [Fri, 3 Oct 1997 16:58:31 +0000 (16:58 +0000)]
* config/mips/tm-mips.h (MAKE_MSYMBOL_SPECIAL): Force MIPS16
addresses to be odd.
(MIPS_FPU_SINGLE_REGSIZE, MIPS_FPU_DOUBLE_REGSIZE): Define.
* mips-tdep.c (mips_extract_return_value): Doubles aren't
returned in FP0 if FP registers are single-precision only.
start-sanitize-r5900
* config/mips/tm-r5900.h (MIPS_LAST_FP_ARG_REGNUM): Redefine
to disable use of FP registers for function arguments.
end-sanitize-r5900
* elf32-sparc.c (sparc_elf_wdisp16_reloc): Cast to bfd_byte *, not
char *, when calling bfd_get_32 and bfd_put_32.
* sunos.c (sunos_scan_dynamic_symbol): Cast contents to char *
when calling strcpy.
Andrew Cagney [Fri, 3 Oct 1997 00:03:35 +0000 (00:03 +0000)]
Rewrite simulator floating point module. Do not rely on host FP
implementation. Add preliminary support for different IEEE-754
rounding modes. Implement SQRT in software.
Update TiC80 simulator.
Add sim-fpu -> TestFloat interface for testing.
David Edelsohn [Thu, 2 Oct 1997 23:55:22 +0000 (23:55 +0000)]
* reloc.c (bfd_check_overflow): New function.
(bfd_perform_relocation, bfd_install_relocation): Use it.
(BFD_RELOC_SPARC_{DISP64,PLT64}): New relocs.
(BFD_RELOC_SPARC_{HIX22,LOX10,H44,M44,L44,REGISTER}): New relocs.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* ldlang.c (wild_doit): Rewrite flag handling for clarity. If we
are not adding the first input section, and SEC_READONLY is clear
on the output section, then don't copy it from the input section.
If SEC_READONLY is not set on the input section, then clear it on
the output section.
* configure.tgt (mips*-sgi-irix[56]*): Use elf32bsmip rather than
elf32bmip.
(mips*el-*-linux*): Change elf32lmip to elf32lsmip and elf32bmip
to elf32bsmip.
(mips*-*-linux*): Likewise.
* emulparams/elf32bsmip.sh: New file; just like elf32bmip.sh, but
setting ENTRY to __start.
* emulparams/elf32lsmip.sh: New file; just like elf32lmip.sh, but
setting ENTRY to __start.
* scripttempl/elf.sc: Always set ENTRY to _start if it was not
already set.
* Makefile.am ($(BFD_H)): Change stmp-bfd.h to stmp-bfd-h.
(stmp-bfd-h): Rename from stmp-bfd.h.
(BFD_H_FILES, LIBBFD_H_FILES, LIBCOFF_H_FILES): New variables.
($(srcdir)/bfd-in2.h): Just depend upon stmp-bin2-h.
(stmp-bin2-h): New target.
($(srcdir)/libbfd.h): Just depend upon stmp-lbfd-h.
(stmp-lbfd-h): New target.
($(srcdir)/libcoff.h): Just depend upon stmp-lcoff-h.
(stmp-lcoff-h): New target.
(CLEANFILES): Change stmp-bfd.h to stmp-bfd-h. Add stmp-bin2.h,
stmp-lbfd-h, and stmp-lcoff-h.
* Makefile.in: Rebuild.