Commit 2a5111ff by Antonio Maiorano

Added Fuchsia support to LLVM 10 update script and updated configs

When calling 'update.py fuchsia', will now build and generate for x64 and arm64. Note that David Turner (digit@) had already manually created the configs by copying and modifying the Linux ones as part of this change: https://swiftshader-review.googlesource.com/c/SwiftShader/+/43851 After running update.py, I kept the Fuchsia-specific changes that were made mainly to config.h. The diffs mainly remove unsupported targets, and also add arm64, which was missing. Note that arm64 configs were present in the LLVM 7 Fuchsia configs, so likely it was just an oversight or temporary thing. Tested by succesfully building Chromium for Fuchsia, both targeting x64 and arm64. Bug: b/152339534 Change-Id: I15258f2a134808d3c394fad028e1a18acbd081f7 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/46489Tested-by: 's avatarAntonio Maiorano <amaiorano@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com>
parent 0c60dc5c
......@@ -24,20 +24,12 @@
# error Please define the macro LLVM_ASM_PARSER(TargetName)
#endif
#if defined(__aarch64__)
LLVM_ASM_PARSER(AArch64)
LLVM_ASM_PARSER(AMDGPU)
LLVM_ASM_PARSER(ARM)
LLVM_ASM_PARSER(BPF)
LLVM_ASM_PARSER(Hexagon)
LLVM_ASM_PARSER(Lanai)
LLVM_ASM_PARSER(Mips)
LLVM_ASM_PARSER(MSP430)
LLVM_ASM_PARSER(PowerPC)
LLVM_ASM_PARSER(RISCV)
LLVM_ASM_PARSER(Sparc)
LLVM_ASM_PARSER(SystemZ)
LLVM_ASM_PARSER(WebAssembly)
#endif
#if defined(__i386__) || defined(__x86_64__)
LLVM_ASM_PARSER(X86)
#endif
#undef LLVM_ASM_PARSER
......@@ -24,22 +24,12 @@
# error Please define the macro LLVM_ASM_PRINTER(TargetName)
#endif
#if defined(__aarch64__)
LLVM_ASM_PRINTER(AArch64)
LLVM_ASM_PRINTER(AMDGPU)
LLVM_ASM_PRINTER(ARM)
LLVM_ASM_PRINTER(BPF)
LLVM_ASM_PRINTER(Hexagon)
LLVM_ASM_PRINTER(Lanai)
LLVM_ASM_PRINTER(Mips)
LLVM_ASM_PRINTER(MSP430)
LLVM_ASM_PRINTER(NVPTX)
LLVM_ASM_PRINTER(PowerPC)
LLVM_ASM_PRINTER(RISCV)
LLVM_ASM_PRINTER(Sparc)
LLVM_ASM_PRINTER(SystemZ)
LLVM_ASM_PRINTER(WebAssembly)
#endif
#if defined(__i386__) || defined(__x86_64__)
LLVM_ASM_PRINTER(X86)
LLVM_ASM_PRINTER(XCore)
#endif
#undef LLVM_ASM_PRINTER
......@@ -24,21 +24,12 @@
# error Please define the macro LLVM_DISASSEMBLER(TargetName)
#endif
#if defined(__aarch64__)
LLVM_DISASSEMBLER(AArch64)
LLVM_DISASSEMBLER(AMDGPU)
LLVM_DISASSEMBLER(ARM)
LLVM_DISASSEMBLER(BPF)
LLVM_DISASSEMBLER(Hexagon)
LLVM_DISASSEMBLER(Lanai)
LLVM_DISASSEMBLER(Mips)
LLVM_DISASSEMBLER(MSP430)
LLVM_DISASSEMBLER(PowerPC)
LLVM_DISASSEMBLER(RISCV)
LLVM_DISASSEMBLER(Sparc)
LLVM_DISASSEMBLER(SystemZ)
LLVM_DISASSEMBLER(WebAssembly)
#endif
#if defined(__i386__) || defined(__x86_64__)
LLVM_DISASSEMBLER(X86)
LLVM_DISASSEMBLER(XCore)
#endif
#undef LLVM_DISASSEMBLER
......@@ -23,22 +23,12 @@
# error Please define the macro LLVM_TARGET(TargetName)
#endif
#if defined(__aarch64__)
LLVM_TARGET(AArch64)
LLVM_TARGET(AMDGPU)
LLVM_TARGET(ARM)
LLVM_TARGET(BPF)
LLVM_TARGET(Hexagon)
LLVM_TARGET(Lanai)
LLVM_TARGET(Mips)
LLVM_TARGET(MSP430)
LLVM_TARGET(NVPTX)
LLVM_TARGET(PowerPC)
LLVM_TARGET(RISCV)
LLVM_TARGET(Sparc)
LLVM_TARGET(SystemZ)
LLVM_TARGET(WebAssembly)
#endif
#if defined(__i386__) || defined(__x86_64__)
LLVM_TARGET(X86)
LLVM_TARGET(XCore)
#endif
#undef LLVM_TARGET
......@@ -294,7 +294,13 @@
/* Target triple LLVM will generate code for by default */
/* Doesn't use `cmakedefine` because it is allowed to be empty. */
#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-linux-gnu"
#if defined(__x86_64__)
#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-fuchsia"
#elif defined(__aarch64__)
#define LLVM_DEFAULT_TARGET_TRIPLE "aarch64-unknown-fuchsia"
#else
#error "unknown architecture"
#endif
/* Define if zlib compression is available */
#define LLVM_ENABLE_ZLIB 0
......@@ -321,10 +327,10 @@
#define PACKAGE_NAME "LLVM"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "LLVM 10.0.1"
#define PACKAGE_STRING "LLVM 10.0.0"
/* Define to the version of this package. */
#define PACKAGE_VERSION "10.0.1"
#define PACKAGE_VERSION "10.0.0"
/* Define to the vendor of this package. */
/* #undef PACKAGE_VENDOR */
......
......@@ -14,11 +14,27 @@
#ifndef LLVM_CONFIG_H
#define LLVM_CONFIG_H
#if !defined(__i386__) && defined(_M_IX86)
#define __i386__ 1
#endif
#if !defined(__x86_64__) && (defined(_M_AMD64) || defined (_M_X64))
#define __x86_64__ 1
#endif
#define LLVM_CONFIG_H
/* Define if LLVM_ENABLE_DUMP is enabled */
/* #undef LLVM_ENABLE_DUMP */
/* Target triple LLVM will generate code for by default */
#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-linux-gnu"
#if defined(__x86_64__)
#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-unknown-fuchsia"
#elif defined(__aarch64__)
#define LLVM_DEFAULT_TARGET_TRIPLE "aarch64-unknown-fuchsia"
#else
#error "unknown architecture"
#endif
/* Define if threads enabled */
#define LLVM_ENABLE_THREADS 1
......@@ -27,28 +43,118 @@
#define LLVM_HAS_ATOMICS 1
/* Host triple LLVM will be executed on */
#define LLVM_HOST_TRIPLE "x86_64-unknown-linux-gnu"
#if defined(__x86_64__)
#define LLVM_HOST_TRIPLE "x86_64-unknown-fuchsia"
#elif defined(__aarch64__)
#define LLVM_HOST_TRIPLE "aarch64-unknown-fuchsia"
#else
#error "unknown architecture"
#endif
/* LLVM architecture name for the native architecture, if available */
#if defined(__aarch64__)
#define LLVM_NATIVE_ARCH AArch64
#elif defined(__arm__)
#define LLVM_NATIVE_ARCH ARM
#elif defined(__i386__) || defined(__x86_64__)
#define LLVM_NATIVE_ARCH X86
#elif defined(__mips__)
#define LLVM_NATIVE_ARCH Mips
#elif defined(__powerpc64__)
#define LLVM_NATIVE_ARCH PowerPC
#else
#error "unknown architecture"
#endif
/* LLVM name for the native AsmParser init function, if available */
#if defined(__aarch64__)
#define LLVM_NATIVE_ASMPARSER LLVMInitializeAArch64AsmParser
#elif defined(__arm__)
#define LLVM_NATIVE_ASMPARSER LLVMInitializeARMAsmParser
#elif defined(__i386__) || defined(__x86_64__)
#define LLVM_NATIVE_ASMPARSER LLVMInitializeX86AsmParser
#elif defined(__mips__)
#define LLVM_NATIVE_ASMPARSER LLVMInitializeMipsAsmParser
#elif defined(__powerpc64__)
#define LLVM_NATIVE_ASMPARSER LLVMInitializePowerPCAsmParser
#else
#error "unknown architecture"
#endif
/* LLVM name for the native AsmPrinter init function, if available */
#if defined(__aarch64__)
#define LLVM_NATIVE_ASMPRINTER LLVMInitializeAArch64AsmPrinter
#elif defined(__arm__)
#define LLVM_NATIVE_ASMPRINTER LLVMInitializeARMAsmPrinter
#elif defined(__i386__) || defined(__x86_64__)
#define LLVM_NATIVE_ASMPRINTER LLVMInitializeX86AsmPrinter
#elif defined(__mips__)
#define LLVM_NATIVE_ASMPRINTER LLVMInitializeMipsAsmPrinter
#elif defined(__powerpc64__)
#define LLVM_NATIVE_ASMPRINTER LLVMInitializePowerPCAsmPrinter
#else
#error "unknown architecture"
#endif
/* LLVM name for the native Disassembler init function, if available */
#if defined(__aarch64__)
#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeAArch64Disassembler
#elif defined(__arm__)
#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeARMDisassembler
#elif defined(__i386__) || defined(__x86_64__)
#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeX86Disassembler
#elif defined(__mips__)
#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeMipsDisassembler
#elif defined(__powerpc64__)
#define LLVM_NATIVE_DISASSEMBLER LLVMInitializePowerPCDisassembler
#else
#error "unknown architecture"
#endif
/* LLVM name for the native Target init function, if available */
#if defined(__aarch64__)
#define LLVM_NATIVE_TARGET LLVMInitializeAArch64Target
#elif defined(__arm__)
#define LLVM_NATIVE_TARGET LLVMInitializeARMTarget
#elif defined(__i386__) || defined(__x86_64__)
#define LLVM_NATIVE_TARGET LLVMInitializeX86Target
#elif defined(__mips__)
#define LLVM_NATIVE_TARGET LLVMInitializeMipsTarget
#elif defined(__powerpc64__)
#define LLVM_NATIVE_TARGET LLVMInitializePowerPCTarget
#else
#error "unknown architecture"
#endif
/* LLVM name for the native TargetInfo init function, if available */
#if defined(__aarch64__)
#define LLVM_NATIVE_TARGETINFO LLVMInitializeAArch64TargetInfo
#elif defined(__arm__)
#define LLVM_NATIVE_TARGETINFO LLVMInitializeARMTargetInfo
#elif defined(__i386__) || defined(__x86_64__)
#define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo
#elif defined(__mips__)
#define LLVM_NATIVE_TARGETINFO LLVMInitializeMipsTargetInfo
#elif defined(__powerpc64__)
#define LLVM_NATIVE_TARGETINFO LLVMInitializePowerPCTargetInfo
#else
#error "unknown architecture"
#endif
/* LLVM name for the native target MC init function, if available */
#if defined(__aarch64__)
#define LLVM_NATIVE_TARGETMC LLVMInitializeAArch64TargetMC
#elif defined(__arm__)
#define LLVM_NATIVE_TARGETMC LLVMInitializeARMTargetMC
#elif defined(__i386__) || defined(__x86_64__)
#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC
#elif defined(__mips__)
#define LLVM_NATIVE_TARGETMC LLVMInitializeMipsTargetMC
#elif defined(__powerpc64__)
#define LLVM_NATIVE_TARGETMC LLVMInitializePowerPCTargetMC
#else
#error "unknown architecture"
#endif
/* Define if this is Unixish platform */
#define LLVM_ON_UNIX 1
......
......@@ -77,6 +77,10 @@ LLVM_TRIPLES = {
('__mips__', 'mipsel-pc-win32'),
('__mips64', 'mips64el-pc-win32'),
],
'fuchsia': [
('__x86_64__', 'x86_64-unknown-fuchsia'),
('__aarch64__', 'aarch64-unknown-fuchsia'),
]
}
# Mapping of target platform to the host it must be built on
......@@ -85,6 +89,7 @@ LLVM_PLATFORM_TO_HOST_SYSTEM = {
'darwin': 'Darwin',
'linux': 'Linux',
'windows': 'Windows',
'fuchsia': 'Linux'
}
# LLVM configurations to be undefined.
......@@ -141,7 +146,7 @@ def run_subprocess(*popenargs, log_level=1, cwd=None):
def _parse_args():
parser = argparse.ArgumentParser()
parser.add_argument('name', help='destination name',
choices=['android', 'linux', 'darwin', 'windows'])
choices=['android', 'linux', 'darwin', 'windows', 'fuchsia'])
parser.add_argument('-j', '--jobs', help='parallel compilation', type=int)
return parser.parse_args()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment