[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