(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.
PR 6978.
* config/tc-hppa.c (tc_gen_reloc, SOM version): Handle
relocations for the difference of two (possibly external)
symbols.
(hppa_fix_adjustable): For SOM, reject reductions involving
the difference of two symbols.
(hppa_force_relocation): Force relocations for expressions
involving the difference of two symbols.
gas/bfd part of mentor-7363
* 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.
(c_dot_file_symbols): Put long filenames onto list.
the strange common symbol format that other 386s formats
do.
* config/tc-i386.c (md_begin): If LEX_AT defined then
'@' is in the set of identifiers.
(i386_operand): If LEX_AT, then don't look for @goto stuff.
* config/te-pe.h: Define LEX_AT.
and libcoff.h.
(fill_section): Call PROGRESS.
* Makefile.in (INCLUDES): Add bfd srcdir.
* mpw-config.in: Add bfd_gas flag and set for each config.
(i386-unknown-go32, m68k-unknown-coff): Recognize.
* mpw-make.in (HACK_O_RAMA, OBJ_COFF_OMIT_TIMESTAMP): Add to
config.h.
FAKE_LABEL_NAME instead of checking third character. (Suggested by Pat Rankin.)
Mon 5 Jun 20:10:46 1995 Pat Rankin (rankin@eql.caltech.edu)
Add support for N_ABS and N_ABS|N_EXT type symbols.
* config/obj-vms.h (LSY_S_M_{DEF,REL}, ENV_S_M_{DEF,NESTED}): New macros for
local symbols (from <lsydef.h> and <envdef.h>).
* config/obj-vms.c (Current_Environment): New file-scope variable.
(VMS_Local_Environment_Setup): New routine.
(GBLSYM_LCL): New macro.
(VMS_Global_Symbol_Spec): Handle local symbols too.
(VMS_Psect_Spec): Set GLOBALVALUE_BIT for absolute symbols.
(VMS_Emit_Globalvalues): Handle local and global absolute symbols.
(VMS_Store_PIC_Symbol_Reference): Ditto.
(vms_write_object_file: GSD symbol loop): Ditto.
* config/obj-multi.h (obj_frob_symbol, obj_frob_file, S_GET_SIZE, S_SET_SIZE,
S_GET_ALIGN, S_SET_ALIGN, obj_copy_symbol_attributes, OBJ_PROCESS_STAB): New
macros.
* config/tc-mips.c: Protect against redefining them also when including
obj-elf.h. Test only OBJ_ELF for including elf/mips.h.
Initial support for PE object files.
* configure.in, configure (i386-*-pe, i386-*-*nt): Add.
* config/obj-coff.c (fixup_segment): Cope with PE wierdness.
* config/obj-coff.h (TE_PE): New target format.
isn't set, abort.
(SEPARATE_STAB_SECTIONS): Default to zero.
(aout_process_stab): New function, split out from s_stab_generic.
(OBJ_PROCESS_STAB) [AOUT_STABS]: Define to call aout_process_stab, if not
already defined.
(s_stab_generic): Test SEPARATE_STAB_SECTIONS at run time. If it's not set,
and OBJ_PROCESS_STAB isn't defined, abort. Always pass six arguments to
OBJ_PROCESS_STAB.
* config/obj-aout.h (AOUT_STABS): Define.
* config/obj-bout.h (AOUT_STABS): Define.
them to zero.
* config/tc-*.h, config/te-*.h: If defining them, define them to be 1 instead
of empty.
* expr.c (integer_constant, operand): Test them at run time instead of compile
time.
* read.c (read_a_source_file): Ditto.
* symbols.c (colon): Ditto.
(dollar_*, define_dollar_label, fb_*): Define unconditionally.
* symbols.h (dollar_*, define_dollar_label, fb_*): Declare unconditionally.
PC relative call since those only occur in cases where the linker
can fix them up.
(hppa_force_relocation): Force relocations for out of range PC
relative calls.
* config/tc-mips.c (mips_target_format): Changed to a function, checking flavor
and byte order at run time.
(md_parse_option, cases OPTION_EB and OPTION_EL): Set target_big_endian here.
(md_begin): Not here.
* config/tc-mips.h (mips_target_format): Adjust declaration.
(TARGET_FORMAT): Call mips_target_format.
* config/tc-mips.h (USE_GLOBAL_POINTER_OPT): Define in terms of OUTPUT_FLAVOR.
* config/tc-mips.c (g_switch_value, g_switch_seen): Define unconditionally.
(md_begin, mips_ip, md_parse_option, s_change_sec, s_option, s_abicalls,
nopic_need_relax): Check USE_GLOBAL_POINTER_OPT at run time, instead of
compiling conditionally on GPOPT.
(GPOPT): Don't define.
(md_shortopts): Always include -G.
(RDATA_SECTION_NAME): Select at run time.
(md_begin): Test for ELF format at run time instead of compile time.
(mips_ip, s_change_sec): Ditto.
(md_parse_option, cases OPTION_CALL_SHARED and OPTION_NON_SHARED): Ditto.
(OPTION_CALL_SHARED, OPTION_NON_SHARED, mips_regmask_frag): Define
unconditionally.
(md_assemble): Use hashed list of insns.
Print warning if 8 byte insn appears in delay slot.
(md_operand): Handle %st(sym1-sym2).
(get_arc_exp_reloc_type): Likewise.
(md_apply_fix, case BFD_RELOC_ARC_B26): Now using implicit addends
so must store them here.
Do generic rs_machine_dependent relaxation only if TC_GENERIC_RELAX_TABLE is
defined. Use its value as the base of the table, so the actual declaration
can be cpu-specific (and const or not as appropriate). For other cpus where
this isn't done (the majority), delete md_relax_table altogether.
For machines with WORKING_DOT_WORD, delete md_{short,long}_jump_size.
(md_relax_table): No longer const. Add PCINDEX entries.
(m68k_ip): For AINDX with simple symbol operand, generate a PCINDEX frag if PC
is used, or do normal non-AINDX processing for address register.
(m68k_init_after_args): If cpu is 68000 or 68010, fix md_relax_table to prevent
relaxation of PCINDEX/BYTE mode to SHORT, since they don't support that mode.
(md_convert_frag_1, case PCLEA/LONG): Add 4 to offset, not 2. Add support for
new PCINDEX modes.
(md_estimate_size_before_relax): Process PCINDEX/SZ_UNDEF mode.
(md_convert_frag_1, case PCLEA/SHORT): Add 2 to offset.
(m68k_ip, case most punctuation/AOFF): If using PC, call add_frag using PCLEA.
(nopic_need_relax): New static function, split out from
md_estimate_size_before_relax.
(md_estimate_size_before_relax): Call it.
(load_address, macro): In NO_PIC branches, if nopic_need_relax returns nonzero,
don't attempt GP optimization.
comments.
(struct m68k_cpu): New type.
(archs, n_archs): New variables, with single list of name/enum mapping and
aliases.
(m68k_ip): Delete the table here.
(m68k_init_after_args): Use the new table here instead of open-coding it.
(md_parse_option, case 'm'): Ditto.
(init_opcode_tables): Delete cpu_type_map, call
arc_get_opcode_mach instead.
(arc_common): Delete non-ELF stuff. Require leading '.' in .data.
(md_apply_fix): Delete non-ELF stuff.
Disable special handling of limm values, treat them normally.
(get_arc_exp_reloc_type): New argument `data_p'. Callers updated.
(md_assemble): All limm operands must be output by gas, the opcode
insertion routines cannot be used (they don't do anything and we're
using implicit addends now so we need to output something).
* config/tc-arc.h (FAKE_LABEL_NAME): Define.