[meego-commits] 6343: Changes to Trunk/gcc
Peter Zhu
peter.j.zhu at intel.com
Fri Aug 6 07:13:55 UTC 2010
Hi,
I have made the following changes to gcc in project Trunk. Please review and accept ASAP.
Thank You,
Peter Zhu
[This message was auto-generated]
---
Request #6343:
submit: Trunk:Testing/gcc(r9) -> Trunk/gcc
Message:
Move to Trunk
State: new 2010-08-05T19:06:00 peter
Comment: None
changes files:
--------------
--- gcc.changes
+++ gcc.changes
@@ -0,0 +1,5 @@
+* Tue Jul 20 2010 Austin Zhang <austin.zhang at intel.com> - 4.5.0
+- Applied ARM hotfix for fixing byteswap issue from REV in ARMv5+
+ PR#43698 (BMC#3936)
+- Add missing dependency to fix BMC#4046
+
new:
----
gcc45-pr43698.patch
spec files:
-----------
--- cross-armv5tel-gcc-accel.spec
+++ cross-armv5tel-gcc-accel.spec
@@ -150,6 +150,7 @@
Requires: libgcc >= %{version}-%{release}
Requires: libgomp = %{version}-%{release}
Requires: glibc-devel
+Requires: binutils >= 2.19.51.0.14
%if !%{build_ada}
Obsoletes: gcc-gnat < %{version}-%{release}
@@ -182,6 +183,7 @@
Patch20: gcc44-libtool-no-rpath.patch
Patch29: gcc44-libstdc++-docs.patch
Patch30: gcc45-pr43572.patch
+Patch31: gcc45-pr43698.patch
Patch40: gcc45-use-atom.patch
Patch41: libgcc_post_upgrade.c.arm.patch
@@ -524,6 +526,16 @@
%endif
%patch30 -p1 -b .pr43572
+
+%ifarch %{arm}
+%patch31 -p1 -b .pr43698
+%else
+%if %crossbuild
+# add it for arm crossbuild, too
+%patch31 -p1 -b .pr43698
+%endif
+%endif
+
%patch40 -p1 -b .atom
#%patch42 -p0 -b .var-track1~
--- cross-armv5tel-gcc.spec
+++ cross-armv5tel-gcc.spec
@@ -150,6 +150,7 @@
Requires: libgcc >= %{version}-%{release}
Requires: libgomp = %{version}-%{release}
Requires: glibc-devel
+Requires: binutils >= 2.19.51.0.14
%if !%{build_ada}
Obsoletes: gcc-gnat < %{version}-%{release}
@@ -182,6 +183,7 @@
Patch20: gcc44-libtool-no-rpath.patch
Patch29: gcc44-libstdc++-docs.patch
Patch30: gcc45-pr43572.patch
+Patch31: gcc45-pr43698.patch
Patch40: gcc45-use-atom.patch
Patch41: libgcc_post_upgrade.c.arm.patch
@@ -524,6 +526,16 @@
%endif
%patch30 -p1 -b .pr43572
+
+%ifarch %{arm}
+%patch31 -p1 -b .pr43698
+%else
+%if %crossbuild
+# add it for arm crossbuild, too
+%patch31 -p1 -b .pr43698
+%endif
+%endif
+
%patch40 -p1 -b .atom
#%patch42 -p0 -b .var-track1~
--- cross-armv7l-gcc-accel.spec
+++ cross-armv7l-gcc-accel.spec
@@ -150,6 +150,7 @@
Requires: libgcc >= %{version}-%{release}
Requires: libgomp = %{version}-%{release}
Requires: glibc-devel
+Requires: binutils >= 2.19.51.0.14
%if !%{build_ada}
Obsoletes: gcc-gnat < %{version}-%{release}
@@ -182,6 +183,7 @@
Patch20: gcc44-libtool-no-rpath.patch
Patch29: gcc44-libstdc++-docs.patch
Patch30: gcc45-pr43572.patch
+Patch31: gcc45-pr43698.patch
Patch40: gcc45-use-atom.patch
Patch41: libgcc_post_upgrade.c.arm.patch
@@ -524,6 +526,16 @@
%endif
%patch30 -p1 -b .pr43572
+
+%ifarch %{arm}
+%patch31 -p1 -b .pr43698
+%else
+%if %crossbuild
+# add it for arm crossbuild, too
+%patch31 -p1 -b .pr43698
+%endif
+%endif
+
%patch40 -p1 -b .atom
#%patch42 -p0 -b .var-track1~
--- cross-armv7l-gcc.spec
+++ cross-armv7l-gcc.spec
@@ -150,6 +150,7 @@
Requires: libgcc >= %{version}-%{release}
Requires: libgomp = %{version}-%{release}
Requires: glibc-devel
+Requires: binutils >= 2.19.51.0.14
%if !%{build_ada}
Obsoletes: gcc-gnat < %{version}-%{release}
@@ -182,6 +183,7 @@
Patch20: gcc44-libtool-no-rpath.patch
Patch29: gcc44-libstdc++-docs.patch
Patch30: gcc45-pr43572.patch
+Patch31: gcc45-pr43698.patch
Patch40: gcc45-use-atom.patch
Patch41: libgcc_post_upgrade.c.arm.patch
@@ -524,6 +526,16 @@
%endif
%patch30 -p1 -b .pr43572
+
+%ifarch %{arm}
+%patch31 -p1 -b .pr43698
+%else
+%if %crossbuild
+# add it for arm crossbuild, too
+%patch31 -p1 -b .pr43698
+%endif
+%endif
+
%patch40 -p1 -b .atom
#%patch42 -p0 -b .var-track1~
--- gcc.spec
+++ gcc.spec
@@ -150,6 +150,7 @@
Requires: libgcc >= %{version}-%{release}
Requires: libgomp = %{version}-%{release}
Requires: glibc-devel
+Requires: binutils >= 2.19.51.0.14
%if !%{build_ada}
Obsoletes: gcc-gnat < %{version}-%{release}
@@ -182,6 +183,7 @@
Patch20: gcc44-libtool-no-rpath.patch
Patch29: gcc44-libstdc++-docs.patch
Patch30: gcc45-pr43572.patch
+Patch31: gcc45-pr43698.patch
Patch40: gcc45-use-atom.patch
Patch41: libgcc_post_upgrade.c.arm.patch
@@ -524,6 +526,16 @@
%endif
%patch30 -p1 -b .pr43572
+
+%ifarch %{arm}
+%patch31 -p1 -b .pr43698
+%else
+%if %crossbuild
+# add it for arm crossbuild, too
+%patch31 -p1 -b .pr43698
+%endif
+%endif
+
%patch40 -p1 -b .atom
#%patch42 -p0 -b .var-track1~
other changes:
--------------
++++++ gcc45-pr43698.patch (new)
--- gcc45-pr43698.patch
+++ gcc45-pr43698.patch
+diff -Naurp gcc-4.5.0-orig/gcc/config/arm/arm.md gcc-4.5.0/gcc/config/arm/arm.md
+--- gcc-4.5.0-orig/gcc/config/arm/arm.md 2010-07-09 13:46:15.306510905 +0800
++++ gcc-4.5.0/gcc/config/arm/arm.md 2010-07-20 16:33:41.844529086 +0800
+@@ -11200,12 +11200,18 @@
+ (define_insn "arm_rev"
+ [(set (match_operand:SI 0 "s_register_operand" "=r")
+ (bswap:SI (match_operand:SI 1 "s_register_operand" "r")))]
+- "TARGET_EITHER && arm_arch6"
++ "TARGET_32BIT && arm_arch6"
++ "rev%?\t%0, %1"
++ [(set_attr "predicable" "yes")
++ (set_attr "length" "4")]
++)
++
++(define_insn "thumb1_rev"
++ [(set (match_operand:SI 0 "s_register_operand" "=l")
++ (bswap:SI (match_operand:SI 1 "s_register_operand" "l")))]
++ "TARGET_THUMB1 && arm_arch6"
+ "rev\t%0, %1"
+- [(set (attr "length")
+- (if_then_else (eq_attr "is_thumb" "yes")
+- (const_int 2)
+- (const_int 4)))]
++ [(set_attr "length" "2")]
+ )
+
+ (define_expand "arm_legacy_rev"
+diff -Naurp gcc-4.5.0-orig/gcc/testsuite/gcc.target/arm/pr43698.c gcc-4.5.0/gcc/testsuite/gcc.target/arm/pr43698.c
+--- gcc-4.5.0-orig/gcc/testsuite/gcc.target/arm/pr43698.c 1970-01-01 08:00:00.000000000 +0800
++++ gcc-4.5.0/gcc/testsuite/gcc.target/arm/pr43698.c 2010-07-20 16:30:38.634677281 +0800
+@@ -0,0 +1,39 @@
++/* { dg-do run } */
++/* { dg-options "-Os" } */
++
++#include <stdint.h>
++#include <stdlib.h>
++
++char do_reverse_endian = 0;
++
++# define bswap_32(x) \
++ ((((x) & 0xff000000) >> 24) | \
++ (((x) & 0x00ff0000) >> 8) | \
++ (((x) & 0x0000ff00) << 8) | \
++ (((x) & 0x000000ff) << 24))
++
++#define EGET(X) \
++ (__extension__ ({ \
++ uint64_t __res; \
++ if (!do_reverse_endian) { __res = (X); \
++ } else if (sizeof(X) == 4) { __res = bswap_32((X)); \
++ } \
++ __res; \
++ }))
++
++void __attribute__((noinline)) X(char **phdr, char **data, int *phoff)
++{
++ *phdr = *data + EGET(*phoff);
++}
++
++int main()
++{
++ char *phdr;
++ char *data = (char *)0x40164000;
++ int phoff = 0x34;
++ X(&phdr, &data, &phoff);
++ if (phdr != (char *)0x40164034)
++ abort ();
++ exit (0);
++}
++
More information about the MeeGo-commits
mailing list