X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gas%2FChangeLog;h=0852af5227defaa34aada13caee38db714f4bae9;hb=07ec88b67fae46a8fd6c58516f2630bef5c9c02f;hp=65276d7fd4f8b68f9a6c63303481cf44e63ca7cb;hpb=48ac0c90e9c6280c2aa97ea9640bbf45ed032012;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/ChangeLog b/gas/ChangeLog index 65276d7fd4..0852af5227 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,953 @@ +Wed Dec 29 14:37:26 1993 Ken Raeburn (raeburn@cujo.cygnus.com) + + * write.h (struct fix): Field tc_fix_data should be type PTR, not + void*, for compatibility with non-ANSI compilers. Added + single-bit field "fx_done". + +Sun Dec 26 14:31:47 1993 Torbjorn Granlund (tege@adder.cygnus.com) + + * tc-hppa.c (pre_defined_registers): Convert to lower case. + Delete spurious register names "%r4L", etc. + (selector_table): Sort and convert to lower case. + (cons_fix_new_hppa): `reloc_type' => `rel_type'. + (pa_ip): Always use strcmp for non-text and strcasecmp for text. + (reg_name_search): Rewrite to call strcasecmp only once per + iteration. + (pa_chk_field_selector): Rewrite to use binary search. + (pa_parse_neg_add_cmpltr): Use strcasecmp for completer comparisons. + (pa_parse_space_stmt): $TEXT$ and $PRIVATE$ are symbols; use case + sensitive comparisons. + (pa_parse_space_stmt): Canonicalize strncasecmp arg to lower case. + (pa_space): "$text$" => "$TEXT$"; "$private$" => "$PRIVATE$". Use + case sensitive comparison for all symbolic names. + (pa_subspace): Canonicalize strncasecmp arg to lower case. + (pa_subspace_start): Use case sensitive comparison for symbolic names. + +Mon Dec 20 10:37:48 1993 Ken Raeburn (raeburn@cujo.cygnus.com) + + * write.c (adjust_reloc_syms) [RELOC_REQUIRES_SYMBOL]: If no + symbol is present (i.e., relocation against absolute), create a + phony local symbol, and use it in the reloc. + (fixup_segment): When adjusting a reloc with an absolute symbol, + have TC_FORCE_RELOCATION control clearing add_symbolP too. + * config/tc-sparc.h (RELOC_REQUIRES_SYMBOL): Define, for OBJ_COFF. + + * symbols.c (S_IS_EXTERNAL, S_IS_LOCAL): Don't use both BSF_EXPORT + and BSF_GLOBAL, since they're the same. + + * as.c (main): Only invoke md_end if it's defined as a macro. + * tc.h (md_end): Don't declare it. + * config/tc-*.[ch] (md_end): Deleted, in cases where it doesn't do + anything. + * config/tc-vax.c (vip_end): Deleted null function. + * config/tc-mips.c (md_mips_end): Renamed from md_end. + * config/tc-mips.h (md_mips_end): Declare. + (md_end): New macro, calls md_mips_end. + + * write.c (write_object_file): Don't close output file. + * as.c (main): Close output file (if needed) after calling + listing_print, which should be after calling write_object_file, + which sets the frag addresses. + + * config/obj-coff.c (obj_coff_dim, obj_coff_endef, obj_coff_line, + obj_coff_scl, obj_coff_size, obj_coff_tag, obj_coff_type, + obj_coff_val): Add unused int argument to satisfy prototypes; goes + with Ian's 10 Sep changes. + (S_GET_DATA_TYPE, S_SET_DATA_TYPE, S_GET_STORAGE_CLASS, + S_SET_STORAGE_CLASS): Now function instead of macros. + (obj_emit_lineno) [BFD_ASSEMBLER]: Deleted. + (tag_insert): Local var ERROR_STRING is const. Use "const" not + "CONST" for argument NAME. Fixed prototype. + (coff_frob_symbol): Removed explicit "#if 1" directive. If + S_IS_EXTERNAL, set storage class to C_EXT. + (s_get_name): Use "const" not "CONST". + * config/obj-coff.h (S_GET_DATA_TYPE, S_SET_DATA_TYPE, + S_GET_STORAGE_CLASS, S_SET_STORAGE_CLASS): Deleted. + (obj_emit_lineno): Declare only for non-BFD_ASSEMBLER. For + BFD_ASSEMBLER, define as macro that aborts. + (obj_extra_stuff, tc_headers_hook): Declare only for + non-BFD_ASSEMBLER. + (coff_frob_symbol): Fix prototype. + +Sun Dec 19 00:37:20 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-sparc.c (tc_gen_reloc): Test of pcrel_offset had sense + reversed. + +Thu Dec 16 21:13:11 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_begin): Initialize "dummy_label". + (tc_gen_reloc, SOM version): For relocations which have no symbol, + set sym_ptr_ptr to dummy_label. Avoids lossage in generic BFD code. + +Thu Dec 16 16:07:56 1993 Ken Raeburn (raeburn@cujo.cygnus.com) + + * read.c (lex_type): No longer make '[' a valid character for + symbol names. + + * config/tc-vax.c (tc_aout_fix_to_chars): Local variable + NBYTES_R_LENGTH now const. + + * config/obj-*.c, config/tc-*.c: Omit superfluous "return" + statements at ends of functions. Don't check for null return from + hash_new, since it won't return at all if there's no memory + available. Also, check for null return from hash_insert, rather + than zero-length string, as success indicator. + + * subsegs.c (section_symbol): New function. + * subsegs.h (section_symbol): Declare. + * write.c (adjust_reloc_syms): Use it. + +Wed Dec 15 15:39:53 1993 Ken Raeburn (raeburn@cujo.cygnus.com) + + * Makefile.in (RUNTEST): New variable. + (CHECKFLAGS): Pass it down. + + * ecoff.c (ecoff_directive_frame): Permit extra trailing operands; + unused for now, but supplied by Alpha OSF1 compiler. + + * as.h: Protect against multiple inclusions. + (int_to_gen): Don't declare. + + * config/atof-vax.c (atof_vax): NULL is not a valid character + constant. + +Tue Dec 14 21:38:25 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * configure.in (hppa*-*-osf*): Do not consider this a developmental + configuration. + + * config/tc-hppa.c (md_apply_fix): Handle cases where no + relocation will be emitted for 32bit formats. + +Mon Dec 13 23:33:40 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_apply_fix): Do not call hppa_field_adjust + for any of the 'T' field selectors. + +Sat Dec 11 11:23:12 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * 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. + +Wed Dec 8 16:31:51 1993 Ken Raeburn (raeburn@rtl.cygnus.com) + + * write.c (number_to_chars_*): Delete bogus range check. + + * output-file.c (TARGET_ARCH): No default. + +Tue Dec 7 16:02:53 1993 Steve Chamberlain (sac@jonny.cygnus.com) + + * config/tc-sh.c (md_convert_frag): Truncate disps before calling + md_number_to_chars. (md_assemble): Don't modify + input_line_pointer. + +Mon Dec 6 11:49:03 1993 Doug Evans (dje@canuck.cygnus.com) + + * config/tc-h8300.c (md_assemble): Don't update input_line_pointer. + +Mon Dec 6 11:20:02 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Sun Dec 5 17:05:29 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Fri Dec 3 18:33:24 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * 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. + +Fri Dec 3 10:56:40 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + + Fri Dec 3 09:47:30 1993 Pete Hoogenboom (hoogen@cs.utah.edu) + + * 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. + +Thu Dec 2 11:52:21 1993 Ken Raeburn (raeburn@cygnus.com) + + * 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.) + +Wed Dec 1 23:37:14 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * Makefile (clean): Depend on clean-here. + +Wed Dec 1 11:35:21 1993 Ken Raeburn (raeburn@cujo.cygnus.com) + + * 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. + +Wed Dec 1 10:41:56 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (hppa_elf_mark_end_of_function): New function. + (pa_process_exit, pa_procend): Call it for ELF objects. + +Wed Dec 1 12:10:41 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (macro): Subtract 8 from offset in non PIC l.d + case. See comment. From wilson@cygnus.com: for M_L_DAB, set + coproc before doing goto ld. + +Tue Nov 30 13:40:30 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Tue Nov 30 11:21:41 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Makefile.in (stabs.o): Added dependencies. + + * config/obj-ecoff.c (ecoff_frob_file): Don't call bfd_set_symtab. + +Sun Nov 28 12:11:40 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Sat Nov 27 22:49:07 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Wed Nov 24 01:22:54 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_procend): Do not call process_exit. + (exit_processing_complete): Delete unwanted variable and all + references. + +Wed Nov 24 02:31:38 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * 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. + +Sun Nov 21 23:54:52 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Fri Nov 19 16:25:09 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * 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. + +Fri Nov 19 04:33:59 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * 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. + +Wed Nov 17 17:23:53 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * 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. + +Tue Nov 16 20:38:21 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_ip): Fix thinko in 21bit range check. + +Sat Nov 13 18:22:48 1993 Steve Chamberlain (sac@jonny.cygnus.com) + + * config/tc-sh.c (md_apply_fix): Cope with IMM16 type too. + * config/tc-z8k.c (build_bytes, md_apply_fix): Understand nDISP7 + relocs. + +Fri Nov 12 16:51:47 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Fri Nov 12 15:26:21 1993 Ken Raeburn (raeburn@cygnus.com) + + * Makefile.in (VERSION): Updated following 2.2 release. + +Fri Nov 12 14:52:17 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + + Thu Nov 11 15:49:08 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Wed Nov 10 16:19:13 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * 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. + +Tue Nov 9 00:49:01 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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". + +Mon Nov 8 12:05:07 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_ip, printInsn): Handle 'k' (from Ted + Lemon ). + (mips_ip): Permit odd numbered floating point registers if -mips3. + (macro): Use BFD_RELOC_MIPS_LITERAL relocation for M_LI_SS. + +Mon Nov 8 07:45:01 1993 Doug Evans (dje@canuck.cygnus.com) + + * configure.in: Remove h8300h, we have multilib now. + +Mon Nov 8 06:09:18 1993 D. V. Henkel-Wallace (gumby@cirdan.cygnus.com) + + * configure.in: Support generic netware as being ELF format. + Recognise unixware if the user supplies it. + +Sun Nov 7 01:02:08 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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). + +Sat Nov 6 22:41:57 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Fri Nov 5 12:08:21 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Thu Nov 4 17:00:05 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * write.c (chain_frchains_together): Update pointer to last + frag for a segment in the seginfo structure. + +Thu Nov 04 09:09:35 1993 Jeffrey Wheat (cassidy@cygnus.com) + + * Makefile.in: Changed RUNTESTFLAGS to RUNTEST_FLAGS + +Wed Nov 3 12:16:27 1993 Ken Raeburn (raeburn@rover.cygnus.com) + + * 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. + +Tue Nov 2 18:04:11 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * 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. + +Tue Nov 2 15:07:07 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Tue Nov 2 13:57:30 1993 Ken Raeburn (raeburn@rover.cygnus.com) + + * expr.c (operand): Fix checks for characters following "0b" or + "0f". + +Mon Nov 1 21:37:04 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Mon Nov 1 17:54:29 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * 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. + +Sun Oct 31 00:36:40 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + +Sat Oct 30 14:26:20 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * 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. + + * config/tc-hppa.c (tc_gen_reloc): Preliminary stab at handling + SOM relocations. + + * config/tc-hppa.c (pa_comm): Delete incorrect check for symbol + redefinition. + + * config/obj-som.[ch]: New files for SOM support. Note SOM + support is not yet complete in GAS or BFD. + + * config/ho-hppabsd.h: Delete IO* macros, they are defined in + stdio.h. Delete declaration of free. Include stdlib.h, unistd.h, + and string.h. + +Fri Oct 29 13:26:12 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * Allow backends to override the section names used for embedded + stabs support. Needed for SOM. + * read.c (STAB_SECTION_NAME): Default the name of the stab section + to ".stab". + (STAB_STRING_SECTION_NAME): Likewise for the stab strings section. + (get_stab_string_offset): Is now passed the full name for the + stab string section rather than a name prefix. All references + changed. + (s_stab_generic): New argument for the stab string section name. + all references changed. + (s_xstab): Append "str" to the stab section name to get the + stab string section name. + * config/obj-coffbfd.c (obj_coff_init_stab_section): Append "str" + to stab section name to get the stab string section name. Pass + the full name of the stab string section to get_stab_string_offset. + * config/obj-elf.c (obj_elf_init_stab_section): Likewise. + + * config/tc-hppa.c (md_begin): Disable "-R" option to fold + textand data segments. Warn user "-R" is unsupported on the + PA. + Thu Oct 28 12:36:13 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + * config/tc-hppa.c (md_pseudo_table): Default alignment is 8 for + .align and .ALIGN directives. + * config/tc-hppa.c (pa_space): Do not report an error for a .space directive which does not define a "well-known" space and does not include a space number as an argument. @@ -72,6 +1020,9 @@ Thu Oct 28 12:36:13 1993 Jeffrey A. Law (law@snake.cs.utah.edu) * config/tc-hppa.c (md_atof): Return a NULL on success rather than an empty string. + * config/tc-hppa.c (pa_parse_space_stmt): Advance + input_line_poitner when an invalid argument is encountered. + Thu Oct 28 13:09:26 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) * config/tc-a29k.c (md_begin): When opcodes are mashed together in