#define DIFF_EXPR_OK
 
+#ifdef  LITTLE_ENDIAN
+#undef  LITTLE_ENDIAN
+#endif
+#ifdef  BIG_ENDIAN
+#undef  BIG_ENDIAN
+#endif
+
 #define LITTLE_ENDIAN 1234
 #define BIG_ENDIAN 4321
 
 
 #define md_after_pass_hook() arm_after_pass_hook ()
 #define md_start_line_hook() arm_start_line_hook ()
-#define tc_frob_label(S) arm_frob_label (S) 
+#define tc_frob_label(S) arm_frob_label (S)
+/* We also need to mark assembler created symbols:  */
+#define tc_frob_fake_label(S) arm_frob_label (S)
+/* NOTE: The fake label creation in stabs.c:s_stab_generic() has
+   deliberately not been updated to mark assembler created stabs
+   symbols as Thumb.  */
 
 #define obj_fix_adjustable(fixP) 0
 
+/* We need to keep some local information on symbols. At the moment
+   this is 0 for ARM symbols, non-zero for Thumb symbols.  */
+#define TC_SYMFIELD_TYPE unsigned int
+#define ARM_GET_TYPE(S)   ((S)->sy_tc)
+#define ARM_SET_TYPE(S,V) ((S)->sy_tc = (V))
+
 #define TC_FIX_TYPE PTR
 #define TC_INIT_FIX_DATA(FIXP) ((FIXP)->tc_fix_data = NULL)
 
          }}
 #endif 
 
+/* Finish processing the entire symbol table:  */
+#define tc_adjust_symtab() arm_adjust_symtab ()
+extern void arm_adjust_symtab PARAMS ((void));
+
 #if 0
 #define tc_crawl_symbol_chain(a)       {;}     /* not used */
 #define tc_headers_hook(a)             {;}     /* not used */
 
 #define LOCAL_LABELS_FB  1
 
-/* Use defaults for OBJ_AOUT.  */
-#ifndef BFD_ASSEMBLER
-#ifndef OBJ_AOUT
-#define LOCAL_LABEL(name)      ((name)[0] == '.' && (name)[1] == 'L')
-#endif
-#endif
-
 /* end of tc-arm.h */