From: Nicolas Capens Date: Tue, 30 Oct 2018 17:49:46 +0000 (-0400) Subject: Add LLVM 7.0 config for macOS. X-Git-Tag: android-x86-9.0-r1~548 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=2337f06c8b1bc669932bc06327947f185de95458;p=android-x86%2Fexternal-swiftshader.git Add LLVM 7.0 config for macOS. Bug b/115344057 Change-Id: I755f06f125fe0b7f170a0ec325f7e112b8cc789c Reviewed-on: https://swiftshader-review.googlesource.com/c/22108 Tested-by: Nicolas Capens Reviewed-by: Alexis Hétu --- diff --git a/CMakeLists.txt b/CMakeLists.txt index a5c4e7c56..11ec1a0b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1688,7 +1688,7 @@ if(WIN32) elseif(LINUX) list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/linux/include) elseif(APPLE) - # list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/include-osx) + list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/darwin/include) endif() list(APPEND LLVM_INCLUDE_DIR diff --git a/third_party/llvm-7.0/configs/darwin/include/llvm/Config/AsmParsers.def b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/AsmParsers.def new file mode 100644 index 000000000..49d8e315d --- /dev/null +++ b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/AsmParsers.def @@ -0,0 +1,41 @@ +/*===- llvm/Config/AsmParsers.def - LLVM Assembly Parsers -------*- C++ -*-===*\ +|* *| +|* The LLVM Compiler Infrastructure *| +|* *| +|* This file is distributed under the University of Illinois Open Source *| +|* License. See LICENSE.TXT for details. *| +|* *| +|*===----------------------------------------------------------------------===*| +|* *| +|* This file enumerates all of the assembly-language parsers *| +|* supported by this build of LLVM. Clients of this file should define *| +|* the LLVM_ASM_PARSER macro to be a function-like macro with a *| +|* single parameter (the name of the target whose assembly can be *| +|* generated); including this file will then enumerate all of the *| +|* targets with assembly parsers. *| +|* *| +|* The set of targets supported by LLVM is generated at configuration *| +|* time, at which point this header is generated. Do not modify this *| +|* header directly. *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#ifndef LLVM_ASM_PARSER +# error Please define the macro LLVM_ASM_PARSER(TargetName) +#endif + +#if defined(__aarch64__) +LLVM_ASM_PARSER(AArch64) +#endif +#if defined(__arm__) +LLVM_ASM_PARSER(ARM) +#endif +#if defined(__i386__) || defined(__x86_64__) +LLVM_ASM_PARSER(X86) +#endif +#if defined(__mips__) +LLVM_ASM_PARSER(Mips) +#endif + + +#undef LLVM_ASM_PARSER diff --git a/third_party/llvm-7.0/configs/darwin/include/llvm/Config/AsmPrinters.def b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/AsmPrinters.def new file mode 100644 index 000000000..84a2c4204 --- /dev/null +++ b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/AsmPrinters.def @@ -0,0 +1,41 @@ +/*===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===*\ +|* *| +|* The LLVM Compiler Infrastructure *| +|* *| +|* This file is distributed under the University of Illinois Open Source *| +|* License. See LICENSE.TXT for details. *| +|* *| +|*===----------------------------------------------------------------------===*| +|* *| +|* This file enumerates all of the assembly-language printers *| +|* supported by this build of LLVM. Clients of this file should define *| +|* the LLVM_ASM_PRINTER macro to be a function-like macro with a *| +|* single parameter (the name of the target whose assembly can be *| +|* generated); including this file will then enumerate all of the *| +|* targets with assembly printers. *| +|* *| +|* The set of targets supported by LLVM is generated at configuration *| +|* time, at which point this header is generated. Do not modify this *| +|* header directly. *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#ifndef LLVM_ASM_PRINTER +# error Please define the macro LLVM_ASM_PRINTER(TargetName) +#endif + +#if defined(__aarch64__) +LLVM_ASM_PRINTER(AArch64) +#endif +#if defined(__arm__) +LLVM_ASM_PRINTER(ARM) +#endif +#if defined(__i386__) || defined(__x86_64__) +LLVM_ASM_PRINTER(X86) +#endif +#if defined(__mips__) +LLVM_ASM_PRINTER(Mips) +#endif + + +#undef LLVM_ASM_PRINTER diff --git a/third_party/llvm-7.0/configs/darwin/include/llvm/Config/Disassemblers.def b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/Disassemblers.def new file mode 100644 index 000000000..e3bb9ce04 --- /dev/null +++ b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/Disassemblers.def @@ -0,0 +1,41 @@ +/*===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===*\ +|* *| +|* The LLVM Compiler Infrastructure *| +|* *| +|* This file is distributed under the University of Illinois Open Source *| +|* License. See LICENSE.TXT for details. *| +|* *| +|*===----------------------------------------------------------------------===*| +|* *| +|* This file enumerates all of the assembly-language parsers *| +|* supported by this build of LLVM. Clients of this file should define *| +|* the LLVM_DISASSEMBLER macro to be a function-like macro with a *| +|* single parameter (the name of the target whose assembly can be *| +|* generated); including this file will then enumerate all of the *| +|* targets with assembly parsers. *| +|* *| +|* The set of targets supported by LLVM is generated at configuration *| +|* time, at which point this header is generated. Do not modify this *| +|* header directly. *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#ifndef LLVM_DISASSEMBLER +# error Please define the macro LLVM_DISASSEMBLER(TargetName) +#endif + +#if defined(__aarch64__) +LLVM_DISASSEMBLER(AArch64) +#endif +#if defined(__arm__) +LLVM_DISASSEMBLER(ARM) +#endif +#if defined(__i386__) || defined(__x86_64__) +LLVM_DISASSEMBLER(X86) +#endif +#if defined(__mips__) +LLVM_DISASSEMBLER(Mips) +#endif + + +#undef LLVM_DISASSEMBLER diff --git a/third_party/llvm-7.0/configs/darwin/include/llvm/Config/Targets.def b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/Targets.def new file mode 100644 index 000000000..aaf9378e4 --- /dev/null +++ b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/Targets.def @@ -0,0 +1,40 @@ +/*===- llvm/Config/Targets.def - LLVM Target Architectures ------*- C++ -*-===*\ +|* *| +|* The LLVM Compiler Infrastructure *| +|* *| +|* This file is distributed under the University of Illinois Open Source *| +|* License. See LICENSE.TXT for details. *| +|* *| +|*===----------------------------------------------------------------------===*| +|* *| +|* This file enumerates all of the target architectures supported by *| +|* this build of LLVM. Clients of this file should define the *| +|* LLVM_TARGET macro to be a function-like macro with a single *| +|* parameter (the name of the target); including this file will then *| +|* enumerate all of the targets. *| +|* *| +|* The set of targets supported by LLVM is generated at configuration *| +|* time, at which point this header is generated. Do not modify this *| +|* header directly. *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#ifndef LLVM_TARGET +# error Please define the macro LLVM_TARGET(TargetName) +#endif + +#if defined(__aarch64__) +LLVM_TARGET(AArch64) +#endif +#if defined(__arm__) +LLVM_TARGET(ARM) +#endif +#if defined(__i386__) || defined(__x86_64__) +LLVM_TARGET(X86) +#endif +#if defined(__mips__) +LLVM_TARGET(Mips) +#endif + + +#undef LLVM_TARGET diff --git a/third_party/llvm-7.0/configs/darwin/include/llvm/Config/abi-breaking.h b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/abi-breaking.h new file mode 100644 index 000000000..d7f82e1d0 --- /dev/null +++ b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/abi-breaking.h @@ -0,0 +1,50 @@ +/*===------- llvm/Config/abi-breaking.h - llvm configuration -------*- C -*-===*/ +/* */ +/* The LLVM Compiler Infrastructure */ +/* */ +/* This file is distributed under the University of Illinois Open Source */ +/* License. See LICENSE.TXT for details. */ +/* */ +/*===----------------------------------------------------------------------===*/ + +/* This file controls the C++ ABI break introduced in LLVM public header. */ + +#ifndef LLVM_ABI_BREAKING_CHECKS_H +#define LLVM_ABI_BREAKING_CHECKS_H + +/* Define to enable checks that alter the LLVM C++ ABI */ +#define LLVM_ENABLE_ABI_BREAKING_CHECKS 0 + +/* Define to enable reverse iteration of unordered llvm containers */ +#define LLVM_ENABLE_REVERSE_ITERATION 0 + +/* Allow selectively disabling link-time mismatch checking so that header-only + ADT content from LLVM can be used without linking libSupport. */ +#if !LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING + +// ABI_BREAKING_CHECKS protection: provides link-time failure when clients build +// mismatch with LLVM +#if defined(_MSC_VER) +// Use pragma with MSVC +#define LLVM_XSTR(s) LLVM_STR(s) +#define LLVM_STR(s) #s +#pragma detect_mismatch("LLVM_ENABLE_ABI_BREAKING_CHECKS", LLVM_XSTR(LLVM_ENABLE_ABI_BREAKING_CHECKS)) +#undef LLVM_XSTR +#undef LLVM_STR +#elif defined(_WIN32) || defined(__CYGWIN__) // Win32 w/o #pragma detect_mismatch +// FIXME: Implement checks without weak. +#elif defined(__cplusplus) +namespace llvm { +#if LLVM_ENABLE_ABI_BREAKING_CHECKS +extern int EnableABIBreakingChecks; +__attribute__((weak, visibility ("hidden"))) int *VerifyEnableABIBreakingChecks = &EnableABIBreakingChecks; +#else +extern int DisableABIBreakingChecks; +__attribute__((weak, visibility ("hidden"))) int *VerifyDisableABIBreakingChecks = &DisableABIBreakingChecks; +#endif +} +#endif // _MSC_VER + +#endif // LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING + +#endif diff --git a/third_party/llvm-7.0/configs/darwin/include/llvm/Config/config.h b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/config.h new file mode 100644 index 000000000..594e68b49 --- /dev/null +++ b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/config.h @@ -0,0 +1,348 @@ +#ifndef CONFIG_H +#define CONFIG_H + +/* Exported configuration */ +#include "llvm/Config/llvm-config.h" + +/* Bug report URL. */ +#define BUG_REPORT_URL "https://bugs.llvm.org/" + +/* Define to 1 to enable backtraces, and to 0 otherwise. */ +/* #undef ENABLE_BACKTRACES */ + +/* Define to 1 to enable crash overrides, and to 0 otherwise. */ +/* #undef ENABLE_CRASH_OVERRIDES */ + +/* Define to 1 if you have the `backtrace' function. */ +/* #undef HAVE_BACKTRACE */ + +/* #undef BACKTRACE_HEADER */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_CRASHREPORTERCLIENT_H */ + +/* can use __crashreporter_info__ */ +#define HAVE_CRASHREPORTER_INFO 1 + +/* Define to 1 if you have the declaration of `arc4random', and to 0 if you + don't. */ +#define HAVE_DECL_ARC4RANDOM 1 + +/* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you + don't. */ +#define HAVE_DECL_FE_ALL_EXCEPT 1 + +/* Define to 1 if you have the declaration of `FE_INEXACT', and to 0 if you + don't. */ +#define HAVE_DECL_FE_INEXACT 1 + +/* Define to 1 if you have the declaration of `strerror_s', and to 0 if you + don't. */ +#define HAVE_DECL_STRERROR_S 0 + +/* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */ +#define LLVM_ENABLE_DIA_SDK 0 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define if dlopen() is available on this platform. */ +#define HAVE_DLOPEN 1 + +/* Define if dladdr() is available on this platform. */ +#define HAVE_DLADDR 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_ERRNO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FENV_H 1 + +/* Define if libffi is available on this platform. */ +/* #undef HAVE_FFI_CALL */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_FFI_FFI_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_FFI_H */ + +/* Define to 1 if you have the `futimens' function. */ +#define HAVE_FUTIMENS 1 + +/* Define to 1 if you have the `futimes' function. */ +#define HAVE_FUTIMES 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `getrlimit' function. */ +#define HAVE_GETRLIMIT 1 + +/* Define to 1 if you have the `getrusage' function. */ +#define HAVE_GETRUSAGE 1 + +/* Define to 1 if you have the `isatty' function. */ +#define HAVE_ISATTY 1 + +/* Define to 1 if you have the `edit' library (-ledit). */ +/* #undef HAVE_LIBEDIT */ + +/* Define to 1 if you have the `pfm' library (-lpfm). */ +/* #undef HAVE_LIBPFM */ + +/* Define to 1 if you have the `psapi' library (-lpsapi). */ +/* #undef HAVE_LIBPSAPI */ + +/* Define to 1 if you have the `pthread' library (-lpthread). */ +#define HAVE_LIBPTHREAD 1 + +/* Define to 1 if you have the `pthread_getname_np' function. */ +/* #undef HAVE_PTHREAD_GETNAME_NP */ + +/* Define to 1 if you have the `pthread_setname_np' function. */ +/* #undef HAVE_PTHREAD_SETNAME_NP */ + +/* Define to 1 if you have the `z' library (-lz). */ +/* #undef HAVE_LIBZ */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINK_H */ + +/* Define to 1 if you have the `lseek64' function. */ +/* #undef HAVE_LSEEK64 */ + +/* Define to 1 if you have the header file. */ +#define HAVE_MACH_MACH_H 1 + +/* Define to 1 if you have the `mallctl' function. */ +/* #undef HAVE_MALLCTL */ + +/* Define to 1 if you have the `mallinfo' function. */ +/* #undef HAVE_MALLINFO */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MALLOC_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_MALLOC_MALLOC_H 1 + +/* Define to 1 if you have the `malloc_zone_statistics' function. */ +#define HAVE_MALLOC_ZONE_STATISTICS 1 + +/* Define to 1 if you have the `posix_fallocate' function. */ +/* #undef HAVE_POSIX_FALLOCATE */ + +/* Define to 1 if you have the `posix_spawn' function. */ +/* #undef HAVE_POSIX_SPAWN */ + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Have pthread_getspecific */ +#define HAVE_PTHREAD_GETSPECIFIC 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_PTHREAD_H 1 + +/* Have pthread_mutex_lock */ +#define HAVE_PTHREAD_MUTEX_LOCK 1 + +/* Have pthread_rwlock_init */ +#define HAVE_PTHREAD_RWLOCK_INIT 1 + +/* Define to 1 if you have the `realpath' function. */ +#define HAVE_REALPATH 1 + +/* Define to 1 if you have the `sbrk' function. */ +#define HAVE_SBRK 1 + +/* Define to 1 if you have the `setenv' function. */ +#define HAVE_SETENV 1 + +/* Define to 1 if you have the `sched_getaffinity' function. */ +/* #undef HAVE_SCHED_GETAFFINITY */ + +/* Define to 1 if you have the `CPU_COUNT' macro. */ +/* #undef HAVE_CPU_COUNT */ + +/* Define to 1 if you have the `setrlimit' function. */ +#define HAVE_SETRLIMIT 1 + +/* Define to 1 if you have the `sigaltstack' function. */ +/* #undef HAVE_SIGALTSTACK */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SIGNAL_H 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the `strerror_r' function. */ +#define HAVE_STRERROR_R 1 + +/* Define to 1 if you have the `sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_MMAN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define if the setupterm() function is supported this platform. */ +/* #undef HAVE_TERMINFO */ + +/* Define if the xar_open() function is supported this platform. */ +#define HAVE_LIBXAR 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERMIOS_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_VALGRIND_VALGRIND_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ZLIB_H */ + +/* Have host's _alloca */ +/* #undef HAVE__ALLOCA */ + +/* Define to 1 if you have the `_chsize_s' function. */ +/* #undef HAVE__CHSIZE_S */ + +/* Define to 1 if you have the `_Unwind_Backtrace' function. */ +/* #undef HAVE__UNWIND_BACKTRACE */ + +/* Have host's __alloca */ +/* #undef HAVE___ALLOCA */ + +/* Have host's __ashldi3 */ +/* #undef HAVE___ASHLDI3 */ + +/* Have host's __ashrdi3 */ +/* #undef HAVE___ASHRDI3 */ + +/* Have host's __chkstk */ +/* #undef HAVE___CHKSTK */ + +/* Have host's __chkstk_ms */ +/* #undef HAVE___CHKSTK_MS */ + +/* Have host's __cmpdi2 */ +/* #undef HAVE___CMPDI2 */ + +/* Have host's __divdi3 */ +/* #undef HAVE___DIVDI3 */ + +/* Have host's __fixdfdi */ +/* #undef HAVE___FIXDFDI */ + +/* Have host's __fixsfdi */ +/* #undef HAVE___FIXSFDI */ + +/* Have host's __floatdidf */ +/* #undef HAVE___FLOATDIDF */ + +/* Have host's __lshrdi3 */ +/* #undef HAVE___LSHRDI3 */ + +/* Have host's __main */ +/* #undef HAVE___MAIN */ + +/* Have host's __moddi3 */ +/* #undef HAVE___MODDI3 */ + +/* Have host's __udivdi3 */ +/* #undef HAVE___UDIVDI3 */ + +/* Have host's __umoddi3 */ +/* #undef HAVE___UMODDI3 */ + +/* Have host's ___chkstk */ +/* #undef HAVE____CHKSTK */ + +/* Have host's ___chkstk_ms */ +/* #undef HAVE____CHKSTK_MS */ + +/* Linker version detected at compile time. */ +/* #undef HOST_LINK_VERSION */ + +/* Target triple LLVM will generate code for by default */ +/* Doesn't use `cmakedefine` because it is allowed to be empty. */ +#if defined(__x86_64__) +#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-apple-darwin" +#else +#error "unknown architecture" +#endif + +/* Define if zlib compression is available */ +#define LLVM_ENABLE_ZLIB 0 + +/* Define if overriding target triple is enabled */ +/* #undef LLVM_TARGET_TRIPLE_ENV */ + +/* LLVM version information */ +/* #undef LLVM_VERSION_INFO */ + +/* Whether tools show host and target info when invoked with --version */ +#define LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO 1 + +/* Define if libxml2 is supported on this platform. */ +/* #undef LLVM_LIBXML2_ENABLED */ + +/* Define to the extension used for shared libraries, say, ".so". */ +#define LTDL_SHLIB_EXT ".dylib" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "https://bugs.llvm.org/" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "LLVM" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "LLVM 7.0.0" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "7.0.0" + +/* Define to the vendor of this package. */ +/* #undef PACKAGE_VENDOR */ + +/* Define as the return type of signal handlers (`int' or `void'). */ +#define RETSIGTYPE void + +/* Define to a function implementing stricmp */ +/* #undef stricmp */ + +/* Define to a function implementing strdup */ +/* #undef strdup */ + +/* Whether GlobalISel rule coverage is being collected */ +#define LLVM_GISEL_COV_ENABLED 0 + +/* Define to the default GlobalISel coverage file prefix */ +/* #undef LLVM_GISEL_COV_PREFIX */ + +#endif diff --git a/third_party/llvm-7.0/configs/darwin/include/llvm/Config/llvm-config.h b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/llvm-config.h new file mode 100644 index 000000000..54d348b57 --- /dev/null +++ b/third_party/llvm-7.0/configs/darwin/include/llvm/Config/llvm-config.h @@ -0,0 +1,163 @@ +/*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/ +/* */ +/* The LLVM Compiler Infrastructure */ +/* */ +/* This file is distributed under the University of Illinois Open Source */ +/* License. See LICENSE.TXT for details. */ +/* */ +/*===----------------------------------------------------------------------===*/ + +/* This file enumerates variables from the LLVM configuration so that they + can be in exported headers and won't override package specific directives. + This is a C header that can be included in the llvm-c headers. */ + +#ifndef LLVM_CONFIG_H +#define LLVM_CONFIG_H + +/* Define if LLVM_ENABLE_DUMP is enabled */ +/* #undef LLVM_ENABLE_DUMP */ + +/* Define if we link Polly to the tools */ +/* #undef LINK_POLLY_INTO_TOOLS */ + +/* Target triple LLVM will generate code for by default */ +#if defined(__x86_64__) +#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-apple-darwin" +#else +#error "unknown architecture" +#endif + +/* Define if threads enabled */ +#define LLVM_ENABLE_THREADS 1 + +/* Has gcc/MSVC atomic intrinsics */ +#define LLVM_HAS_ATOMICS 1 + +/* Host triple LLVM will be executed on */ +#if defined(__x86_64__) +#define LLVM_HOST_TRIPLE "x86_64-apple-darwin" +#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 +#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 +#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 +#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 +#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 +#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 +#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 +#else +#error "unknown architecture" +#endif + +/* Define if this is Unixish platform */ +#define LLVM_ON_UNIX 1 + +/* Define if we have the Intel JIT API runtime support library */ +#define LLVM_USE_INTEL_JITEVENTS 0 + +/* Define if we have the oprofile JIT-support library */ +#define LLVM_USE_OPROFILE 0 + +/* Define if we have the perf JIT-support library */ +#define LLVM_USE_PERF 0 + +/* Major version of the LLVM API */ +#define LLVM_VERSION_MAJOR 7 + +/* Minor version of the LLVM API */ +#define LLVM_VERSION_MINOR 0 + +/* Patch version of the LLVM API */ +#define LLVM_VERSION_PATCH 0 + +/* LLVM version string */ +#define LLVM_VERSION_STRING "7.0.0" + +/* Whether LLVM records statistics for use with GetStatistics(), + * PrintStatistics() or PrintStatisticsJSON() + */ +#define LLVM_FORCE_ENABLE_STATS 0 + +#endif diff --git a/third_party/llvm-7.0/scripts/update.py b/third_party/llvm-7.0/scripts/update.py index fe30730ab..0913ee0ab 100755 --- a/third_party/llvm-7.0/scripts/update.py +++ b/third_party/llvm-7.0/scripts/update.py @@ -50,6 +50,9 @@ LLVM_TRIPLES = { ('__aarch64__', 'aarch64-linux-gnu'), ('__mips__', 'mipsel-linux-gnu'), ], + 'darwin': [ + ('__x86_64__', 'x86_64-apple-darwin'), + ], } LLVM_OPTIONS = [ @@ -66,7 +69,7 @@ LLVM_OPTIONS = [ def _parse_args(): parser = argparse.ArgumentParser() parser.add_argument('name', help='destination name', - choices=['android', 'linux']) + choices=['android', 'linux', 'darwin']) parser.add_argument('-j', '--jobs', help='parallel compilation', type=int) return parser.parse_args()