to tc-, obj-, and atof- files, use te-generic.h for emulation.
* mpw-make.in (VERSION): Define.
(as.c): Compile with GCC.
(TARG_OBJECTS, CLIBS): Define.
(as.new): Use LDFLAGS, TARG_OBJECTS, CLIBS and EXTRALIBS in link
command.
(config.h, config-stamp): Build.
config/ho-mpw.h (HOST_SPECIAL_INIT): Define.
* config/obj-vms.h (DBG_S_C_COMPLX4, DBG_S_C_COMPLX8): define
these new VMS symbol-type macros for `complex float' and
`complex double' support. Their values come from the existing
DSC$K_DTYPE_FC and DSC$K_DTYPE_DC macros in <descrip.h>.
(DBG_S_C_REAL8_G, DBG_S_C_COMPLX8_G): G_float versions of
REAL8 and COMPLX8; not used yet, because gcc outputs the same
.stabs for `double' regardless of whether `-mg' is used.
config/obj-vms.c (VMS_typedef_parse) [case 'r']: add entries
for gcc2's predefined types "complex float", "complex double",
and "complex long double" (identical to complex double).
* read.c (pseudo_set): Only preserve external bit for OBJ_AOUT and
OBJ_BOUT if not BFD_ASSEMBLER.
* config/aout_gnu.h (N_WEAKU, N_WEAKA, N_WEAKT, N_WEAKD, N_WEAKB):
Define as in ../include/aout/aout64.h.
* config/obj-aout.h (OBJ_SYMFIELD_TYPE): If not BFD_ASSEMBLER,
define as char.
(S_GET_WEAK, S_SET_WEAK): Define if not BFD_ASSEMBLER.
* config/obj-aout.c (obj_pseudo_table): Add "weak".
(obj_emit_symbols): Adjust type of weak symbols.
(obj_aout_weak): New static function.
(macro): Correct M_LI_SS SVR4_PIC/EMBEDDED_PIC case. After M_LI_D
or M_L_DOB or label dob, force a new frag to avoid getting
confused in tc_gen_reloc.
(mips_ip): Use RDATA_SECTION_NAME, not .rdata.
(s_change_sec): Likewise.
* config/tc-alpha.c (machine): New variable.
(load_insn): New macro.
(load_insn_table): New function.
(md_begin): Call load_insn_table, once for basic instructions and
once for appropriate PAL instruction table.
(md_parse_option): Set `machine' based on -m##### arguments.
* config/alpha-opcode.h (alpha_pal21064_opcodes): Split out from alpha_opcodes.
(alpha_pal21164_opcodes): New table.
(NUM21064OPCODES, NUM21164OPCODES): New macros.
throughout code.
(is_complex): Delete definition and support for complex relocation
types.
(tc_gen_reloc): Delete special unwind crud for ELF. Simplify and
rewrite ELF code based on 94-02-02 PA ELF draft spec.
(pa_build_unwind_subspace): Use standard PARISC_DIR32 relocs for
the unwind descriptors.
* obj-coffbfd.h (TARGET_FORMAT) [TC_I960]: Ditto.
* obj-coff.c (coff_frob_section): Round up the size of every section to a
multiple of the alignment, so that BFD doesn't surprise us.
Eliminate many simple differences between the two COFF back ends:
* obj-coffbfd.c: Removed all uses of DEFUN and DEFUN_VOID. Made minor
stylistic changes, deleted some register declarations.
(stack_top): Deleted.
(symbol_to_chars): Use absolute_section and reg_section instead of the
corresponding SEG_* symbols.
(obj_coff_endef, tag_find_or_make, fixup_segment): Likewise.
(stack typedef, stack_init, stack_delete, stack_push, stack_pop): Moved to just
after pseudo-op table. All functions now static.
(stack_delete): Removed declaration.
(tag_init, tag_insert, tag_find_or_make, tag_find): Moved to just after stack
functions.
* obj-coffbfd.h: Reordered some declarations and macros.
(stack_init, stack_delete, stack_push, stack_pop): Don't declare.
(stack typedef): Deleted.
(SYMBOLS_NEED_BACKPOINTERS): Always undef then define; don't test.
(SYM_AUXENT): New macro.
(SA_GET_*, SA_SET_*): Define in terms of SYM_AUXENT when feasible.
(SF_GET_*, SF_SET_*): Define in terms of SF_GET when feasible.
(SA_GET_SYM_TAGNDX, SA_GET_SYM_ENDNDX, SA_SET_SYM_TAGNDX, SA_SET_SYM_ENDNDX,
object_headers typedef, data_section_header, text_section_header): Delete
non-BFD_HEADERS versions, since we always define that symbol now.
* obj-coff.c (stack_top): Deleted.
(obj_coff_endef, obj_coff_dim, obj_coff_line, obj_coff_size, obj_coff_scl,
obj_coff_tag, obj_coff_type, obj_coff_val): Change argument name from "ignored"
to "ignore".
(obj_coff_val): Use frag_now_fix.
(obj_pseudo_table): Removed IGNORE_DEBUG version, since it doesn't get used.
(stack typedef, stack_init, stack_delete, stack_push, stack_pop): Moved to just
after pseudo-op table. All functions now static.
(tag_init, tag_insert, tag_find_or_make, tag_find): Moved to just after stack
functions.
* obj-coff.h: Reordered some declarations and macros. Protected against
multiple inclusions.
(stack_init, stack_delete, stack_push, stack_pop): Don't declare.
(stack typedef): Deleted.
(SYMBOLS_NEED_BACKPOINTERS): Always undef then define; don't test.
(stdoutput): Deleted declaration.
(TARGET_FORMAT) [TC_I386]: Don't define if already defined.
REGISTER_PREFIX_OPTIONAL, if defined, or zero.
(m68k_reg_parse): If flag_reg_prefix_optional is set, permit register prefix to
be absent.
(m68k_ip_op): Accept `&' also for immediate constants.
(insert_reg): Don't bother with (two!?) sanity checks of the symbol table when
inserting each register.
(m68k_parse_long_option): New function. Set flag_reg_prefix_optional if
"register-prefix-optional" is passed.
* tc-m68k.h (REGISTER_PREFIX): Always define if not already defined.
(OPTIONAL_REGISTER_PREFIX): Don't define.
(REGISTER_PREFIX_OPTIONAL): If not already defined, define as zero
or one depending on M68KCOFF.
Some changes to help Apollo support, from troy@cbme.unsw.edu.au:
* tc-m68k.c (DATA, ADDR, SP, FPREG, COPNUM, BAD, BAC): Define as macros instead
of enumerators, since the Apollo compiler can't handle "enumVal1, enumVal2 =
enumVal1" when defining an enum type.
(make_pcrel_absolute) [NO_PCREL_RELOCS]: New function.
(tc_coff_fix2rtype) [NO_PCREL_RELOCS]: Generate only R_RELBYTE, R_DIR16, and
R_DIR32 relocs.
* tc-m68k.h [TE_APOLLO] (COFF_MAGIC, COFF_AOUTHDR_MAGIC): Use Apollo versions.
[TE_APOLLO] (OBJ_COFF_OMIT_OPTIONAL_HEADER): Undefine. That is, do include the
optional header for Apollo target.
(COFF_MAGIC): Don't define as MC68MAGIC if it's already defined.
* tc-m68k.h [TE_DELTA] (LEX_PCT): Define as 1, so that `%' can be used within a
label name.
* tc-m68k.h (m68k_init_after_args): Declare.
(tc_init_after_args): Define as m68k_init_after_args.
* tc-m68k.c (m68k_init_after_args): New function, containing one-shot code from
md_assemble. Added warning for combination of 68040 and 68851.
(md_assemble): Startup-time code deleted.
with the preceding instruction even if .set nobopt has been seen.
.set nobopt actually controls whether to bring up an instruction
from the branch target, which gas does not currently support.
BFD_ASSEMBLER is not defined, and all conditionals relating to such code. No
such targets remain.
Fixes for stabs-in-coff:
* config/obj-coff.c: Include subsegs.h.
(coff_frob_section): New function.
(obj_coff_init_stab_section): New function.
* config/obj-coff.h (obj_coff_init_stab_section, coff_frob_section): Declare.
(obj_frob_section): New macro; uses coff_frob_section.
(INIT_STAB_SECTION): New macro; uses obj_coff_init_stab_section.
defaults for defined, private, and spnum fields for the
$TEXT$ and $PRIVATE$ spaces. Do not clobber spnum. Do
not reset the segment if just updating a space.
(pa_spaces_begin): Set BFD section flags for all built-in
subspaces.
* configure.in: Set ALL_OBJ_DEPS in output Makefile.
Based on suggestions from <BAILEY@hmivax.humgen.upenn.edu> (Charles Bailey):
* vmsconf.sh: In generated file, get ".obj" suffix right, build source files
from other directories into objects in the current directory, and specify PSECT
attributes explicitly to linker. Also added missing label.
* Makefile.in (stamp-mk.com): Reference new variable VMS_OTHER_OBJS for list of
non-local object files, instead of listing them here.
(VMS_OTHER_OBJS): New variable, added more libiberty files.
* make-gas.com: Regenerated.
* config/ho-vms.h (unlink): Define as delete.
* config-gas.com: Fix quoting on TARGET_CANONICAL definition. Delete files
before creating them.
* config/tc-mips.c (macro_build): Permit BFD_RELOC_PCREL_LO16 for
certain cases of 'i', 'j' and 'o'. Change 'u' to take an
argument, the reloc type.
(load_register): Pass reloc type to macro_build for 'u'.
(macro): Likewise. For M_LA_AB permit a difference expression
when generating embedded PIC code between an arbitrary symbol and
a symbol in the .text section.
(mips_force_relocation): Force BFD_RELOC_PCREL_HI16_S and
BFD_RELOC_PCREL_LO16 to be emitted.
(md_apply_fix): Check that most relocs are not PC relative.
Handle BFD_RELOC_PCREL_HI16_S and BFD_RELOC_PCREL_LO16.
(tc_gen_reloc): Change #error to as_fatal. Handle
BFD_RELOC_PCREL_LO16 and BFD_RELOC_PCREL_HI16_S.