+
+ * config/tc-h8500.c (build_bytes): Get reloc type right for a
+ %page operation. (md_assemble): Don't modify input_line_pointer.
+ (mdcoff_sizemachdep): New function.
+ * config/tc-h8500.h (TC_COFF_SIZEMACHDEP): New macro.
+ * config/tc-z8k.c (get_operand): Delete bogus check.
+
+
+ * write.c (number_to_chars_*): Delete bogus range check.
+
+ * output-file.c (TARGET_ARCH): No default.
+
+
+ * config/tc-sh.c (md_convert_frag): Truncate disps before calling
+ md_number_to_chars. (md_assemble): Don't modify
+ input_line_pointer.
+
+
+ * config/tc-h8300.c (md_assemble): Don't update input_line_pointer.
+
+
+ * config/obj-som.[ch] (obj_read_begin_hook): Remove last change.
+ Breaks with the HP compilers.
+
+ * config/tc-hppa.c (struct call_info): Remove fields which were
+ set but never used. Remove all code which sets those fields.
+ (struct subspace_dictionary_chain): Likewise.
+ (struct space_dictionary_chain): Likewise.
+ (pa_desc): Delete useless function. Delete all references.
+ (hppa_tc_make_sections): No need to count the number of symbols for
+ the symbol extension section.
+
+
+ * config/obj-som.c (obj_som_version): Pass version string to
+ SOM BFD backend.
+ (obj_som_copyright): New function. Much like obj_som_version.
+
+ * config/tc-hppa.c (obj_copyright): Define as appropriate for
+ SOM and ELF.
+ (pa_copyright): Just a stub now.
+
+ * config/obj-som.c (obj_read_begin_hook): Delete unused function.
+ * config/obj-som.h (obj_read_begin_hook): Provide dummy definition.
+ (TARGET_SYMBOL_FIELDS): Delete. SOM isn't making use of them.
+
+ * config/tc-hppa.c (tc_gen_reloc, SOM version): Handle relocation
+ expansion due to rounding mode selectors. Handle R_[RDSN]_MODE
+ relocations for selecting the current rounding mode.
+
+ * config/tc-hppa.c (evaluate_absolute): Support e_rrsel and
+ e_rlsel field selectors.
+
+
+ * config/obj-elf.h: If ECOFF_DEBUGGING, undef
+ SEPARATE_STAB_SECTIONS and INIT_STAB_SECTION, and define
+ OBJ_PROCESS_STAB to call ecoff_stab.
+ * config/obj-elf.c: Don't compile obj_elf_init_stab_section if
+ INIT_STAB_SECTION is not defined.
+
+
+ * config/tc-hppa.c (md_apply_fix): Delete old wrapper function.
+ (md_apply_fix_1): Rename to md_apply_fix. Fix argument decls.
+ Fix comments in various places. Always return a value.
+ Avoid dereferencing a NULL fx_addsy.
+ (hppa_force_relocation): Avoid dereferencing a NULL fx_addsy.
+
+
+ * tc-hppa.c: (tc_gen_reloc): Addend for a plabel relocation should
+ be either 0 or 2 (no static link or static link required). Always
+ assume no static link.
+
+
+ * config/tc-sparc.c (tc_gen_reloc): Make adjustment to addend be
+ dependent on howto fields, not on format flavour.
+
+ * struc-symbol.h (struct symbol): New fields sy_obj and sy_tc,
+ defined as types OBJ_SYMFIELD_TYPE and TC_SYMFIELD_TYPE, if those
+ macros are defined.
+ * config/obj-coff.h (TC_SYMFIELD_TYPE, OBJ_SYMFIELD_TYPE): Define.
+ (TARGET_SYMBOL_FIELDS, I960_SYM_FIELDS): Don't define.
+ (sy_tc, sy_obj): Define so that the fields look like they used to,
+ until all references get changed.
+
+ * write.c (fixup_segment): Lots of variables no longer register.
+ Reordered some code for easier reading.
+ * config/obj-coff.c (obj_coff_dim): dim_index no longer register.
+ Deleted superfluous return statement.
+ (obj_coff_line, obj_coff_size, obj_coff_scl, obj_coff_type,
+ obj_coff_val, tag_init, tag_insert): Deleted superfluous return
+ statement.
+ (align, obj_coff_section): Deleted debugging printfs.
+ * config/tc-i386.c (md_assemble): Discard some register decls.
+ Use assignment rather than memcpy to copy template.
+ (op_hash, reg_hash, prefix_hash): Default C initialization of
+ statics is sufficient.
+ * config/tc-sparc.c (print_insn): Array Reloc is now const, and
+ points to const.
+
+ * config/obj-coff.h (TARGET_FORMAT): Only use coff-sparc-lynx if
+ TE_LYNX; use coff-sparc otherwise.
+ [USE_NATIVE_HEADERS]: Delete this code; it isn't used.
+
+ * write.c (fixup_segment): Call TC_VALIDATE_FIX, if defined,
+ before processing a fixup. Call TC_ADJUST_RELOC_COUNT just before
+ returning. Remove some i960-coff-specific code.
+ (TC_ADJUST_RELOC_COUNT): Default to doing nothing.
+ * config/tc-i960.h (TC_ADJUST_RELOC_COUNT) [OBJ_COFF]: Define.
+ (i960_validate_fix): Declare.
+ (TC_VALIDATE_FIX): Define.
+ * config/tc-i960.c (i960_validate_fix): New function.
+
+ * write.c (number_to_chars_littleendian): New function. Write out
+ bytes in little endian order, doing size and range checking.
+ (number_to_chars_bigendian): New function, similar.
+ * write.h: Declare them.
+ * config/tc-*.c (md_number_to_chars): Use them.
+ * config/tc-vax.c (md_apply_fix): Ditto.
+ * config/tc-i386.c (md_apply_fix): Ditto.
+
+ * config/obj-coff.c: Rearranged code for handling line number
+ data.
+ (line_fsym): Renamed from function_lineoff in BFD_ASSEMBLER case,
+ since the usage is different from non-BFD_ASSEMBLER case.
+ (in_function, clear_function, set_function): New macros, to
+ combine some of the functionality implemented in differnet ways in
+ BFD_ASSEMBLER and non-... code. Used in other functions that used
+ to check function_lineoff &c.
+ (obj_emit_lineno): Split into two copies, one for BFD_ASSEMBLER,
+ one for not. Non-BFD_ASSEMBLER version now has temporary variable
+ to contain char* pointer pointed to by char** argument. Always
+ follow CROSS_COMPILE code; easier to read that way.
+ (obj_coff_ln): Don't call add_lineno or c_line_new if appline is
+ set.
+ (obj_coff_endef) [BFD_ASSEMBLER]: Don't do anything special for
+ ".bf", it's been done elsewhere.
+ (coff_frob_symbol): If ilne number data is pending, call
+ add_linesym to flush it.
+ (coff_frob_file): Don't do that here.
+ * config/obj-coff.h (coff_frob_file): Declare.
+ (obj_frob_file): Define, to call it.
+
+ * config/tc-sparc.h (md_create_short_jump, md_create_long_jump,
+ md_estimate_size_before_relax: Define them as macros calling
+ as_fatal.
+ * config/tc-sparc.c: Don't define them as functions.
+
+ * configure.in: Handle target alpha-*-osf*. (No cpu files yet.)
+
+
+ * Makefile (clean): Depend on clean-here.
+
+
+ * config/ho-go32.h: Include fopen-bin.h.
+ * as.h: If FOPEN_WB isn't defined, include fopen-same.h.
+ * output-file.c (output_file_create): Use FOPEN_WB instead of "w".
+ * input-file.c (input_file_open): Use FOPEN_RT instead of "r".
+ * listing.c (file_info): Use FOPEN_RB instead of "rb".
+ * read.c (s_include): Use FOPEN_RT instead of "r".
+
+ * stabs.c: Include obstack.h.
+
+ * tc.h (md_create_long_jump): Don't declare if it's already
+ defined as a macro.
+ (md_create_short_jump, md_estimate_size_before_relax): Ditto.
+
+ * messages.c (as_perror) [BFD_ASSEMBLER]: Use bfd_errmsg instead
+ of strerror. Clear bfd_error.
+
+ * config/te-lynx.h (LOCAL_LABELS_FB): Define, if not already
+ defined.
+
+
+ * config/tc-hppa.c (hppa_elf_mark_end_of_function): New function.
+ (pa_process_exit, pa_procend): Call it for ELF objects.
+
+
+ * config/tc-mips.c (macro): Subtract 8 from offset in non PIC l.d
+ coproc before doing goto ld.
+
+
+ * write.c (TC_FORCE_RELOCATION): Provide a default definition.
+ (fixup_segment): Allow the target machine to specify that a
+ relocation must be generated for a particular fixup. Remove
+ #ifndef TC_HPPA hack.
+
+ * config/tc-hppa.h (TC_FORCE_RELOCATION): Define.
+
+ * config/tc-hppa.c (md_apply_fix_1): Never change fx_addsy to
+ be NULL. Only fixup_segment is supposed to do that.
+ (hppa_force_relocation): New function.
+
+
+ * Makefile.in (stabs.o): Added dependencies.
+
+ * config/obj-ecoff.c (ecoff_frob_file): Don't call bfd_set_symtab.
+
+
+ * app.c (do_scrub_next_char): Output a TAB before any
+ .app* directive.
+
+ * config/tc-hppa.c (fix_new_hppa): Make sure a sub_symbol
+ exists before trying to peek at its name.
+ (pa_space): Do not call pa_align_subseg. See hppa/unsorted/align3.s
+ for testcase.
+ (pa_align_subseg): Delete unused/unwanted function.
+
+
+ * read.c (read_a_source_file): Fix test for when to stick a colon
+ on the end of a label. Make code conditional on either MRI or
+ LABELS_WITHOUT_COLONS.
+
+ * app.c (do_scrub_next_char): If a line begins with whitespace, leave
+ the single whitespace character alone. Eat all others.
+
+ * config/tc-hppa.h (LABELS_WITHOUT_COLONS): Define.
+
+
+ * config/tc-hppa.c (pa_procend): Do not call process_exit.
+ (exit_processing_complete): Delete unwanted variable and all
+ references.
+
+
+ * ecoff.c (ecoff_setup_ext): Renamed from ecoff_build_ext.
+ Changed to not actually build the external symbol information, as
+ that is now done by the ECOFF back end.
+ (ecoff_build_debug): Changed accordingly.
+ * ecoff.h (obj_ecoff_set_ext): Declare. obj-format.c function
+ called by ecoff_setup_ext.
+ * config/obj-ecoff.c (ecoff_frob_file): If debug_info count is 0,
+ set corresponding pointer to NULL. Don't set raw_size and
+ raw_syments.
+ (obj_ecoff_set_sym_index): Removed.
+ (obj_ecoff_set_ext): New function.
+ * config/obj-ecoff.h (obj_set_sym_index): Don't define.
+ (obj_ecoff_set_sym_index): Don't declare.
+ * config/obj-elf.c (obj_ecoff_set_ext, elf_get_extr,
+ elf_set_index): New functions used for ECOFF_DEBUGGING.
+ (elf_frob_file): Reworked ECOFF debug generation to use
+ new functions in bfd/ecofflink.c.
+
+
+ * config/tc-hppa.c (pa_def_subspaces): Only create the unwind
+ subspace for ELF. In the SOM world, the linker is responsible
+ for creating the unwind subspaces.
+
+
+ * config/obj-coffbfd.c: Use PARAMS rather than EXFUN.
+ (yank_symbols): Don't call S_SET_EXTERNAL if the storage class is
+ already set. Fixes .def var; .val external_var; .scl 3; .endef.
+ (adjust_stab_section): Make static. Declare return type. Remove
+ unused variables.
+
+ * config/tc-i386.h: Declare tc_coff_fix2rtype and
+ tc_coff_sizemachdep.
+
+
+ * write.c (write_object_file): Disable obj_check_file_symbols
+ hook; only back end using it wasn't using it correctly.
+ (write_object_file): Always call obj_frob_symbol and
+ tc_frob_symbol; always retain symbol if it's used by a relocation,
+ regardless of what these routines indicate.
+ * config/obj-coff.c (coff_frob_symbol): Renamed from
+ coff_check_file_symbols.
+ * config/obj-coff.h (obj_check_file_symbols): Deleted.
+ (coff_frob_symbol): Declare.
+ (obj_frob_symbol): Call it.
+
+ * config/obj-coff.c (obj_crawl_symbol_chain, obj_emit_strings,
+ obj_pre_write_hook): Don't define for BFD_ASSEMBLER.
+ (c_section_header): Ditto. Delete superfluous return at end of
+ function.
+
+ * config/obj-coff.h [TC_SPARC]: Include coff/sparc.h, and specify
+ coff-sparc-lynx.
+ (SA_GET_SYM_TAGNDX): Use BFD_HEADERS version for BFD_ASSEMBLER
+ too.
+ (c_section_header): Rewrite prototype so that it contains no
+ preprocessing directives. Don't declare it at all if
+ BFD_ASSEMBLER.
+
+ * configure.in (sparc*-*-lynxos): New target, using coff and
+ BFD_ASSEMBLER.
+
+ * stabs.c: New file.
+ * Makefile.in (REAL_SOURCES, OBJS): List it.
+ * read.c (STAB_SECTION_NAME, STAB_STRING_SECTION_NAME,
+ get_stab_string_offset, s_stab_generic, s_stab, s_xstab, s_desc):
+ Moved to new file.
+
+ * config/tc-sparc.c (tc_gen_reloc): Handle coff files like elf
+ files.
+
+
+ * configure.in (mips-*-irix5*): New target. Use elf and mips-big.
+ * config/obj-elf.c: If ECOFF_DEBUGGING, include ecoff.h.
+ (obj_pseudo_table): If ECOFF_DEBUGGING, define ECOFF
+ pseudo-ops.
+ (obj_read_begin_hook): If ECOFF_DEBUGGING, call
+ ecoff_read_begin_hook.
+ (obj_symbol_new_hook): If ECOFF_DEBUGGING, call
+ ecoff_symbol_new_hook.
+ (obj_elf_init_stab_section): Cast alloca result.
+ (elf_frob_file): If ECOFF_DEBUGGING, finish up ECOFF debugging
+ information and write it out into .mdebug section.
+ * config/obj-elf.h (ELF_TARGET_SYMBOL_FIELDS): New macro.
+ (TARGET_SYMBOL_FIELDS): Use ELF_TARGET_SYMBOL_FIELDS.
+ (ECOFF_DEBUGGING): Define if TC_MIPS.
+ (TARGET_SYMBOL_FIELDS): If ECOFF_DEBUGGING, override to add
+ fields required by ECOFF.
+ * config/tc-mips.c: Check ECOFF_DEBUGGING rather than
+ OBJ_ECOFF in many cases.
+ (mips_any_noreorder): New variable.
+ (mips_cprestore_offset): Initialize to -1.
+ (mips_frame_reg): New variable.
+ (RELAX_ENCODE, RELAX_OLD, RELAX_NEW, RELAX_RELOC1,
+ RELAX_RELOC2, RELAX_RELOC3, RELAX_WARN): New macros.
+ (md_pseudo_table): Handle "gpword" and "cpadd".
+ (md_begin): Initialize ok to false. If OBJ_ELF, set alignment
+ of text, data and bss sections to 4. Set alignment of
+ .reginfo section to 2. If ECOFF_DEBUGGING, create .mdebug
+ section.
+ (ALIGN_ERR, ALIGN_ERR2): Removed unused and useless alignment
+ check.
+ (append_insn, macro_build, macro_build_lui): Take place
+ argument. Changed all callers.
+ (append_insn): If appending a nop, don't emit one.
+ (macro_build): Changed assertion for 'i', 'j', 'o' case.
+ (gp_reference): Removed.
+ (load_address): New function.
+ (macro): If mips_noreorder is used, set mips_any_noreorder.
+ Extensive changes to handle GP and PIC symbols differently.
+ Build both possible code choices using a variant frag, and
+ make a final decision at the end of assembly when all
+ information is known. Added PIC support for all symbol
+ references.
+ (mips_ip): Don't permit anything but a number after $ for a
+ coprocessor register. Don't use .lit4 or .lit8 sections when
+ generating PIC code. If OBJ_ELF, set alignment of .lit4 or
+ .lit8 section to 4.
+ (md_apply_fix): Accept and ignore GOT16 and GPREL32 relocs.
+ (s_change_sec): Set alignment of ELF .rodata or .sdata section
+ to 4.
+ (s_mipsset): If .set noreorder, set mips_any_noreorder.
+ (s_cpload): Ignore .cpload if not generating PIC code. Warn
+ if .cpload is not in noreorder section.
+ (s_cprestore): Ignore .cprestore if not generating PIC code.
+ (s_gpword, s_cpadd): New functions.
+ (tc_get_register): Added frame argument; if true, set
+ mips_frame_reg to return value. Changed all callers.
+ (md_estimate_size_before_relax): Don't error out, but instead
+ determine how much a frag should grow.
+ (tc_gen_reloc): Return multiple relocs if appropriate, as
+ determined by md_estimate_size_before_relax.
+ (md_convert_frag): New function.
+ (mips_elf_final_processing): Set ELF header flags based on
+ mips_any_noreorder and mips_pic.
+ * config/tc-mips.h (RELOC_EXPANSION_POSSIBLE): Define.
+ (MAX_RELOC_EXPANSION): Define to be 3.
+ (md_relax_frag): Define to be 0.
+ (md_convert_frag): Don't define.
+ (tc_get_register): Changed declaration.
+
+ * ecoff.h, ecoff.c: New files pulled out of config/obj-ecoff.c to
+ support generating ECOFF debugging information for MIPS ELF
+ targets. Compiled only if ECOFF_DEBUGGING is defined. Changed
+ handling of external symbols: it now always generates exactly
+ those external symbols that are defined in the global symbol list.
+ * Makefile.in (REAL_SOURCES): Added ecoff.c.
+ (REAL_HEADERS): Added ecoff.h.
+ (OBJS): Added ecoff.o.
+ (ecoff.o): New target.
+ * config/obj-ecoff.c: Almost entirely moved into ecoff.c.
+ Remaining code mostly just calls ecoff.c code.
+ * config/obj-ecoff.h: Define ECOFF_DEBUGGING.
+ (TARGET_SYMBOL_FIELDS): Make ecoff_symbol a pointer to a
+ struct localsym.
+ (obj_read_begin_hook, obj_symbol_new_hook): Define to call
+ functions in ecoff.c.
+ (ecoff_stab): Don't declare (now declared in ecoff.h).
+ (obj_set_sym_index): Define.
+ (obj_ecoff_set_sym_index): Declare.
+
+ * frags.h (frag_grow): Declare.
+ * frags.c (frag_grow): Made non-static.
+
+ * write.c (is_dnrange): Do not define if md_relax_frag is defined.
+ (relax_segment): If md_relax_frag is defined, use it to handle a
+ frag of type rs_machine_dependent rather than looking through
+ md_relax_table.
+
+ * read.c (read_a_source_file): If we find a bad pseudo-op,
+ do a continue to go on to the next line rather than a break.
+ Removed duplicate bad pseudo-op code which was never executed.
+
+ * read.c (s_lcomm): Do not require a comma after the name.
+
+ * subsegs.h (segment_info_type): Changed hadone field to bitfield.
+ Added bss bitfield.
+ * as.c (perform_an_assembly_pass): Set bss flag for bss_section.
+ * read.c (s_lcomm): Set bss flag for .sbss section if used.
+ * write.c (relax_and_size_seg): Don't set SEC_HAS_CONTENTS for a
+ bss section. Set SEC_RELOC if there are any relocations, even for
+ a zero size section.
+
+ * write.c (write_relocs): In RELOC_EXPANSION_POSSIBLE case, base
+ data offset on reloc[0]->address rather than reloc[j]->address, so
+ that multiple relocs can affect different memory locations.
+
+ * write.c (chain_frchains_together, relax_and_size_seg,
+ adjust_reloc_syms, write_relocs): Make third argument PTR, not
+ char *, to match definition of bfd_map_over_sections.
+
+ * app.c (do_scrub_next_char): Don't interpret a comment character
+ as starting a CPP line directive unless it is a '#' and is the
+ very first characters on the line (i.e., do not permit leading
+ whitespace).
+
+ * messages.c (identify): Make file argument non-const, to match
+ callers.
+
+
+ * config/tc-hppa.c (pa_ip): Fix thinko in 21bit range check.
+
+
+ * config/tc-sh.c (md_apply_fix): Cope with IMM16 type too.
+ * config/tc-z8k.c (build_bytes, md_apply_fix): Understand nDISP7
+ relocs.
+
+
+ * config/tc-hppa.[ch]: Fix assorted trivial indention problems.
+ * config/obj-som.c (obj_som_version): Add missing ';'.
+ (som_frob_file): Delete whitespace at EOL.
+
+
+ * Makefile.in (VERSION): Updated following 2.2 release.
+
+
+ * config/tc-hppa.c (hppa_fix_struct): Use a real type for the
+ field selector, rather than an int. All uses of field selectors
+ fixed.
+ (tc_gen_reloc): For SOM PLABELs, always set addend to zero for now.
+ (md_apply_fix_1): Do not call hppa_field_adjust for any PLABEL
+ field.
+
+
+ * config/tc-hppa.c (pa_type_args): For .import statements,
+ silently ignore attempt to change the symbol type for a function
+ from ST_ENTRY to ST_CODE on .import.
+
+
+ * write.h (fixS): Rename fx_callj field to fx_tcbit.
+ * write.c, config/obj-coff.c, config/obj-coffbfd.c,
+ config/tc-i960.c: Corresponding changes.
+
+
+ * Makefile.in (distclean): Delete config-stamp and config.h
+
+ * config/tc-hppa.c (evaluate_absolute): Avoid relying on
+ ANSI-C features.
+
+ * config/tc-hppa.c (pa_type_args): Renamed from pa_export_args.
+ Accept new argument "is_export". All callers changed. When
+ processing a .export directive for a function, do not allow
+ the user to set the type to "CODE", instead warn and set the
+ type to "ENTRY".
+
+
+ * config/tc-mips.c (mips_ip, printInsn): Handle 'k' (from Ted
+ (mips_ip): Permit odd numbered floating point registers if -mips3.
+ (macro): Use BFD_RELOC_MIPS_LITERAL relocation for M_LI_SS.
+
+
+ * configure.in: Remove h8300h, we have multilib now.
+
+
+ * configure.in: Support generic netware as being ELF format.
+ Recognise unixware if the user supplies it.
+
+
+ * First cut at cleaning up PA instruction parsing.
+ * config/tc-hppa.c (pa_get_absolute_expression): Accept pointer to
+ insn structure as an argument, and a pointer to a string. All
+ callers changed. Always read any field selector here. Call
+ evaluate absolute to get a return value.
+ (evaluate_absolute): Addept pointer to insn structure as its
+ argument. All callers changed.
+ (INSERT_FIELD_AND_CONTINUE): New macro for inserting a bitfield
+ into an instruction and continuing the main pa_ip loop.
+ (CHECK_FIELD): New macro for simple range checking of fields.
+ (pa_ip): Delete unused variables. Use INSERT_FIELD_AND_CONTINUE
+ and CHECK_FIELD. All immediate fields now pass through
+ pa_get_absolute_expression which will also handle field selectors.
+ Delete dead code. Simplify.
+ (md_apply_fix_1): Use CHECK_FIELD to verify any fixes that are
+ applied are in range. Use bfd_put_32 rather than inserting each
+ byte of the fixed instrution into the buffer ourselves.
+
+ * write.c (fixup_segment): Delete {SEG,GLOBAL}_DIFF_ALLOWED code,
+ it was PA specific and is no longer needed (it's now handled
+ within the PA backend).
+ * config/tc-hppa.h (SEG_DIFF_ALLOWED): Delete definition.
+ * config/tc-hppa.c (fix_new_hppa): If the subtract symbol for
+ a fixup is $global$ change it to NULL as $global$ is really only
+ needed long enough to determine the base type of relocation to use.
+
+ * config/tc-hppa.c (create_new_subspace): Initialize subspace_defined.
+
+ * config/tc-hppa.c (pa-ip, case 'z'): Make field selectors work
+ for 'z' operands (target of ble branch).
+
+
+ * config/tc-hppa.c: (update_subspace): Fix type and name of last
+ parameter. All callers fixed.
+ (md_begin, pa_chk_field_selector, pa_entry): Lint.
+
+ * config/tc-hppa.c (cons_fix_new_hppa): Reset field selector
+ to default state after it's been used.
+
+
+ * config/obj-som.c (obj_som_init_stab_section): Change
+ space/subspace sort keys for the stab sections so as to avoid
+ bugs in the hp linker and pxdb.
+
+
+ * write.c (chain_frchains_together): Update pointer to last
+ frag for a segment in the seginfo structure.
+
+
+ * Makefile.in: Changed RUNTESTFLAGS to RUNTEST_FLAGS
+
+
+ * write.c (fixup_segment): Handle conversion of subtraction to
+ pc-relative addressing even if pc-relative flag is already set.
+
+ * config/tc-m68k.c (m68k_ip_op): Use strchr, not index. Don't
+ declare either.
+
+ * doc/Makefile.in (distclean): Delete intermediate files from dvi
+ build, but not the dvi or info files.
+ * Makefile.in (clean-here): New target; cleans up current
+ directory only.
+ (distclean): Use it instead of clean.
+
+ * read.c (s_xstab): Don't use alloca.
+
+ * messages.c (identify): New routine; print message identifying
+ following messages as coming from assembler.
+ (as_show_where, as_bad_internal, as_bad_where): Call it.
+ (as_fatal): Don't need to identify program any more.
+
+
+ * read.c (s_lcomm): Put small objects in .sbss for MIPS ELF as
+ well as MIPS ECOFF.
+ (get_stab_string_offset): Remove unused variable aligned.
+
+
+ * tc-hppa.c: Add %dp and %rp as synonyms for %r27 and %r2 in the
+ predefined register table.
+ (pa_parse_number): Handle %rp in common register shortcut code.
+ Consistently set return value to -1 for an error. Clean up error
+ messages and only print them when "print_errors" is true. Handle
+ empty string case like the HP assembler -- assume a value of
+ zero.
+
+ * config/ho-hpux.h: Do not include ho-sysv.h. Instead include
+ standard hpux include files to pick up various function decls.
+
+ * config/ho-hppaosf.h: Delete _IO* macros. They are defined in
+ stdio.h. Delete bogus declaration of free. Get path to
+ alloca-conf.h right.
+
+
+ * expr.c (operand): Fix checks for characters following "0b" or
+ "0f".
+
+
+ * config/obj-som.h (obj_attach_unwind_info): Define as a hook
+ so GAS can attach unwind descriptor information to a BFD symbol.
+ * config/tc-hppa.c (fix_new_hppa): If necessary attach unwind
+ descriptor information to the BFD symbol.
+ (md_apply_fix): R_HPPA_ENTRY and R_HPPA_EXIT can never be "applied",
+ they are simply markers. Make R_HPPA_UNWIND_* handling OBJ_ELF
+ dependent.
+ (pa_build_unwind_subspace): Whole function is OBJ_ELF dependent.
+ (pa_entry): Build a R_HPPA_ENTRY relocation when configured for SOM.
+ (pa_exit): Likewise, but built a R_HPPA_EXIT relocation. Do not
+ build "end-of-function" symbols for SOM, they are not needed.
+
+ * config/tc-hppa.c (process_exit): Create temporary symbols with
+ correct prefixes so they can be eliminated later.
+
+ * config/tc-hppa.c (call_info struct): Delete unused "frame" field.
+ (pa_callinfo): Insert framesize into the unwind information as
+ soon as it's available.
+ (pa_build_unwind_subspace): Do not insert framesize into the unwind
+ information here.
+
+ * Add support for marker type relocations. These mark areas
+ of interest to the linker. ENTRY/EXIT relocations for SOM are
+ an example of marker relocations.
+ * write.c (write_relocs): Instead of assuming size of a relocation
+ is 4 bytes, pick up the size from relocation itself.
+ (fixup_segment): Do not complain that a value is too small for
+ marker relocations.
+
+ * struc-symbol.h: Add new "sy_used" field to the symbol structure.
+ * expr.c (operand): Set sy_used for any symbol used as an operand.
+ (expr): Likewise for any symbol used in an expression.
+ * config/tc-hppa.h (tc_frob_symbol): Define. Punt imported
+ symbols which are never used and absolute symbols which local scope.
+
+ * config/obj-som.h (obj_frob_file): Define.
+ * config/obj-som.c (obj_som_init_stab_section): Set alignment
+ of stab sections. Make space for the special stab entry.
+ (adjust_stab_sections): Adjust the special entry in the
+ stabs section.
+ (som_frob_file): New function. Simply calls adjust_stab_sections
+ for each section.
+
+
+ * config/tc-mips.c (PIC_CALL_REG, SP, FP): Define.
+ (mips_pic, mips_cprestore_offset): New static variables.
+ (md_pseudo_table): Handle .abicalls, .cpload, and .cprestore.
+ Ignore .bgnb and .endb.
+ (gp_reference): _gp_disp is never addressed off GP.
+ (macro_build): Ignore macros while searching for insn. For cases
+ i, j, and o, accept the reloc type as an argument rather than
+ assuming BFD_RELOC_LO16. Don't try to convert BFD_RELOC_LO16 to
+ BFD_RELOC_MIPS_GPREL. Added new case a.
+ (set_at, load_register, macro): Changed calls to macro_build to
+ pass new argument for i, j and o cases.
+ (macro): Handle M_JAL_1, M_JAL_2 and M_JAL_A. These require
+ special handling when generating SVR4 PIC code.
+ (mips_ip, tc_get_register, s_frame): Use macros FP, SP, GP and AT
+ rather than hard coded constants.
+ (md_apply_fix): Handle BFD_RELOC_MIPS_LITERAL and
+ BFD_RELOC_MIPS_CALL16.
+ (s_option): Set mips_pic based on .option picN.
+ (s_abicalls): New function; set mips_pic to 2.
+ (s_cpload): New function; handle .cpload.
+ (s_cprestore): New function; handle .cprestore.
+
+ * config/obj-ecoff.c (obj_pseudo_table): Add entries for .bgnb,
+ .endb and .verstamp, setting them to s_ignore.
+
+
+ * config/tc-hppa.c (subspace_dictionary_chain): Add new ssd_defined
+ field. Define SUBSPACE_DEFINED accessor macro.
+ (pa_subspace): Allow user to override subspace attributes for
+ built-in subspaces. Set ssd_defined at the end of fcn -- that
+ way the attributes can only be changed once. Pass newly allocated
+ name to is_defined_subspace, not a pointer to the input line.
+ Fix typo in space/subspace rework.
+ (is_defined_subspace): Delete unused 2nd arg. All callers changed.
+
+ * config/tc-hppa.c (pa_import): If currently in the text segment
+ and a symbol is imported without type information, set BSF_FUNCTION
+ for the symbol.
+ * write.c (relax_and_size_seg): Correct test to determine if
+ the section's size was rounded up.
+
+ * config/obj-som.h (obj_set_symbol_type): Define a hook so GAS
+ can properly set all the SOM symbol types.
+ * config/tc-hppa.c (pa_symbol_type): New enum to represent the
+ symbol types which can be set from an IMPORT/EXPORT statement.
+ (pa_export_args): Set the pa_symbol_type type based on arguments.
+ If defined, call obj_set_symbol_type to pass this information on
+ to the BFD backend.
+
+ * read.c (get_stab_string_offset): Set SEC_DEBUGGING for any
+ stab section we make.
+ (s_stab_generic): Likewise.
+
+ * Allow backends to override the value of the fake label.
+ * write.h (LOCAL_LABEL): Delete DOT_LABEL_PREFIX code. Instead
+ assume backends will define LOCAL_LABEL if anything other than
+ 'L' is used to denote a local label.
+ (FAKE_LABEL_NAME): New macro. Defines the default name used for
+ the "fake" label.
+ * expr.c (make_expr_symbol): Delete DOT_LABEL_PREFIX code
+ and instead simply use the string defined by FAKE_LABEL_NAME.
+ (operand): Likewise.
+ * read.c (s_stab_generic): Likewise.
+ * config/tc-hppa.h (FAKE_LABEL_NAME): Define as L$0\001 so it's
+ known to be a local label.
+ * config/tc-i386.h (DOT_LABEL_PREFIX): Delete.
+ (LOCAL_LABEL, FAKE_LABEL_NAME): Define.
+ * config/tc-m68k.h (DOT_LABEL_PREFIX): Delete.
+ (LOCAL_LABEL, FAKE_LABEL_NAME): Define.
+ * config/te-sco386.h (DOT_LABEL_PREFIX): Delete.
+ (LOCAL_LABEL, FAKE_LABEL_NAME): Define.
+
+ Rework space/subspace handling in PA code to fully support
+ SOM spaces/subspaces.
+ * config/tc-hppa.c (USE_ALIASES): New object-format dependent define
+ to control the use of space/subspace name aliases.
+ (update_subspace): Accept space chain entry for containing space
+ as a new parameter. All callers changed.
+ (pa_get_label): Use current_space rather than pa_segment_to_space.
+ (pa_define_label): Likewise.
+ (pa_undefine_label): Likewise.
+ (md_begin): Change into the (possibly modified) text_section.
+ (pa_parse_space_stmt): Create a new segment/space if create_flag
+ is true, and the space name is not one of the two predefined spaces.
+ (pa_subspace): Use current_space rather than a lookup via
+ pa_segment_to_space. Reset BFD section flags as required by
+ the .subspace directive. Likewise for the section alignment.
+ Pass the current space to update_subspace and create_new_subspace.
+ (pa_spaces_begin): Only use space/subspace aliases if USE_ALIASES
+ is true. When not using aliases, create a BFD section for each
+ subspace encountered. When not using aliases replace the default
+ text, data, and bss segments with new ones.
+ (create_new_subspace): When not using aliases each subspace has a
+ section/segment and subsegments are not needed, so set the subsegment
+ to zero.
+
+ * config/tc-hppa.c (pa_parse_space_stmt): If needed, call
+ obj_set_section_attributes to pass space attributes to the
+ BFD backend.
+ (create_new_space): Likewise.
+ (create_new_subspace): Likewise for subspace attributes using
+ obj_set_subsection_attributes.
+ (update_subspace): Likewise for subspace attributes using
+ obj_set_subsection_attributes.
+
+ * config/tc-hppa.c (pa_parse_space_stmt): Get segment and sort key
+ for $TEXT$ and $PRIVATE$ from the default space structure.
+
* config/tc-hppa.c (pa_export_args): Always set BSF_FUNCTION
as appropriate for the given type.