# HG changeset patch # User jld # Date 1236357889 0 # Node ID c71ab84ece9523b4bc20a35ae4ed5d66885c4782 # Parent e6d5126cb47985d943298aa6acd269858fdb9deb * 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. diff --git a/packages/hal/arm/arch/current/ChangeLog b/packages/hal/arm/arch/current/ChangeLog --- a/packages/hal/arm/arch/current/ChangeLog +++ b/packages/hal/arm/arch/current/ChangeLog @@ -1,3 +1,9 @@ +2009-03-06 John Dallaway + + * 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 * src/vectors.S: Use .type xxx, function everywhere where diff --git a/packages/hal/arm/arch/current/cdl/hal_arm.cdl b/packages/hal/arm/arch/current/cdl/hal_arm.cdl --- 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 {