This is the mail archive of the
ecos-patches@sourceware.org
mailing list for the eCos project.
[trunk+v3] Thumb and interworking manipulation goals
- From: John Dallaway <john at dallaway dot org dot uk>
- To: ecos-patches at ecos dot sourceware dot org
- Date: Fri, 06 Mar 2009 16:50:31 +0000
- Subject: [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"
}