Pass finalize_syms on calls to resolve_symbol_value.
authorAlan Modra <amodra@gmail.com>
Fri, 30 Mar 2001 07:07:11 +0000 (07:07 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 30 Mar 2001 07:07:11 +0000 (07:07 +0000)
gas/ChangeLog
gas/config/obj-aout.c
gas/config/obj-bout.c
gas/config/obj-coff.c
gas/config/obj-vms.c
gas/config/tc-mips.c
gas/config/tc-ppc.c
gas/dwarf2dbg.c
gas/ehopt.c
gas/expr.c

index 05bc995366ca636349c06f5542ec3eae53eaf133..0f1529be6b339c8cc7ab9d63355001cc42f0c0bb 100644 (file)
@@ -1,6 +1,18 @@
 2001-03-30  Alan Modra  <alan@linuxcare.com.au>
 
        * dwarf2dbg.c (dwarf2_directive_file): Fix warnings.
+       (dwarf2dbg_convert_frag): Pass `finalize_syms' to resolve_symbol_value.
+       * config/obj-aout.c (obj_crawl_symbol_chain): Likewise.
+       * config/obj-bout.c (obj_crawl_symbol_chain): Likewise.
+       * config/obj-coff.c (do_relocs_for): Likewise.
+       (yank_symbols): Likewise.
+       (fixup_segment): Likewise.
+       * config/tc-ppc.c (ppc_frob_symbol): Likewise.
+       (ppc_fix_adjustable): Likewise.
+       * config/tc-mips.c (md_convert_frag): Likewise.
+       * config/obj-vms.c (obj_crawl_symbol_chain): Likewise.
+       * ehopt.c (eh_frame_convert_frag): Likewise.
+       * expr.c (make_expr_symbol): Likewise.
 
        * frags.h (struct frag): Add last_fr_address.  Reorder fields for
        better packing.
index 1b1e021de026bebb7a8a79faa78fe645c175c92e..4bd323ea25cb485713d248913c35e7b1dd09b3fe 100644 (file)
@@ -1,5 +1,5 @@
 /* a.out object file format
-   Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000
+   Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2001
    Free Software Foundation, Inc.
 
 This file is part of GAS, the GNU Assembler.
@@ -466,7 +466,7 @@ obj_crawl_symbol_chain (headers)
          S_SET_SEGMENT (symbolP, SEG_TEXT);
        }                       /* if pusing data into text */
 
-      resolve_symbol_value (symbolP, 1);
+      resolve_symbol_value (symbolP, finalize_syms);
 
       /* Skip symbols which were equated to undefined or common
         symbols.  */
index 2043e782ab77955741183ec195dc53d676fb2b68..22ff671c526a1df8630da63f9de241a4563152b6 100644 (file)
@@ -1,5 +1,5 @@
 /* b.out object file format
-   Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1996, 2000
+   Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1996, 2000, 2001
    Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
@@ -260,7 +260,7 @@ obj_crawl_symbol_chain (headers)
          S_SET_SEGMENT (symbolP, SEG_TEXT);
        }                       /* if pusing data into text  */
 
-      resolve_symbol_value (symbolP, 1);
+      resolve_symbol_value (symbolP, finalize_syms);
 
       /* Skip symbols which were equated to undefined or common
         symbols.  */
index 48056776b70cbb9702f21c118fe137655a055666..2527fefb356a0ac82adff6bf5aec3a21e5d4433f 100644 (file)
@@ -1972,7 +1972,7 @@ do_relocs_for (abfd, h, file_cursor)
                      /* Turn the segment of the symbol into an offset.  */
                      if (symbol_ptr)
                        {
-                         resolve_symbol_value (symbol_ptr, 1);
+                         resolve_symbol_value (symbol_ptr, finalize_syms);
                          if (! symbol_ptr->sy_resolved)
                            {
                              char *file;
@@ -2953,7 +2953,7 @@ yank_symbols ()
              S_SET_SEGMENT (symbolP, SEG_E0);
            }                   /* push data into text */
 
-         resolve_symbol_value (symbolP, 1);
+         resolve_symbol_value (symbolP, finalize_syms);
 
          if (S_GET_STORAGE_CLASS (symbolP) == C_NULL)
            {
@@ -4185,7 +4185,7 @@ fixup_segment (segP, this_segment_type)
       /* Make sure the symbols have been resolved; this may not have
          happened if these are expression symbols.  */
       if (add_symbolP != NULL && ! add_symbolP->sy_resolved)
-       resolve_symbol_value (add_symbolP, 1);
+       resolve_symbol_value (add_symbolP, finalize_syms);
 
       if (add_symbolP != NULL)
        {
@@ -4215,7 +4215,7 @@ fixup_segment (segP, this_segment_type)
        }
 
       if (sub_symbolP != NULL && ! sub_symbolP->sy_resolved)
-       resolve_symbol_value (sub_symbolP, 1);
+       resolve_symbol_value (sub_symbolP, finalize_syms);
 
       if (add_symbolP != NULL
          && add_symbolP->sy_mri_common)
index e411e6c67dc14c7a93f1d4c02f31efcd9e7fcb18..028e6b99246e41a027f746c5695f1c7941fcd5e8 100644 (file)
@@ -1,5 +1,5 @@
 /* vms.c -- Write out a VAX/VMS object file
-   Copyright 1987, 1988, 1992, 1993, 1994, 1995, 1997, 1998, 2000
+   Copyright 1987, 1988, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001
    Free Software Foundation, Inc.
 
 This file is part of GAS, the GNU Assembler.
@@ -532,7 +532,7 @@ obj_crawl_symbol_chain (headers)
   symbolPP = &symbol_rootP;    /* -> last symbol chain link.  */
   while ((symbolP = *symbolPP) != NULL)
     {
-      resolve_symbol_value (symbolP, 1);
+      resolve_symbol_value (symbolP, finalize_syms);
 
      /* OK, here is how we decide which symbols go out into the
        brave new symtab.  Symbols that do are:
index 671515f192aa17942d6eae80afd09b233249e31c..72a1478df45f6f37f0cd36d0891150eddf1a824a 100644 (file)
@@ -11353,7 +11353,7 @@ md_convert_frag (abfd, asec, fragp)
          ext = false;
        }
 
-      resolve_symbol_value (fragp->fr_symbol, 1);
+      resolve_symbol_value (fragp->fr_symbol, finalize_syms);
       val = S_GET_VALUE (fragp->fr_symbol);
       if (op->pcrel)
        {
index c71c4c4c2561049c9a1bbbb2e1ae0aa6e74405b5..d1f61e7cd3d36d22a80e3cfe617d912f719f0fd6 100644 (file)
@@ -4221,7 +4221,7 @@ ppc_frob_symbol (sym)
       ppc_last_function = sym;
       if (symbol_get_tc (sym)->size != (symbolS *) NULL)
        {
-         resolve_symbol_value (symbol_get_tc (sym)->size, 1);
+         resolve_symbol_value (symbol_get_tc (sym)->size, finalize_syms);
          SA_SET_SYM_FSIZE (sym,
                            (long) S_GET_VALUE (symbol_get_tc (sym)->size));
        }
@@ -4281,7 +4281,7 @@ ppc_frob_symbol (sym)
                                     - S_GET_VALUE (sym));
          else
            {
-             resolve_symbol_value (symbol_get_tc (sym)->next, 1);
+             resolve_symbol_value (symbol_get_tc (sym)->next, finalize_syms);
              a->x_csect.x_scnlen.l = (S_GET_VALUE (symbol_get_tc (sym)->next)
                                       - S_GET_VALUE (sym));
            }
@@ -4334,7 +4334,7 @@ ppc_frob_symbol (sym)
            }
          else
            {
-             resolve_symbol_value (next, 1);
+             resolve_symbol_value (next, finalize_syms);
              a->x_csect.x_scnlen.l = (S_GET_VALUE (next)
                                       - S_GET_VALUE (sym));
            }
@@ -4365,7 +4365,8 @@ ppc_frob_symbol (sym)
            {
              while (symbol_get_tc (csect)->next != (symbolS *) NULL)
                {
-                 resolve_symbol_value (symbol_get_tc (csect)->next, 1);
+                 resolve_symbol_value (symbol_get_tc (csect)->next,
+                                       finalize_syms);
                  if (S_GET_VALUE (symbol_get_tc (csect)->next)
                      > S_GET_VALUE (sym))
                    break;
@@ -4411,7 +4412,7 @@ ppc_frob_symbol (sym)
       /* The value is the offset from the enclosing csect.  */
       block = symbol_get_tc (sym)->within;
       csect = symbol_get_tc (block)->within;
-      resolve_symbol_value (csect, 1);
+      resolve_symbol_value (csect, finalize_syms);
       S_SET_VALUE (sym, S_GET_VALUE (sym) - S_GET_VALUE (csect));
     }
   else if (S_GET_STORAGE_CLASS (sym) == C_BINCL
@@ -4628,7 +4629,7 @@ ppc_fix_adjustable (fix)
 {
   valueT val;
 
-  resolve_symbol_value (fix->fx_addsy, 1);
+  resolve_symbol_value (fix->fx_addsy, finalize_syms);
   val = S_GET_VALUE (fix->fx_addsy);
   if (ppc_toc_csect != (symbolS *) NULL
       && fix->fx_addsy != (symbolS *) NULL
@@ -4648,7 +4649,7 @@ ppc_fix_adjustable (fix)
            continue;
          if (symbol_get_tc (sy)->class != XMC_TC)
            break;
-         resolve_symbol_value (sy, 1);
+         resolve_symbol_value (sy, finalize_syms);
          if (val == S_GET_VALUE (sy))
            {
              fix->fx_addsy = sy;
@@ -4732,7 +4733,8 @@ ppc_fix_adjustable (fix)
       && S_GET_SEGMENT (fix->fx_addsy) == bss_section
       && ! S_IS_EXTERNAL (fix->fx_addsy))
     {
-      resolve_symbol_value (symbol_get_frag (fix->fx_addsy)->fr_symbol, 1);
+      resolve_symbol_value (symbol_get_frag (fix->fx_addsy)->fr_symbol,
+                           finalize_syms);
       fix->fx_offset +=
        (S_GET_VALUE (fix->fx_addsy)
         - S_GET_VALUE (symbol_get_frag (fix->fx_addsy)->fr_symbol));
index 87075423a70037143a1b164d4a9f1a1bbfde69fc..f902b153962696c2790f0bb9c01a88ee4676a0bc 100644 (file)
@@ -806,7 +806,7 @@ dwarf2dbg_convert_frag (frag)
 {
   offsetT addr_diff;
 
-  addr_diff = resolve_symbol_value (frag->fr_symbol, 1);
+  addr_diff = resolve_symbol_value (frag->fr_symbol, finalize_syms);
 
   /* fr_var carries the max_chars that we created the fragment with.
      fr_subtype carries the current expected length.  We must, of
index 2a669ce2b9ccacef09bcc392400f533f5b601c68..75ad67ce939a6cf3d5f971086b50924a36b8394a 100644 (file)
@@ -457,7 +457,7 @@ eh_frame_convert_frag (frag)
   loc4_frag = (fragS *) frag->fr_opcode;
   loc4_fix = (int) frag->fr_offset;
 
-  diff = resolve_symbol_value (frag->fr_symbol, 1);
+  diff = resolve_symbol_value (frag->fr_symbol, finalize_syms);
 
   if (frag->fr_subtype == 0)
     {
index 3b49ac73d8fc32d5a0f89b3eb16918d14abf6126..8ddc965c7aad609fffdcf17aac10ae04a1180e86 100644 (file)
@@ -105,7 +105,7 @@ make_expr_symbol (expressionP)
   symbol_set_value_expression (symbolP, expressionP);
 
   if (expressionP->X_op == O_constant)
-    resolve_symbol_value (symbolP, 1);
+    resolve_symbol_value (symbolP, finalize_syms);
 
   n = (struct expr_symbol_line *) xmalloc (sizeof *n);
   n->sym = symbolP;