rpms/binutils/devel binutils-2.20.51.0.2-gas-expr.patch, NONE, 1.1 binutils.spec, 1.184, 1.185
Nicholas Clifton
nickc at fedoraproject.org
Wed Dec 9 12:07:11 UTC 2009
Author: nickc
Update of /cvs/pkgs/rpms/binutils/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv3691
Modified Files:
binutils.spec
Added Files:
binutils-2.20.51.0.2-gas-expr.patch
Log Message:
Apply patch for PR 10856. (BZ 544358)
binutils-2.20.51.0.2-gas-expr.patch:
../binutils-2.20.51.0.2.original/gas/#expr.c# |only
../binutils-2.20.51.0.2.original/gas/.#expr.c |only
gas/ChangeLog | 7 +++++++
gas/expr.c | 21 +++++++++++++--------
gas/testsuite/ChangeLog | 4 ++++
gas/testsuite/gas/i386/intelpic.d | 2 +-
6 files changed, 25 insertions(+), 9 deletions(-)
--- NEW FILE binutils-2.20.51.0.2-gas-expr.patch ---
diff -rup ../binutils-2.20.51.0.2.original/gas/ChangeLog gas/ChangeLog
--- ../binutils-2.20.51.0.2.original/gas/ChangeLog 2009-12-09 11:46:00.000000000 +0000
+++ gas/ChangeLog 2009-12-09 11:48:31.000000000 +0000
@@ -1,3 +1,10 @@
+2009-10-28 Alan Modra <amodra at bigpond.net.au>
+
+ PR gas/10856
+ * expr.c (resolve_expression): Only add "left" value to O_symbol
+ expression when the symbol is undefined and different from the
+ original symbol. Simplify negative logic.
+
2009-10-07 Nathan Sidwell <nathan at codesourcery.com>
* config/tc-arm.c (mapping_state, mapping_state_2): Make dummy
Only in ../binutils-2.20.51.0.2.original/gas: .#expr.c
Only in ../binutils-2.20.51.0.2.original/gas: #expr.c#
diff -rup ../binutils-2.20.51.0.2.original/gas/expr.c gas/expr.c
--- ../binutils-2.20.51.0.2.original/gas/expr.c 2009-12-09 11:45:56.000000000 +0000
+++ gas/expr.c 2009-12-09 11:48:10.000000000 +0000
@@ -1997,6 +1997,7 @@ resolve_expression (expressionS *express
/* Help out with CSE. */
valueT final_val = expressionP->X_add_number;
symbolS *add_symbol = expressionP->X_add_symbol;
+ symbolS *orig_add_symbol = add_symbol;
symbolS *op_symbol = expressionP->X_op_symbol;
operatorT op = expressionP->X_op;
valueT left, right;
@@ -2078,6 +2079,7 @@ resolve_expression (expressionS *express
left = right;
seg_left = seg_right;
add_symbol = op_symbol;
+ orig_add_symbol = expressionP->X_op_symbol;
op = O_symbol;
break;
}
@@ -2122,18 +2124,19 @@ resolve_expression (expressionS *express
{
if (op == O_bit_exclusive_or || op == O_bit_inclusive_or)
{
- if (seg_right != absolute_section || right != 0)
+ if (!(seg_right == absolute_section && right == 0))
{
seg_left = seg_right;
left = right;
add_symbol = op_symbol;
+ orig_add_symbol = expressionP->X_op_symbol;
}
op = O_symbol;
break;
}
else if (op == O_left_shift || op == O_right_shift)
{
- if (seg_left != absolute_section || left != 0)
+ if (!(seg_left == absolute_section && left == 0))
{
op = O_symbol;
break;
@@ -2150,6 +2153,7 @@ resolve_expression (expressionS *express
left = right;
add_symbol = op_symbol;
op = O_symbol;
+ orig_add_symbol = expressionP->X_op_symbol;
break;
}
else if ((op == O_multiply || op == O_divide)
@@ -2158,11 +2162,11 @@ resolve_expression (expressionS *express
op = O_symbol;
break;
}
- else if (left != right
- || ((seg_left != reg_section || seg_right != reg_section)
- && (seg_left != undefined_section
- || seg_right != undefined_section
- || add_symbol != op_symbol)))
+ else if (!(left == right
+ && ((seg_left == reg_section && seg_right == reg_section)
+ || (seg_left == undefined_section
+ && seg_right == undefined_section
+ && add_symbol == op_symbol))))
return 0;
else if (op == O_bit_and || op == O_bit_inclusive_or)
{
@@ -2233,7 +2237,8 @@ resolve_expression (expressionS *express
op = O_constant;
else if (seg_left == reg_section && final_val == 0)
op = O_register;
- else if (add_symbol != expressionP->X_add_symbol)
+ else if (seg_left == undefined_section
+ && add_symbol != orig_add_symbol)
final_val += left;
expressionP->X_add_symbol = add_symbol;
}
diff -rup ../binutils-2.20.51.0.2.original/gas/testsuite/ChangeLog gas/testsuite/ChangeLog
--- ../binutils-2.20.51.0.2.original/gas/testsuite/ChangeLog 2009-12-09 11:45:56.000000000 +0000
+++ gas/testsuite/ChangeLog 2009-12-09 11:50:11.000000000 +0000
@@ -1,3 +1,7 @@
+2009-10-28 Alan Modra <amodra at bigpond.net.au>
+
+ * gas/i386/intelpic.d: Correct.
+
2009-10-08 H.J. Lu <hongjiu.lu at intel.com>
PR gas/10704
diff -rup ../binutils-2.20.51.0.2.original/gas/testsuite/gas/i386/intelpic.d gas/testsuite/gas/i386/intelpic.d
--- ../binutils-2.20.51.0.2.original/gas/testsuite/gas/i386/intelpic.d 2009-12-09 11:45:59.000000000 +0000
+++ gas/testsuite/gas/i386/intelpic.d 2009-12-09 11:49:17.000000000 +0000
@@ -12,6 +12,6 @@ Disassembly of section .text:
0+1 <bar>:
[ ]*[a-f0-9]+: 8d 83 14 00 00 00 lea 0x14\(%ebx\),%eax
[ ]*[a-f0-9]+: 8b 83 00 00 00 00 mov 0x0\(%ebx\),%eax
-[ ]*[a-f0-9]+: ff 24 85 1a 00 00 00 jmp \*0x1a\(,%eax,4\)
+[ ]*[a-f0-9]+: ff 24 85 0d 00 00 00 jmp \*0xd\(,%eax,4\)
[ ]*[a-f0-9]+: 8d 83 14 00 00 00 lea 0x14\(%ebx\),%eax
#pass
Index: binutils.spec
===================================================================
RCS file: /cvs/pkgs/rpms/binutils/devel/binutils.spec,v
retrieving revision 1.184
retrieving revision 1.185
diff -u -p -r1.184 -r1.185
--- binutils.spec 1 Dec 2009 22:08:40 -0000 1.184
+++ binutils.spec 9 Dec 2009 12:07:11 -0000 1.185
@@ -17,7 +17,7 @@
Summary: A GNU collection of binary utilities
Name: %{?cross}binutils%{?_with_debug:-debug}
Version: 2.20.51.0.2
-Release: 8%{?dist}
+Release: 9%{?dist}
License: GPLv3+
Group: Development/Tools
URL: http://sources.redhat.com/binutils
@@ -34,6 +34,7 @@ Patch08: binutils-2.20.51.0.2-add-needed
Patch09: binutils-2.20.51.0.2-ifunc-ld-s.patch
Patch10: binutils-2.20.51.0.2-lwp.patch
Patch11: binutils-2.20.51.0.2-enable-gold.patch
+Patch12: binutils-2.20.51.0.2-gas-expr.patch
%define gold_arches %ix86 x86_64
@@ -126,6 +127,7 @@ to consider using libelf instead of BFD.
%patch09 -p0 -b .ifunc-ld-s~
%patch10 -p0 -b .lwp~
%patch11 -p0 -b .enable-gold~
+%patch12 -p0 -b .gas-expr~
# We cannot run autotools as there is an exact requirement of autoconf-2.59.
@@ -423,6 +425,9 @@ exit 0
%endif # %{isnative}
%changelog
+* Wed Dec 9 2009 Nick Clifton <nickc at redhat.com> - 2.20.51.0.2-9
+- Apply patch for PR 10856. (BZ 544358)
+
* Tue Dec 1 2009 Roland McGrath <roland at redhat.com> - 2.20.51.0.2-8
- Build gold only for x86 flavors until others are tested.
More information about the fedora-extras-commits
mailing list