diff options
Diffstat (limited to 'meta/conf/machine/include')
-rw-r--r-- | meta/conf/machine/include/arm/arch-arm64.inc | 36 | ||||
-rw-r--r-- | meta/conf/machine/include/arm/arch-armv8.inc | 1 | ||||
-rw-r--r-- | meta/conf/machine/include/arm/feature-arm-thumb.inc | 10 | ||||
-rw-r--r-- | meta/conf/machine/include/mips/arch-mips.inc | 4 | ||||
-rw-r--r-- | meta/conf/machine/include/tune-mips32r2.inc | 2 | ||||
-rw-r--r-- | meta/conf/machine/include/tune-mips64.inc | 2 | ||||
-rw-r--r-- | meta/conf/machine/include/tune-power5.inc | 21 | ||||
-rw-r--r-- | meta/conf/machine/include/tune-power6.inc | 21 | ||||
-rw-r--r-- | meta/conf/machine/include/tune-power7.inc | 21 |
9 files changed, 113 insertions, 5 deletions
diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc new file mode 100644 index 0000000000..5376b87dd6 --- /dev/null +++ b/meta/conf/machine/include/arm/arch-arm64.inc @@ -0,0 +1,36 @@ +DEFAULTTUNE ?= "aarch64" + +require conf/machine/include/arm/arch-armv7a.inc + +TUNEVALID[aarch64] = "Enable instructions for aarch64" + +MACHINEOVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", ":aarch64", "" ,d)}" + +# Little Endian base configs +AVAILTUNES += "aarch64 aarch64_be" +ARMPKGARCH_tune-aarch64 ?= "aarch64" +ARMPKGARCH_tune-aarch64_be ?= "aarch64_be" +TUNE_FEATURES_tune-aarch64 ?= "aarch64" +TUNE_FEATURES_tune-aarch64_be ?= "${TUNE_FEATURES_tune-aarch64} bigendian" +BASE_LIB_tune-aarch64 = "lib64" +BASE_LIB_tune-aarch64_be = "lib64" + +PACKAGE_EXTRA_ARCHS_tune-aarch64 = "aarch64" +PACKAGE_EXTRA_ARCHS_tune-aarch64_be = "aarch64_be" + +ARMPKGSFX_ENDIAN_64 = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "_be", "", d)}" +TUNE_ARCH_64 = "aarch64${ARMPKGSFX_ENDIAN_64}" +TUNE_PKGARCH_64 = "aarch64${ARMPKGSFX_ENDIAN_64}" +ABIEXTENSION_64 = "" +TARGET_FPU_64 = "" + +# Duplicated from arch-arm.inc +TUNE_ARCH_32 = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "armeb", "arm", d)}" +TUNE_PKGARCH_32 = "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}" +ABIEXTENSION_32 = "eabi" +TARGET_FPU_32 = "${@d.getVar('ARMPKGSFX_FPU', True).strip('-') or 'soft'}" + +TUNE_ARCH = "${@bb.utils.contains("TUNE_FEATURES", "aarch64", "${TUNE_ARCH_64}", "${TUNE_ARCH_32}" ,d)}" +TUNE_PKGARCH = "${@bb.utils.contains("TUNE_FEATURES", "aarch64", "${TUNE_PKGARCH_64}", "${TUNE_PKGARCH_32}" ,d)}" +ABIEXTENSION = "${@bb.utils.contains("TUNE_FEATURES", "aarch64", "${ABIEXTENSION_64}", "${ABIEXTENSION_32}" ,d)}" +TARGET_FPU = "${@bb.utils.contains("TUNE_FEATURES", "aarch64", "${TARGET_FPU_64}", "${TARGET_FPU_32}" ,d)}" diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc new file mode 100644 index 0000000000..5e832fae6d --- /dev/null +++ b/meta/conf/machine/include/arm/arch-armv8.inc @@ -0,0 +1 @@ +require conf/machine/include/arm/arch-arm64.inc diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc index a94386f577..0db5ec136a 100644 --- a/meta/conf/machine/include/arm/feature-arm-thumb.inc +++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc @@ -18,6 +18,8 @@ ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', 't2', '', d # some recipe explicitly sets ARM_INSTRUCTION_SET to "arm" ARM_M_OPT = "${@bb.utils.contains('TUNE_FEATURES', 'arm', '${ARM_THUMB_OPT}', 'thumb', d)}" python () { + if bb.utils.contains('TUNE_FEATURES', 'thumb', 'False', 'True', d): + return selected = d.getVar('ARM_INSTRUCTION_SET', True) if selected == None: return @@ -37,8 +39,10 @@ ARMPKGSFX_THUMB .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '${ARM_THUMB_ # arm system and vice versa. It is strongly recommended that DISTROs not # turn this off - the actual cost is very small. TUNEVALID[no-thumb-interwork] = "Disable mixing of thumb and ARM functions" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ' -mno-thumb-interwork', ' -mthumb-interwork', d)}" -OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ':thumb-interwork', '', d)}" +THUMB_TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ' -mno-thumb-interwork', ' -mthumb-interwork', d)}" +THUMB_OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ':thumb-interwork', '', d)}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', ' ${THUMB_TUNE_CCARGS}', '', d)}" +OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '${THUMB_OVERRIDES}', '', d)}" # what about armv7m devices which don't support -marm (e.g. Cortex-M3)? -TARGET_CC_KERNEL_ARCH += "-mno-thumb-interwork -marm" +TARGET_CC_KERNEL_ARCH += "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '-mno-thumb-interwork -marm', '', d)}" diff --git a/meta/conf/machine/include/mips/arch-mips.inc b/meta/conf/machine/include/mips/arch-mips.inc index 02626d300e..c41fa5e864 100644 --- a/meta/conf/machine/include/mips/arch-mips.inc +++ b/meta/conf/machine/include/mips/arch-mips.inc @@ -100,3 +100,7 @@ TUNE_FEATURES_tune-mips64el-nf = "n64" BASE_LIB_tune-mips64el-nf = "lib64" MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}" PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf" + +# On mips we need to redefine this to include the ABIEXTENSION +# we can avoid the python bit as there are no _ or - to translate +TRANSLATED_TARGET_ARCH = "${TARGET_ARCH}${ABIEXTENSION}" diff --git a/meta/conf/machine/include/tune-mips32r2.inc b/meta/conf/machine/include/tune-mips32r2.inc index fb60592a8b..c9deff84e2 100644 --- a/meta/conf/machine/include/tune-mips32r2.inc +++ b/meta/conf/machine/include/tune-mips32r2.inc @@ -1,6 +1,6 @@ DEFAULTTUNE ?= "mips32r2" -require conf/machine/include/mips/arch-mips.inc +require conf/machine/include/tune-mips32.inc TUNEVALID[mips32r2] = "Enable mips32r2 specific processor optimizations" TUNECONFLICTS[mips32r2] = "n64 n32" diff --git a/meta/conf/machine/include/tune-mips64.inc b/meta/conf/machine/include/tune-mips64.inc index ba79e2b53f..9be0e0f8d9 100644 --- a/meta/conf/machine/include/tune-mips64.inc +++ b/meta/conf/machine/include/tune-mips64.inc @@ -1,3 +1,3 @@ DEFAULTTUNE ?= "mips64" -require conf/machine/include/mips/arch-mips.inc +require conf/machine/include/tune-mips32r2.inc diff --git a/meta/conf/machine/include/tune-power5.inc b/meta/conf/machine/include/tune-power5.inc new file mode 100644 index 0000000000..30be86941a --- /dev/null +++ b/meta/conf/machine/include/tune-power5.inc @@ -0,0 +1,21 @@ +DEFAULTTUNE ?= "ppc64p5" + +require conf/machine/include/powerpc/arch-powerpc64.inc + +TUNEVALID[power5] = "Enable IBM Power5 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "power5", " -mcpu=power5", "", d)}" + +AVAILTUNES += "ppcp5 ppc64p5" +TUNE_FEATURES_tune-ppcp5 = "m32 fpu-hard power5 altivec" +BASE_LIB_tune-ppcp5 = "lib" +TUNE_PKGARCH_tune-ppcp5 = "ppcp5" +PACKAGE_EXTRA_ARCHS_tune-ppcp5 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppcp5" + +TUNE_FEATURES_tune-ppc64p5 = "m64 fpu-hard power5 altivec" +BASE_LIB_tune-ppc64p5 = "lib64" +TUNE_PKGARCH_tune-ppc64p5 = "ppc64p5" +PACKAGE_EXTRA_ARCHS_tune-ppc64p5 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p5" + +# glibc configure options to get power5 specific library +GLIBC_EXTRA_OECONF_powerpc64 += "${@bb.utils.contains("TUNE_FEATURES", "power5", "--with-cpu=power5", "", d)}" +GLIBC_EXTRA_OECONF_powerpc += "${@bb.utils.contains("TUNE_FEATURES", "power5", "--with-cpu=power5", "", d)}" diff --git a/meta/conf/machine/include/tune-power6.inc b/meta/conf/machine/include/tune-power6.inc new file mode 100644 index 0000000000..7563798120 --- /dev/null +++ b/meta/conf/machine/include/tune-power6.inc @@ -0,0 +1,21 @@ +DEFAULTTUNE ?= "ppcpr6" + +require conf/machine/include/powerpc/arch-powerpc64.inc + +TUNEVALID[power6] = "Enable IBM Power6 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "power6", " -mcpu=power6", "", d)}" + +AVAILTUNES += "ppcp6 ppc64p6" +TUNE_FEATURES_tune-ppcp6 = "m32 fpu-hard power6 altivec" +BASE_LIB_tune-ppcp6 = "lib" +TUNE_PKGARCH_tune-ppcp6 = "ppcp6" +PACKAGE_EXTRA_ARCHS_tune-ppcp6 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppcp6" + +TUNE_FEATURES_tune-ppc64p6 = "m64 fpu-hard power6 altivec" +BASE_LIB_tune-ppc64p6 = "lib64" +TUNE_PKGARCH_tune-ppc64p6 = "ppc64p6" +PACKAGE_EXTRA_ARCHS_tune-ppc64p6 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p6" + +# glibc configure options to get power6 specific library +GLIBC_EXTRA_OECONF_powerpc64 += "${@bb.utils.contains("TUNE_FEATURES", "power6", "--with-cpu=power6", "", d)}" +GLIBC_EXTRA_OECONF_powerpc += "${@bb.utils.contains("TUNE_FEATURES", "power6", "--with-cpu=power6", "", d)}" diff --git a/meta/conf/machine/include/tune-power7.inc b/meta/conf/machine/include/tune-power7.inc new file mode 100644 index 0000000000..7069e75026 --- /dev/null +++ b/meta/conf/machine/include/tune-power7.inc @@ -0,0 +1,21 @@ +DEFAULTTUNE ?= "ppcpr7" + +require conf/machine/include/powerpc/arch-powerpc64.inc + +TUNEVALID[power7] = "Enable IBM Power7 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "power7", " -mcpu=power7", "", d)}" + +AVAILTUNES += "ppcp7 ppc64p7" +TUNE_FEATURES_tune-ppcp7 = "m32 fpu-hard power7 altivec" +BASE_LIB_tune-ppcp7 = "lib" +TUNE_PKGARCH_tune-ppcp7 = "ppcp7" +PACKAGE_EXTRA_ARCHS_tune-ppcp7 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppcp7" + +TUNE_FEATURES_tune-ppc64p7 = "m64 fpu-hard power7 altivec" +BASE_LIB_tune-ppc64p7 = "lib64" +TUNE_PKGARCH_tune-ppc64p7 = "ppc64p7" +PACKAGE_EXTRA_ARCHS_tune-ppc64p7 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p7" + +# glibc configure options to get power7 specific library +GLIBC_EXTRA_OECONF_powerpc64 += "${@bb.utils.contains("TUNE_FEATURES", "power7", "--with-cpu=power7", "", d)}" +GLIBC_EXTRA_OECONF_powerpc += "${@bb.utils.contains("TUNE_FEATURES", "power7", "--with-cpu=power7", "", d)}" |