components/binutils/patches/gas.write.c.patch
author George Vasick <george.vasick@oracle.com>
Tue, 21 Feb 2012 23:56:27 -0800
changeset 701 d5c86da1ed69
child 1123 cb43164c5dd1
permissions -rw-r--r--
7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
701
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
     1
--- binutils-2.21.1.orig/gas/write.c	Wed Mar 16 01:36:12 2011
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
     2
+++ binutils-2.21.1/gas/write.c	Mon Feb 13 23:58:24 2012
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
     3
@@ -782,6 +782,22 @@
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
     4
 	    sym = newsym;
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
     5
 	  }
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
     6
 
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
     7
+	/* Also convert fx_subsy if present */
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
     8
+	if (fixp->fx_subsy != NULL)
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
     9
+	  {
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    10
+	    symbolS *sub_sym = fixp->fx_subsy;
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    11
+	    while (symbol_equated_reloc_p (sub_sym)
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    12
+		   || S_IS_WEAKREFR (sub_sym))
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    13
+	      {
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    14
+		symbolS *newsym = symbol_get_value_expression (sub_sym)->X_add_symbol;
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    15
+		if (sub_sym == newsym)
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    16
+		  break;
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    17
+		fixp->fx_offset -= symbol_get_value_expression (sub_sym)->X_add_number;
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    18
+		fixp->fx_subsy = newsym;
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    19
+		sub_sym = newsym;
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    20
+	      }
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    21
+	  }
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    22
+
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    23
 	if (symbol_mri_common_p (sym))
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    24
 	  {
d5c86da1ed69 7145645 gas error: mod2.s: Error: attempt to get value of unresolved symbol `L0'
George Vasick <george.vasick@oracle.com>
parents:
diff changeset
    25
 	    fixp->fx_offset += S_GET_VALUE (sym);