+1999-06-12  Ian Lance Taylor  <ian@zembu.com>
+
+       * config/tc-i386.c (i386_immediate): Remove unused label
+       seg_unimplemented.
+
+       * struc-symbol.h: Put local_symbol code in ifdef BFD_ASSEMBLER.
+       * symbols.c: Likewise.
+       * config/obj-aout.c (obj_crawl_symbol_chain): Refer directly to
+       sy_next field when taking address, rather than symbol_next.
+
+       * dwarf2dbg.c: Change bfd_vma to addressT and bfd_signed_vma to
+       offsetT.
+       (out_set_addr): Don't use BYTES_PER_ADDRESS.  Instead, get the
+       value from the output file architecture.
+       (dwarf2_gen_line_info): Ifdef BFD_ASSEMBLER specific code.
+       * dwarf2dbg.h: Change bfd_vma to addressT.
+
 1999-06-11  Ian Lance Taylor  <ian@zembu.com>
 
        * dwarf2dbg.h: Use PARAMS in function declarations.
 
        */
       if (LOCAL_SYMBOL_CHECK (symbolP))
        {
+#ifdef BFD_ASSEMBLER
          struct local_symbol *locsym = (struct local_symbol *) symbolP;
 
          if (locsym->lsy_section != undefined_section
          locsym->lsy_section = now_seg;
          local_symbol_set_frag (locsym, frag_now);
          locsym->lsy_offset = frag_now_fix ();
+#endif
        }
       else if (!S_IS_DEFINED (symbolP) || S_IS_COMMON (symbolP))
        {
      CONST char *name;
      int strip_underscore;
 {
-  struct local_symbol *locsym;
-
   if (strip_underscore && *name == '_')
     name++;
 
       *copy = '\0';
     }
 
-  locsym = (struct local_symbol *) hash_find (local_hash, name);
-  if (locsym != NULL)
-    return (symbolS *) locsym;
+#ifdef BFD_ASSEMBLER
+  {
+    struct local_symbol *locsym;
+
+    locsym = (struct local_symbol *) hash_find (local_hash, name);
+    if (locsym != NULL)
+      return (symbolS *) locsym;
+  }
+#endif
 
   return ((symbolS *) hash_find (sy_hash, name));
 }
   valueT final_val;
   segT final_seg;
 
+#ifdef BFD_ASSEMBLER
   if (LOCAL_SYMBOL_CHECK (symp))
     {
       struct local_symbol *locsym = (struct local_symbol *) symp;
 
       return final_val;
     }
+#endif
 
   if (symp->sy_resolved)
     {
 S_GET_VALUE (s)
      symbolS *s;
 {
+#ifdef BFD_ASSEMBLER
   if (LOCAL_SYMBOL_CHECK (s))
     return ((struct local_symbol *) s)->lsy_offset;
+#endif
 
   if (!s->sy_resolved && s->sy_value.X_op != O_constant)
     resolve_symbol_value (s, 1);
      symbolS *s;
      valueT val;
 {
+#ifdef BFD_ASSEMBLER
   if (LOCAL_SYMBOL_CHECK (s))
     {
       ((struct local_symbol *) s)->lsy_offset = val;
       return;
     }
+#endif
 
   s->sy_value.X_op = O_constant;
   s->sy_value.X_add_number = (offsetT) val;
      symbolS *s;
      fragS *f;
 {
+#ifdef BFD_ASSEMBLER
   if (LOCAL_SYMBOL_CHECK (s))
     {
       local_symbol_set_frag ((struct local_symbol *) s, f);
       return;
     }
+#endif
   s->sy_frag = f;
 }
 
 symbol_get_frag (s)
      symbolS *s;
 {
+#ifdef BFD_ASSEMBLER
   if (LOCAL_SYMBOL_CHECK (s))
     return local_symbol_get_frag ((struct local_symbol *) s);
+#endif
   return s->sy_frag;
 }
 
 symbol_mark_resolved (s)
      symbolS *s;
 {
+#ifdef BFD_ASSEMBLER
   if (LOCAL_SYMBOL_CHECK (s))
     {
       local_symbol_mark_resolved ((struct local_symbol *) s);
       return;
     }
+#endif
   s->sy_resolved = 1;
 }
 
 symbol_resolved_p (s)
      symbolS *s;
 {
+#ifdef BFD_ASSEMBLER
   if (LOCAL_SYMBOL_CHECK (s))
     return local_symbol_resolved_p ((struct local_symbol *) s);
+#endif
   return s->sy_resolved;
 }
 
 
   if (LOCAL_SYMBOL_CHECK (sym))
     {
+#ifdef BFD_ASSEMBLER
       struct local_symbol *locsym = (struct local_symbol *) sym;
       if (local_symbol_get_frag (locsym) != &zero_address_frag
          && local_symbol_get_frag (locsym) != NULL)
       if (local_symbol_resolved_p (locsym))
        fprintf (file, " resolved");
       fprintf (file, " local");
+#endif
     }
   else
     {
     {
       indent_level++;
       fprintf (file, "\n%*s<", indent_level * 4, "");
+#ifdef BFD_ASSEMBLER
       if (LOCAL_SYMBOL_CHECK (sym))
        fprintf (file, "constant %lx",
                 (long) ((struct local_symbol *) sym)->lsy_offset);
       else
+#endif
        print_expr_1 (file, &sym->sy_value);
       fprintf (file, ">");
       indent_level--;