From: Khem Raj <raj.khem@gmail.com>
To: Kai Kang <kai.kang@windriver.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 18/19] aarch-arm64: Update tune files
Date: Wed, 31 Dec 2014 17:54:22 -0800 [thread overview]
Message-ID: <FD445EB2-CED3-445A-8888-4839F76F3FA2@gmail.com> (raw)
In-Reply-To: <ac1f0f1165f32e886f7c6ffa5ebe304416db1d95.1418885581.git.kai.kang@windriver.com>
> On Dec 18, 2014, at 12:51 AM, Kai Kang <kai.kang@windriver.com> wrote:
>
> From: Mark Hatle <mark.hatle@windriver.com>
>
> arch-arm64 is the base tune file for aarch64. Update this to allow the
> system to work with both aarch32 and aarch64 (multilib).
>
> arch-armv8 is for compatibility, it simply uses the base config for now.
>
> feature-arm-thumb was updated, since aarch64 mode does NOT have thumb support.
> We should only be processing warnings and additional arguments if thumb
> support is enabled on the processor core.
>
> Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
> ---
> meta/conf/machine/include/arm/arch-arm64.inc | 36 ++++++++++++++++++++++
> meta/conf/machine/include/arm/arch-armv8.inc | 21 +------------
> .../conf/machine/include/arm/feature-arm-thumb.inc | 10 ++++--
> 3 files changed, 44 insertions(+), 23 deletions(-)
> create mode 100644 meta/conf/machine/include/arm/arch-arm64.inc
>
> 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 0000000..5376b87
> --- /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
> index c86142a..5e832fa 100644
> --- a/meta/conf/machine/include/arm/arch-armv8.inc
> +++ b/meta/conf/machine/include/arm/arch-armv8.inc
> @@ -1,20 +1 @@
> -DEFAULTTUNE ?= "aarch64"
> -
> -ARMPKGARCH ?= "aarch64"
> -
> -TUNEVALID[aarch64] = "Enable instructions for aarch64"
> -TUNEVALID[bigendian] = "Enable big-endian mode."
> -TUNECONFLICTS[aarch64] = ""
> -MACHINEOVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", ":aarch64", "" ,d)}"
> -
> -# Little Endian base configs
> -AVAILTUNES += "aarch64 aarch64_be"
> -TUNE_FEATURES_tune-aarch64 ?= "aarch64"
> -TUNE_FEATURES_tune-aarch64_be ?= "${TUNE_FEATURES_tune-aarch64} bigendian"
> -
> -ARMPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "_be", "", d)}"
> -
> -TUNE_ARCH = "aarch64${ARMPKGSFX_ENDIAN}"
> -TUNE_PKGARCH = "aarch64${ARMPKGSFX_ENDIAN}"
> -
> -PACKAGE_EXTRA_ARCHS = "aarch64${ARMPKGSFX_ENDIAN}"
> +require conf/machine/include/arm/arch-arm64.inc
may be it should be merged with patch 02/19
> diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> index a94386f..8e6619d 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
won’t this regress the configurations which enabled thumb as default but some applications are built in arm mode
> 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)}"
> --
> 1.9.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
next prev parent reply other threads:[~2015-01-01 1:54 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-18 8:50 [PATCH 00/19] V3: Add machine qemuarm64 Kai Kang
2014-12-18 8:50 ` [PATCH 01/19] linux-yocto: depend on libgcc for aarch64 Kai Kang
2015-01-01 1:31 ` Khem Raj
2014-12-18 8:50 ` [PATCH 02/19] Add machine qemuarm64 Kai Kang
2014-12-18 8:50 ` [PATCH 03/19] siteinfo: account for 32 and 64 bit arm Kai Kang
2014-12-18 8:51 ` [PATCH 04/19] libc-package.bbclass: add aarch64 target to locale_arch_options Kai Kang
2014-12-18 8:51 ` [PATCH 05/19] glibc-locale.inc: add aarch64 to BINARY_LOCALE_ARCHES Kai Kang
2014-12-18 8:51 ` [PATCH 06/19] libatomics-ops: add aarch64 target iniitial support Kai Kang
2014-12-18 8:51 ` [PATCH 07/19] qt4: add aarch64 support Kai Kang
2014-12-18 8:51 ` [PATCH 08/19] libpng 1.6.13: fix build for aarch64 Kai Kang
2014-12-22 9:41 ` Richard Purdie
2014-12-22 10:57 ` Richard Purdie
2014-12-18 8:51 ` [PATCH 09/19] sysprof: disable " Kai Kang
2014-12-18 8:51 ` [PATCH 10/19] lttng: recognize aarch64 Kai Kang
2014-12-18 8:51 ` [PATCH 11/19] guile: allow compilation for aarch64 Kai Kang
2015-01-01 1:25 ` Khem Raj
2014-12-18 8:51 ` [PATCH 12/19] libunwind: add aarch64 support Kai Kang
2014-12-18 8:51 ` [PATCH 13/19] runqemu: add qemuarm64 support Kai Kang
2015-01-01 1:27 ` Khem Raj
2015-01-04 2:38 ` Kang Kai
2014-12-18 8:51 ` [PATCH 14/19] kexec-tools: add aarch64 support Kai Kang
2014-12-18 8:51 ` [PATCH 15/19] packagegroup-core-tools-profile: remove sysprof for aarch64 Kai Kang
2014-12-18 8:51 ` [PATCH 16/19] gcc: Disable aarch64 multilib options Kai Kang
2014-12-18 8:51 ` [PATCH 17/19] glibc-package: aarch64 enable symlink for ABI compliance Kai Kang
2014-12-18 8:51 ` [PATCH 18/19] aarch-arm64: Update tune files Kai Kang
2015-01-01 1:54 ` Khem Raj [this message]
2014-12-18 8:51 ` [PATCH 19/19] linux-yocto: Fixup linux-yocto for aarch64 Kai Kang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=FD445EB2-CED3-445A-8888-4839F76F3FA2@gmail.com \
--to=raj.khem@gmail.com \
--cc=kai.kang@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox