changeset 2845:4597dc41d041

* cdl/hal_arm.cdl: Merge goals for CYGHWR_THUMB and CYGBLD_ARM_ENABLE_THUMB_INTERWORK to allow selective application of CDL solutions within the eCos Configuration Tool.
author jld
date Fri, 06 Mar 2009 16:43:30 +0000
parents defb62be5b44
children 9a56db249d3d
files packages/hal/arm/arch/current/ChangeLog packages/hal/arm/arch/current/cdl/hal_arm.cdl
diffstat 2 files changed, 40 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/packages/hal/arm/arch/current/ChangeLog
+++ b/packages/hal/arm/arch/current/ChangeLog
@@ -1,3 +1,9 @@
+2009-03-06  John Dallaway  <john@dallaway.org.uk>
+
+	* cdl/hal_arm.cdl: Merge goals for CYGHWR_THUMB and
+	CYGBLD_ARM_ENABLE_THUMB_INTERWORK to allow selective application
+	of CDL solutions within the eCos Configuration Tool.
+
 2009-02-14  Jonathan Larmour  <jifl@eCosCentric.com>
 
 	* src/vectors.S: Use .type xxx, function everywhere where
--- a/packages/hal/arm/arch/current/cdl/hal_arm.cdl
+++ b/packages/hal/arm/arch/current/cdl/hal_arm.cdl
@@ -135,18 +135,24 @@ cdl_package CYGPKG_HAL_ARM {
         parent      CYGBLD_GLOBAL_OPTIONS
         flavor      data
         no_define
-        calculated  { (CYGHWR_THUMB ? "-mthumb " : "") .
-            (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "-mno-thumb-interwork ") .
-            (CYGHWR_HAL_ARM_BIGENDIAN ? "-mbig-endian " : "")
+        calculated  { (CYGHWR_THUMB ? " -mthumb " : "") .
+            (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? " -mthumb-interwork " : " -mno-thumb-interwork ") .
+            (CYGHWR_HAL_ARM_BIGENDIAN ? " -mbig-endian " : "")
         }
-        requires    {  CYGHWR_THUMB                      implies  is_substr(CYGBLD_GLOBAL_CFLAGS, "-mthumb ") }
-        requires    { !CYGHWR_THUMB                      implies !is_substr(CYGBLD_GLOBAL_CFLAGS, "-mthumb ") }
-        requires    {  CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies  is_substr(CYGBLD_GLOBAL_CFLAGS, "-mthumb-interwork") }
-        requires    {  CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies !is_substr(CYGBLD_GLOBAL_CFLAGS, "-mno-thumb-interwork") }
-        requires    { !CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies !is_substr(CYGBLD_GLOBAL_CFLAGS, "-mthumb-interwork") }
-        requires    { !CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies  is_substr(CYGBLD_GLOBAL_CFLAGS, "-mno-thumb-interwork") }
-        requires    {  CYGHWR_HAL_ARM_BIGENDIAN          implies  is_substr(CYGBLD_GLOBAL_CFLAGS, "-mbig-endian") }
-        requires    { !CYGHWR_HAL_ARM_BIGENDIAN          implies !is_substr(CYGBLD_GLOBAL_CFLAGS, "-mbig-endian") }
+        requires    {  CYGHWR_THUMB &&  CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies  is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb ") &&
+                                                                                   is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb-interwork ") &&
+                                                                                  !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mno-thumb-interwork ") }
+        requires    { !CYGHWR_THUMB &&  CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb ") &&
+                                                                                   is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb-interwork ") &&
+                                                                                  !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mno-thumb-interwork ") }
+        requires    {  CYGHWR_THUMB && !CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies  is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb ") &&
+                                                                                  !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb-interwork ") &&
+                                                                                   is_substr(CYGBLD_GLOBAL_CFLAGS, " -mno-thumb-interwork ") }
+        requires    { !CYGHWR_THUMB && !CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb ") &&
+                                                                                  !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mthumb-interwork ") &&
+                                                                                   is_substr(CYGBLD_GLOBAL_CFLAGS, " -mno-thumb-interwork ") }
+        requires    {  CYGHWR_HAL_ARM_BIGENDIAN          implies  is_substr(CYGBLD_GLOBAL_CFLAGS, " -mbig-endian ") }
+        requires    { !CYGHWR_HAL_ARM_BIGENDIAN          implies !is_substr(CYGBLD_GLOBAL_CFLAGS, " -mbig-endian ") }
     }
     
     cdl_option CYGBLD_ARCH_LDFLAGS {
@@ -154,18 +160,24 @@ cdl_package CYGPKG_HAL_ARM {
         parent      CYGBLD_GLOBAL_OPTIONS
         flavor      data
         no_define
-        calculated  { (CYGHWR_THUMB ? "-mthumb " : "") .
-            (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? "-mthumb-interwork " : "-mno-thumb-interwork ") .
-            (CYGHWR_HAL_ARM_BIGENDIAN ? "-mbig-endian " : "")
+        calculated  { (CYGHWR_THUMB ? " -mthumb " : "") .
+            (CYGBLD_ARM_ENABLE_THUMB_INTERWORK ? " -mthumb-interwork " : " -mno-thumb-interwork ") .
+            (CYGHWR_HAL_ARM_BIGENDIAN ? " -mbig-endian " : "")
         }
-        requires    {  CYGHWR_THUMB                      implies  is_substr(CYGBLD_GLOBAL_LDFLAGS, "-mthumb ") }
-        requires    { !CYGHWR_THUMB                      implies !is_substr(CYGBLD_GLOBAL_LDFLAGS, "-mthumb ") }
-        requires    {  CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies  is_substr(CYGBLD_GLOBAL_LDFLAGS, "-mthumb-interwork") }
-        requires    {  CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies !is_substr(CYGBLD_GLOBAL_LDFLAGS, "-mno-thumb-interwork") }
-        requires    { !CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies !is_substr(CYGBLD_GLOBAL_LDFLAGS, "-mthumb-interwork") }
-        requires    { !CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies  is_substr(CYGBLD_GLOBAL_LDFLAGS, "-mno-thumb-interwork") }
-        requires    {  CYGHWR_HAL_ARM_BIGENDIAN          implies  is_substr(CYGBLD_GLOBAL_LDFLAGS, "-mbig-endian") }
-        requires    { !CYGHWR_HAL_ARM_BIGENDIAN          implies !is_substr(CYGBLD_GLOBAL_LDFLAGS, "-mbig-endian") }
+        requires    {  CYGHWR_THUMB &&  CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies  is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb ") &&
+                                                                                   is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb-interwork ") &&
+                                                                                  !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mno-thumb-interwork ") }
+        requires    { !CYGHWR_THUMB &&  CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb ") &&
+                                                                                   is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb-interwork ") &&
+                                                                                  !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mno-thumb-interwork ") }
+        requires    {  CYGHWR_THUMB && !CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies  is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb ") &&
+                                                                                  !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb-interwork ") &&
+                                                                                   is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mno-thumb-interwork ") }
+        requires    { !CYGHWR_THUMB && !CYGBLD_ARM_ENABLE_THUMB_INTERWORK implies !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb ") &&
+                                                                                  !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mthumb-interwork ") &&
+                                                                                   is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mno-thumb-interwork ") }
+        requires    {  CYGHWR_HAL_ARM_BIGENDIAN          implies  is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mbig-endian ") }
+        requires    { !CYGHWR_HAL_ARM_BIGENDIAN          implies !is_substr(CYGBLD_GLOBAL_LDFLAGS, " -mbig-endian ") }
     }
     
     cdl_interface CYGINT_HAL_ARM_ARCH_ARM7 {