* README-vms: Delete.
[deliverable/binutils-gdb.git] / gas / config / obj-aout.c
index eb71397b6db954dc45ea5267d44ebeac6c2d65e0..e99e63d9574af52c9b4a61eb7a8ba1d398ff9d28 100644 (file)
 #define OBJ_HEADER "obj-aout.h"
 
 #include "as.h"
-#ifdef BFD_ASSEMBLER
 #undef NO_RELOC
 #include "aout/aout64.h"
-#endif
 #include "obstack.h"
 
-#ifndef BFD_ASSEMBLER
-/* in: segT   out: N_TYPE bits.  */
-const short seg_N_TYPE[] =
-{
-  N_ABS,
-  N_TEXT,
-  N_DATA,
-  N_BSS,
-  N_UNDF,                      /* Unknown.  */
-  N_UNDF,                      /* Error.  */
-  N_UNDF,                      /* Expression.  */
-  N_UNDF,                      /* Debug.  */
-  N_UNDF,                      /* Ntv.  */
-  N_UNDF,                      /* Ptv.  */
-  N_REGISTER,                  /* Register.  */
-};
-
-const segT N_TYPE_seg[N_TYPE + 2] =
-{                              /* N_TYPE == 0x1E = 32-2 */
-  SEG_UNKNOWN,                 /* N_UNDF == 0 */
-  SEG_GOOF,
-  SEG_ABSOLUTE,                        /* N_ABS == 2 */
-  SEG_GOOF,
-  SEG_TEXT,                    /* N_TEXT == 4 */
-  SEG_GOOF,
-  SEG_DATA,                    /* N_DATA == 6 */
-  SEG_GOOF,
-  SEG_BSS,                     /* N_BSS == 8 */
-  SEG_GOOF,
-  SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF,
-  SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF,
-  SEG_GOOF, SEG_GOOF, SEG_GOOF, SEG_GOOF,
-  SEG_REGISTER,                        /* Dummy N_REGISTER for regs = 30.  */
-  SEG_GOOF,
-};
-#endif
-
-#ifdef BFD_ASSEMBLER
-
 void
 obj_aout_frob_symbol (symbolS *sym, int *punt ATTRIBUTE_UNUSED)
 {
@@ -176,137 +135,6 @@ obj_aout_frob_file_before_fix (void)
   assert (x);
 }
 
