+#define DIFF_EXPR_OK
+#define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_"
+
+#define TC_FORCE_RELOCATION(FIX) mn10300_force_relocation (FIX)
+extern bfd_boolean mn10300_force_relocation (struct fix *);
+
+/* tc-mn10300.c uses TC_FORCE_RELOCATION_LOCAL, a macro that should
+ only appear in write.c. The use is likely incorrect. Duplicating
+ the definition here rather than expanding it in
+ TC_FORCE_RELOCATION_LOCAL at least ensures write.c changes will be
+ flagged immediately with a compile error. */
+#define GENERIC_FORCE_RELOCATION_LOCAL(FIX) \
+ (!(FIX)->fx_pcrel \
+ || TC_FORCE_RELOCATION (FIX))
+
+#define TC_FORCE_RELOCATION_LOCAL(FIX) \
+ (GENERIC_FORCE_RELOCATION_LOCAL (FIX) \
+ || (FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \
+ || (FIX)->fx_r_type == BFD_RELOC_MN10300_GOT32 \
+ || (FIX)->fx_r_type == BFD_RELOC_32_GOT_PCREL)
+
+#define md_parse_name(NAME, EXPRP, MODE, NEXTCHARP) \
+ mn10300_parse_name ((NAME), (EXPRP), (MODE), (NEXTCHARP))
+int mn10300_parse_name (char const *, expressionS *, enum expr_mode, char *);
+
+#define TC_CONS_FIX_NEW(FRAG, OFF, LEN, EXP, RELOC) \
+ mn10300_cons_fix_new ((FRAG), (OFF), (LEN), (EXP), (RELOC))
+void mn10300_cons_fix_new (fragS *, int, int, expressionS *,
+ bfd_reloc_code_real_type);
+
+/* This is used to construct expressions out of @GOTOFF, @PLT and @GOT
+ symbols. The relocation type is stored in X_md. */
+#define O_PIC_reloc O_md1