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 <[email protected]> + + * 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 <[email protected]> * 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" }
