diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2016-10-24 21:48:57 +0000 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2016-11-22 10:48:34 -0800 |
commit | 6c6829a0610e6282be922183c9601cb2365df9a4 (patch) | |
tree | 1801f8bc2ec990477737067bffd8fb122b378fd8 | |
parent | 0946ce59a09609b743b7dba40f7212778011f286 (diff) | |
download | crosstool-ng-6c6829a0610e6282be922183c9601cb2365df9a4.tar.gz crosstool-ng-6c6829a0610e6282be922183c9601cb2365df9a4.tar.bz2 crosstool-ng-6c6829a0610e6282be922183c9601cb2365df9a4.zip |
xtensa: fix endianness support
To build uClibc correctly we need correct endianness selected in the
crosstool-NG. Xtensa cores may be little- or big-endian, but this
property is static. The toolchain knows the core endianness and doesn't
need options to select it.
Enable ARCH_SUPPORTS_BOTH_ENDIAN and select LE by default. Specify empty
CT_ARCH_ENDIAN_CFLAG so that -m{big,little}-endian don't get added to
the TARGET_CFLAGS, as it's not supported by gcc. Specify empty
CT_ARCH_ENDIAN_LDFLAG so that -EB/-EL don't get added to the
TARGET_LDFLAGS as they are ignored. Select big-endian in the example
xtensa-unknown-linux-uclibc configuration.
This fixes uClibc toolchain build for little-endian cores.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
-rw-r--r-- | config/arch/xtensa.in | 2 | ||||
-rw-r--r-- | samples/xtensa-unknown-linux-uclibc/crosstool.config | 1 | ||||
-rw-r--r-- | scripts/build/arch/xtensa.sh | 2 |
3 files changed, 5 insertions, 0 deletions
diff --git a/config/arch/xtensa.in b/config/arch/xtensa.in index e08b8424..3ffa4e80 100644 --- a/config/arch/xtensa.in +++ b/config/arch/xtensa.in @@ -1,6 +1,8 @@ # xtensa specific configuration file ## select ARCH_SUPPORTS_32 +## select ARCH_SUPPORTS_BOTH_ENDIAN +## select ARCH_DEFAULT_LE ## select ARCH_SUPPORTS_BOTH_MMU ## select ARCH_DEFAULT_HAS_MMU ## diff --git a/samples/xtensa-unknown-linux-uclibc/crosstool.config b/samples/xtensa-unknown-linux-uclibc/crosstool.config index e7ab10eb..d383fbd0 100644 --- a/samples/xtensa-unknown-linux-uclibc/crosstool.config +++ b/samples/xtensa-unknown-linux-uclibc/crosstool.config @@ -1,6 +1,7 @@ CT_LOCAL_TARBALLS_DIR="${HOME}/src" CT_SAVE_TARBALLS=y CT_LOG_EXTRA=y +CT_ARCH_BE=y CT_ARCH_xtensa=y CT_KERNEL_linux=y CT_LIBC_uClibc=y diff --git a/scripts/build/arch/xtensa.sh b/scripts/build/arch/xtensa.sh index a3010c69..bf94ddfa 100644 --- a/scripts/build/arch/xtensa.sh +++ b/scripts/build/arch/xtensa.sh @@ -3,6 +3,8 @@ CT_DoArchTupleValues() { # The architecture part of the tuple: CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_SUFFIX}" + CT_ARCH_ENDIAN_CFLAG="" + CT_ARCH_ENDIAN_LDFLAG="" # The system part of the tuple: case "${CT_LIBC}" in *glibc) CT_TARGET_SYS=gnu;; |