external-csl-toolchain: support mips/ppc/arm

- Rather than adjusting TARGET_VENDOR, which results in our TARGET_SYS
  matching the external toolchain, override TARGET_PREFIX to match external,
  and leave TARGET_SYS alone
- Grab the optimized files out of the toolchain if available
- Create a symlink in sysroot to ensure the sysroot layout matches toolchain
  expectations (optimized files in a subdir)

(From OE-Core rev: a37298eb3421a44e88ec5a66b2fc5305ab18f453)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Christopher Larson
2012-01-27 11:13:45 -06:00
committed by Richard Purdie
parent b942a8ee6a
commit c0d7e9b062
2 changed files with 50 additions and 9 deletions

View File

@@ -2,12 +2,20 @@
# Configuration to use external CSL toolchain
#
TARGET_VENDOR = "-none"
EXTERNAL_TOOLCHAIN ?= "/usr/local/csl/${TARGET_ARCH}"
PATH =. "${EXTERNAL_TOOLCHAIN}/bin:"
CSL_TARGET_SYS_powerpc = "powerpc-linux-gnu"
CSL_TARGET_SYS_powerpc64 = "powerpc-linux-gnu"
CSL_TARGET_SYS_arm = "arm-none-linux-gnueabi"
CSL_TARGET_SYS_mips = "mips-linux-gnu"
CSL_TARGET_SYS_mipsel = "mips-linux-gnu"
CSL_TARGET_SYS_mips64 = "mips-linux-gnu"
CSL_TARGET_SYS = "${TARGET_SYS}"
TARGET_PREFIX = "${CSL_TARGET_SYS}-"
PREFERRED_PROVIDER_linux-libc-headers = "external-csl-toolchain"
PREFERRED_PROVIDER_linux-libc-headers-dev = "external-csl-toolchain"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "external-csl-toolchain"
@@ -28,3 +36,18 @@ TARGET_CPPFLAGS_prepend = " -isystem${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/include
TARGET_LDFLAGS_prepend = " -L${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/lib -Wl,-rpath-link,${EXTERNAL_TOOLCHAIN}/${TARGET_SYS}/lib "
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}"
# Translate to CodeSourcery's names for their optimized files in the toolchain
def csl_target_core(d):
coredata = {
'armv7a-vfp-neon': 'armv7-a-neon',
'mips': 'mips32',
'mipsel': 'el',
'ppce500': 'te500v1',
'ppce500mc': 'te500mc',
'ppce500v2': 'te500v2',
'ppce600': 'te600'
}
return coredata.get(d.getVar('TUNE_PKGARCH', True), '')
CSL_TARGET_CORE = "${@csl_target_core(d)}"