+extern void m68k_mri_mode_change (int);
+#define MRI_MODE_CHANGE(i) m68k_mri_mode_change (i)
+
+extern int m68k_conditional_pseudoop (pseudo_typeS *);
+#define tc_conditional_pseudoop(pop) m68k_conditional_pseudoop (pop)
+
+extern void m68k_frob_label (symbolS *);
+#define tc_frob_label(sym) m68k_frob_label (sym)
+
+extern void m68k_flush_pending_output (void);
+#define md_flush_pending_output() m68k_flush_pending_output ()
+
+extern void m68k_frob_symbol (symbolS *);
+
+#define tc_frob_symbol(sym,punt) \
+do \
+ { \
+ if (S_GET_SEGMENT (sym) == reg_section) \
+ punt = 1; \
+ m68k_frob_symbol (sym); \
+ } \
+while (0)
+
+#define NO_RELOC BFD_RELOC_NONE
+#define RELAX_RELOC_ABS8 BFD_RELOC_8
+#define RELAX_RELOC_ABS16 BFD_RELOC_16
+#define RELAX_RELOC_ABS32 BFD_RELOC_32
+#define RELAX_RELOC_PC8 BFD_RELOC_8_PCREL
+#define RELAX_RELOC_PC16 BFD_RELOC_16_PCREL
+#define RELAX_RELOC_PC32 BFD_RELOC_32_PCREL
+
+#define tc_fix_adjustable(X) tc_m68k_fix_adjustable(X)
+extern int tc_m68k_fix_adjustable (struct fix *);
+
+/* Target *-*-elf implies an embedded target. No shared libs.
+ *-*-uclinux also requires special casing to prevent GAS from
+ generating unsupported R_68K_PC16 relocs. */
+#define EXTERN_FORCE_RELOC \
+ ((strcmp (TARGET_OS, "elf") != 0) && (strcmp (TARGET_OS, "uclinux") != 0))
+
+/* Values passed to md_apply_fix don't include symbol values. */
+#define MD_APPLY_SYM_VALUE(FIX) 0
+
+#define elf_tc_final_processing m68k_elf_final_processing
+extern void m68k_elf_final_processing (void);
+