+
+ * read.c (s_set): Remove unused local ptr.
+ (hex_float): Check target_big_endian.
+ (equals): Remove unused local p.
+ * config/tc-a29k.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-h8500.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-hppa.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-i860.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-m68k.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-m88k.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-tahoe.h (TARGET_BYTES_BIG_ENDIAN): Define.
+ * config/tc-sh.c (little): Set target_big_endian.
+ (md_begin): Likewise.
+ (md_parse_option): Likewise.
+ (build_relax): Check target_big_endian rather than shl.
+ (build_Mytes, md_atof): Likewise.
+ (md_convert_frag, md_apply_fix): Likewise.
+ (md_number_to_chars): Likewise.
+
+
+ * config/tc-m68k.c (m68k_abspcadd): New static variable.
+ (m68k_quick): New static variable.
+ (m68k_rel32): New static variable.
+ (md_pseudo_table): Add opt and reg.
+ (m68k_ip): Permit absolute symbols in 'l'/'L' recognition. Check
+ m68k_quick in 'M' and 'Q' recognition. Check m68k_abspcadd in
+ DISP handling. Check m68k_rel32 in BASE/POST/PRE handling.
+ (md_begin): In MRI mode, initialize m68k_abspcadd and m68k_rel32.
+ In MRI mode, change unsized branch aliases to be variable sized.
+ (struct opt_action): Define.
+ (opt_table): Define.
+ (s_opt): New static function.
+ (skip_to_comma): New static function.
+ (opt_chip): New static function.
+ (opt_list): New static function.
+ (opt_list_symbols): New static function.
+ (s_reg): New static function.
+ * as.h (flag_keep_locals): Change from unsigned char to int.
+ (flag_no_warnings): Likewise.
+
+ * read.c (mri_line_label): Make non-static.
+ (potable): Add nopage, page, plen.
+ (s_org): Error if in MRI mode.
+ * read.h (mri_line_label): Declare.
+ * listing.c (listing_nopage): New function.
+ * listing.h (listing_nopage): Declare.
+
+ * symbols.c (symbol_begin): Set sy_frag of abs_symbol to
+ &zero_address_frag.
+
+ * write.c (adjust_reloc_syms): Check that symbol is not NULL
+ before checking sy_mri_common.
+ (fixup_segment): Likewise.
+ * config/obj-coff.c (fixup_segment): Likewise.
+
+ * read.c (abs_section_offset): New global variable.
+ (potable): Add offset, struct.
+ (do_org): New static function; handle changing the origin in the
+ absolute section.
+ (s_org): Use do_org.
+ (s_set): Likewise.
+ (equals): Likewise.
+ (s_space): In absolute_section, just increase abs_section_offset.
+ (s_struct): New function.
+ (emit_expr): Handle absolute_section specially.
+ * read.h (abs_section_offset): Declare.
+ (s_struct): Declare.
+ * frags.c (frag_more): Warn if in absolute_section.
+ (frag_now_fix): In absolute_section, return abs_section_offset.
+ * subsegs.c (subseg_change): If switching to absolute_section,
+ just set now_seg and now_subseg.
+ (subseg_set_rest): Special handling when switching to or from
+ absolute_section.
+
+ * config/tc-m68k.c (m68k_float_copnum): New static variable.
+ (md_pseudo_table): Add fopt and mask2.
+ (m68k_ip): Use m68k_float_copnum, not COPNUM, when setting
+ coprocessor register to use. In case 'I' when checking operands,
+ correct coprocessor register numbers. In case 'I' when setting
+ operands, don't add 1.
+ (s_fopt): New static function.
+ * config/m68k-parse.h (COPNUM): Don't define.
+
+ * read.c (potable): Add ifeq, ifge, ifgt, ifle, iflt, ifne.
+ Change if to pass O_ne to s_if.
+ (read_a_source_file): Don't define an label without a colon if
+ ignore_input returns true.
+ * cond.c (s_if): Treat argument as an operatorT describing how to
+ compare the argument against zero.
+ (ignore_input): Don't require an initial dot in MRI mode, or if
+ NO_PSEUDO_DOT is defined.
+
+ * read.c (potable): Add dcb, dcb.b, dcb.d, dcb.l, dcb.s, dcb.w,
+ dcb.x, ds.d, ds.p, ds.s, ds.x, elsec, endc, fail, format, llen,
+ noformat.
+ (read_a_source_file): If pseudo-op handler is s_end, quit
+ immediately.
+ (s_end): New function.
+ (s_fail): New function.
+ (s_float_space): New function.
+ (hex_float): New static function.
+ (float_cons): Use hex_float.
+ * read.h (s_fail): Declare.
+ (s_float_space): Declare.
+ * cond.c (s_end): Remove.
+ * listing.c (listing_psize): Treat argument as indicating whether
+ a height is expected.
+
+ * read.c (mri_pending_align): New static variable.
+ (read_a_source_file): Handle mri_pending_align.
+ (cons): Set mri_pending_align if appropriate.
+
+ * configure.in: Move random special target handling before
+ possible break.
+ * configure: Rebuild.
+
+
+ * configure.in: Consistently use ${target_cpu_type} rather than
+ ${cpu_type} after the loop.
+ * configure: Rebuild.
+ * Makefile.in (targ-cpu.o): Use @target_cpu_type@ rather than
+ @cpu_type@.
+
+
+ * expr.h (operatorT): Remove comma after last enumerator value.
+
+ * config/obj-vms.c: Some whitespace cleanup from Pat Rankin.
+
+
+ * config/obj-vms.c (Flush_VMS_Object_Record_Buffer,
+ Close_VMS_Object_File): Reorganize the `#if !VMS' cross-assmebler
+ support code.
+ (Close_VMS_Object_File): Call Set_VMS_Object_File_Record to flush
+ output buffer--just in case--before closing the file.
+
+ * as.h (alloca): If __STDC__, declare void* instead of char*.
+
+
+ * config/tc-m68k.c (archs): Add 68ec000, 68hc000, 68hc001,
+ 68ec020, 68ec030, 68ec040, and 68330.
+ (md_pseudo_table): Add chip and comline.
+ (m68k_init_after_args): Use strcasecmp when comparing default_cpu
+ against architectures.
+ (mri_chip, s_chip): New static functions.
+
+ * struc-symbol.h (struct symbol): Add sy_mri_common bit.
+ * read.h (mri_comon_symbol): Declare.
+ (s_mri_common): Declare.
+ * read.c (mri_line_label): New static variable.
+ (mri_common_symbol): New global variable.
+ (potable): Add "common" and "common.s".
+ (read_a_source_file): In MRI mode, set mri_line_label for a label
+ at the start of a line.
+ (s_mri_common): New function.
+ (s_space): Handle mri_common_symbol.
+ * symbols.c (colon): Change return value from void to symbolS *,
+ and return new symbol. If mri_common_symbol is set, attach the
+ new symbol to it.
+ (resolve_symbol_value): Handle an sy_mri_common symbol.
+ * symbols.h (colon): Change return value in declaration.
+ * subsegs.c (subseg_set_rest): Clear mri_common_symbol.
+ (subseg_set (both versions)): Likewise.
+ * frags.c (frag_more): Warn if mri_common_symbol is not NULL.
+ * write.c (adjust_reloc_syms): Skip sy_mri_common symbols.
+ (write_object_file): Discard sy_mri_common symbols.
+ (fixup_segment): Change relocations against sy_mri_common symbols
+ to be against the common symbol itself.
+ * config/obj-coff.c (yank_symbols): Discard sy_mri_common symbols.
+ (fixup_segment): Change relocations against sy_mri_common symbols
+ to be against the common symbol itself.
+ * config/obj-aout.c (obj_crawl_symbol_chain): Discard
+ sy_mri_common symbols.
+
+ * doc/c-m68k.texi: Add documentation for CPU specific options, and
+ for Motorola syntax.
+
+ * config/m68k-parse.y (motorola_operand): For (%pc), set mode to
+ DISP, not BASE.
+
+
+ * write.c (relax_align): Add extra padding for linkrelax only if
+ LINKER_RELAXING_SHRINKS_ONLY is defined.
+ * config/tc-i960.h (LINKER_RELAXING_SHRINKS_ONLY): Define it.
+ * doc/internals.texi (Relaxation): Write up some stuff on linker
+ relaxing and LINKER_RELAXING_SHRINKS_ONLY.
+
+
+ * config/m68k-parse.y: New file: bison grammar for m68k operands,
+ including support for Motorola syntax.
+ * config/m68k-parse.h: New file; definitions shared between
+ m68k-parse.y and tc-m68k.c.
+ * config/tc-m68k.c: Include m68k-parse.h.
+ (enum operand_type): Move to m68k-parse.h, where it is named
+ m68k_operand_type. Rename all uses. Rearrange somewhat. Add
+ FPREG. Rename AOFF to DISP. Rename AINDX to BASE. Rename APODX
+ to POST. Rename APRDX to PRE. Remove AMIND. Rename MSCR to
+ CONTROL. Remove DINDR.
+ (struct m68k_exp): Move to m68k-parse.h. Remove e_beg, e_end and
+ e_seg fields. Rename e_exp to exp. Rename e_siz to size, and
+ change type to enum m68k_size. Change all uses.
+ (enum _register): Move to m68k-parse.h, where it is named
+ m68k_register. Rename all uses. Add ZDATA0-7 and ZADDR0-7.
+ (struct m68k_op): Move to m68k-parse.h. Change all fields.
+ (seg): Don't define.
+ (add_exp): Remove.
+ (FAIL, OK): Remove.
+ (m68k_reg_parse): Move to m68k-parse.y, and rewrite.
+ (SKIP_WHITE, SKIP_W): Remove.
+ (try_moto_index, try_index): Remove.
+ (m68k_ip_op): Move to m68k-parse.y, and rewrite to use grammar.
+ (main): Remove obsolete test function.
+ (m68k_ip): Extensive changes to use new grammar.
+ (get_regs): Remove.
+ (crack_operand): m68k_ip_op now returns 0 on success.
+ (init_table): Add ssp, zd0-7 and za0-7.
+ (md_assemble): Make er const. Correct loop over operands when
+ looking for error message.
+ (md_begin): Set alt_notend_table for '(' and '@'.
+ (get_num): Expression is already parsed. Don't set seg.
+ * configure.in: If cpu_type is m68k, put m68k-parse.o in
+ extra-objects.
+ * configure: Rebuild.
+ * Makefile.in (DISTSTUFF): Add m68k-parse.c.
+ (BISON): Use ../bison/bison if it exists.
+ (BISONFLAGS): Define as empty.
+ (TARG_CPU_DEP_m68k): Depend upon $(srcdir)/config/m68k-parse.h.
+ (m68k-parse.c, m68k-parse.o): New targets.
+
+start-sanitize-sh3e
+
+ * config/tc-sh.c (parse_reg): Handle new FP registers.
+ (get_specific): Handle new operand types.
+
+end-sanitize-sh3e
+
+ * expr.c (op_encoding): Make non-const. Don't set '"' to
+ O_bit_not.
+ (expr_begin): Set op_encoding['"'] in MRI mode.
+
+
+ * config/tc-m68k.c: Remove BREAK_UP_BIG_DECL stuff.
+ (struct m68k_incant): Change m_operands field to be const.
+ (struct m68k_it): Change args field to be const.
+ (m68k_ip): Change local variable s to be const.
+ (opcode_ptr): Remove.
+ (md_begin): Use m68k_numopcodes, not numopcodes. Use
+ m68k_opcodes, not removed opcode_ptr. Use m68k_numaliases, not
+ numaliases.
+
+
+ * config/tc-m68k.c (init_table): Add "control", "status", "iaddr",
+ "sfcr", and "dfcr" as synonyms for existing entries.
+ (md_begin): In MRI mode, force flag_reg_prefix_optional to 1.
+ (md_parse_option): Removed unused locals i and arch. Change type
+ of arch (another one) to unsigned long.
+ (tc_coff_sizemachdep): Add return after abort to avoid warning.
+
+ Initial support for MRI style labels and expressions.
+ * as.h (flag_mri): Declare/define.
+ * as.c (show_usage): Mention -M and its synonym --mri.
+ (parse_args): Add 'M' to std_shortopts. Add "mri" to
+ std_longopts. Set flag_mri if -M is seen.
+ (main): Call parse_args before input_scrub_begin. Call
+ expr_begin.
+ * app.c (do_scrub_begin): Don't set lex for '"' or '\'' in MRI
+ mode. Do set lex for ';', '*', and '!' in MRI mode.
+ (do_scrub_next_char): Remove MRI ifdef in LEX_IS_WHITESPACE case.
+ In MRI mode, keep spaces between labels and colons. Remove MRI
+ ifndef around LEX_IS_ONECHAR_QUOTE case. In MRI mode, don't use
+ '!' or '*' as comment characters even if they are in
+ comment_chars.
+ * read.h (lex_type): No longer const.
+ * read.c: Include libiberty.h.
+ (lex_type): No longer const.
+ (read_begin): In MRI mode, set lex_type of '?' to 3.
+ (potable): Add dc, dc.b, dc.d, dc.l, dc.s, dc.w, dc.x, ds, ds.b,
+ ds.l, ds.w, and xdef.
+ (read_a_source_file): Change LABELS_WITHOUT_COLON ifdef to check
+ for MRI mode at runtime rather than compile time. Handle the EQU
+ pseudo-op in MRI mode. Remove bogus MRI ifdef around done_pseudo.
+ Change NO_PSEUDO_DOT ifdef to also take effect for MRI mode at
+ runtime.
+ (cons): In MRI mode, always call parse_mri_cons rather than
+ TC_PARSE_CONS_EXPRESSION.
+ (parse_mri_cons): Always compile, not just when MRI is defined.
+ Call TC_PARSE_CONS_EXPRESSION, not expression, when the input is
+ not a string constant. Handle A and E modifiers.
+ (float_cons): Accept :xxxx, where the x's are hex digits.
+ * expr.h (operatorT): Add O_eq, O_ne, O_lt, O_le, O_ge, O_gt.
+ (expr_begin): Declare.
+ * expr.c (integer_constant): In MRI mode, if the base was not
+ specified, look for a suffix on the number to set the base.
+ (mri_char_constant): New static function.
+ (operand): Remove MRI ifdef. In MRI mode, do various things: Pass
+ 0 as the base when calling integer_constant if there was no
+ prefix. Check for a hex constant suffix if when a leading '0' is
+ seen. Don't accept 0x or 0b as a prefix. Check for E'chars' and
+ A'chars'. Handle MRI character constants. Treat '"' as the
+ unary bitwise not operator. Treat $ as the program counter, or as
+ the prefix for a hex constant. Treat % as the prefix for a binary
+ constant and @ as the prefix for an octal constant. Treat : as
+ the prefix for a hex constant.
+ (op_encoding): Set '"' to O_bit_not, '<' to O_lt, and '>' to O_gt.
+ (op_rank): No longer const. Change rank values.
+ (expr_begin): New function.
+ (operator): New static function.
+ (expr): Use operator. Don't bother to mention the operator in
+ warnings. Remove bogus #if 0 code. Handle new operatorT values.
+ * atof-generic.c (atof_generic): In MRI mode, accept underscores
+ around the exponent in floating point numbers.
+ * symbols.h (symbols_case_sensitive): Declare.
+ * symbols.c (symbols_case_sensitive): New global variable.
+ (symbol_create): Check symbols_case_sensitive.
+ (symbol_find_base): Likewise.
+ (resolve_symbol_value): Handle new operatorT values.
+ (print_expr_1): Likewise.
+ (S_IS_LOCAL): In MRI mode, names beginning with two '?' characters
+ are local.
+
+
+ * tc-sh.c (md_convert_frag): Make some error messages more
+ explict.
+
+
+
+ * config/obj-vms.c (COPY_SHORT, COPY_LONG, PUT_SHORT, PUT_LONG):
+ Make expansion be safe for use in expressions.
+ (PUT_COUNTED_STRING): Bracket expansion with `do {...} while (0)'
+ rather than just `{...}'.
+
+
+ * gasp.c (main): Parse -I option.
+ (do_include): Look through include list.
+ * gasp.c (change_base): Don't modify numbers in strings.
+ (pr7583)
+
+
+ * config/tc-ppc.h (SUB_SEGMENT_ALIGN): Define. From Niclas
+
+
+ * config/obj-coff.c (fixup_segment): Don't do further pcrel
+ processing after converting difference of two symbols in the
+ same segment. From Jim Wilson.
+
+ * configure.in (i386-*-linuxoldld): Add as synonym for
+ i386-*-linux*aout*. From Fred Fish.
+ * configure: Regenerated.
+
+
+ * config/obj-vms.c (enum ps_type {ps_TEXT,ps_DATA,ps_COMMON,
+ ps_CONST}): New constants.
+ (VMS_Psect_Spec): Use them instead of literal strings.
+ (vms_write_object_file, global_symbol_directory): Adjust callers.
+
+
+ * config/obj-vms.c (const_flag): Change from char to unsigned char.
+ * config/obj-vms.h (const_flag): Ditto.
+ (struct nlist): Replace union n_un and n_un.{n_name,n_next,n_strx}
+ fields with just n_name; delete field n_value; change n_other from
+ char to unsigned char and n_desc from short to int; insert explicit
+ padding for alignment.
+
+
+ * subsegs.h (struct seg_info_trash): Make bitfield types valid.
+
+ * config/obj-coff.c (fixup_segment): Local add_number should not
+ be declared register since its address is taken for
+ MD_APPLY_FIX3.
+
+
+ Split huge vms_write_object_file routine into managable pieces.
+
+ * config/obj-vms.c (vms_fixup_text_section, synthesize_data_segment,
+ vms_fixup_data_section, global_symbol_directory, local_symbols_DST,
+ vms_build_DST): New routines.
+ (vms_write_object_file): Call them.
+ (struct vms_obj_state): New file scope variable used by the above.
+
+
+ * config/tc-sh.c (md_pseudo_table): Add "uses".
+ (s_uses): New static function.
+ (sh_coff_frob_file): New function.
+ (md_convert_frag): Call subseg_change before calling fix_new.
+ (sh_handle_align): New function.
+ (SWITCH_TABLE): Define.
+ (sh_force_relocation): New function.
+ (md_apply_fix): Handle R_SH_USES, R_SH_COUNT and R_SH_ALIGN.
+ (sh_coff_reloc_mangle): Likewise. Also handle switch table
+ entries.
+ * config/tc-sh.h (HANDLE_ALIGN): Define.
+ (sh_handle_align): Declare.
+ (TC_FORCE_RELOCATION): Define.
+ (sh_force_relocation): Declare.
+ (TC_COUNT_RELOC): Simplify; rely on TC_FORCE_RELOCATION instead.
+ (tc_frob_file): Define.
+ (sh_coff_frob_file): Declare.
+ * config/obj-coff.c (write_object_file): Call tc_frob_file if it
+ is defined.
+ (fixup_mdeps): Call HANDLE_ALIGN if it is defined.
+ (TC_FORCE_RELOCATION): Define if not defined.
+ (fixup_segment): Use TC_FORCE_RELOCATION to decide whether to
+ clear the symbol fields of fixP.
+
+
+ * config/tc-ppc.c (ppc_elf_suffix): Add support for R_PPC_SDAREL
+ relocation.
+ (md_apply_fix3): Ditto.
+
+
+ * config/tc-m68k.c (md_convert_frag): Rename argument seg to sec,
+ since seg is a macro name in this file.
+
+ * configure.in (arm-*-riscix*): Don't set emulation.
+
+
+ * config/obj-coff.h (TE_PE): Delete.
+ * config/tc-arm.h (BYTE_ORDER): Delete.
+ (TARGET_FORMAT): Provide value for OBJ_COFF and TE_PE.
+ (ARM_BI_ENDIAN): Define if OBJ_COFF and TE_PE.
+ * config/tc-arm.c (byte_order): Delete.
+ (md_number_to_chars): Reference target_big_endian, not byte_order.
+ (md_chars_to_number): Likewise.
+ (md_longopts): Add -EB/-EL if ARM_BI_ENDIAN.
+ (md_parse_options): Recognize -EB/-EL.
+ (md_show_usage): List -EB/-EL.
+
+
+ * gasp.c (process_assigns): Use toupper before comparing against
+ upper case letter.
+ (whatcond): Likewise.
+
+ * config/tc-sh.c (sh_relax): Rename from relax, and make global.
+ Renamed all uses.
+ (insert): Pass a size of 2, not 4.
+ (build_relax): Remove unused len variable.
+ (md_show_usage): Mention -little option.
+ (md_convert_frag): Add segT argument. Rewrite to generate relocs
+ rather than to generate complete instructions here.
+ (md_apply_fix): Adjust and clarify R_SH_PCRELIMM8BY4 case for
+ changes in insert and md_pcrel_from. Add cases for R_SH_PCDISP
+ and R_SH_PCDISP8BY2.
+ (md_pcrel_from): Don't subtract 1, add 2.
+ (tc_coff_fix2rtype): Remove.
+ (sh_coff_reloc_mangle): New function.
+ * config/tc-sh.h (TC_COFF_FIX2RTYPE): Just return fx_r_type.
+ (sh_relax): Declare.
+ (TC_COUNT_RELOC): If relaxing, count PC relative relocs.
+ (TC_RELOC_MANGLE): Define.
+ (sh_coff_reloc_mangle): Declare.
+ (tc_coff_sizemachdep): Declare.
+ * tc.h (md_convert_frag): Add segT parameter to non BFD_ASSEMBLER
+ declaration.
+ * write.c (cvt_frag_to_fill): Add sec argument to non
+ BFD_ASSEMBLER version. Pass it to md_convert_frag.
+ (write_object_file): Pass SEG_TEXT to cvs_frag_to_fill.
+ * config/obj-coff.c (do_relocs_for): Pass segment info to
+ TC_RELOC_MANGLE.
+ (fixup_mdeps): Pass segment type to md_convert_frag.
+ * config/tc-a29k.c (md_convert_frag): Add segT argument.
+ * config/tc-h8300.c (md_convert_frag): Likewise.
+ * config/tc-h8500.c (md_convert_frag): Likewise.
+ * config/tc-i386.c (md_convert_frag): Likewise.
+ * config/tc-i860.c (md_convert_frag): Likewise.
+ * config/tc-i960.c (md_convert_frag): Likewise.
+ * config/tc-m68k.c (md_convert_frag): Likewise.
+ * config/tc-m88k.h (md_convert_frag): Likewise.
+ * config/tc-ns32k.c (md_convert_frag): Likewise.
+ * config/tc-rce.c (md_convert_frag): Likewise.
+ * config/tc-tahoe.c (md_convert_frag): Likewise.
+ * config/tc-vax.c (md_convert_frag): Likewise.
+ * config/tc-w65.c (md_convert_frag): Likewise.
+ * config/tc-z8k.c (md_convert_frag): Likewise.
+ * config/tc-h8300.h (TC_RELOC_MANGLE): Add segment argument.
+ * config/tc-h8500.h (TC_RELOC_MANGLE): Likewise.
+ * config/tc-rce.h (TC_RELOC_MANGLE): Likewise.
+ * config/tc-w65.h (TC_RELOC_MANGLE): Likewise.
+ * config/tc-z8k.h (TC_RELOC_MANGLE): Likewise.
+
+
+ * config/obj-vms.c (Current_Routine, Text_Psect): Delete as file
+ scope variables.
+ (Define_Routine, Define_Local_Symbols): Take Current_Routine and
+ Text_Psect as arguments.
+ (VMS_DBG_Define_Routine): Delete.
+ (VMS_TBT_Block_End): Change `Size' argument from int to valueT.
+ (vms_write_object_file: text and data fixup loops): Difference
+ of two symbols has type offsetT rather than int; convert with
+ md_number_to_chars before passing to VMS_Store_Immediate_Data.
+ (vms_write_object_file: debug symbol loop): Call Define_Routine
+ instead of VMS_DBG_Define_Routine.
+
+
+ * config/tc-ppc.c (ppc_elf_suffix): Add @fixup so that the
+ compiler can mark which relocs not to complain about with
+ -mrelocatable.
+ (ppc_elf_validate_fix): Add .fixup to sections not to complain
+ about, and also don't complain for BFD_RELOC_CTOR relocations in
+ writable non-code segments.
+ (md_apply_fix): Treat BFD_RELOC_CTOR just like BFD_RELOC_32.
+
+
+ Add support for SPARC SunOS PIC:
+ * config/tc-sparc.h (sparc_pic_code): Always declare, not just
+ when OBJ_ELF.
+ (TC_RELOC_RTSYM_LOC_FIXUP): Define when OBJ_AOUT.
+ (tc_fix_adjustable): New definition for OBJ_AOUT.
+ * config/tc-sparc.c (sparc_pic_code): Always define, not just when
+ OBJ_ELF.
+ (md_apply_fix): Adjust reloc addend for OBJ_AOUT and PIC. In
+ BFD_RELOC_32_PCREL_S2 case, don't increment val for an external
+ symbol when PIC.
+ (tc_gen_reloc): Generate different PIC relocs when OBJ_AOUT, as
+ well as when OBJ_ELF.
+ (md_shortopts): If OBJ_AOUT, include `k'.
+ (md_parse_option): If OBJ_AOUT, handle 'k'.
+ (md_show_usage): Mention -k if OBJ_AOUT, and -KPIC if OBJ_ELF.
+ (md_pcrel_from): Don't add in size for an external symbol when
+ PIC.
+
+start-sanitize-arc
+
+ * config/tc-arc.c (byte_order): Provide explicit initial value.
+end-sanitize-arc
+
+
+ * 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.
+
+
+ * config/obj-coff.c (fixup_segment): Support MD_APPLY_FIX3.
+
+
+ * write.c (fix_new): Use int, not short int, for argument type.
+ (fix_new_exp): Ditto.
+
+ * configure.in (arm-*-riscix*): Don't set emulations.
+
+ * config/tc-mips.c (NO_ECOFF_DEBUGGING): Define if ECOFF_DEBUGGING
+ wasn't previously defined.
+ (s_extern): Don't set ecoff_extern_size if NO_ECOFF_DEBUGGING.
+ (nopic_need_relax): Don't check it if NO_ECOFF_DEBUGGING.
+ (macro_build) [!USE_STDARG]: Don't use variadic prototype.
+ (mips_local_label) [NO_ECOFF_DEBUGGING]: Don't preserve potential
+ ECOFF debugging symbols.
+
+ * emul.h (struct emulation): Use unsigned, not unsigned char, for
+ bitfields.
+ * obj.h (struct format_ops): Likewise.
+
+ * config/tc-arm.c (symbol_make_empty) [BFD_ASSEMBLER]: Set
+ udata.p, not udata.
+
+
+ * doc/c-mips.texi: Document -m4010 and -mno-4010.
+
+
+ * 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.
+
+
+ * 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.
+
+
+ * doc/as.texinfo: Split out most cpu chapters...
+ * doc/c-*.texi: ...to here.
+
+ * read.c (po_hash): Now static.
+
+
+ * 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.
+
+ * configure.in: When switching on ${cpu}, use ${cpu}, not
+ $[target_cpu}, in default case.
+ * configure: Rebuild.
+
+
+ * write.c (fixup_segment): Call resolve_symbol_value on
+ sub_symbolP, in case it isn't in the symbol table.
+
+
+ * read.c (s_lcomm): For .lcomm 1, set align to 0, not 1.
+
+ * 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.
+
+ * app.c (do_scrub_next_char): Always accept \v. Don't make it
+ conditional on BACKSLASH_V.
+ * read.c (next_char_of_string): Likewise.
+ * config/obj-bout.h (BACKSLASH_V): Don't define.
+ * config/tc-mips.h (BACKSLASH_V): Don't define.
+
+ 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.
+
+ * Makefile.in (Makefile): Add dependency on conf.in, so that conf
+ is rebuilt when conf.in changes.
+
+
+ * All files: Updated FSF address.
+
+
+ * 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.
+
+
+ * 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.
+
+ * config/tc-sparc.c (s_reserve): Don't permit redefinition, even
+ if the symbol was already in bss_section. Fix warning message.
+
+ * 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.
+
+ * config/tc-alpha.h (alpha_do_align): Don't declare.
+ (md_do_align): Don't define.
+ (tc_frob_label): Define.
+ (alpha_define_label): Declare.
+ (md_flush_pending_output): Define.
+ (alpha_flush_pending_output): Declare.
+ * config/tc-alpha.c (insn_label): New static variable.
+ (auto_align): New static variable.
+ (md_pseudo_table): Add cases for .text, .data, .align, .byte,
+ .hword, .int, .long, .octa, .quad, .short, .word, .double, .float,
+ and .single. Change .t_floating, .s_floating, .f_floating,
+ .g_floating, and .d_floating to use s_alpha_float_cons rather than
+ float_cons.
+ (s_alpha_text, s_alpha_data): New static functions.
+ (s_rdata, s_sdata): Clear insn_label and set auto_align.
+ (s_gprel32): If auto_align, align. Clear insn_label.
+ (emit_insn): Clear insn_label.
+ (s_alpha_align): New static function.
+ (alpha_align): Make static. Take label argument.
+ (alpha_flush_pending_output): New static function.
+ (s_alpha_cons, s_alpha_float_cons): New static functions.
+ (alpha_define_label): New function.
+
+
+ * conf.in: Regenerate with autoreconf.
+
+
+ * config/obj-vms.h (vms_resolve_symbol_redef): Use full prototype.
+ (vms_check_for_special_label, tc_frob_label): Move them to group
+ with other prototypes.
+ [WANT_VMS_OBJ_DEFS]: Only define the many OBJ_x, DBG_x, and DST_x
+ macros when this is defined.
+ * config/obj-vms.c: Fully prototype all local functions.
+ [symbolS, fragS]: Use consistently instead of their struct tags.
+ [WANT_VMS_OBJ_DEFS]: Define this.
+ (s_const): Make definition correctly match actual usage.
+ (VMS_stab_parse): Make `expected_type' arg be int rather than char.
+ (get_VMS_time_on_unix): Define as `static void'.
+ (hash_string): Make definition match actual usage; argument is
+ `char const *' rather than `unsigned char *'.
+ (VMS_Case_Hack_Symbol, VMS_Modify_Psect_Attributes, VMS_Psect_Spec,
+ VMS_Global_Symbol_Spec): Declare string args as `const char *'.
+ [IS_GXX_VTABLE]: New macro.
+ (vms_write_object_file: GSD loop): Use it.
+ (vms_write_object_file: data segment): Reorganize `fill' loop.
+
+
+ * 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.
+
+ * conf.in: Add undef of HAVE_SBRK.
+
+ * config/obj-coff.c (obj_coff_line): Call listing_source_line, in
+ both BFD_ASSEMBLER and non BFD_ASSEMBLER versions of the function.
+
+ * symbols.c (S_SET_EXTERNAL): Warn if symbol is weak.
+ (S_CLEAR_EXTERNAL): Likewise.
+ (S_SET_WEAK): Warn if symbol is global.
+
+ * config/obj-aout.c (obj_aout_frob_symbol): Warn about an attempt
+ to put an undefined symbol into a set.
+
+ * Makefile.in: Remove @configure_input@; it's not needed in
+ files named Makefile.
+
+ * config/tc-m88k.c (md_pseudo_table): Add ".set" so that the
+ explicit pseudo-op works, while continuing to treat "set" as an
+ instruction.
+
+ * ecoff.c (ecoff_debugging_seen): New global variable.
+ (ecoff_directive_def): Set ecoff_debugging_seen.
+ (ecoff_stab): Likewise.
+ * ecoff.h: Make idempotent.
+ (ecoff_debugging_seen): Declare.
+ * config/tc-mips.c: Include ecoff.h.
+ (mips_debug): New static variable.
+ (s_stringer, s_mips_space): Remove unneeded declarations.
+ (md_parse_option): In case 'g', set mips_debug to debugging level.
+ (mips_local_label): New function.
+ * tc-mips.h (LOCAL_LABEL): Call mips_local_label.
+ (mips_local_label): Declare.
+
* as.c (main): Only use sbrk when HAVE_SBRK defined.
- Support for long filenames non-bfd coff. bfd/7288
+ Support for long filenames non-bfd coff.
* config/obj-coff.c (filename_list_head, filename_list_tail): New.
(yank_symbols): Notice and record filenames which are too long.
(w_strings): Write out filename strings.
* gasp.c (do_print, do_form, buffer_and_nest): Use case insensitive
- string compares. gas/7274.
+ string compares.
* read.c (s_lcomm): Do ELF/ECOFF test at run time, not compile
time.
-start-sanitize-arc
-
- * config/tc-arc.c (md_longopts): -EB/-EL renamed to
- -mbig-endian/-mlittle-endian.
- (md_show_usage): Likewise.
-end-sanitize-arc
-
Initial support for PE object files.
* nearly everything. flush ChangeLog, package as gas-1.92.1.
ChangeLog's prior to this are sketchy at best. I have logs.
They just aren't ChangeLogs.
-
-\f
-Local Variables:
-mode: indented-text
-left-margin: 8
-fill-column: 74
-version-control: never
-End: