This is the mail archive of the ecos-patches@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[trunk+v3] Thumb and interworking manipulation goals


This patch merges goals for CYGHWR_THUMB and
CYGBLD_ARM_ENABLE_THUMB_INTERWORK to allow selective application of CDL
solutions within the eCos Configuration Tool. Workaround for Bugzilla
1000707. Checked-in.

John Dallaway
Index: ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/arm/arch/current/ChangeLog,v
retrieving revision 1.117
diff -u -5 -r1.117 ChangeLog
--- ChangeLog	14 Feb 2009 02:49:09 -0000	1.117
+++ ChangeLog	6 Mar 2009 16:40:36 -0000
@@ -1,5 +1,11 @@
+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 global associated with code is defined. Otherwise objdump
 	treats it as data.
Index: cdl/hal_arm.cdl
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/arm/arch/current/cdl/hal_arm.cdl,v
retrieving revision 1.19
diff -u -5 -r1.19 hal_arm.cdl
--- cdl/hal_arm.cdl	2 Feb 2009 19:02:40 -0000	1.19
+++ cdl/hal_arm.cdl	6 Mar 2009 16:40:37 -0000
@@ -133,41 +133,53 @@
     cdl_option CYGBLD_ARCH_CFLAGS {
         display     "Architecture-specific compiler flags"
         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 {
         display     "Architecture-specific linker flags"
         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 {
         display "The platform uses a processor with an ARM7 core"
     }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]