arch: arm64: Support aarch64-gcc compiler

To be able to successfully compile the kernel for the ARM64 architecture
we have to tweak the compiler-related files to be able to use the
AArch64 GCC compiler.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
This commit is contained in:
Carlo Caione 2019-11-10 17:06:13 +00:00 committed by Anas Nashif
commit 87d8a035dd
6 changed files with 54 additions and 35 deletions

View file

@ -16,11 +16,15 @@
#define ZEPHYR_INCLUDE_LINKER_LINKER_TOOL_GCC_H_
#if defined(CONFIG_ARM)
#if defined(CONFIG_BIG_ENDIAN)
#define OUTPUT_FORMAT_ "elf32-bigarm"
#else
#define OUTPUT_FORMAT_ "elf32-littlearm"
#endif
#if defined(CONFIG_ARM64)
#define OUTPUT_FORMAT_ "elf64-littleaarch64"
#else
#if defined(CONFIG_BIG_ENDIAN)
#define OUTPUT_FORMAT_ "elf32-bigarm"
#else
#define OUTPUT_FORMAT_ "elf32-littlearm"
#endif
#endif
OUTPUT_FORMAT(OUTPUT_FORMAT_)
#elif defined(CONFIG_ARC)
OUTPUT_FORMAT("elf32-littlearc", "elf32-bigarc", "elf32-littlearc")

View file

@ -217,7 +217,7 @@ do { \
#if defined(_ASMLANGUAGE)
#ifdef CONFIG_ARM
#if defined(CONFIG_ARM) && !defined(CONFIG_ARM64)
#if defined(CONFIG_ISA_THUMB2)
@ -370,7 +370,7 @@ do { \
#define GEN_ABS_SYM_END }
#if defined(CONFIG_ARM)
#if defined(CONFIG_ARM) && !defined(CONFIG_ARM64)
/*
* GNU/ARM backend does not have a proper operand modifier which does not
@ -385,7 +385,7 @@ do { \
",%B0" \
"\n\t.type\t" #name ",%%object" : : "n"(~(value)))
#elif defined(CONFIG_X86) || defined(CONFIG_ARC)
#elif defined(CONFIG_X86) || defined(CONFIG_ARC) || defined(CONFIG_ARM64)
#define GEN_ABSOLUTE_SYM(name, value) \
__asm__(".globl\t" #name "\n\t.equ\t" #name \