[oe-commits] Saul Wold : gcc: Fix volatile access issue for ARM

git version control git at git.openembedded.org
Thu Jun 2 13:57:19 UTC 2011


Module: openembedded-core.git
Branch: master
Commit: 347c30801b6f935a6aefa5578d723a8afcf52790
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=347c30801b6f935a6aefa5578d723a8afcf52790

Author: Saul Wold <sgw at linux.intel.com>
Date:   Wed Jun  1 17:50:22 2011 -0700

gcc: Fix volatile access issue for ARM

[YOCTO #1130]

This patch brings in a patch from gcc for the following issue:

http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01477.html

Signed-off-by: Saul Wold <sgw at linux.intel.com>

---

 meta/recipes-devtools/gcc/gcc-4.6.0.inc            |    4 ++-
 .../gcc/gcc-4.6.0/volatile_access_backport.patch   |   28 ++++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0.inc b/meta/recipes-devtools/gcc/gcc-4.6.0.inc
index fb5c70d..cb9eb8e 100644
--- a/meta/recipes-devtools/gcc/gcc-4.6.0.inc
+++ b/meta/recipes-devtools/gcc/gcc-4.6.0.inc
@@ -7,7 +7,7 @@ require gcc-common.inc
 
 require gcc-4_6-branch-backports.inc
 
-PR = "r2"
+PR = "r3"
 
 DEPENDS =+ "mpfr gmp libmpc"
 NATIVEDEPS = "mpfr-native gmp-native gettext-native libmpc-native"
@@ -53,7 +53,9 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
 	   file://gcc-poison-parameters.patch \
 	   file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \
 	   file://COLLECT_GCC_OPTIONS.patch \
+           file://volatile_access_backport.patch \
 	  "
+
 SRC_URI_append_sh3  = " file://sh3-installfix-fixheaders.patch;patch=1 "
 
 SRC_URI[md5sum] = "93d1c436bf991564524701259b6285a2"
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/volatile_access_backport.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/volatile_access_backport.patch
new file mode 100644
index 0000000..9c86817
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.6.0/volatile_access_backport.patch
@@ -0,0 +1,28 @@
+Pulled from http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01477.html
+
+Upstream-Status: Backport
+
+Signed-off-by: Saul Wold <sgw at linux.intel.com>
+
+    gcc/
+    * expr.c (expand_expr_real_1): Only use BLKmode for volatile
+    accesses which are not naturally aligned.
+
+Index: gcc-4.6.0/gcc/expr.c
+===================================================================
+--- gcc-4.6.0.orig/gcc/expr.c	2011-06-01 15:28:55.000000000 -0700
++++ gcc-4.6.0/gcc/expr.c	2011-06-01 15:41:17.154848182 -0700
+@@ -9178,8 +9178,11 @@
+ 		&& modifier != EXPAND_CONST_ADDRESS
+ 		&& modifier != EXPAND_INITIALIZER)
+ 	    /* If the field is volatile, we always want an aligned
+-	       access.  */
+-	    || (volatilep && flag_strict_volatile_bitfields > 0)
++	       access.  Only do this if the access is not already naturally
++	       aligned, otherwise "normal" (non-bitfield) volatile fields
++	       become non-addressable.  */
++	    || (volatilep && flag_strict_volatile_bitfields > 0
++		&& (bitpos % GET_MODE_ALIGNMENT (mode) != 0))
+ 	    /* If the field isn't aligned enough to fetch as a memref,
+ 	       fetch it as a bit field.  */
+ 	    || (mode1 != BLKmode





More information about the Openembedded-commits mailing list