* ld.h (check_nocrossrefs): Declare.
* ldlang.h (struct lang_nocrossref): Define.
(struct lang_nocrossrefs): Define.
(nocrossref_list): Declare.
(lang_add_nocrossref): Declare.
* ldlex.l: Recognize NOCROSSREFS keyword.
* ldgram.y (%union): Add nocrossref field.
(NOCROSSREFS): New terminal.
(ifile_p1): Recognize NOCROSSREFS.
(nocrossref_list): New nonterminal.
* ldlang.c (nocrossref_list): Define.
(lang_add_nocrossref): New function.
* ldmain.c (main): If nocrossref_list is not NULL, call
check_nocrossrefs.
(warning_callback): Free symbols if there is no place to store
them.
(notice): Call add_cref if nocrossref_list is not NULL.
* ldcref.c: Include "ldexp.h" and "ldlang.h".
(check_nocrossrefs): New function.
(check_nocrossref): New static function.
(struct check_refs_info): Define.
(check_refs, check_reloc_refs): New static functions.
* Makefile.in: Rebuild dependencies.
* ld.texinfo (Option Commands): Document NOCROSSREFS.
Fred Fish [Thu, 1 Aug 1996 17:30:37 +0000 (17:30 +0000)]
* config/mips/tm-mips.h (TM_MIPS_H): Enclose file contents in
this, define when contents are included.
(mips_read_processor_type): Add prototype.
* config/mips/xm-mips.h: Remove strdup decl, now in gdb_string.h
* mdebugread.c (ecoff_relocate_efi): Add prototype.
(fixup_sigtramp): Only needed when TM_MIPS_H is defined.
* ld.texinfo (Section Placement): Improve the wording of the
wildcard documentation. Mention that wildcards are only searched
for on the command line, not in the file system.
Fred Fish [Thu, 1 Aug 1996 05:25:23 +0000 (05:25 +0000)]
* rs6000-nat.c (add_vmap): Return 0 to caller rather than random value.
(vmap_ldinfo): Ensure got_exec_file is not used uninitialized.
(fetch_core_registers): Add prototype.
(vmap_symtab): Ditto.
(objfile_symbol_add): Ditto.
(add_vmap): Ditto.
(vmap_ldinfo): Ditto.
(vmap_exec): Ditto.
Ian Lance Taylor [Wed, 31 Jul 1996 19:58:05 +0000 (19:58 +0000)]
Make ld -N more reasonable for ELF:
* elf.c (map_sections_to_segments): If D_PAGED is not set, set
phdr_in_section to false, and always use a single load segment.
(elf_sort_sections): Sort sections by LMA after VMA.
(assign_file_positions_for_segments): If D_PAGED is not set, don't
align to maxpagesize.
(assign_file_positions_except_relocs): Likewise.
* elfcode.h (elf_object_p): If a section is loaded but not page
aligned, clear D_PAGED.
oWed Jul 31 15:41:42 1996 James G. Smith <jsmith@cygnus.co.uk>
* config/tc-arm.c: Changed INSN_SIZE to variable insn_size, as
pre-cursor to adding Thumb support. Also added cpu_variant flag
information to each of the asm_flg structures.
(md_parse_option): Updated ARM7 parsing to allow 't' for
thumb/halfword support, aswell as 'm' for long multiply.
(md_show_usage): Updated help message.
(md_assemble): Check that instruction flags are applicated to the
current cpu variant.
(md_apply_fix3, tc_gen_reloc): Add BFD_RELOC_ARM_OFFSET_IMM8 and
BFD_RELOC_ARM_HWLITERAL relocation support for new halfword and
signextension instructions.
(do_ldst): Generate halfword and signextension variants if
mnemonic flags match.
(ldst_extend): Do not allow shifts in the offset field of halfword
or signextension instructions.
(validate_offset_imm): Provide check on halfword and signextension
immediate range.
(add_to_lit_pool): Merge identical literal pool values.
Wed Jul 31 15:55:12 1996 James G. Smith <jsmith@cygnus.co.uk>
* gas/arm/arm7t.s: Added.
* gas/arm/arm7t.d: Added.
* gas/arm/arm.exp: Updated to run the new test.
Wed Jul 31 14:39:27 1996 James G. Smith <jsmith@cygnus.co.uk>
* arm-opc.h: (arm_opcodes): Added halfword and sign-extension
memory transfer instructions. Add new format string entries %h and %s.
* arm-dis.c: (print_insn_arm): Provide decoding of the new
formats %h and %s.
Jeff Law [Tue, 30 Jul 1996 20:30:49 +0000 (20:30 +0000)]
* config/tc-hppa.c (selector_table): Add 'E' selector.
(cons_fix_new_hppa): Don't coke on e_esel.
(tc_gen_reloc, SOM version): Handle R_COMP2 when used
to help generate exception handling tables.
(md_apply_fix): Don't try to apply fixups with an e_esel
selector.
(hppa_fix_adjustable): Fixups with e_esel selectors
are not adjustable.
Another stab at EH on the PA.
Jeff Law [Tue, 30 Jul 1996 20:16:27 +0000 (20:16 +0000)]
* libhppa.h (R_HPPA_ESEL): New field selector.
(e_esel): Similarly.
* som.c (hppa_som_gen_reloc_type): If we encounter an e_esel,
then generate R_COMP2 (PUSH_SYM), R_DATA_EXPR fixup stream.
(som_write_fixups): Handle R_DATA_EXPR just like R_CODE_EXPR.
Making another stab at EH support on the PA.
Fred Fish [Tue, 30 Jul 1996 07:24:22 +0000 (07:24 +0000)]
* rs6000-tdep.c (push_arguments): Remove unused variable "pc".
(branch_dest): Remove unused variable "offset".
(pop_dummy_frame): Add prototype and make static.
(push_arguments): Guard against using len uninitialized.
(push_arguments): Guard against using arg uninitialized.
(frame_saved_pc): Remove unused variable "frameless".
(free_loadinfo): Ifdef out unused function.
Fred Fish [Tue, 30 Jul 1996 06:50:23 +0000 (06:50 +0000)]
* xcoffread.c (compare_lte): Change prototype and function to
be correct type for passing to qsort.
(add_stab_to_list): Ifdef out unused function and prototype.
(compare_lte): Add prototype
(arrange_linetable): Ditto.
(record_include_begin): Ditto.
(record_include_end): Ditto.
(process_linenos): Ditto.
(xcoff_next_symbol_text): Ditto.
(scan_xcoff_symtab): Ditto.
(xcoff_initial_scan): Ditto.
Fred Fish [Tue, 30 Jul 1996 06:15:13 +0000 (06:15 +0000)]
* mips-tdep.c (mips_read_processor_type): Add parens around
bitwise-and operands in comparison; previous expression always
evaluated to 0 because of equality comparison of two constants.
Ian Lance Taylor [Mon, 29 Jul 1996 21:33:26 +0000 (21:33 +0000)]
* fnmatch.h, fnmatch.c: New files.
* ldlex.l: Remove unused definition of FILENAME. Add definition
of WILDCHAR. In SCRIPT mode, accept any sequence of WILDCHAR as a
NAME.
* ldgram.y (file_NAME_list): Accept '*' and '?' specially.
(input_section_spec): Accept '?' specially.
(statement): Change exp to mustbe_exp in length and FILL cases.
(section): Call ldlex_script before section statements, and call
ldlex_popstate after them.
* ldlang.c: Include "fnmatch.h".
(wildcardp): New static function.
(wild_section): Permit the section name to be a wildcard.
(wild_file): New static function, broken out of wild.
(wild): Call wild_file. Permit the file name to be a wildcard.
(open_input_bfds): Don't call lookup_name for a wildcard pattern.
* Makefile.in: Rebuild dependencies.
(CFILES): Add fnmatch.c.
(HFILES): Add fnmatch.h.
(OFILES): Add fnmatch.o.
* ld.texinfo: Document that file and section names can now be
wildcard patterns.
* ldlang.c (lang_place_orphans): Correct condition: place a common
section if not relocateable or if common definitions are forced.
Ian Lance Taylor [Fri, 26 Jul 1996 18:06:35 +0000 (18:06 +0000)]
* alpha-dis.c (print_insn_alpha_osf): Remove.
(print_insn_alpha_vms): Remove.
(print_insn_alpha): Make globally visible. Chose the register
names based on info->flavour.
* disassemble.c: Always return print_insn_alpha for the alpha.
Fred Fish [Fri, 26 Jul 1996 05:05:35 +0000 (05:05 +0000)]
* libiberty.h (PRIVATE_XMALLOC): Enclose xmalloc/xrealloc
definitions inside #ifndef so that programs that want to
can define PRIVATE_XMALLOC and then define xmalloc and
xrealloc anyway they want.
(basename): Document in source that we can't declare
the parameter type because it is declared inconsistently across
different systems.
Fred Fish [Fri, 26 Jul 1996 04:12:12 +0000 (04:12 +0000)]
See the huge ChangeLog entry that has the header:
Thu Jul 25 19:41:31 1996 Fred Fish <fnf@cygnus.com>
for details about these changes. I was going to include the complete
entry in the checkin message but it was apparently so large it caused
cvs to dump core.
Martin Hunt [Thu, 25 Jul 1996 19:16:34 +0000 (19:16 +0000)]
Thu Jul 25 12:08:09 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* d10v-opc.c: Changes to support signed and unsigned numbers.
All instructions with the same name that have long and short forms
now end in ".l" or ".s". Divs added.
* d10v-dis.c: Changes to support signed and unsigned numbers.
Martin Hunt [Thu, 25 Jul 1996 19:15:14 +0000 (19:15 +0000)]
Thu Jul 25 12:03:33 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c: Fix packaging bug. Added range checking.
Added kludge for divs instruction. Fixed minor problem with
multiple text sections.
* tc-d10v.h (d10v_cleanup): Change prototype.
Martin Hunt [Thu, 25 Jul 1996 19:14:27 +0000 (19:14 +0000)]
Thu Jul 25 12:03:33 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Fix packaging bug. Added range checking.
Added kludge for divs instruction. Fixed minor problem with
multiple text sections.
* config/tc-d10v.h (d10v_cleanup): Change prototype.
Ian Lance Taylor [Wed, 24 Jul 1996 16:05:32 +0000 (16:05 +0000)]
* elf.c (assign_file_positions_for_segments): Track the virtual
memory position separately from the file position, and use it to
compute the alignment adjustment.
PR 10039.
Stu Grossman [Tue, 23 Jul 1996 01:24:58 +0000 (01:24 +0000)]
* Makefile.in (os9kread.o): Remove dependency on partial-stab.h.
* dbxread.c (read_dbx_symtab end_psymtab), partial-stab.h: Don't
use partial_symtab->textlow==0 as a flag, as 0 is a legitimate
text address. Use a seperate flag (textlow_not_set) instead.
This makes stabs in ELF .o files work a lot better.
* mdebugread.c xcoffread.c: Define textlow_not_set for
partial-stab.h.
* stabsread.h (end_psymtab): Add textlow_not_set arg to prototype.
Ian Lance Taylor [Mon, 22 Jul 1996 23:02:35 +0000 (23:02 +0000)]
* elf64-mips.c: Include "aout/ar.h".
(mips_elf64_slurp_armap): New static function.
(mips_elf64_write_armap): New static function.
(bfd_elf64_archive_*): Define.
* elfxx-target.h (bfd_elfNN_archive_p): Define if not defined.
Use instead of bfd_generic_archive_p.
(bfd_elfNN_write_archive_contents): Define if not defined. Use
instead of _bfd_write_archive_contents.
(bfd_elfNN_mkdarchive): Define if not defined. Use instead of
_bfd_generic_mkarchive.
(TARGET_BIG_SYM): If bfd_elfNN_archive_functions is defined, use
bfd_elfNN_archive in BFD_JUMP_TABLE_ARCHIVE rather than
_bfd_archive_coff.
(TARGET_LITTLE_SYM): Likewise.
* archive.c (bfd_slurp_armap): Check for and reject an archive map
name of /SYM64/.
* Makefile.in: Rebuild dependencies.
Ian Lance Taylor [Mon, 22 Jul 1996 19:49:24 +0000 (19:49 +0000)]
Mon Jul 22 15:38:53 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* m68k-opc.c (m68k_opcodes): Make opcode masks for the ColdFire
move ccr/sr insns more strict so that the disassembler only
selects them when the addressing mode is data register.
Ian Lance Taylor [Mon, 22 Jul 1996 19:38:23 +0000 (19:38 +0000)]
* libecoff.h (ecoff_data_type): Add rdata_in_text field.
* ecoff.c (ecoff_compute_section_file_positions): Copy
rdata_in_text from backend info to tdata. Clear it if any data
section comes before .rdata.
(_bfd_ecoff_write_object_contents): Use rdata_in_text field in
tdata rather than backend info.
Martin Hunt [Mon, 22 Jul 1996 18:57:20 +0000 (18:57 +0000)]
start-sanitize-d10v
Mon Jul 22 11:25:24 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* d10v-opc.c (pre_defined_registers): Declare.
* d10v-dis.c (print_operand): Now uses pre_defined_registers
to pick a better name for the registers.
Martin Hunt [Mon, 22 Jul 1996 18:55:27 +0000 (18:55 +0000)]
start-sanitize-d10v
Mon Jul 22 11:32:36 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Many changes to get relocs working.
(register_name): No longer creates a symbol for register names.
(pre_defined_registers): moved to opcodes/d10v-opc.c.
(d10v_insert_operand): Now works correctly for either container.
* config/tc-d10v.h (d10v_cleanup): Declare.
Ian Lance Taylor [Mon, 22 Jul 1996 17:58:19 +0000 (17:58 +0000)]
* sparc-opc.c: Fix opcode values for fpack16, and fpackfix. Fix
operands for fexpand and fpmerge. From Christian Kuehnke
<Christian.Kuehnke@arbi.informatik.uni-oldenburg.de>.
Ian Lance Taylor [Mon, 22 Jul 1996 17:19:09 +0000 (17:19 +0000)]
Mon Jul 22 13:17:06 1996 Richard Henderson <rth@tamu.edu>
* alpha-dis.c (print_insn_alpha): No longer the user-visible
print routine. Take new regnames and cpumask arguments.
Kill the environment variable nonsense.
(print_insn_alpha_osf): New function. Do OSF/1 style regnames.
(print_insn_alpha_vms): New function. Do VMS style regnames.
* disassemble.c (disassembler): Test bfd flavour to pick
between OSF and VMS routines. Default to OSF.
Ian Lance Taylor [Mon, 22 Jul 1996 17:04:04 +0000 (17:04 +0000)]
Mon Jul 22 12:46:55 1996 Richard Henderson <rth@tamu.edu>
* tc-alpha.c: Patches to track current minimum alignment to reduce
the number of fragments created with frag_align.
(alpha_current_align): New static variable.
(s_alpha_text): Reset alignment to 0.
(s_alpha_data, s_alpha_rdata, s_alpha_sdata): Likewise.
(s_alpha_stringer, s_alpha_space): New functions.
(s_alpha_cons, alpha_flush_pending_output): Remove functions.
(alpha_cons_align): New function to replace both of them.
(emit_insn): Only align if alpha_current_align is less than 2;
reset alpha_current_align to 2.
(s_alpha_gprel32): Likewise.
(s_alpha_section): New function. Basically duplicate the other
alpha section change hooks. Only define for ELF.
(s_alpha_float_cons): Simplify alignment handling.
(md_pseudo_table): Only define "rdata" and "sdata" if OBJ_ECOFF.
If OBJ_ELF, define "section", "section.s", "sect", and "sect.s".
Don't define the s_alpha_cons pseudo-ops. Do define
s_alpha_stringer and s_alpha_space pseudo-ops.
(alpha_align): Skip if less than current default alignment. Set
default alignment.
* tc-alpha.h (md_flush_pending_output): Remove.
(md_cons_align): Add.
* tc-alpha.c: Add oodles of function description comments.
(md_bignum_to_chars): Remove; there are no callers.
(md_show_usage): Mention some more variants.