-#else /* ! BFD_ASSEMBLER */
-
-/* Relocation.  */
-
-/** Crawl along a fixS chain. Emit the segment's relocations.  */
-
-void
-obj_emit_relocations (char **where,
-                     fixS *fixP,               /* Fixup chain for this segment.  */
-                     relax_addressT segment_address_in_file)
-{
-  for (; fixP; fixP = fixP->fx_next)
-    if (fixP->fx_done == 0)
-      {
-       symbolS *sym;
-
-       sym = fixP->fx_addsy;
-       while (sym->sy_value.X_op == O_symbol
-              && (! S_IS_DEFINED (sym) || S_IS_COMMON (sym)))
-         sym = sym->sy_value.X_add_symbol;
-       fixP->fx_addsy = sym;
-
-       if (! sym->sy_resolved && ! S_IS_DEFINED (sym))
-         {
-           char *file;
-           unsigned int line;
-
-           if (expr_symbol_where (sym, &file, &line))
-             as_bad_where (file, line, _("unresolved relocation"));
-           else
-             as_bad (_("bad relocation: symbol `%s' not in symbol table"),
-                     S_GET_NAME (sym));
-         }
-
-       tc_aout_fix_to_chars (*where, fixP, segment_address_in_file);
-       *where += md_reloc_size;
-      }
-}
-
-#ifndef obj_header_append
-/* Aout file generation & utilities.  */
-
-/* An AOUT header on disk is laid out in target byte order.  */
-
-void
-obj_header_append (char **where, object_headers *headers)
-{
-  char *p;
-
-  tc_headers_hook (headers);
-
-#ifdef __A_OUT_GNU_H__
-#define SIZEOF_HEADER(PIECE) (sizeof (((struct exec_bytes *) 0)->PIECE))
-#else
-#define SIZEOF_HEADER(PIECE) 4
-#endif
-#define DO(PIECE) \
-  md_number_to_chars (p, headers->header.PIECE, SIZEOF_HEADER (PIECE)); \
-  p += SIZEOF_HEADER (PIECE);
-
-  p = *where;
-  DO (a_info);
-  DO (a_text);
-  DO (a_data);
-  DO (a_bss);
-  DO (a_syms);
-  DO (a_entry);
-  DO (a_trsize);
-  DO (a_drsize);
-  *where = p;
-#undef DO
-#undef SIZEOF_HEADER
-}
-#endif /* ! defined (obj_header_append) */
-
-void
-obj_symbol_to_chars (char **where, symbolS *symbolP)
-{
-  char *p = *where;
-  md_number_to_chars (p, S_GET_OFFSET (symbolP), 4);
-  p += 4;
-  /* Can't use S_GET_TYPE here as it masks.  */
-  *p++ = symbolP->sy_symbol.n_type;
-  *p++ = symbolP->sy_symbol.n_other;
-  md_number_to_chars (p, S_GET_DESC (symbolP), 2);
-  p += 2;
-  md_number_to_chars (p, S_GET_VALUE (symbolP), 4);
-  p += 4;
-  *where = p;
-}
-
-void
-obj_emit_symbols (char **where, symbolS *symbol_rootP)
-{
-  symbolS *symbolP;
-
-  /* Emit all symbols left in the symbol chain.  */
-  for (symbolP = symbol_rootP; symbolP; symbolP = symbol_next (symbolP))
-    {
-      /* Used to save the offset of the name. It is used to point
-        to the string in memory but must be a file offset.  */
-      char *temp;
-
-      temp = S_GET_NAME (symbolP);
-      S_SET_OFFSET (symbolP, symbolP->sy_name_offset);
-
-      /* Any symbol still undefined and is not a dbg symbol is made N_EXT.  */
-      if (!S_IS_DEBUG (symbolP) && !S_IS_DEFINED (symbolP))
-       S_SET_EXTERNAL (symbolP);
-
-      /* Adjust the type of a weak symbol.  */
-      if (S_GET_WEAK (symbolP))
-       {
-         switch (S_GET_TYPE (symbolP))
-           {
-           case N_UNDF: S_SET_TYPE (symbolP, N_WEAKU); break;
-           case N_ABS:  S_SET_TYPE (symbolP, N_WEAKA); break;
-           case N_TEXT: S_SET_TYPE (symbolP, N_WEAKT); break;
-           case N_DATA: S_SET_TYPE (symbolP, N_WEAKD); break;
-           case N_BSS:  S_SET_TYPE (symbolP, N_WEAKB); break;
-           default: as_bad (_("%s: bad type for weak symbol"), temp); break;
-           }
-       }
-
-      obj_symbol_to_chars (where, symbolP);
-      S_SET_NAME (symbolP, temp);
-    }
-}
-
-#endif /* ! BFD_ASSEMBLER */
-
 static void
 obj_aout_line (int ignore ATTRIBUTE_UNUSED)
 {
@@ -381,136 +209,6 @@ obj_aout_type (int ignore ATTRIBUTE_UNUSED)
   s_ignore (0);
 }
 
-#ifndef BFD_ASSEMBLER
-
-void
-obj_crawl_symbol_chain (object_headers *headers)
-{
-  symbolS *symbolP;
-  symbolS **symbolPP;
-  int symbol_number = 0;
-
-  tc_crawl_symbol_chain (headers);
-
-  symbolPP = &symbol_rootP;    /*->last symbol chain link.  */
-  while ((symbolP = *symbolPP) != NULL)
-    {
-      if (symbolP->sy_mri_common)
-       {
-         if (S_IS_EXTERNAL (symbolP))
-           as_bad (_("%s: global symbols not supported in common sections"),
-                   S_GET_NAME (symbolP));
-         *symbolPP = symbol_next (symbolP);
-         continue;
-       }
-
-      if (flag_readonly_data_in_text && (S_GET_SEGMENT (symbolP) == SEG_DATA))
-       {
-         S_SET_SEGMENT (symbolP, SEG_TEXT);
-       }
-
-      resolve_symbol_value (symbolP);
-
-      /* Skip symbols which were equated to undefined or common
-        symbols.  Also skip defined uncommon symbols which can
-        be resolved since in this case they should have been
-        resolved to a non-symbolic constant.  */
-      if (symbolP->sy_value.X_op == O_symbol
-         && (! S_IS_DEFINED (symbolP)
-             || S_IS_COMMON (symbolP)
-             || symbol_resolved_p (symbolP)))
-       {
-         *symbolPP = symbol_next (symbolP);
-         continue;
-       }
-
-      /* OK, here is how we decide which symbols go out into the brave
-        new symtab.  Symbols that do are:
-
-        * symbols with no name (stabd's?)
-        * symbols with debug info in their N_TYPE
-
-        Symbols that don't are:
-        * symbols that are registers
-        * symbols with \1 as their 3rd character (numeric labels)
-        * "local labels" as defined by S_LOCAL_NAME(name) if the -L
-        switch was passed to gas.
-
-        All other symbols are output.  We complain if a deleted
-        symbol was marked external.  */
-
-      if (!S_IS_REGISTER (symbolP)
-         && (!S_GET_NAME (symbolP)
-             || S_IS_DEBUG (symbolP)
-             || !S_IS_DEFINED (symbolP)
-             || S_IS_EXTERNAL (symbolP)
-             || (S_GET_NAME (symbolP)[0] != '\001'
-                 && (flag_keep_locals || !S_LOCAL_NAME (symbolP)))))
-       {
-         symbolP->sy_number = symbol_number++;
-
-         /* The + 1 after strlen account for the \0 at the
-                          end of each string */
-         if (!S_IS_STABD (symbolP))
-           {
-             /* Ordinary case.  */
-             symbolP->sy_name_offset = string_byte_count;
-             string_byte_count += strlen (S_GET_NAME (symbolP)) + 1;
-           }
-         else                  /* .Stabd case.  */
-           symbolP->sy_name_offset = 0;
-         symbolPP = &symbolP->sy_next;
-       }
-      else
-       {
-         if (S_IS_EXTERNAL (symbolP) || !S_IS_DEFINED (symbolP))
-           /* This warning should never get triggered any more.
-              Well, maybe if you're doing twisted things with
-              register names...  */
-           as_bad (_("Local symbol %s never defined."),
-                   decode_local_label_name (S_GET_NAME (symbolP)));
-
-         /* Unhook it from the chain */
-         *symbolPP = symbol_next (symbolP);
-       }
-    }
-
-  H_SET_SYMBOL_TABLE_SIZE (headers, symbol_number);
-}
-
-/* Find strings by crawling along symbol table chain.  */
-
-void
-obj_emit_strings (char **where)
-{
-  symbolS *symbolP;
-
-  md_number_to_chars (*where, string_byte_count, 4);
-  *where += 4;
-
-  for (symbolP = symbol_rootP; symbolP; symbolP = symbol_next (symbolP))
-    if (S_GET_NAME (symbolP))
-      append (where, S_GET_NAME (symbolP),
-             (unsigned long) (strlen (S_GET_NAME (symbolP)) + 1));
-}
-
-#ifndef AOUT_VERSION
-#define AOUT_VERSION 0
-#endif
-
-void
-obj_pre_write_hook (object_headers *headers)
-{
-  H_SET_DYNAMIC (headers, 0);
-  H_SET_VERSION (headers, AOUT_VERSION);
-  H_SET_MACHTYPE (headers, AOUT_MACHTYPE);
-  tc_aout_pre_write_hook (headers);
-}
-
-#endif /* ! BFD_ASSEMBLER */
-
-#ifdef BFD_ASSEMBLER
-
 /* Support for an AOUT emulation.  */
 
 static void
@@ -614,7 +312,6 @@ const struct format_ops aout_format_ops =
   0,   /* read_begin_hook.  */
   0    /* symbol_new_hook.  */
 };
-#endif /* BFD_ASSEMBLER */
 
 const pseudo_typeS aout_pseudo_table[] =
 {
This page took 0.037624 seconds and 4 git commands to generate.