diff options
author | Stephen Hines <srhines@google.com> | 2014-04-23 16:57:46 -0700 |
---|---|---|
committer | Stephen Hines <srhines@google.com> | 2014-04-24 15:53:16 -0700 |
commit | 36b56886974eae4f9c5ebc96befd3e7bfe5de338 (patch) | |
tree | e6cfb69fbbd937f450eeb83bfb83b9da3b01275a /patches | |
parent | 69a8640022b04415ae9fac62f8ab090601d8f889 (diff) | |
download | external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.zip external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.tar.gz external_llvm-36b56886974eae4f9c5ebc96befd3e7bfe5de338.tar.bz2 |
Update to LLVM 3.5a.
Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
Diffstat (limited to 'patches')
-rw-r--r-- | patches/0001-Add-module-notice.patch | 17 | ||||
-rw-r--r-- | patches/0002-Add-basic-Android-configuration.patch | 2389 | ||||
-rw-r--r-- | patches/0003-Add-support-for-64-bit-longs.patch | 56 | ||||
-rw-r--r-- | patches/0004-Add-Android-makefiles-for-LLVM.patch | 4628 |
4 files changed, 7090 insertions, 0 deletions
diff --git a/patches/0001-Add-module-notice.patch b/patches/0001-Add-module-notice.patch new file mode 100644 index 0000000..af1ad17 --- /dev/null +++ b/patches/0001-Add-module-notice.patch @@ -0,0 +1,17 @@ +From ae11c6bec4809f0b587ef765112bf38a79289996 Mon Sep 17 00:00:00 2001 +From: Tim Murray <timmurray@google.com> +Date: Thu, 3 Apr 2014 10:44:14 -0700 +Subject: [PATCH 1/5] Add module notice. + +Change-Id: Ibfd46c3d2e652b7b56563349ae4924039eb8d4ac +--- + MODULE_LICENSE_BSD_LIKE | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 MODULE_LICENSE_BSD_LIKE + +diff --git a/MODULE_LICENSE_BSD_LIKE b/MODULE_LICENSE_BSD_LIKE +new file mode 100644 +index 0000000..e69de29 +-- +1.9.1.423.g4596e3a + diff --git a/patches/0002-Add-basic-Android-configuration.patch b/patches/0002-Add-basic-Android-configuration.patch new file mode 100644 index 0000000..3a17a3b --- /dev/null +++ b/patches/0002-Add-basic-Android-configuration.patch @@ -0,0 +1,2389 @@ +From 75d1e0c4b102d6c244e10b83427ca5a52b89cab6 Mon Sep 17 00:00:00 2001 +From: Tim Murray <timmurray@google.com> +Date: Thu, 27 Mar 2014 14:04:43 -0700 +Subject: [PATCH 2/5] Add basic Android configuration. + +Change-Id: I0102d75a076e96e15606cbecc86b069c0fc43bf1 +--- + device/include/llvm/Config/AsmParsers.def | 39 ++ + device/include/llvm/Config/AsmPrinters.def | 39 ++ + device/include/llvm/Config/Disassemblers.def | 39 ++ + device/include/llvm/Config/Targets.def | 38 ++ + device/include/llvm/Config/config.h | 689 +++++++++++++++++++++++++ + device/include/llvm/Config/llvm-config.h | 94 ++++ + host/include/llvm/Config/AsmParsers.def | 32 ++ + host/include/llvm/Config/AsmPrinters.def | 32 ++ + host/include/llvm/Config/Disassemblers.def | 32 ++ + host/include/llvm/Config/Targets.def | 31 ++ + host/include/llvm/Config/config.h | 725 +++++++++++++++++++++++++++ + host/include/llvm/Config/llvm-config.h | 102 ++++ + include/llvm/Config/llvm-platform-config.h | 160 ++++++ + include/llvm/Support/DataTypes.h | 213 ++++++++ + 14 files changed, 2265 insertions(+) + create mode 100644 device/include/llvm/Config/AsmParsers.def + create mode 100644 device/include/llvm/Config/AsmPrinters.def + create mode 100644 device/include/llvm/Config/Disassemblers.def + create mode 100644 device/include/llvm/Config/Targets.def + create mode 100644 device/include/llvm/Config/config.h + create mode 100644 device/include/llvm/Config/llvm-config.h + create mode 100644 host/include/llvm/Config/AsmParsers.def + create mode 100644 host/include/llvm/Config/AsmPrinters.def + create mode 100644 host/include/llvm/Config/Disassemblers.def + create mode 100644 host/include/llvm/Config/Targets.def + create mode 100644 host/include/llvm/Config/config.h + create mode 100644 host/include/llvm/Config/llvm-config.h + create mode 100644 include/llvm/Config/llvm-platform-config.h + create mode 100644 include/llvm/Support/DataTypes.h + +diff --git a/device/include/llvm/Config/AsmParsers.def b/device/include/llvm/Config/AsmParsers.def +new file mode 100644 +index 0000000..ca3af2c +--- /dev/null ++++ b/device/include/llvm/Config/AsmParsers.def +@@ -0,0 +1,39 @@ ++//===- 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(__arm__) ++ LLVM_ASM_PARSER(ARM) ++#elif defined(__mips__) ++ LLVM_ASM_PARSER(Mips) ++#elif defined(__i386__) || defined(__x86_64__) ++ LLVM_ASM_PARSER(X86) ++#elif defined(__aarch64__) ++ LLVM_ASM_PARSER(AArch64) ++#else ++# error Unsupported TARGET_ARCH for LLVM_ASM_PARSER ++#endif ++ ++#undef LLVM_ASM_PARSER +diff --git a/device/include/llvm/Config/AsmPrinters.def b/device/include/llvm/Config/AsmPrinters.def +new file mode 100644 +index 0000000..3a396c2 +--- /dev/null ++++ b/device/include/llvm/Config/AsmPrinters.def +@@ -0,0 +1,39 @@ ++//===- 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(__arm__) ++ LLVM_ASM_PRINTER(ARM) ++#elif defined(__mips__) ++ LLVM_ASM_PRINTER(Mips) ++#elif defined(__i386__) || defined(__x86_64__) ++ LLVM_ASM_PRINTER(X86) ++#elif defined(__aarch64__) ++ LLVM_ASM_PRINTER(AArch64) ++#else ++# error Unsupported TARGET_ARCH for LLVM_ASM_PRINTER ++#endif ++ ++#undef LLVM_ASM_PRINTER +diff --git a/device/include/llvm/Config/Disassemblers.def b/device/include/llvm/Config/Disassemblers.def +new file mode 100644 +index 0000000..aba88f8 +--- /dev/null ++++ b/device/include/llvm/Config/Disassemblers.def +@@ -0,0 +1,39 @@ ++//===- 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_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_DISASSEMBLER ++# error Please define the macro LLVM_DISASSEMBLER(TargetName) ++#endif ++ ++#if defined(__arm__) ++ LLVM_DISASSEMBLER(ARM) ++#elif defined(__mips__) ++ LLVM_DISASSEMBLER(Mips) ++#elif defined(__i386__) || defined(__x86_64__) ++ LLVM_DISASSEMBLER(X86) ++#elif defined(__aarch64__) ++ LLVM_DISASSEMBLER(AArch64) ++#else ++# error Unsupported TARGET_ARCH for LLVM_DISASSEMBLER ++#endif ++ ++#undef LLVM_DISASSEMBLER +diff --git a/device/include/llvm/Config/Targets.def b/device/include/llvm/Config/Targets.def +new file mode 100644 +index 0000000..f30c81f +--- /dev/null ++++ b/device/include/llvm/Config/Targets.def +@@ -0,0 +1,38 @@ ++/*===- 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(__arm__) ++ LLVM_TARGET(ARM) ++#elif defined(__mips__) ++ LLVM_TARGET(Mips) ++#elif defined(__i386__) || defined(__x86_64__) ++ LLVM_TARGET(X86) ++#elif defined(__aarch64__) ++ LLVM_TARGET(AArch64) ++#else ++# error Unsupported TARGET_ARCH for LLVM_TARGET ++#endif ++ ++#undef LLVM_TARGET +diff --git a/device/include/llvm/Config/config.h b/device/include/llvm/Config/config.h +new file mode 100644 +index 0000000..f76132a +--- /dev/null ++++ b/device/include/llvm/Config/config.h +@@ -0,0 +1,689 @@ ++/* include/llvm/Config/config.h. Generated from config.h.in by configure. */ ++/* include/llvm/Config/config.h.in. Generated from autoconf/configure.ac by autoheader. */ ++ ++#ifndef CONFIG_H ++#define CONFIG_H ++ ++/* Bug report URL. */ ++#define BUG_REPORT_URL "http://llvm.org/bugs/" ++ ++/* Relative directory for resource files */ ++#define CLANG_RESOURCE_DIR "" ++ ++/* Directories clang will search for headers */ ++#define C_INCLUDE_DIRS "" ++ ++/* Default <path> to all compiler invocations for --sysroot=<path>. */ ++#define DEFAULT_SYSROOT "" ++ ++/* Define if position independent code is enabled */ ++#define ENABLE_PIC 1 ++ ++/* Define if timestamp information (e.g., __DATE___) is allowed */ ++#define ENABLE_TIMESTAMPS 1 ++ ++/* Directory where gcc is installed. */ ++#define GCC_INSTALL_PREFIX "" ++ ++/* Define to 1 if you have the `argz_append' function. */ ++/* #undef HAVE_ARGZ_APPEND */ ++ ++/* Define to 1 if you have the `argz_create_sep' function. */ ++/* #undef HAVE_ARGZ_CREATE_SEP */ ++ ++/* Define to 1 if you have the <argz.h> header file. */ ++/* #undef HAVE_ARGZ_H */ ++ ++/* Define to 1 if you have the `argz_insert' function. */ ++/* #undef HAVE_ARGZ_INSERT */ ++ ++/* Define to 1 if you have the `argz_next' function. */ ++/* #undef HAVE_ARGZ_NEXT */ ++ ++/* Define to 1 if you have the `argz_stringify' function. */ ++/* #undef HAVE_ARGZ_STRINGIFY */ ++ ++/* Define to 1 if you have the <assert.h> header file. */ ++#define HAVE_ASSERT_H 1 ++ ++/* Define to 1 if you have the `backtrace' function. */ ++#if defined(HAVE_BACKTRACE) && HAVE_BACKTRACE == 0 ++/* Defined by AndroidConfig.h as 0 */ ++#undef HAVE_BACKTRACE ++#endif ++ ++/* Define to 1 if you have the `bcopy' function. */ ++/* #undef HAVE_BCOPY */ ++ ++/* Define to 1 if you have the `ceilf' function. */ ++#define HAVE_CEILF 1 ++ ++/* Define if the neat program is available */ ++/* #undef HAVE_CIRCO */ ++ ++/* Define to 1 if you have the `closedir' function. */ ++#define HAVE_CLOSEDIR 1 ++ ++/* Define to 1 if you have the <CrashReporterClient.h> header file. */ ++/* #undef HAVE_CRASHREPORTERCLIENT_H */ ++ ++/* Define if __crashreporter_info__ exists. */ ++/* #undef HAVE_CRASHREPORTER_INFO */ ++ ++/* Define to 1 if you have the <ctype.h> header file. */ ++#define HAVE_CTYPE_H 1 ++ ++/* Define to 1 if you have the <cxxabi.h> header file. */ ++#define HAVE_CXXABI_H 0 ++ ++/* 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 <dirent.h> header file, and it defines `DIR'. ++ */ ++#define HAVE_DIRENT_H 1 ++ ++/* Define if you have the GNU dld library. */ ++/* #undef HAVE_DLD */ ++ ++/* Define to 1 if you have the <dld.h> header file. */ ++/* #undef HAVE_DLD_H */ ++ ++/* Define to 1 if you have the `dlerror' function. */ ++#define HAVE_DLERROR 1 ++ ++/* Define to 1 if you have the <dlfcn.h> header file. */ ++#define HAVE_DLFCN_H 1 ++ ++/* Define if dlopen() is available on this platform. */ ++#define HAVE_DLOPEN 1 ++ ++/* Define to 1 if you have the <dl.h> header file. */ ++/* #undef HAVE_DL_H */ ++ ++/* Define if the dot program is available */ ++/* #undef HAVE_DOT */ ++ ++/* Define if the dotty program is available */ ++/* #undef HAVE_DOTTY */ ++ ++/* Define if you have the _dyld_func_lookup function. */ ++/* #undef HAVE_DYLD */ ++ ++/* Define to 1 if you have the <errno.h> header file. */ ++#define HAVE_ERRNO_H 1 ++ ++/* Define to 1 if the system has the type `error_t'. */ ++#define HAVE_ERROR_T 1 ++ ++/* Define to 1 if you have the <execinfo.h> header file. */ ++#define HAVE_EXECINFO_H 0 ++ ++/* Define to 1 if you have the <fcntl.h> header file. */ ++#define HAVE_FCNTL_H 1 ++ ++/* Define if the neat program is available */ ++/* #undef HAVE_FDP */ ++ ++/* Define to 1 if you have the <fenv.h> 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 <ffi/ffi.h> header file. */ ++/* #undef HAVE_FFI_FFI_H */ ++ ++/* Define to 1 if you have the <ffi.h> header file. */ ++/* #undef HAVE_FFI_H */ ++ ++/* Set to 1 if the finite function is found in <ieeefp.h> */ ++/* #undef HAVE_FINITE_IN_IEEEFP_H */ ++ ++/* Define to 1 if you have the `floorf' function. */ ++#define HAVE_FLOORF 1 ++ ++/* Define to 1 if you have the `fmodf' function. */ ++#define HAVE_FMODF 1 ++ ++/* Define to 1 if you have the `futimens' function. */ ++#define HAVE_FUTIMENS 1 ++ ++/* Define to 1 if you have the `getcwd' function. */ ++#define HAVE_GETCWD 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 `gettimeofday' function. */ ++#define HAVE_GETTIMEOFDAY 1 ++ ++/* Define if the Graphviz program is available */ ++/* #undef HAVE_GRAPHVIZ */ ++ ++/* Define if the gv program is available */ ++/* #undef HAVE_GV */ ++ ++/* Define to 1 if you have the `index' function. */ ++/* #undef HAVE_INDEX */ ++ ++/* Define to 1 if the system has the type `int64_t'. */ ++#define HAVE_INT64_T 1 ++ ++/* Define to 1 if you have the <inttypes.h> header file. */ ++#define HAVE_INTTYPES_H 1 ++ ++/* Define to 1 if you have the `isatty' function. */ ++#define HAVE_ISATTY 1 ++ ++/* Set to 1 if the isinf function is found in <cmath> */ ++#define HAVE_ISINF_IN_CMATH 1 ++ ++/* Set to 1 if the isinf function is found in <math.h> */ ++#define HAVE_ISINF_IN_MATH_H 1 ++ ++/* Set to 1 if the isnan function is found in <cmath> */ ++#define HAVE_ISNAN_IN_CMATH 1 ++ ++/* Set to 1 if the isnan function is found in <math.h> */ ++#define HAVE_ISNAN_IN_MATH_H 1 ++ ++/* Define if you have the libdl library or equivalent. */ ++#define HAVE_LIBDL 1 ++ ++/* Define to 1 if you have the `imagehlp' library (-limagehlp). */ ++/* #undef HAVE_LIBIMAGEHLP */ ++ ++/* Define to 1 if you have the `m' library (-lm). */ ++#define HAVE_LIBM 1 ++ ++/* 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 `udis86' library (-ludis86). */ ++/* #undef HAVE_LIBUDIS86 */ ++ ++/* Define to 1 if you have the <limits.h> header file. */ ++#define HAVE_LIMITS_H 1 ++ ++/* Define if you can use -Wl,-export-dynamic. */ ++#define HAVE_LINK_EXPORT_DYNAMIC 1 ++ ++/* Define to 1 if you have the <link.h> header file. */ ++#define HAVE_LINK_H 1 ++ ++/* Define if you can use -Wl,-R. to pass -R. to the linker, in order to add ++ the current directory to the dynamic linker search path. */ ++#define HAVE_LINK_R 1 ++ ++/* Define to 1 if you have the `longjmp' function. */ ++#define HAVE_LONGJMP 1 ++ ++/* Define to 1 if you have the <mach/mach.h> header file. */ ++/* #undef HAVE_MACH_MACH_H */ ++ ++/* Define to 1 if you have the <mach-o/dyld.h> header file. */ ++/* #undef HAVE_MACH_O_DYLD_H */ ++ ++/* Define if mallinfo() is available on this platform. */ ++#define HAVE_MALLINFO 1 ++ ++/* Define to 1 if you have the <malloc.h> header file. */ ++//#define HAVE_MALLOC_H 1 /* Defined by AndroidConfig.h */ ++ ++/* Define to 1 if you have the <malloc/malloc.h> header file. */ ++/* #undef HAVE_MALLOC_MALLOC_H */ ++ ++/* Define to 1 if you have the `malloc_zone_statistics' function. */ ++/* #undef HAVE_MALLOC_ZONE_STATISTICS */ ++ ++/* Define to 1 if you have the `memcpy' function. */ ++#define HAVE_MEMCPY 1 ++ ++/* Define to 1 if you have the `memmove' function. */ ++#define HAVE_MEMMOVE 1 ++ ++/* Define to 1 if you have the <memory.h> header file. */ ++#define HAVE_MEMORY_H 1 ++ ++/* Define to 1 if you have the `mkdtemp' function. */ ++#define HAVE_MKDTEMP 0 ++ ++/* Define to 1 if you have the `mkstemp' function. */ ++#define HAVE_MKSTEMP 1 ++ ++/* Define to 1 if you have the `mktemp' function. */ ++#define HAVE_MKTEMP 1 ++ ++/* Define to 1 if you have a working `mmap' system call. */ ++#define HAVE_MMAP 1 ++ ++/* Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if ++ it uses MAP_ANON */ ++#define HAVE_MMAP_ANONYMOUS 1 ++ ++/* Define if mmap() can map files into memory */ ++#define HAVE_MMAP_FILE ++ ++/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */ ++/* #undef HAVE_NDIR_H */ ++ ++/* Define to 1 if you have the `nearbyintf' function. */ ++#define HAVE_NEARBYINTF 1 ++ ++/* Define if the neat program is available */ ++/* #undef HAVE_NEATO */ ++ ++/* Define to 1 if you have the `opendir' function. */ ++#define HAVE_OPENDIR 1 ++ ++/* Define to 1 if you have the `posix_spawn' function. */ ++/* #undef HAVE_POSIX_SPAWN */ ++ ++/* Define to 1 if you have the `powf' function. */ ++#define HAVE_POWF 1 ++ ++/* Define to 1 if you have the `pread' function. */ ++#define HAVE_PREAD 1 ++ ++/* Define if libtool can extract symbol lists from object files. */ ++#define HAVE_PRELOADED_SYMBOLS 1 ++ ++/* Define to have the %a format string */ ++#define HAVE_PRINTF_A 1 ++ ++/* Have pthread_getspecific */ ++#define HAVE_PTHREAD_GETSPECIFIC 1 ++ ++/* Define to 1 if you have the <pthread.h> 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 srand48/lrand48/drand48 exist in <stdlib.h> */ ++#define HAVE_RAND48 1 ++ ++/* Define to 1 if you have the `readdir' function. */ ++#define HAVE_READDIR 1 ++ ++/* Define to 1 if you have the `realpath' function. */ ++#define HAVE_REALPATH 1 ++ ++/* Define to 1 if you have the `rindex' function. */ ++/* #undef HAVE_RINDEX */ ++ ++/* Define to 1 if you have the `rintf' function. */ ++#define HAVE_RINTF 1 ++ ++/* Define to 1 if you have the `round' function. */ ++#define HAVE_ROUND 1 ++ ++/* Define to 1 if you have the `roundf' function. */ ++#define HAVE_ROUNDF 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 `setjmp' function. */ ++#define HAVE_SETJMP 1 ++ ++/* Define to 1 if you have the <setjmp.h> header file. */ ++#define HAVE_SETJMP_H 1 ++ ++/* Define to 1 if you have the `setrlimit' function. */ ++#define HAVE_SETRLIMIT 1 ++ ++/* Define if you have the shl_load function. */ ++/* #undef HAVE_SHL_LOAD */ ++ ++/* Define to 1 if you have the `siglongjmp' function. */ ++#define HAVE_SIGLONGJMP 1 ++ ++/* Define to 1 if you have the <signal.h> header file. */ ++#define HAVE_SIGNAL_H 1 ++ ++/* Define to 1 if you have the `sigsetjmp' function. */ ++/* #undef HAVE_SIGSETJMP */ ++ ++/* Define to 1 if you have the <stdint.h> header file. */ ++#define HAVE_STDINT_H 1 ++ ++/* Define to 1 if you have the <stdio.h> header file. */ ++#define HAVE_STDIO_H 1 ++ ++/* Define to 1 if you have the <stdlib.h> header file. */ ++#define HAVE_STDLIB_H 1 ++ ++/* Set to 1 if the std::isinf function is found in <cmath> */ ++/* #undef HAVE_STD_ISINF_IN_CMATH */ ++ ++/* Set to 1 if the std::isnan function is found in <cmath> */ ++#define HAVE_STD_ISNAN_IN_CMATH 1 ++ ++/* Define to 1 if you have the `strchr' function. */ ++#define HAVE_STRCHR 1 ++ ++/* Define to 1 if you have the `strcmp' function. */ ++#define HAVE_STRCMP 1 ++ ++/* Define to 1 if you have the `strdup' function. */ ++#define HAVE_STRDUP 1 ++ ++/* Define to 1 if you have the `strerror' function. */ ++#define HAVE_STRERROR 1 ++ ++/* Define to 1 if you have the `strerror_r' function. */ ++#ifndef USE_MINGW ++#define HAVE_STRERROR_R 1 ++#endif ++ ++/* Define to 1 if you have the <strings.h> header file. */ ++#define HAVE_STRINGS_H 1 ++ ++/* Define to 1 if you have the <string.h> header file. */ ++#define HAVE_STRING_H 1 ++ ++/* Define to 1 if you have the `strrchr' function. */ ++#define HAVE_STRRCHR 1 ++ ++/* Define to 1 if you have the `strtof' function. */ ++#define HAVE_STRTOF 1 ++ ++/* Define to 1 if you have the `strtoll' function. */ ++#define HAVE_STRTOLL 1 ++ ++/* Define to 1 if you have the `strtoq' function. */ ++#define HAVE_STRTOQ 1 ++ ++/* Define to 1 if you have the `sysconf' function. */ ++#define HAVE_SYSCONF 1 ++ ++/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'. ++ */ ++/* #undef HAVE_SYS_DIR_H */ ++ ++/* Define to 1 if you have the <sys/dl.h> header file. */ ++/* #undef HAVE_SYS_DL_H */ ++ ++/* Define to 1 if you have the <sys/ioctl.h> header file. */ ++#define HAVE_SYS_IOCTL_H 1 ++ ++/* Define to 1 if you have the <sys/mman.h> header file. */ ++#define HAVE_SYS_MMAN_H 1 ++ ++/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'. ++ */ ++/* #undef HAVE_SYS_NDIR_H */ ++ ++/* Define to 1 if you have the <sys/param.h> header file. */ ++#define HAVE_SYS_PARAM_H 1 ++ ++/* Define to 1 if you have the <sys/resource.h> header file. */ ++#define HAVE_SYS_RESOURCE_H 1 ++ ++/* Define to 1 if you have the <sys/stat.h> header file. */ ++#define HAVE_SYS_STAT_H 1 ++ ++/* Define to 1 if you have the <sys/time.h> header file. */ ++#define HAVE_SYS_TIME_H 1 ++ ++/* Define to 1 if you have the <sys/types.h> header file. */ ++#define HAVE_SYS_TYPES_H 1 ++ ++/* Define to 1 if you have the <sys/uio.h> header file. */ ++#define HAVE_SYS_UIO_H 1 ++ ++/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */ ++#define HAVE_SYS_WAIT_H 1 ++ ++/* Define to 1 if you have the <termios.h> header file. */ ++#define HAVE_TERMIOS_H 1 ++ ++/* Define if the neat program is available */ ++/* #undef HAVE_TWOPI */ ++ ++/* Define to 1 if the system has the type `uint64_t'. */ ++#define HAVE_UINT64_T 1 ++ ++/* Define to 1 if you have the <unistd.h> header file. */ ++#define HAVE_UNISTD_H 1 ++ ++/* Define to 1 if you have the <utime.h> header file. */ ++#define HAVE_UTIME_H 1 ++ ++/* Define to 1 if the system has the type `u_int64_t'. */ ++/* #undef HAVE_U_INT64_T */ ++ ++/* Define to 1 if you have the <valgrind/valgrind.h> header file. */ ++/* #undef HAVE_VALGRIND_VALGRIND_H */ ++ ++/* Define to 1 if you have the <windows.h> header file. */ ++/* #undef HAVE_WINDOWS_H */ ++ ++/* Define to 1 if you have the `writev' function. */ ++#define HAVE_WRITEV 1 ++ ++/* Define if the xdot.py program is available */ ++/* #undef HAVE_XDOT_PY */ ++ ++/* Have host's _alloca */ ++/* #undef HAVE__ALLOCA */ ++ ++/* 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 __cmpdi2 */ ++/* #undef HAVE___CMPDI2 */ ++ ++/* Have host's __divdi3 */ ++/* #undef HAVE___DIVDI3 */ ++ ++/* Define to 1 if you have the `__dso_handle' function. */ ++#define HAVE___DSO_HANDLE 1 ++ ++/* 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 */ ++ ++/* Linker version detected at compile time. */ ++#define HOST_LINK_VERSION "2.20.1" ++ ++/* Installation directory for binary executables */ ++#define LLVM_BINDIR "/opt/llvm-android/bin" ++ ++/* Time at which LLVM was configured */ ++#define LLVM_CONFIGTIME "Tue May 8 14:22:45 CST 2012" ++ ++/* Installation directory for data files */ ++#define LLVM_DATADIR "/opt/llvm-android/share/llvm" ++ ++/* Target triple LLVM will generate code for by default */ ++#define LLVM_DEFAULT_TARGET_TRIPLE "i386-unknown-linux" ++ ++/* Installation directory for documentation */ ++#define LLVM_DOCSDIR "/opt/llvm-android/share/doc/llvm" ++ ++/* Define if threads enabled */ ++#define LLVM_ENABLE_THREADS 1 ++ ++/* Installation directory for config files */ ++#define LLVM_ETCDIR "/opt/llvm-android/etc/llvm" ++ ++/* Has gcc/MSVC atomic intrinsics */ ++#define LLVM_HAS_ATOMICS 1 ++ ++/* Installation directory for include files */ ++#define LLVM_INCLUDEDIR "/opt/llvm-android/include" ++ ++/* Installation directory for .info files */ ++#define LLVM_INFODIR "/opt/llvm-android/info" ++ ++/* Installation directory for libraries */ ++#define LLVM_LIBDIR "/opt/llvm-android/lib" ++ ++/* Installation directory for man pages */ ++#define LLVM_MANDIR "/opt/llvm-android/man" ++ ++/* Define to path to circo program if found or 'echo circo' otherwise */ ++/* #undef LLVM_PATH_CIRCO */ ++ ++/* Define to path to dot program if found or 'echo dot' otherwise */ ++/* #undef LLVM_PATH_DOT */ ++ ++/* Define to path to dotty program if found or 'echo dotty' otherwise */ ++/* #undef LLVM_PATH_DOTTY */ ++ ++/* Define to path to fdp program if found or 'echo fdp' otherwise */ ++/* #undef LLVM_PATH_FDP */ ++ ++/* Define to path to Graphviz program if found or 'echo Graphviz' otherwise */ ++/* #undef LLVM_PATH_GRAPHVIZ */ ++ ++/* Define to path to gv program if found or 'echo gv' otherwise */ ++/* #undef LLVM_PATH_GV */ ++ ++/* Define to path to neato program if found or 'echo neato' otherwise */ ++/* #undef LLVM_PATH_NEATO */ ++ ++/* Define to path to twopi program if found or 'echo twopi' otherwise */ ++/* #undef LLVM_PATH_TWOPI */ ++ ++/* Define to path to xdot.py program if found or 'echo xdot.py' otherwise */ ++/* #undef LLVM_PATH_XDOT_PY */ ++ ++/* Installation prefix directory */ ++#define LLVM_PREFIX "/opt/llvm-android" ++ ++/* 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 ++ ++/* Major version of the LLVM API */ ++#define LLVM_VERSION_MAJOR 3 ++ ++/* Minor version of the LLVM API */ ++#define LLVM_VERSION_MINOR 4 ++ ++/* Define if the OS needs help to load dependent libraries for dlopen(). */ ++/* #undef LTDL_DLOPEN_DEPLIBS */ ++ ++/* Define to the sub-directory in which libtool stores uninstalled libraries. ++ */ ++#define LTDL_OBJDIR ".libs/" ++ ++/* Define to the name of the environment variable that determines the dynamic ++ library search path. */ ++#define LTDL_SHLIBPATH_VAR "LD_LIBRARY_PATH" ++ ++/* Define to the extension used for shared libraries, say, ".so". */ ++#define LTDL_SHLIB_EXT ".so" ++ ++/* Define to the system default library search path. */ ++#define LTDL_SYSSEARCHPATH "/lib:/usr/lib:/usr/local/lib:/lib:/usr/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib32:/usr/lib32:/usr/local/lib32:/usr/x86_64-pc-linux-gnu/lib:/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4:/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/32:/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2:/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32" ++ ++/* Define if /dev/zero should be used when mapping RWX memory, or undefine if ++ its not necessary */ ++/* #undef NEED_DEV_ZERO_FOR_MMAP */ ++ ++/* Define if dlsym() requires a leading underscore in symbol names. */ ++/* #undef NEED_USCORE */ ++ ++/* Define to the address where bug reports for this package should be sent. */ ++#define PACKAGE_BUGREPORT "http://llvm.org/bugs/" ++ ++/* 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 3.4" ++ ++/* Define to the one symbol short name of this package. */ ++#define PACKAGE_TARNAME "llvm" ++ ++/* Define to the version of this package. */ ++#define PACKAGE_VERSION "3.4" ++ ++/* Define as the return type of signal handlers (`int' or `void'). */ ++#define RETSIGTYPE void ++ ++/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */ ++/* #undef STAT_MACROS_BROKEN */ ++ ++/* Define to 1 if you have the ANSI C header files. */ ++#define STDC_HEADERS 1 ++ ++/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ ++#define TIME_WITH_SYS_TIME 1 ++ ++/* Define to 1 if your <sys/time.h> declares `struct tm'. */ ++/* #undef TM_IN_SYS_TIME */ ++ ++/* Define if use udis86 library */ ++#define USE_UDIS86 0 ++ ++/* Define to empty if `const' does not conform to ANSI C. */ ++/* #undef const */ ++ ++/* Define to a type to use for `error_t' if it is not otherwise available. */ ++/* #undef error_t */ ++ ++/* Define to `int' if <sys/types.h> does not define. */ ++/* #undef pid_t */ ++ ++/* Define to `unsigned int' if <sys/types.h> does not define. */ ++/* #undef size_t */ ++ ++#include "llvm/Config/llvm-platform-config.h" ++ ++#endif +diff --git a/device/include/llvm/Config/llvm-config.h b/device/include/llvm/Config/llvm-config.h +new file mode 100644 +index 0000000..637daed +--- /dev/null ++++ b/device/include/llvm/Config/llvm-config.h +@@ -0,0 +1,94 @@ ++/* include/llvm/Config/llvm-config.h. Generated from llvm-config.h.in by configure. */ ++/*===-- llvm/config/llvm-config.h - llvm configure variable -------*- 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 llvm variables from configure so that ++ they can be in exported headers and won't override package specific ++ directives. This is a C file so we can include it in the llvm-c headers. */ ++ ++/* To avoid multiple inclusions of these variables when we include the exported ++ headers and config.h, conditionally include these. */ ++/* TODO: This is a bit of a hack. */ ++#ifndef CONFIG_H ++ ++/* Installation directory for binary executables */ ++#define LLVM_BINDIR "/opt/llvm-android/bin" ++ ++/* Time at which LLVM was configured */ ++#define LLVM_CONFIGTIME "Tue May 8 14:22:45 CST 2012" ++ ++/* Installation directory for data files */ ++#define LLVM_DATADIR "/opt/llvm-android/share/llvm" ++ ++/* Target triple LLVM will generate code for by default */ ++#define LLVM_DEFAULT_TARGET_TRIPLE "i386-unknown-linux" ++ ++/* Installation directory for documentation */ ++#define LLVM_DOCSDIR "/opt/llvm-android/share/doc/llvm" ++ ++/* Define if threads enabled */ ++#define LLVM_ENABLE_THREADS 1 ++ ++/* Installation directory for config files */ ++#define LLVM_ETCDIR "/opt/llvm-android/etc/llvm" ++ ++/* Has gcc/MSVC atomic intrinsics */ ++#define LLVM_HAS_ATOMICS 1 ++ ++/* Installation directory for include files */ ++#define LLVM_INCLUDEDIR "/opt/llvm-android/include" ++ ++/* Installation directory for .info files */ ++#define LLVM_INFODIR "/opt/llvm-android/info" ++ ++/* Installation directory for libraries */ ++#define LLVM_LIBDIR "/opt/llvm-android/lib" ++ ++/* Installation directory for man pages */ ++#define LLVM_MANDIR "/opt/llvm-android/man" ++ ++/* Define to path to circo program if found or 'echo circo' otherwise */ ++/* #undef LLVM_PATH_CIRCO */ ++ ++/* Define to path to dot program if found or 'echo dot' otherwise */ ++/* #undef LLVM_PATH_DOT */ ++ ++/* Define to path to dotty program if found or 'echo dotty' otherwise */ ++/* #undef LLVM_PATH_DOTTY */ ++ ++/* Define to path to fdp program if found or 'echo fdp' otherwise */ ++/* #undef LLVM_PATH_FDP */ ++ ++/* Define to path to Graphviz program if found or 'echo Graphviz' otherwise */ ++/* #undef LLVM_PATH_GRAPHVIZ */ ++ ++/* Define to path to gv program if found or 'echo gv' otherwise */ ++/* #undef LLVM_PATH_GV */ ++ ++/* Define to path to neato program if found or 'echo neato' otherwise */ ++/* #undef LLVM_PATH_NEATO */ ++ ++/* Define to path to twopi program if found or 'echo twopi' otherwise */ ++/* #undef LLVM_PATH_TWOPI */ ++ ++/* Define to path to xdot.py program if found or 'echo xdot.py' otherwise */ ++/* #undef LLVM_PATH_XDOT_PY */ ++ ++/* Installation prefix directory */ ++#define LLVM_PREFIX "/opt/llvm-android" ++ ++/* Major version of the LLVM API */ ++#define LLVM_VERSION_MAJOR 3 ++ ++/* Minor version of the LLVM API */ ++#define LLVM_VERSION_MINOR 4 ++ ++#include "llvm/Config/llvm-platform-config.h" ++ ++#endif +diff --git a/host/include/llvm/Config/AsmParsers.def b/host/include/llvm/Config/AsmParsers.def +new file mode 100644 +index 0000000..8fd67da +--- /dev/null ++++ b/host/include/llvm/Config/AsmParsers.def +@@ -0,0 +1,32 @@ ++//===- 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 ++ ++LLVM_ASM_PARSER(ARM) ++LLVM_ASM_PARSER(Mips) ++LLVM_ASM_PARSER(X86) ++LLVM_ASM_PARSER(AArch64) ++ ++#undef LLVM_ASM_PARSER +diff --git a/host/include/llvm/Config/AsmPrinters.def b/host/include/llvm/Config/AsmPrinters.def +new file mode 100644 +index 0000000..07f6adf +--- /dev/null ++++ b/host/include/llvm/Config/AsmPrinters.def +@@ -0,0 +1,32 @@ ++//===- 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 ++ ++LLVM_ASM_PRINTER(ARM) ++LLVM_ASM_PRINTER(Mips) ++LLVM_ASM_PRINTER(X86) ++LLVM_ASM_PRINTER(AArch64) ++ ++#undef LLVM_ASM_PRINTER +diff --git a/host/include/llvm/Config/Disassemblers.def b/host/include/llvm/Config/Disassemblers.def +new file mode 100644 +index 0000000..18557af +--- /dev/null ++++ b/host/include/llvm/Config/Disassemblers.def +@@ -0,0 +1,32 @@ ++//===- 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_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_DISASSEMBLER ++# error Please define the macro LLVM_DISASSEMBLER(TargetName) ++#endif ++ ++LLVM_DISASSEMBLER(ARM) ++LLVM_DISASSEMBLER(Mips) ++LLVM_DISASSEMBLER(X86) ++LLVM_DISASSEMBLER(AArch64) ++ ++#undef LLVM_DISASSEMBLER +diff --git a/host/include/llvm/Config/Targets.def b/host/include/llvm/Config/Targets.def +new file mode 100644 +index 0000000..2985cf3 +--- /dev/null ++++ b/host/include/llvm/Config/Targets.def +@@ -0,0 +1,31 @@ ++/*===- 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 ++ ++LLVM_TARGET(ARM) ++LLVM_TARGET(Mips) ++LLVM_TARGET(X86) ++LLVM_TARGET(AArch64) ++ ++#undef LLVM_TARGET +diff --git a/host/include/llvm/Config/config.h b/host/include/llvm/Config/config.h +new file mode 100644 +index 0000000..8e65910 +--- /dev/null ++++ b/host/include/llvm/Config/config.h +@@ -0,0 +1,725 @@ ++/* include/llvm/Config/config.h. Generated from config.h.in by configure. */ ++/* include/llvm/Config/config.h.in. Generated from autoconf/configure.ac by autoheader. */ ++ ++#ifndef CONFIG_H ++#define CONFIG_H ++ ++/* Bug report URL. */ ++#define BUG_REPORT_URL "http://llvm.org/bugs/" ++ ++/* Relative directory for resource files */ ++#define CLANG_RESOURCE_DIR "" ++ ++/* Directories clang will search for headers */ ++#define C_INCLUDE_DIRS "" ++ ++/* Default <path> to all compiler invocations for --sysroot=<path>. */ ++#define DEFAULT_SYSROOT "" ++ ++/* Define if position independent code is enabled */ ++#define ENABLE_PIC 1 ++ ++/* Define if timestamp information (e.g., __DATE___) is allowed */ ++#define ENABLE_TIMESTAMPS 1 ++ ++/* Directory where gcc is installed. */ ++#define GCC_INSTALL_PREFIX "" ++ ++/* Define to 1 if you have the `argz_append' function. */ ++/* #undef HAVE_ARGZ_APPEND */ ++ ++/* Define to 1 if you have the `argz_create_sep' function. */ ++/* #undef HAVE_ARGZ_CREATE_SEP */ ++ ++/* Define to 1 if you have the <argz.h> header file. */ ++/* #undef HAVE_ARGZ_H */ ++ ++/* Define to 1 if you have the `argz_insert' function. */ ++/* #undef HAVE_ARGZ_INSERT */ ++ ++/* Define to 1 if you have the `argz_next' function. */ ++/* #undef HAVE_ARGZ_NEXT */ ++ ++/* Define to 1 if you have the `argz_stringify' function. */ ++/* #undef HAVE_ARGZ_STRINGIFY */ ++ ++/* Define to 1 if you have the <assert.h> header file. */ ++#define HAVE_ASSERT_H 1 ++ ++/* Define to 1 if you have the `backtrace' function. */ ++/* #define HAVE_BACKTRACE 1 */ /* Defined by AndroidConfig.h */ ++ ++/* Define to 1 if you have the `bcopy' function. */ ++/* #undef HAVE_BCOPY */ ++ ++/* Define to 1 if you have the `ceilf' function. */ ++#define HAVE_CEILF 1 ++ ++/* Define if the neat program is available */ ++/* #undef HAVE_CIRCO */ ++ ++/* Define to 1 if you have the `closedir' function. */ ++#define HAVE_CLOSEDIR 1 ++ ++/* Define to 1 if you have the <CrashReporterClient.h> header file. */ ++/* #undef HAVE_CRASHREPORTERCLIENT_H */ ++ ++/* Define if __crashreporter_info__ exists. */ ++#define HAVE_CRASHREPORTER_INFO 0 ++ ++/* Define to 1 if you have the <ctype.h> header file. */ ++#define HAVE_CTYPE_H 1 ++ ++/* Define to 1 if you have the <cxxabi.h> header file. */ ++#define HAVE_CXXABI_H 0 ++ ++/* 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 <dirent.h> header file, and it defines `DIR'. ++ */ ++#define HAVE_DIRENT_H 1 ++ ++/* Define if you have the GNU dld library. */ ++/* #undef HAVE_DLD */ ++ ++/* Define to 1 if you have the <dld.h> header file. */ ++/* #undef HAVE_DLD_H */ ++ ++/* Define to 1 if you have the `dlerror' function. */ ++#define HAVE_DLERROR 1 ++ ++/* Define to 1 if you have the <dlfcn.h> header file. */ ++#define HAVE_DLFCN_H 1 ++ ++/* Define if dlopen() is available on this platform. */ ++#define HAVE_DLOPEN 1 ++ ++/* Define to 1 if you have the <dl.h> header file. */ ++/* #undef HAVE_DL_H */ ++ ++/* Define if the dot program is available */ ++/* #undef HAVE_DOT */ ++ ++/* Define if the dotty program is available */ ++/* #undef HAVE_DOTTY */ ++ ++/* Define if you have the _dyld_func_lookup function. */ ++/* #undef HAVE_DYLD */ ++ ++/* Define to 1 if you have the <errno.h> header file. */ ++#define HAVE_ERRNO_H 1 ++ ++/* Define to 1 if the system has the type `error_t'. */ ++#define HAVE_ERROR_T 1 ++ ++/* Define to 1 if you have the <execinfo.h> header file. */ ++#define HAVE_EXECINFO_H 1 ++ ++/* Define to 1 if you have the <fcntl.h> header file. */ ++#define HAVE_FCNTL_H 1 ++ ++/* Define if the neat program is available */ ++/* #undef HAVE_FDP */ ++ ++/* Define to 1 if you have the <fenv.h> 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 <ffi/ffi.h> header file. */ ++/* #undef HAVE_FFI_FFI_H */ ++ ++/* Define to 1 if you have the <ffi.h> header file. */ ++/* #undef HAVE_FFI_H */ ++ ++/* Set to 1 if the finite function is found in <ieeefp.h> */ ++/* #undef HAVE_FINITE_IN_IEEEFP_H */ ++ ++/* Define to 1 if you have the `floorf' function. */ ++#define HAVE_FLOORF 1 ++ ++/* Define to 1 if you have the `fmodf' function. */ ++#define HAVE_FMODF 1 ++ ++#ifdef __APPLE__ ++/* Define to 1 if you have the `futimes' function. */ ++#define HAVE_FUTIMES 1 ++#else ++/* Define to 1 if you have the `futimens' function. */ ++#define HAVE_FUTIMENS 1 ++#endif // __APPLE__ ++ ++/* Define to 1 if you have the `getcwd' function. */ ++#define HAVE_GETCWD 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 `gettimeofday' function. */ ++#define HAVE_GETTIMEOFDAY 1 ++ ++/* Define if the Graphviz program is available */ ++/* #undef HAVE_GRAPHVIZ */ ++ ++/* Define if the gv program is available */ ++/* #undef HAVE_GV */ ++ ++/* Define to 1 if you have the `index' function. */ ++/* #undef HAVE_INDEX */ ++ ++/* Define to 1 if the system has the type `int64_t'. */ ++#define HAVE_INT64_T 1 ++ ++/* Define to 1 if you have the <inttypes.h> header file. */ ++#define HAVE_INTTYPES_H 1 ++ ++/* Define to 1 if you have the `isatty' function. */ ++#define HAVE_ISATTY 1 ++ ++/* Set to 1 if the isinf function is found in <cmath> */ ++#define HAVE_ISINF_IN_CMATH 1 ++ ++/* Set to 1 if the isinf function is found in <math.h> */ ++#define HAVE_ISINF_IN_MATH_H 1 ++ ++/* Set to 1 if the isnan function is found in <cmath> */ ++#define HAVE_ISNAN_IN_CMATH 1 ++ ++/* Set to 1 if the isnan function is found in <math.h> */ ++#define HAVE_ISNAN_IN_MATH_H 1 ++ ++/* Define if you have the libdl library or equivalent. */ ++#define HAVE_LIBDL 1 ++ ++/* Define to 1 if you have the `imagehlp' library (-limagehlp). */ ++/* #undef HAVE_LIBIMAGEHLP */ ++ ++/* Define to 1 if you have the `m' library (-lm). */ ++#define HAVE_LIBM 1 ++ ++/* 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 `shell32' library (-lshell32). */ ++#define HAVE_LIBSHELL32 1 ++ ++/* Define to 1 if you have the `udis86' library (-ludis86). */ ++/* #undef HAVE_LIBUDIS86 */ ++ ++/* Define to 1 if you have the <limits.h> header file. */ ++#define HAVE_LIMITS_H 1 ++ ++/* Define if you can use -Wl,-export-dynamic. */ ++#define HAVE_LINK_EXPORT_DYNAMIC 1 ++ ++/* Define to 1 if you have the <link.h> header file. */ ++#define HAVE_LINK_H 1 ++ ++/* Define if you can use -Wl,-R. to pass -R. to the linker, in order to add ++ the current directory to the dynamic linker search path. */ ++#define HAVE_LINK_R 1 ++ ++/* Define to 1 if you have the `longjmp' function. */ ++#define HAVE_LONGJMP 1 ++ ++/* Define to 1 if you have the <mach/mach.h> header file. */ ++/* #undef HAVE_MACH_MACH_H */ ++ ++/* Define to 1 if you have the <mach-o/dyld.h> header file. */ ++/* #undef HAVE_MACH_O_DYLD_H */ ++ ++/* Define if mallinfo() is available on this platform. */ ++#if !defined(__APPLE__) ++#define HAVE_MALLINFO 1 ++#else ++/* #undef HAVE_MALLINFO */ ++#endif ++ ++/* Define to 1 if you have the <malloc.h> header file. */ ++/* #define HAVE_MALLOC_H 1 */ /* Defined by AndroidConfig.h */ ++ ++/* Define to 1 if you have the <malloc/malloc.h> header file. */ ++/* #undef HAVE_MALLOC_MALLOC_H */ ++ ++/* Define to 1 if you have the `malloc_zone_statistics' function. */ ++/* #undef HAVE_MALLOC_ZONE_STATISTICS */ ++ ++/* Define to 1 if you have the `memcpy' function. */ ++#define HAVE_MEMCPY 1 ++ ++/* Define to 1 if you have the `memmove' function. */ ++#define HAVE_MEMMOVE 1 ++ ++/* Define to 1 if you have the <memory.h> header file. */ ++#define HAVE_MEMORY_H 1 ++ ++/* Define to 1 if you have the `mkdtemp' function. */ ++#define HAVE_MKDTEMP 1 ++ ++/* Define to 1 if you have the `mkstemp' function. */ ++#define HAVE_MKSTEMP 1 ++ ++/* Define to 1 if you have the `mktemp' function. */ ++#define HAVE_MKTEMP 1 ++ ++/* Define to 1 if you have a working `mmap' system call. */ ++#define HAVE_MMAP 1 ++ ++/* Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if ++ it uses MAP_ANON */ ++#if !defined(__APPLE__) ++#define HAVE_MMAP_ANONYMOUS ++#else ++/* #undef HAVE_MMAP_ANONYMOUS */ ++#endif ++ ++/* Define if mmap() can map files into memory */ ++#define HAVE_MMAP_FILE ++ ++/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */ ++/* #undef HAVE_NDIR_H */ ++ ++/* Define to 1 if you have the `nearbyintf' function. */ ++#define HAVE_NEARBYINTF 1 ++ ++/* Define if the neat program is available */ ++/* #undef HAVE_NEATO */ ++ ++/* Define to 1 if you have the `opendir' function. */ ++#define HAVE_OPENDIR 1 ++ ++/* Define to 1 if you have the `posix_spawn' function. */ ++#define HAVE_POSIX_SPAWN 1 ++ ++/* Define to 1 if you have the `powf' function. */ ++#define HAVE_POWF 1 ++ ++/* Define to 1 if you have the `pread' function. */ ++#if !defined(_WIN32) && !defined(_WIN64) ++#define HAVE_PREAD 1 ++#endif ++ ++/* Define if libtool can extract symbol lists from object files. */ ++#define HAVE_PRELOADED_SYMBOLS 1 ++ ++/* Define to have the %a format string */ ++#define HAVE_PRINTF_A 1 ++ ++#if !defined(_WIN32) && !defined(_WIN64) ++ ++/* Have pthread_getspecific */ ++#define HAVE_PTHREAD_GETSPECIFIC 1 ++ ++/* Define to 1 if you have the <pthread.h> 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 ++ ++#endif /* !defined(_WIN32) && !defined(_WIN64) */ ++ ++/* Define to 1 if srand48/lrand48/drand48 exist in <stdlib.h> */ ++#define HAVE_RAND48 1 ++ ++/* Define to 1 if you have the `readdir' function. */ ++#define HAVE_READDIR 1 ++ ++/* Define to 1 if you have the `realpath' function. */ ++#define HAVE_REALPATH 1 ++ ++/* Define to 1 if you have the `rindex' function. */ ++/* #undef HAVE_RINDEX */ ++ ++/* Define to 1 if you have the `rintf' function. */ ++#define HAVE_RINTF 1 ++ ++/* Define to 1 if you have the `round' function. */ ++#define HAVE_ROUND 1 ++ ++/* Define to 1 if you have the `roundf' function. */ ++#define HAVE_ROUNDF 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 `setjmp' function. */ ++#define HAVE_SETJMP 1 ++ ++/* Define to 1 if you have the <setjmp.h> header file. */ ++#define HAVE_SETJMP_H 1 ++ ++/* Define to 1 if you have the `setrlimit' function. */ ++#define HAVE_SETRLIMIT 1 ++ ++/* Define if you have the shl_load function. */ ++/* #undef HAVE_SHL_LOAD */ ++ ++/* Define to 1 if you have the `siglongjmp' function. */ ++#define HAVE_SIGLONGJMP 1 ++ ++/* Define to 1 if you have the <signal.h> header file. */ ++#define HAVE_SIGNAL_H 1 ++ ++/* Define to 1 if you have the `sigsetjmp' function. */ ++/* #undef HAVE_SIGSETJMP */ ++ ++/* Define to 1 if you have the <stdint.h> header file. */ ++#define HAVE_STDINT_H 1 ++ ++/* Define to 1 if you have the <stdio.h> header file. */ ++#define HAVE_STDIO_H 1 ++ ++/* Define to 1 if you have the <stdlib.h> header file. */ ++#define HAVE_STDLIB_H 1 ++ ++/* Set to 1 if the std::isinf function is found in <cmath> */ ++#define HAVE_STD_ISINF_IN_CMATH 1 ++ ++/* Set to 1 if the std::isnan function is found in <cmath> */ ++#define HAVE_STD_ISNAN_IN_CMATH 1 ++ ++/* Define to 1 if you have the `strchr' function. */ ++#define HAVE_STRCHR 1 ++ ++/* Define to 1 if you have the `strcmp' function. */ ++#define HAVE_STRCMP 1 ++ ++/* Define to 1 if you have the `strdup' function. */ ++#define HAVE_STRDUP 1 ++ ++/* Define to 1 if you have the `strerror' function. */ ++#define HAVE_STRERROR 1 ++ ++/* Define to 1 if you have the `strerror_r' function. */ ++#ifndef USE_MINGW ++#define HAVE_STRERROR_R 1 ++#endif ++ ++/* Define to 1 if you have the <strings.h> header file. */ ++#define HAVE_STRINGS_H 1 ++ ++/* Define to 1 if you have the <string.h> header file. */ ++#define HAVE_STRING_H 1 ++ ++/* Define to 1 if you have the `strrchr' function. */ ++#define HAVE_STRRCHR 1 ++ ++/* Define to 1 if you have the `strtof' function. */ ++#define HAVE_STRTOF 1 ++ ++/* Define to 1 if you have the `strtoll' function. */ ++#define HAVE_STRTOLL 1 ++ ++/* Define to 1 if you have the `strtoq' function. */ ++#define HAVE_STRTOQ 1 ++ ++/* Define to 1 if you have the `sysconf' function. */ ++#define HAVE_SYSCONF 1 ++ ++/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'. ++ */ ++/* #undef HAVE_SYS_DIR_H */ ++ ++/* Define to 1 if you have the <sys/dl.h> header file. */ ++/* #undef HAVE_SYS_DL_H */ ++ ++/* Define to 1 if you have the <sys/ioctl.h> header file. */ ++#define HAVE_SYS_IOCTL_H 1 ++ ++/* Define to 1 if you have the <sys/mman.h> header file. */ ++#define HAVE_SYS_MMAN_H 1 ++ ++/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'. ++ */ ++/* #undef HAVE_SYS_NDIR_H */ ++ ++/* Define to 1 if you have the <sys/param.h> header file. */ ++#define HAVE_SYS_PARAM_H 1 ++ ++/* Define to 1 if you have the <sys/resource.h> header file. */ ++#define HAVE_SYS_RESOURCE_H 1 ++ ++/* Define to 1 if you have the <sys/stat.h> header file. */ ++#define HAVE_SYS_STAT_H 1 ++ ++/* Define to 1 if you have the <sys/time.h> header file. */ ++#define HAVE_SYS_TIME_H 1 ++ ++/* Define to 1 if you have the <sys/types.h> header file. */ ++#define HAVE_SYS_TYPES_H 1 ++ ++/* Define to 1 if you have the <sys/uio.h> header file. */ ++/* #define HAVE_SYS_UIO_H 1 */ ++ ++/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */ ++#define HAVE_SYS_WAIT_H 1 ++ ++/* Define to 1 if you have the <termios.h> header file. */ ++#define HAVE_TERMIOS_H 1 ++ ++/* Define if the neat program is available */ ++/* #undef HAVE_TWOPI */ ++ ++/* Define to 1 if the system has the type `uint64_t'. */ ++#define HAVE_UINT64_T 1 ++ ++/* Define to 1 if you have the <unistd.h> header file. */ ++#define HAVE_UNISTD_H 1 ++ ++/* Define to 1 if you have the <utime.h> header file. */ ++#define HAVE_UTIME_H 1 ++ ++/* Define to 1 if the system has the type `u_int64_t'. */ ++/* #undef HAVE_U_INT64_T */ ++ ++/* Define to 1 if you have the <valgrind/valgrind.h> header file. */ ++/* #undef HAVE_VALGRIND_VALGRIND_H */ ++ ++#if defined(_WIN32) || defined(_WIN64) ++/* Define to 1 if you have the <windows.h> header file. */ ++#define HAVE_WINDOWS_H 1 ++ ++/* Define to 1 if you have the `writev' function. */ ++/* #undef HAVE_WRITEV */ ++ ++#else ++/* Define to 1 if you have the <windows.h> header file. */ ++/* #undef HAVE_WINDOWS_H */ ++ ++/* Define to 1 if you have the `writev' function. */ ++#define HAVE_WRITEV 1 ++#endif ++ ++/* Define if the xdot.py program is available */ ++/* #undef HAVE_XDOT_PY */ ++ ++/* Have host's _alloca */ ++/* #undef HAVE__ALLOCA */ ++ ++/* 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 __cmpdi2 */ ++/* #undef HAVE___CMPDI2 */ ++ ++/* Have host's __divdi3 */ ++/* #undef HAVE___DIVDI3 */ ++ ++/* Define to 1 if you have the `__dso_handle' function. */ ++/* #undef HAVE___DSO_HANDLE */ ++ ++/* 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 */ ++ ++/* Linker version detected at compile time. */ ++#define HOST_LINK_VERSION "2.20.1" ++ ++/* Installation directory for binary executables */ ++#define LLVM_BINDIR "/opt/llvm-android/bin" ++ ++/* Time at which LLVM was configured */ ++#define LLVM_CONFIGTIME "Tue May 8 14:22:45 CST 2012" ++ ++/* Installation directory for data files */ ++#define LLVM_DATADIR "/opt/llvm-android/share/llvm" ++ ++/* Target triple LLVM will generate code for by default */ ++#define LLVM_DEFAULT_TARGET_TRIPLE "i386-unknown-linux" ++ ++/* Installation directory for documentation */ ++#define LLVM_DOCSDIR "/opt/llvm-android/share/doc/llvm" ++ ++/* Define if threads enabled */ ++#define LLVM_ENABLE_THREADS 1 ++ ++/* Installation directory for config files */ ++#define LLVM_ETCDIR "/opt/llvm-android/etc/llvm" ++ ++#if !defined(_WIN32) && !defined(_WIN64) ++ ++/* Has gcc/MSVC atomic intrinsics */ ++#define LLVM_HAS_ATOMICS 1 ++ ++#else ++ ++#define LLVM_HAS_ATOMICS 0 ++ ++#endif /* !defined(_WIN32) && !defined(_WIN64) */ ++ ++/* Installation directory for include files */ ++#define LLVM_INCLUDEDIR "/opt/llvm-android/include" ++ ++/* Installation directory for .info files */ ++#define LLVM_INFODIR "/opt/llvm-android/info" ++ ++/* Installation directory for libraries */ ++#define LLVM_LIBDIR "/opt/llvm-android/lib" ++ ++/* Installation directory for man pages */ ++#define LLVM_MANDIR "/opt/llvm-android/man" ++ ++/* Define to path to circo program if found or 'echo circo' otherwise */ ++/* #undef LLVM_PATH_CIRCO */ ++ ++/* Define to path to dot program if found or 'echo dot' otherwise */ ++/* #undef LLVM_PATH_DOT */ ++ ++/* Define to path to dotty program if found or 'echo dotty' otherwise */ ++/* #undef LLVM_PATH_DOTTY */ ++ ++/* Define to path to fdp program if found or 'echo fdp' otherwise */ ++/* #undef LLVM_PATH_FDP */ ++ ++/* Define to path to Graphviz program if found or 'echo Graphviz' otherwise */ ++/* #undef LLVM_PATH_GRAPHVIZ */ ++ ++/* Define to path to gv program if found or 'echo gv' otherwise */ ++/* #undef LLVM_PATH_GV */ ++ ++/* Define to path to neato program if found or 'echo neato' otherwise */ ++/* #undef LLVM_PATH_NEATO */ ++ ++/* Define to path to twopi program if found or 'echo twopi' otherwise */ ++/* #undef LLVM_PATH_TWOPI */ ++ ++/* Define to path to xdot.py program if found or 'echo xdot.py' otherwise */ ++/* #undef LLVM_PATH_XDOT_PY */ ++ ++/* Installation prefix directory */ ++#define LLVM_PREFIX "/opt/llvm-android" ++ ++/* 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 ++ ++/* Major version of the LLVM API */ ++#define LLVM_VERSION_MAJOR 3 ++ ++/* Minor version of the LLVM API */ ++#define LLVM_VERSION_MINOR 5 ++ ++/* Define if the OS needs help to load dependent libraries for dlopen(). */ ++/* #undef LTDL_DLOPEN_DEPLIBS */ ++ ++/* Define to the sub-directory in which libtool stores uninstalled libraries. ++ */ ++#define LTDL_OBJDIR ".libs/" ++ ++/* Define to the name of the environment variable that determines the dynamic ++ library search path. */ ++#define LTDL_SHLIBPATH_VAR "LD_LIBRARY_PATH" ++ ++/* Define to the extension used for shared libraries, say, ".so". */ ++#define LTDL_SHLIB_EXT ".so" ++ ++/* Define to the system default library search path. */ ++#define LTDL_SYSSEARCHPATH "/lib:/usr/lib:/usr/local/lib:/lib:/usr/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib32:/usr/lib32:/usr/local/lib32:/usr/x86_64-pc-linux-gnu/lib:/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4:/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/32:/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2:/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/32" ++ ++/* Define if /dev/zero should be used when mapping RWX memory, or undefine if ++ its not necessary */ ++/* #undef NEED_DEV_ZERO_FOR_MMAP */ ++ ++/* Define if dlsym() requires a leading underscore in symbol names. */ ++/* #undef NEED_USCORE */ ++ ++/* Define to the address where bug reports for this package should be sent. */ ++#define PACKAGE_BUGREPORT "http://llvm.org/bugs/" ++ ++/* 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 3.4" ++ ++/* Define to the one symbol short name of this package. */ ++#define PACKAGE_TARNAME "llvm" ++ ++/* Define to the version of this package. */ ++#define PACKAGE_VERSION "3.4" ++ ++/* Define as the return type of signal handlers (`int' or `void'). */ ++#define RETSIGTYPE void ++ ++/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */ ++/* #undef STAT_MACROS_BROKEN */ ++ ++/* Define to 1 if you have the ANSI C header files. */ ++#define STDC_HEADERS 1 ++ ++/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ ++#define TIME_WITH_SYS_TIME 1 ++ ++/* Define to 1 if your <sys/time.h> declares `struct tm'. */ ++/* #undef TM_IN_SYS_TIME */ ++ ++/* Define if use udis86 library */ ++#define USE_UDIS86 0 ++ ++/* Define to empty if `const' does not conform to ANSI C. */ ++/* #undef const */ ++ ++/* Define to a type to use for `error_t' if it is not otherwise available. */ ++/* #undef error_t */ ++ ++/* Define to `int' if <sys/types.h> does not define. */ ++/* #undef pid_t */ ++ ++/* Define to `unsigned int' if <sys/types.h> does not define. */ ++/* #undef size_t */ ++ ++#include "llvm/Config/llvm-platform-config.h" ++ ++#endif +diff --git a/host/include/llvm/Config/llvm-config.h b/host/include/llvm/Config/llvm-config.h +new file mode 100644 +index 0000000..95f85fe +--- /dev/null ++++ b/host/include/llvm/Config/llvm-config.h +@@ -0,0 +1,102 @@ ++/* include/llvm/Config/llvm-config.h. Generated from llvm-config.h.in by configure. */ ++/*===-- llvm/config/llvm-config.h - llvm configure variable -------*- 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 llvm variables from configure so that ++ they can be in exported headers and won't override package specific ++ directives. This is a C file so we can include it in the llvm-c headers. */ ++ ++/* To avoid multiple inclusions of these variables when we include the exported ++ headers and config.h, conditionally include these. */ ++/* TODO: This is a bit of a hack. */ ++#ifndef CONFIG_H ++ ++/* Installation directory for binary executables */ ++#define LLVM_BINDIR "/opt/llvm-android/bin" ++ ++/* Time at which LLVM was configured */ ++#define LLVM_CONFIGTIME "Tue May 8 14:22:45 CST 2012" ++ ++/* Installation directory for data files */ ++#define LLVM_DATADIR "/opt/llvm-android/share/llvm" ++ ++/* Target triple LLVM will generate code for by default */ ++#define LLVM_DEFAULT_TARGET_TRIPLE "i386-unknown-linux" ++ ++/* Installation directory for documentation */ ++#define LLVM_DOCSDIR "/opt/llvm-android/share/doc/llvm" ++ ++/* Define if threads enabled */ ++#define LLVM_ENABLE_THREADS 1 ++ ++/* Installation directory for config files */ ++#define LLVM_ETCDIR "/opt/llvm-android/etc/llvm" ++ ++#if !defined(_WIN32) && !defined(_WIN64) ++ ++/* Has gcc/MSVC atomic intrinsics */ ++#define LLVM_HAS_ATOMICS 1 ++ ++#else ++ ++#define LLVM_HAS_ATOMICS 0 ++ ++#endif /* !defined(_WIN32) && !defined(_WIN64) */ ++ ++/* Installation directory for include files */ ++#define LLVM_INCLUDEDIR "/opt/llvm-android/include" ++ ++/* Installation directory for .info files */ ++#define LLVM_INFODIR "/opt/llvm-android/info" ++ ++/* Installation directory for libraries */ ++#define LLVM_LIBDIR "/opt/llvm-android/lib" ++ ++/* Installation directory for man pages */ ++#define LLVM_MANDIR "/opt/llvm-android/man" ++ ++/* Define to path to circo program if found or 'echo circo' otherwise */ ++/* #undef LLVM_PATH_CIRCO */ ++ ++/* Define to path to dot program if found or 'echo dot' otherwise */ ++/* #undef LLVM_PATH_DOT */ ++ ++/* Define to path to dotty program if found or 'echo dotty' otherwise */ ++/* #undef LLVM_PATH_DOTTY */ ++ ++/* Define to path to fdp program if found or 'echo fdp' otherwise */ ++/* #undef LLVM_PATH_FDP */ ++ ++/* Define to path to Graphviz program if found or 'echo Graphviz' otherwise */ ++/* #undef LLVM_PATH_GRAPHVIZ */ ++ ++/* Define to path to gv program if found or 'echo gv' otherwise */ ++/* #undef LLVM_PATH_GV */ ++ ++/* Define to path to neato program if found or 'echo neato' otherwise */ ++/* #undef LLVM_PATH_NEATO */ ++ ++/* Define to path to twopi program if found or 'echo twopi' otherwise */ ++/* #undef LLVM_PATH_TWOPI */ ++ ++/* Define to path to xdot.py program if found or 'echo xdot.py' otherwise */ ++/* #undef LLVM_PATH_XDOT_PY */ ++ ++/* Installation prefix directory */ ++#define LLVM_PREFIX "/opt/llvm-android" ++ ++/* Major version of the LLVM API */ ++#define LLVM_VERSION_MAJOR 3 ++ ++/* Minor version of the LLVM API */ ++#define LLVM_VERSION_MINOR 5 ++ ++#include "llvm/Config/llvm-platform-config.h" ++ ++#endif +diff --git a/include/llvm/Config/llvm-platform-config.h b/include/llvm/Config/llvm-platform-config.h +new file mode 100644 +index 0000000..cd005be +--- /dev/null ++++ b/include/llvm/Config/llvm-platform-config.h +@@ -0,0 +1,160 @@ ++#ifndef LLVM_NATIVE_CONFIG_H ++ ++/*===-- llvm/config/llvm-native-config.h --------------------------*- C -*-===*/ ++/* */ ++/* The LLVM Compiler Infrastructure */ ++/* */ ++/* This file is distributed under the University of Illinois Open Source */ ++/* License. See LICENSE.TXT for details. */ ++/* */ ++/*===----------------------------------------------------------------------===*/ ++ ++#if defined(__i386__) || defined(__x86_64__) ++ ++/* LLVM architecture name for the native architecture, if available */ ++#define LLVM_NATIVE_ARCH X86 ++ ++/* Host triple LLVM will be executed on */ ++#define LLVM_HOST_TRIPLE "i686-unknown-linux-gnu" ++ ++/* LLVM name for the native AsmParser init function, if available */ ++#define LLVM_NATIVE_ASMPARSER LLVMInitializeX86AsmParser ++ ++/* LLVM name for the native AsmPrinter init function, if available */ ++#define LLVM_NATIVE_ASMPRINTER LLVMInitializeX86AsmPrinter ++ ++/* LLVM name for the native Disassembler init function, if available */ ++#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeX86Disassembler ++ ++/* LLVM name for the native Target init function, if available */ ++#define LLVM_NATIVE_TARGET LLVMInitializeX86Target ++ ++/* LLVM name for the native TargetInfo init function, if available */ ++#define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo ++ ++/* LLVM name for the native target MC init function, if available */ ++#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC ++ ++ ++#elif defined(__arm__) ++ ++/* LLVM architecture name for the native architecture, if available */ ++#define LLVM_NATIVE_ARCH ARM ++ ++/* Host triple LLVM will be executed on */ ++#define LLVM_HOST_TRIPLE "arm-unknown-linux-gnu" ++ ++/* LLVM name for the native AsmParser init function, if available */ ++#define LLVM_NATIVE_ASMPARSER LLVMInitializeARMAsmParser ++ ++/* LLVM name for the native AsmPrinter init function, if available */ ++#define LLVM_NATIVE_ASMPRINTER LLVMInitializeARMAsmPrinter ++ ++/* LLVM name for the native Disassembler init function, if available */ ++#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeARMDisassembler ++ ++/* LLVM name for the native Target init function, if available */ ++#define LLVM_NATIVE_TARGET LLVMInitializeARMTarget ++ ++/* LLVM name for the native TargetInfo init function, if available */ ++#define LLVM_NATIVE_TARGETINFO LLVMInitializeARMTargetInfo ++ ++/* LLVM name for the native target MC init function, if available */ ++#define LLVM_NATIVE_TARGETMC LLVMInitializeARMTargetMC ++ ++ ++#elif defined(__mips__) ++ ++/* LLVM architecture name for the native architecture, if available */ ++#define LLVM_NATIVE_ARCH Mips ++ ++/* Host triple LLVM will be executed on */ ++#define LLVM_HOST_TRIPLE "mipsel-unknown-linux-gnu" ++ ++/* LLVM name for the native AsmParser init function, if available */ ++#define LLVM_NATIVE_ASMPARSER LLVMInitializeMipsAsmParser ++ ++/* LLVM name for the native AsmPrinter init function, if available */ ++#define LLVM_NATIVE_ASMPRINTER LLVMInitializeMipsAsmPrinter ++ ++/* LLVM name for the native Disassembler init function, if available */ ++#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeMipsDisassembler ++ ++/* LLVM name for the native Target init function, if available */ ++#define LLVM_NATIVE_TARGET LLVMInitializeMipsTarget ++ ++/* LLVM name for the native TargetInfo init function, if available */ ++#define LLVM_NATIVE_TARGETINFO LLVMInitializeMipsTargetInfo ++ ++/* LLVM name for the native target MC init function, if available */ ++#define LLVM_NATIVE_TARGETMC LLVMInitializeMipsTargetMC ++ ++#elif defined(__aarch64__) ++ ++/* LLVM architecture name for the native architecture, if available */ ++#define LLVM_NATIVE_ARCH AArch64 ++ ++/* Host triple LLVM will be executed on */ ++#define LLVM_HOST_TRIPLE "aarch64-none-linux-gnu" ++ ++/* LLVM name for the native AsmParser init function, if available */ ++#define LLVM_NATIVE_ASMPARSER LLVMInitializeAArch64AsmParser ++ ++/* LLVM name for the native AsmPrinter init function, if available */ ++#define LLVM_NATIVE_ASMPRINTER LLVMInitializeAArch64AsmPrinter ++ ++/* LLVM name for the native Disassembler init function, if available */ ++#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeAArch64Disassembler ++ ++/* LLVM name for the native Target init function, if available */ ++#define LLVM_NATIVE_TARGET LLVMInitializeAArch64Target ++ ++/* LLVM name for the native TargetInfo init function, if available */ ++#define LLVM_NATIVE_TARGETINFO LLVMInitializeAArch64TargetInfo ++ ++/* LLVM name for the native target MC init function, if available */ ++#define LLVM_NATIVE_TARGETMC LLVMInitializeAArch64TargetMC ++ ++#else ++ ++#error "Unknown native architecture" ++ ++#endif ++ ++ ++ ++#if defined(_WIN32) || defined(_WIN64) ++ ++/* Define if this is Unixish platform */ ++/* #undef LLVM_ON_UNIX */ ++ ++/* Define if this is Win32ish platform */ ++#define LLVM_ON_WIN32 1 ++ ++/* Define to 1 if you have the <windows.h> header file. */ ++#define HAVE_WINDOWS_H 1 ++ ++/* Define to 1 if you have the `psapi' library (-lpsapi). */ ++#define HAVE_LIBPSAPI 1 ++ ++/* Define to 1 if you have the `imagehlp' library (-limagehlp). */ ++#define HAVE_LIBIMAGEHLP 1 ++ ++/* Type of 1st arg on ELM Callback */ ++#define WIN32_ELMCB_PCSTR PSTR ++ ++ ++#else /* Linux, Mac OS X, ... Unixish platform */ ++ ++/* Define if this is Unixish platform */ ++#define LLVM_ON_UNIX 1 ++ ++/* Define if this is Win32ish platform */ ++/* #undef LLVM_ON_WIN32 */ ++ ++/* Type of 1st arg on ELM Callback */ ++/* #undef WIN32_ELMCB_PCSTR */ ++ ++#endif ++ ++#endif // LLVM_NATIVE_CONFIG_H +diff --git a/include/llvm/Support/DataTypes.h b/include/llvm/Support/DataTypes.h +new file mode 100644 +index 0000000..a4a65b8 +--- /dev/null ++++ b/include/llvm/Support/DataTypes.h +@@ -0,0 +1,213 @@ ++/* include/llvm/Support/DataTypes.h. Generated from DataTypes.h.in by configure. */ ++/*===-- include/Support/DataTypes.h - Define fixed size types -----*- C -*-===*\ ++|* *| ++|* The LLVM Compiler Infrastructure *| ++|* *| ++|* This file is distributed under the University of Illinois Open Source *| ++|* License. See LICENSE.TXT for details. *| ++|* *| ++|*===----------------------------------------------------------------------===*| ++|* *| ++|* This file contains definitions to figure out the size of _HOST_ data types.*| ++|* This file is important because different host OS's define different macros,*| ++|* which makes portability tough. This file exports the following *| ++|* definitions: *| ++|* *| ++|* [u]int(32|64)_t : typedefs for signed and unsigned 32/64 bit system types*| ++|* [U]INT(8|16|32|64)_(MIN|MAX) : Constants for the min and max values. *| ++|* *| ++|* No library is required when using these functions. *| ++|* *| ++|*===----------------------------------------------------------------------===*/ ++ ++/* Please leave this file C-compatible. */ ++ ++/* Please keep this file in sync with DataTypes.h.cmake */ ++ ++#ifndef SUPPORT_DATATYPES_H ++#define SUPPORT_DATATYPES_H ++ ++#define HAVE_SYS_TYPES_H 1 ++#define HAVE_INTTYPES_H 1 ++#define HAVE_STDINT_H 1 ++#define HAVE_UINT64_T 1 ++/* #undef HAVE_U_INT64_T */ ++ ++#ifdef __cplusplus ++#include <cmath> ++#else ++#include <math.h> ++#endif ++ ++#ifndef _MSC_VER ++ ++/* Note that this header's correct operation depends on __STDC_LIMIT_MACROS ++ being defined. We would define it here, but in order to prevent Bad Things ++ happening when system headers or C++ STL headers include stdint.h before we ++ define it here, we define it on the g++ command line (in Makefile.rules). */ ++#if !defined(__STDC_LIMIT_MACROS) ++# error "Must #define __STDC_LIMIT_MACROS before #including Support/DataTypes.h" ++#endif ++ ++#if !defined(__STDC_CONSTANT_MACROS) ++# error "Must #define __STDC_CONSTANT_MACROS before " \ ++ "#including Support/DataTypes.h" ++#endif ++ ++/* Note that <inttypes.h> includes <stdint.h>, if this is a C99 system. */ ++#ifdef HAVE_SYS_TYPES_H ++#include <sys/types.h> ++#endif ++ ++#ifdef HAVE_INTTYPES_H ++#include <inttypes.h> ++#endif ++ ++#ifdef HAVE_STDINT_H ++#include <stdint.h> ++#endif ++ ++#ifdef _AIX ++#include "llvm/Support/AIXDataTypesFix.h" ++#endif ++ ++/* Handle incorrect definition of uint64_t as u_int64_t */ ++#ifndef HAVE_UINT64_T ++#ifdef HAVE_U_INT64_T ++typedef u_int64_t uint64_t; ++#else ++# error "Don't have a definition for uint64_t on this platform" ++#endif ++#endif ++ ++#ifdef _OpenBSD_ ++#define INT8_MAX 127 ++#define INT8_MIN -128 ++#define UINT8_MAX 255 ++#define INT16_MAX 32767 ++#define INT16_MIN -32768 ++#define UINT16_MAX 65535 ++#define INT32_MAX 2147483647 ++#define INT32_MIN -2147483648 ++#define UINT32_MAX 4294967295U ++#endif ++ ++#else /* _MSC_VER */ ++/* Visual C++ doesn't provide standard integer headers, but it does provide ++ built-in data types. */ ++#include <stdlib.h> ++#include <stddef.h> ++#include <sys/types.h> ++#ifdef __cplusplus ++#include <cmath> ++#else ++#include <math.h> ++#endif ++typedef __int64 int64_t; ++typedef unsigned __int64 uint64_t; ++typedef signed int int32_t; ++typedef unsigned int uint32_t; ++typedef short int16_t; ++typedef unsigned short uint16_t; ++typedef signed char int8_t; ++typedef unsigned char uint8_t; ++typedef signed int ssize_t; ++#ifndef INT8_MAX ++# define INT8_MAX 127 ++#endif ++#ifndef INT8_MIN ++# define INT8_MIN -128 ++#endif ++#ifndef UINT8_MAX ++# define UINT8_MAX 255 ++#endif ++#ifndef INT16_MAX ++# define INT16_MAX 32767 ++#endif ++#ifndef INT16_MIN ++# define INT16_MIN -32768 ++#endif ++#ifndef UINT16_MAX ++# define UINT16_MAX 65535 ++#endif ++#ifndef INT32_MAX ++# define INT32_MAX 2147483647 ++#endif ++#ifndef INT32_MIN ++/* MSC treats -2147483648 as -(2147483648U). */ ++# define INT32_MIN (-INT32_MAX - 1) ++#endif ++#ifndef UINT32_MAX ++# define UINT32_MAX 4294967295U ++#endif ++/* Certain compatibility updates to VC++ introduce the `cstdint' ++ * header, which defines the INT*_C macros. On default installs they ++ * are absent. */ ++#ifndef INT8_C ++# define INT8_C(C) C##i8 ++#endif ++#ifndef UINT8_C ++# define UINT8_C(C) C##ui8 ++#endif ++#ifndef INT16_C ++# define INT16_C(C) C##i16 ++#endif ++#ifndef UINT16_C ++# define UINT16_C(C) C##ui16 ++#endif ++#ifndef INT32_C ++# define INT32_C(C) C##i32 ++#endif ++#ifndef UINT32_C ++# define UINT32_C(C) C##ui32 ++#endif ++#ifndef INT64_C ++# define INT64_C(C) C##i64 ++#endif ++#ifndef UINT64_C ++# define UINT64_C(C) C##ui64 ++#endif ++ ++#ifndef PRId64 ++# define PRId64 "I64d" ++#endif ++#ifndef PRIi64 ++# define PRIi64 "I64i" ++#endif ++#ifndef PRIo64 ++# define PRIo64 "I64o" ++#endif ++#ifndef PRIu64 ++# define PRIu64 "I64u" ++#endif ++#ifndef PRIx64 ++# define PRIx64 "I64x" ++#endif ++#ifndef PRIX64 ++# define PRIX64 "I64X" ++#endif ++ ++#endif /* _MSC_VER */ ++ ++/* Set defaults for constants which we cannot find. */ ++#if !defined(INT64_MAX) ++# define INT64_MAX 9223372036854775807LL ++#endif ++#if !defined(INT64_MIN) ++# define INT64_MIN ((-INT64_MAX)-1) ++#endif ++#if !defined(UINT64_MAX) ++# define UINT64_MAX 0xffffffffffffffffULL ++#endif ++ ++#if __GNUC__ > 3 ++#define END_WITH_NULL __attribute__((sentinel)) ++#else ++#define END_WITH_NULL ++#endif ++ ++#ifndef HUGE_VALF ++#define HUGE_VALF (float)HUGE_VAL ++#endif ++ ++#endif /* SUPPORT_DATATYPES_H */ +-- +1.9.1.423.g4596e3a + diff --git a/patches/0003-Add-support-for-64-bit-longs.patch b/patches/0003-Add-support-for-64-bit-longs.patch new file mode 100644 index 0000000..e375914 --- /dev/null +++ b/patches/0003-Add-support-for-64-bit-longs.patch @@ -0,0 +1,56 @@ +From 37aee898ae3a8041aad2a7cc595b8a6cf7438b52 Mon Sep 17 00:00:00 2001 +From: Tim Murray <timmurray@google.com> +Date: Thu, 3 Apr 2014 11:14:41 -0700 +Subject: [PATCH 3/5] Add support for 64-bit longs. + +Change-Id: I7d50c91b8324fa81c29595a8dc19f2180653a4f2 +--- + lib/Target/ARM/ARM.td | 4 ++++ + lib/Target/ARM/ARMSubtarget.cpp | 1 + + lib/Target/ARM/ARMSubtarget.h | 3 +++ + 3 files changed, 8 insertions(+) + +diff --git a/lib/Target/ARM/ARM.td b/lib/Target/ARM/ARM.td +index 7916ccc..25385a6 100644 +--- a/lib/Target/ARM/ARM.td ++++ b/lib/Target/ARM/ARM.td +@@ -267,6 +267,10 @@ def FeatureAPCS : SubtargetFeature<"apcs", "TargetABI", "ARM_ABI_APCS", + def FeatureAAPCS : SubtargetFeature<"aapcs", "TargetABI", "ARM_ABI_AAPCS", + "Use the AAPCS ABI">; + ++// RenderScript-specific support for 64-bit long types on all targets ++def FeatureLong64 : SubtargetFeature<"long64", "UseLong64", ++ "true", ++ "long type is forced to be 64-bit">; + + class ProcNoItin<string Name, list<SubtargetFeature> Features> + : Processor<Name, NoItineraries, Features>; +diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp +index 5222c1b..73e2018 100644 +--- a/lib/Target/ARM/ARMSubtarget.cpp ++++ b/lib/Target/ARM/ARMSubtarget.cpp +@@ -139,6 +139,7 @@ void ARMSubtarget::initializeEnvironment() { + Thumb2DSP = false; + UseNaClTrap = false; + UnsafeFPMath = false; ++ UseLong64 = false; + } + + void ARMSubtarget::resetSubtargetFeatures(const MachineFunction *MF) { +diff --git a/lib/Target/ARM/ARMSubtarget.h b/lib/Target/ARM/ARMSubtarget.h +index 804f238..3855419 100644 +--- a/lib/Target/ARM/ARMSubtarget.h ++++ b/lib/Target/ARM/ARMSubtarget.h +@@ -197,6 +197,9 @@ protected: + /// NaCl TRAP instruction is generated instead of the regular TRAP. + bool UseNaClTrap; + ++ /// Force long to be a 64-bit type (RenderScript-specific) ++ bool UseLong64; ++ + /// Target machine allowed unsafe FP math (such as use of NEON fp) + bool UnsafeFPMath; + +-- +1.9.1.423.g4596e3a + diff --git a/patches/0004-Add-Android-makefiles-for-LLVM.patch b/patches/0004-Add-Android-makefiles-for-LLVM.patch new file mode 100644 index 0000000..863909a --- /dev/null +++ b/patches/0004-Add-Android-makefiles-for-LLVM.patch @@ -0,0 +1,4628 @@ +From ca95c159402c89aff7dab5a29f3ea3b54c5a77a4 Mon Sep 17 00:00:00 2001 +From: Tim Murray <timmurray@google.com> +Date: Thu, 27 Mar 2014 15:10:30 -0700 +Subject: [PATCH 4/5] Add Android makefiles for LLVM. + +Change-Id: I4f561d517605569e11af40bb191d056d7e7196de +--- + Android.mk | 90 +++++++++++++ + CleanSpec.mk | 54 ++++++++ + clear_tblgen_vars.mk | 2 + + lib/Analysis/Android.mk | 80 +++++++++++ + lib/Analysis/IPA/Android.mk | 40 ++++++ + lib/AsmParser/Android.mk | 34 +++++ + lib/Bitcode/Reader/Android.mk | 36 +++++ + lib/Bitcode/Writer/Android.mk | 37 +++++ + lib/CodeGen/Android.mk | 143 ++++++++++++++++++++ + lib/CodeGen/AsmPrinter/Android.mk | 62 +++++++++ + lib/CodeGen/SelectionDAG/Android.mk | 56 ++++++++ + lib/ExecutionEngine/Android.mk | 18 +++ + lib/ExecutionEngine/JIT/Android.mk | 17 +++ + lib/ExecutionEngine/MCJIT/Android.mk | 16 +++ + lib/ExecutionEngine/RuntimeDyld/Android.mk | 18 +++ + lib/IR/Android.mk | 79 +++++++++++ + lib/IRReader/Android.mk | 38 ++++++ + lib/Linker/Android.mk | 32 +++++ + lib/MC/Android.mk | 78 +++++++++++ + lib/MC/MCDisassembler/Android.mk | 15 +++ + lib/MC/MCParser/Android.mk | 40 ++++++ + lib/Object/Android.mk | 45 +++++++ + lib/Option/Android.mk | 42 ++++++ + lib/Support/Android.mk | 120 +++++++++++++++++ + lib/TableGen/Android.mk | 39 ++++++ + lib/Target/AArch64/Android.mk | 67 ++++++++++ + lib/Target/AArch64/AsmParser/Android.mk | 63 +++++++++ + lib/Target/AArch64/Disassembler/Android.mk | 55 ++++++++ + lib/Target/AArch64/InstPrinter/Android.mk | 57 ++++++++ + lib/Target/AArch64/MCTargetDesc/Android.mk | 57 ++++++++ + lib/Target/AArch64/TargetInfo/Android.mk | 55 ++++++++ + lib/Target/AArch64/Utils/Android.mk | 36 +++++ + lib/Target/ARM/Android.mk | 87 ++++++++++++ + lib/Target/ARM/AsmParser/Android.mk | 63 +++++++++ + lib/Target/ARM/Disassembler/Android.mk | 55 ++++++++ + lib/Target/ARM/InstPrinter/Android.mk | 57 ++++++++ + lib/Target/ARM/MCTargetDesc/Android.mk | 61 +++++++++ + lib/Target/ARM/TargetInfo/Android.mk | 55 ++++++++ + lib/Target/Android.mk | 39 ++++++ + lib/Target/Mips/Android.mk | 85 ++++++++++++ + lib/Target/Mips/AsmParser/Android.mk | 56 ++++++++ + lib/Target/Mips/Disassembler/Android.mk | 48 +++++++ + lib/Target/Mips/InstPrinter/Android.mk | 48 +++++++ + lib/Target/Mips/MCTargetDesc/Android.mk | 58 ++++++++ + lib/Target/Mips/TargetInfo/Android.mk | 47 +++++++ + lib/Target/X86/Android.mk | 72 ++++++++++ + lib/Target/X86/AsmParser/Android.mk | 59 ++++++++ + lib/Target/X86/Disassembler/Android.mk | 56 ++++++++ + lib/Target/X86/InstPrinter/Android.mk | 57 ++++++++ + lib/Target/X86/MCTargetDesc/Android.mk | 56 ++++++++ + lib/Target/X86/TargetInfo/Android.mk | 55 ++++++++ + lib/Target/X86/Utils/Android.mk | 36 +++++ + lib/Transforms/IPO/Android.mk | 52 ++++++++ + lib/Transforms/InstCombine/Android.mk | 44 ++++++ + lib/Transforms/Instrumentation/Android.mk | 37 +++++ + lib/Transforms/ObjCARC/Android.mk | 40 ++++++ + lib/Transforms/Scalar/Android.mk | 73 ++++++++++ + lib/Transforms/Utils/Android.mk | 66 +++++++++ + lib/Transforms/Vectorize/Android.mk | 35 +++++ + llvm-device-build.mk | 79 +++++++++++ + llvm-gen-intrinsics.mk | 19 +++ + llvm-host-build.mk | 64 +++++++++ + llvm-tblgen-rules.mk | 208 +++++++++++++++++++++++++++++ + llvm.mk | 11 ++ + shared_llvm.mk | 137 +++++++++++++++++++ + tools/llc/Android.mk | 136 +++++++++++++++++++ + tools/llvm-as/Android.mk | 28 ++++ + tools/llvm-dis/Android.mk | 25 ++++ + tools/llvm-link/Android.mk | 50 +++++++ + tools/opt/Android.mk | 81 +++++++++++ + utils/FileCheck/Android.mk | 23 ++++ + utils/TableGen/Android.mk | 58 ++++++++ + 72 files changed, 4037 insertions(+) + create mode 100644 Android.mk + create mode 100644 CleanSpec.mk + create mode 100644 clear_tblgen_vars.mk + create mode 100644 lib/Analysis/Android.mk + create mode 100644 lib/Analysis/IPA/Android.mk + create mode 100644 lib/AsmParser/Android.mk + create mode 100644 lib/Bitcode/Reader/Android.mk + create mode 100644 lib/Bitcode/Writer/Android.mk + create mode 100644 lib/CodeGen/Android.mk + create mode 100644 lib/CodeGen/AsmPrinter/Android.mk + create mode 100644 lib/CodeGen/SelectionDAG/Android.mk + create mode 100644 lib/ExecutionEngine/Android.mk + create mode 100644 lib/ExecutionEngine/JIT/Android.mk + create mode 100644 lib/ExecutionEngine/MCJIT/Android.mk + create mode 100644 lib/ExecutionEngine/RuntimeDyld/Android.mk + create mode 100644 lib/IR/Android.mk + create mode 100644 lib/IRReader/Android.mk + create mode 100644 lib/Linker/Android.mk + create mode 100644 lib/MC/Android.mk + create mode 100644 lib/MC/MCDisassembler/Android.mk + create mode 100644 lib/MC/MCParser/Android.mk + create mode 100644 lib/Object/Android.mk + create mode 100644 lib/Option/Android.mk + create mode 100644 lib/Support/Android.mk + create mode 100644 lib/TableGen/Android.mk + create mode 100644 lib/Target/AArch64/Android.mk + create mode 100644 lib/Target/AArch64/AsmParser/Android.mk + create mode 100644 lib/Target/AArch64/Disassembler/Android.mk + create mode 100644 lib/Target/AArch64/InstPrinter/Android.mk + create mode 100644 lib/Target/AArch64/MCTargetDesc/Android.mk + create mode 100644 lib/Target/AArch64/TargetInfo/Android.mk + create mode 100644 lib/Target/AArch64/Utils/Android.mk + create mode 100644 lib/Target/ARM/Android.mk + create mode 100644 lib/Target/ARM/AsmParser/Android.mk + create mode 100644 lib/Target/ARM/Disassembler/Android.mk + create mode 100644 lib/Target/ARM/InstPrinter/Android.mk + create mode 100644 lib/Target/ARM/MCTargetDesc/Android.mk + create mode 100644 lib/Target/ARM/TargetInfo/Android.mk + create mode 100644 lib/Target/Android.mk + create mode 100644 lib/Target/Mips/Android.mk + create mode 100644 lib/Target/Mips/AsmParser/Android.mk + create mode 100644 lib/Target/Mips/Disassembler/Android.mk + create mode 100644 lib/Target/Mips/InstPrinter/Android.mk + create mode 100644 lib/Target/Mips/MCTargetDesc/Android.mk + create mode 100644 lib/Target/Mips/TargetInfo/Android.mk + create mode 100644 lib/Target/X86/Android.mk + create mode 100644 lib/Target/X86/AsmParser/Android.mk + create mode 100644 lib/Target/X86/Disassembler/Android.mk + create mode 100644 lib/Target/X86/InstPrinter/Android.mk + create mode 100644 lib/Target/X86/MCTargetDesc/Android.mk + create mode 100644 lib/Target/X86/TargetInfo/Android.mk + create mode 100644 lib/Target/X86/Utils/Android.mk + create mode 100644 lib/Transforms/IPO/Android.mk + create mode 100644 lib/Transforms/InstCombine/Android.mk + create mode 100644 lib/Transforms/Instrumentation/Android.mk + create mode 100644 lib/Transforms/ObjCARC/Android.mk + create mode 100644 lib/Transforms/Scalar/Android.mk + create mode 100644 lib/Transforms/Utils/Android.mk + create mode 100644 lib/Transforms/Vectorize/Android.mk + create mode 100644 llvm-device-build.mk + create mode 100644 llvm-gen-intrinsics.mk + create mode 100644 llvm-host-build.mk + create mode 100644 llvm-tblgen-rules.mk + create mode 100644 llvm.mk + create mode 100644 shared_llvm.mk + create mode 100644 tools/llc/Android.mk + create mode 100644 tools/llvm-as/Android.mk + create mode 100644 tools/llvm-dis/Android.mk + create mode 100644 tools/llvm-link/Android.mk + create mode 100644 tools/opt/Android.mk + create mode 100644 utils/FileCheck/Android.mk + create mode 100644 utils/TableGen/Android.mk + +diff --git a/Android.mk b/Android.mk +new file mode 100644 +index 0000000..9f6e8a5 +--- /dev/null ++++ b/Android.mk +@@ -0,0 +1,90 @@ ++LOCAL_PATH := $(call my-dir) ++LLVM_ROOT_PATH := $(LOCAL_PATH) ++LLVM_ENABLE_ASSERTION := false ++ ++include $(CLEAR_VARS) ++ ++# LLVM Libraries ++subdirs := \ ++ lib/Analysis \ ++ lib/Analysis/IPA \ ++ lib/AsmParser \ ++ lib/Bitcode/Reader \ ++ lib/Bitcode/Writer \ ++ lib/ExecutionEngine \ ++ lib/ExecutionEngine/RuntimeDyld \ ++ lib/ExecutionEngine/JIT \ ++ lib/ExecutionEngine/MCJIT \ ++ lib/CodeGen \ ++ lib/CodeGen/AsmPrinter \ ++ lib/CodeGen/SelectionDAG \ ++ lib/IR \ ++ lib/IRReader \ ++ lib/Linker \ ++ lib/MC \ ++ lib/MC/MCDisassembler \ ++ lib/MC/MCParser \ ++ lib/Object \ ++ lib/Option \ ++ lib/Support \ ++ lib/TableGen \ ++ lib/Target \ ++ lib/Transforms/IPO \ ++ lib/Transforms/InstCombine \ ++ lib/Transforms/Instrumentation \ ++ lib/Transforms/ObjCARC \ ++ lib/Transforms/Scalar \ ++ lib/Transforms/Utils \ ++ lib/Transforms/Vectorize \ ++ utils/FileCheck \ ++ utils/TableGen ++ ++# ARM Code Generation Libraries ++subdirs += \ ++ lib/Target/ARM \ ++ lib/Target/ARM/AsmParser \ ++ lib/Target/ARM/InstPrinter \ ++ lib/Target/ARM/Disassembler \ ++ lib/Target/ARM/MCTargetDesc \ ++ lib/Target/ARM/TargetInfo ++ ++# ARM64 Code Generation Libraries ++subdirs += \ ++ lib/Target/AArch64 \ ++ lib/Target/AArch64/AsmParser \ ++ lib/Target/AArch64/InstPrinter \ ++ lib/Target/AArch64/Disassembler \ ++ lib/Target/AArch64/MCTargetDesc \ ++ lib/Target/AArch64/TargetInfo \ ++ lib/Target/AArch64/Utils ++ ++# MIPS Code Generation Libraries ++subdirs += \ ++ lib/Target/Mips \ ++ lib/Target/Mips/AsmParser \ ++ lib/Target/Mips/InstPrinter \ ++ lib/Target/Mips/Disassembler \ ++ lib/Target/Mips/MCTargetDesc \ ++ lib/Target/Mips/TargetInfo ++ ++# X86 Code Generation Libraries ++subdirs += \ ++ lib/Target/X86 \ ++ lib/Target/X86/AsmParser \ ++ lib/Target/X86/InstPrinter \ ++ lib/Target/X86/Disassembler \ ++ lib/Target/X86/MCTargetDesc \ ++ lib/Target/X86/TargetInfo \ ++ lib/Target/X86/Utils ++ ++# LLVM Command Line Tools ++subdirs += tools/llc ++subdirs += tools/llvm-as ++subdirs += tools/llvm-dis ++subdirs += tools/llvm-link ++#subdirs += tools/opt ++ ++include $(LOCAL_PATH)/llvm.mk ++include $(LOCAL_PATH)/shared_llvm.mk ++ ++include $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, $(subdirs))) +diff --git a/CleanSpec.mk b/CleanSpec.mk +new file mode 100644 +index 0000000..f756f04 +--- /dev/null ++++ b/CleanSpec.mk +@@ -0,0 +1,54 @@ ++# Copyright (C) 2007 The Android Open Source Project ++# ++# Licensed under the Apache License, Version 2.0 (the "License"); ++# you may not use this file except in compliance with the License. ++# You may obtain a copy of the License at ++# ++# http://www.apache.org/licenses/LICENSE-2.0 ++# ++# Unless required by applicable law or agreed to in writing, software ++# distributed under the License is distributed on an "AS IS" BASIS, ++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++# See the License for the specific language governing permissions and ++# limitations under the License. ++# ++ ++# If you don't need to do a full clean build but would like to touch ++# a file or delete some intermediate files, add a clean step to the end ++# of the list. These steps will only be run once, if they haven't been ++# run before. ++# ++# E.g.: ++# $(call add-clean-step, touch -c external/sqlite/sqlite3.h) ++# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates) ++# ++# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with ++# files that are missing or have been moved. ++# ++# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory. ++# Use $(OUT_DIR) to refer to the "out" directory. ++# ++# If you need to re-do something that's already mentioned, just copy ++# the command and add it to the bottom of the list. E.g., if a change ++# that you made last week required touching a file and a change you ++# made today requires touching the same file, just copy the old ++# touch step and add it to the end of the list. ++# ++# ************************************************ ++# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ++# ************************************************ ++ ++# For example: ++#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates) ++#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates) ++#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f) ++#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*) ++ ++# ************************************************ ++# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ++# ************************************************ ++$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/stingray/obj/STATIC_LIBRARIES/libLLVM*) ++$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/stingray/obj/STATIC_LIBRARIES/libLLVMARMCodeGen_intermediates*) ++$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_PREBUILT_TAG)/obj/STATIC_LIBRARIES/libLLVMARM*) ++$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libLLVMARM*) ++$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/EXECUTABLES/app_process__asan_intermediates*) +diff --git a/clear_tblgen_vars.mk b/clear_tblgen_vars.mk +new file mode 100644 +index 0000000..6c9623e +--- /dev/null ++++ b/clear_tblgen_vars.mk +@@ -0,0 +1,2 @@ ++TBLGEN_TABLES := ++TBLGEN_TD_DIR := +diff --git a/lib/Analysis/Android.mk b/lib/Analysis/Android.mk +new file mode 100644 +index 0000000..76eee74 +--- /dev/null ++++ b/lib/Analysis/Android.mk +@@ -0,0 +1,80 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++analysis_SRC_FILES := \ ++ AliasAnalysis.cpp \ ++ AliasAnalysisCounter.cpp \ ++ AliasAnalysisEvaluator.cpp \ ++ AliasDebugger.cpp \ ++ AliasSetTracker.cpp \ ++ Analysis.cpp \ ++ BasicAliasAnalysis.cpp \ ++ BlockFrequencyInfo.cpp \ ++ BranchProbabilityInfo.cpp \ ++ CFG.cpp \ ++ CFGPrinter.cpp \ ++ CaptureTracking.cpp \ ++ CodeMetrics.cpp \ ++ ConstantFolding.cpp \ ++ CostModel.cpp \ ++ Delinearization.cpp \ ++ DependenceAnalysis.cpp \ ++ DomPrinter.cpp \ ++ DominanceFrontier.cpp \ ++ IVUsers.cpp \ ++ InstCount.cpp \ ++ InstructionSimplify.cpp \ ++ Interval.cpp \ ++ IntervalPartition.cpp \ ++ LazyValueInfo.cpp \ ++ LibCallAliasAnalysis.cpp \ ++ LibCallSemantics.cpp \ ++ Lint.cpp \ ++ Loads.cpp \ ++ LoopInfo.cpp \ ++ LoopPass.cpp \ ++ MemDepPrinter.cpp \ ++ MemoryBuiltins.cpp \ ++ MemoryDependenceAnalysis.cpp \ ++ ModuleDebugInfoPrinter.cpp \ ++ NoAliasAnalysis.cpp \ ++ PHITransAddr.cpp \ ++ PostDominators.cpp \ ++ PtrUseVisitor.cpp \ ++ RegionInfo.cpp \ ++ RegionPass.cpp \ ++ RegionPrinter.cpp \ ++ ScalarEvolution.cpp \ ++ ScalarEvolutionAliasAnalysis.cpp \ ++ ScalarEvolutionExpander.cpp \ ++ ScalarEvolutionNormalization.cpp \ ++ SparsePropagation.cpp \ ++ TargetTransformInfo.cpp \ ++ Trace.cpp \ ++ TypeBasedAliasAnalysis.cpp \ ++ ValueTracking.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE:= libLLVMAnalysis ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(analysis_SRC_FILES) ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE:= libLLVMAnalysis ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(analysis_SRC_FILES) ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Analysis/IPA/Android.mk b/lib/Analysis/IPA/Android.mk +new file mode 100644 +index 0000000..d56d931 +--- /dev/null ++++ b/lib/Analysis/IPA/Android.mk +@@ -0,0 +1,40 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++analysis_ipa_SRC_FILES := \ ++ CallGraph.cpp \ ++ CallGraphSCCPass.cpp \ ++ CallPrinter.cpp \ ++ FindUsedTypes.cpp \ ++ GlobalsModRef.cpp \ ++ IPA.cpp \ ++ InlineCost.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(analysis_ipa_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMipa ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(analysis_ipa_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMipa ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/AsmParser/Android.mk b/lib/AsmParser/Android.mk +new file mode 100644 +index 0000000..7bd29a7 +--- /dev/null ++++ b/lib/AsmParser/Android.mk +@@ -0,0 +1,34 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++asm_parser_SRC_FILES := \ ++ LLLexer.cpp \ ++ LLParser.cpp \ ++ Parser.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(asm_parser_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMAsmParser ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LOCAL_PATH)/../../llvm-host-build.mk ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(asm_parser_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMAsmParser ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LOCAL_PATH)/../../llvm-device-build.mk ++include $(BUILD_STATIC_LIBRARY) ++endif +\ No newline at end of file +diff --git a/lib/Bitcode/Reader/Android.mk b/lib/Bitcode/Reader/Android.mk +new file mode 100644 +index 0000000..3bdcdda +--- /dev/null ++++ b/lib/Bitcode/Reader/Android.mk +@@ -0,0 +1,36 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++bitcode_reader_SRC_FILES := \ ++ BitReader.cpp \ ++ BitcodeReader.cpp \ ++ BitstreamReader.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(bitcode_reader_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMBitReader ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++include $(CLEAR_VARS) ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++ ++LOCAL_SRC_FILES := $(bitcode_reader_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMBitReader ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Bitcode/Writer/Android.mk b/lib/Bitcode/Writer/Android.mk +new file mode 100644 +index 0000000..6aa208c +--- /dev/null ++++ b/lib/Bitcode/Writer/Android.mk +@@ -0,0 +1,37 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++bitcode_writer_SRC_FILES := \ ++ BitWriter.cpp \ ++ BitcodeWriter.cpp \ ++ BitcodeWriterPass.cpp \ ++ ValueEnumerator.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(bitcode_writer_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMBitWriter ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++include $(CLEAR_VARS) ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++ ++LOCAL_SRC_FILES := $(bitcode_writer_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMBitWriter ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/CodeGen/Android.mk b/lib/CodeGen/Android.mk +new file mode 100644 +index 0000000..26f04d0 +--- /dev/null ++++ b/lib/CodeGen/Android.mk +@@ -0,0 +1,143 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++codegen_SRC_FILES := \ ++ AggressiveAntiDepBreaker.cpp \ ++ AllocationOrder.cpp \ ++ Analysis.cpp \ ++ BasicTargetTransformInfo.cpp \ ++ BranchFolding.cpp \ ++ CalcSpillWeights.cpp \ ++ CallingConvLower.cpp \ ++ CodeGen.cpp \ ++ CodeGenPrepare.cpp \ ++ CriticalAntiDepBreaker.cpp \ ++ DeadMachineInstructionElim.cpp \ ++ DFAPacketizer.cpp \ ++ DwarfEHPrepare.cpp \ ++ EarlyIfConversion.cpp \ ++ EdgeBundles.cpp \ ++ ErlangGC.cpp \ ++ ExecutionDepsFix.cpp \ ++ ExpandISelPseudos.cpp \ ++ ExpandPostRAPseudos.cpp \ ++ GCMetadata.cpp \ ++ GCMetadataPrinter.cpp \ ++ GCStrategy.cpp \ ++ IfConversion.cpp \ ++ InlineSpiller.cpp \ ++ InterferenceCache.cpp \ ++ IntrinsicLowering.cpp \ ++ JITCodeEmitter.cpp \ ++ LatencyPriorityQueue.cpp \ ++ LexicalScopes.cpp \ ++ LiveDebugVariables.cpp \ ++ LiveIntervalAnalysis.cpp \ ++ LiveInterval.cpp \ ++ LiveIntervalUnion.cpp \ ++ LivePhysRegs.cpp \ ++ LiveRangeCalc.cpp \ ++ LiveRangeEdit.cpp \ ++ LiveRegMatrix.cpp \ ++ LiveStackAnalysis.cpp \ ++ LiveVariables.cpp \ ++ LLVMTargetMachine.cpp \ ++ LocalStackSlotAllocation.cpp \ ++ MachineBasicBlock.cpp \ ++ MachineBlockFrequencyInfo.cpp \ ++ MachineBlockPlacement.cpp \ ++ MachineBranchProbabilityInfo.cpp \ ++ MachineCodeEmitter.cpp \ ++ MachineCopyPropagation.cpp \ ++ MachineCSE.cpp \ ++ MachineDominators.cpp \ ++ MachineFunctionAnalysis.cpp \ ++ MachineFunction.cpp \ ++ MachineFunctionPass.cpp \ ++ MachineFunctionPrinterPass.cpp \ ++ MachineInstrBundle.cpp \ ++ MachineInstr.cpp \ ++ MachineLICM.cpp \ ++ MachineLoopInfo.cpp \ ++ MachineModuleInfo.cpp \ ++ MachineModuleInfoImpls.cpp \ ++ MachinePassRegistry.cpp \ ++ MachinePostDominators.cpp \ ++ MachineRegisterInfo.cpp \ ++ MachineScheduler.cpp \ ++ MachineSink.cpp \ ++ MachineSSAUpdater.cpp \ ++ MachineTraceMetrics.cpp \ ++ MachineVerifier.cpp \ ++ OcamlGC.cpp \ ++ OptimizePHIs.cpp \ ++ Passes.cpp \ ++ PeepholeOptimizer.cpp \ ++ PHIElimination.cpp \ ++ PHIEliminationUtils.cpp \ ++ PostRASchedulerList.cpp \ ++ ProcessImplicitDefs.cpp \ ++ PrologEpilogInserter.cpp \ ++ PseudoSourceValue.cpp \ ++ RegAllocBase.cpp \ ++ RegAllocBasic.cpp \ ++ RegAllocFast.cpp \ ++ RegAllocGreedy.cpp \ ++ RegAllocPBQP.cpp \ ++ RegisterClassInfo.cpp \ ++ RegisterCoalescer.cpp \ ++ RegisterPressure.cpp \ ++ RegisterScavenging.cpp \ ++ ScheduleDAG.cpp \ ++ ScheduleDAGInstrs.cpp \ ++ ScheduleDAGPrinter.cpp \ ++ ScoreboardHazardRecognizer.cpp \ ++ ShadowStackGC.cpp \ ++ SjLjEHPrepare.cpp \ ++ SlotIndexes.cpp \ ++ Spiller.cpp \ ++ SpillPlacement.cpp \ ++ SplitKit.cpp \ ++ StackColoring.cpp \ ++ StackMapLivenessAnalysis.cpp \ ++ StackMaps.cpp \ ++ StackProtector.cpp \ ++ StackSlotColoring.cpp \ ++ TailDuplication.cpp \ ++ TargetFrameLoweringImpl.cpp \ ++ TargetInstrInfo.cpp \ ++ TargetLoweringBase.cpp \ ++ TargetLoweringObjectFileImpl.cpp \ ++ TargetOptionsImpl.cpp \ ++ TargetRegisterInfo.cpp \ ++ TargetSchedule.cpp \ ++ TwoAddressInstructionPass.cpp \ ++ UnreachableBlockElim.cpp \ ++ VirtRegMap.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(codegen_SRC_FILES) ++LOCAL_MODULE:= libLLVMCodeGen ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(codegen_SRC_FILES) ++LOCAL_MODULE:= libLLVMCodeGen ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/CodeGen/AsmPrinter/Android.mk b/lib/CodeGen/AsmPrinter/Android.mk +new file mode 100644 +index 0000000..1e403ee +--- /dev/null ++++ b/lib/CodeGen/AsmPrinter/Android.mk +@@ -0,0 +1,62 @@ ++LOCAL_PATH := $(call my-dir) ++ ++codegen_asmprinter_SRC_FILES := \ ++ AsmPrinter.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := \ ++ AsmPrinter.cpp \ ++ AsmPrinterDwarf.cpp \ ++ AsmPrinterInlineAsm.cpp \ ++ ARMException.cpp \ ++ DIE.cpp \ ++ DIEHash.cpp \ ++ DwarfAccelTable.cpp \ ++ DwarfCFIException.cpp \ ++ DwarfDebug.cpp \ ++ DwarfException.cpp \ ++ DwarfUnit.cpp \ ++ ErlangGCPrinter.cpp \ ++ OcamlGCPrinter.cpp \ ++ Win64Exception.cpp \ ++ WinCodeViewLineTables.cpp ++ ++LOCAL_MODULE:= libLLVMAsmPrinter ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := \ ++ AsmPrinter.cpp \ ++ AsmPrinterDwarf.cpp \ ++ AsmPrinterInlineAsm.cpp \ ++ ARMException.cpp \ ++ DIE.cpp \ ++ DIEHash.cpp \ ++ DwarfAccelTable.cpp \ ++ DwarfCFIException.cpp \ ++ DwarfDebug.cpp \ ++ DwarfException.cpp \ ++ ErlangGCPrinter.cpp \ ++ Win64Exception.cpp \ ++ $(LOCAL_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMAsmPrinter ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/CodeGen/SelectionDAG/Android.mk b/lib/CodeGen/SelectionDAG/Android.mk +new file mode 100644 +index 0000000..0e52ee3 +--- /dev/null ++++ b/lib/CodeGen/SelectionDAG/Android.mk +@@ -0,0 +1,56 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++codegen_selectiondag_SRC_FILES := \ ++ DAGCombiner.cpp \ ++ FastISel.cpp \ ++ FunctionLoweringInfo.cpp \ ++ InstrEmitter.cpp \ ++ LegalizeDAG.cpp \ ++ LegalizeFloatTypes.cpp \ ++ LegalizeIntegerTypes.cpp \ ++ LegalizeTypes.cpp \ ++ LegalizeTypesGeneric.cpp \ ++ LegalizeVectorOps.cpp \ ++ LegalizeVectorTypes.cpp \ ++ ResourcePriorityQueue.cpp \ ++ ScheduleDAGFast.cpp \ ++ ScheduleDAGRRList.cpp \ ++ ScheduleDAGSDNodes.cpp \ ++ ScheduleDAGVLIW.cpp \ ++ SelectionDAG.cpp \ ++ SelectionDAGBuilder.cpp \ ++ SelectionDAGDumper.cpp \ ++ SelectionDAGISel.cpp \ ++ SelectionDAGPrinter.cpp \ ++ TargetLowering.cpp \ ++ TargetSelectionDAGInfo.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(codegen_selectiondag_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMSelectionDAG ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(codegen_selectiondag_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMSelectionDAG ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/ExecutionEngine/Android.mk b/lib/ExecutionEngine/Android.mk +new file mode 100644 +index 0000000..9f1befd +--- /dev/null ++++ b/lib/ExecutionEngine/Android.mk +@@ -0,0 +1,18 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := \ ++ ExecutionEngineBindings.cpp \ ++ ExecutionEngine.cpp \ ++ RTDyldMemoryManager.cpp \ ++ TargetSelect.cpp ++ ++LOCAL_MODULE:= libLLVMExecutionEngine ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) +diff --git a/lib/ExecutionEngine/JIT/Android.mk b/lib/ExecutionEngine/JIT/Android.mk +new file mode 100644 +index 0000000..0466ba0 +--- /dev/null ++++ b/lib/ExecutionEngine/JIT/Android.mk +@@ -0,0 +1,17 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := \ ++ JIT.cpp \ ++ JITEmitter.cpp \ ++ JITMemoryManager.cpp ++ ++LOCAL_MODULE:= libLLVMJIT ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) +diff --git a/lib/ExecutionEngine/MCJIT/Android.mk b/lib/ExecutionEngine/MCJIT/Android.mk +new file mode 100644 +index 0000000..0314958 +--- /dev/null ++++ b/lib/ExecutionEngine/MCJIT/Android.mk +@@ -0,0 +1,16 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := \ ++ MCJIT.cpp \ ++ SectionMemoryManager.cpp ++ ++LOCAL_MODULE:= libLLVMMCJIT ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) +diff --git a/lib/ExecutionEngine/RuntimeDyld/Android.mk b/lib/ExecutionEngine/RuntimeDyld/Android.mk +new file mode 100644 +index 0000000..e98e80a +--- /dev/null ++++ b/lib/ExecutionEngine/RuntimeDyld/Android.mk +@@ -0,0 +1,18 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := \ ++ GDBRegistrar.cpp \ ++ RuntimeDyld.cpp \ ++ RuntimeDyldELF.cpp \ ++ RuntimeDyldMachO.cpp ++ ++LOCAL_MODULE:= libLLVMRuntimeDyld ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) +diff --git a/lib/IR/Android.mk b/lib/IR/Android.mk +new file mode 100644 +index 0000000..071bb04 +--- /dev/null ++++ b/lib/IR/Android.mk +@@ -0,0 +1,79 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++vmcore_SRC_FILES := \ ++ AsmWriter.cpp \ ++ Attributes.cpp \ ++ AutoUpgrade.cpp \ ++ BasicBlock.cpp \ ++ ConstantFold.cpp \ ++ ConstantRange.cpp \ ++ Constants.cpp \ ++ Core.cpp \ ++ DataLayout.cpp \ ++ DebugInfo.cpp \ ++ DebugLoc.cpp \ ++ DiagnosticInfo.cpp \ ++ DiagnosticPrinter.cpp \ ++ DIBuilder.cpp \ ++ Dominators.cpp \ ++ Function.cpp \ ++ GVMaterializer.cpp \ ++ Globals.cpp \ ++ IRBuilder.cpp \ ++ IRPrintingPasses.cpp \ ++ InlineAsm.cpp \ ++ Instruction.cpp \ ++ Instructions.cpp \ ++ IntrinsicInst.cpp \ ++ LLVMContext.cpp \ ++ LLVMContextImpl.cpp \ ++ LeakDetector.cpp \ ++ LegacyPassManager.cpp \ ++ Mangler.cpp \ ++ Metadata.cpp \ ++ Module.cpp \ ++ Pass.cpp \ ++ PassManager.cpp \ ++ PassRegistry.cpp \ ++ Type.cpp \ ++ TypeFinder.cpp \ ++ Use.cpp \ ++ User.cpp \ ++ Value.cpp \ ++ ValueSymbolTable.cpp \ ++ ValueTypes.cpp \ ++ Verifier.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++REQUIRES_RTTI := 1 ++ ++LOCAL_SRC_FILES := $(vmcore_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMCore ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++include $(CLEAR_VARS) ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++ ++REQUIRES_RTTI := 1 ++ ++LOCAL_SRC_FILES := $(vmcore_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMCore ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/IRReader/Android.mk b/lib/IRReader/Android.mk +new file mode 100644 +index 0000000..d620521 +--- /dev/null ++++ b/lib/IRReader/Android.mk +@@ -0,0 +1,38 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++irreader_SRC_FILES := \ ++ IRReader.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++REQUIRES_RTTI := 1 ++ ++LOCAL_SRC_FILES := $(irreader_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMIRReader ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++REQUIRES_RTTI := 1 ++ ++LOCAL_SRC_FILES := $(irreader_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMIRReader ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +\ No newline at end of file +diff --git a/lib/Linker/Android.mk b/lib/Linker/Android.mk +new file mode 100644 +index 0000000..161b2ae +--- /dev/null ++++ b/lib/Linker/Android.mk +@@ -0,0 +1,32 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++linker_SRC_FILES := \ ++ LinkModules.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_SRC_FILES := $(linker_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMLinker ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(linker_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMLinker ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/MC/Android.mk b/lib/MC/Android.mk +new file mode 100644 +index 0000000..abf346b +--- /dev/null ++++ b/lib/MC/Android.mk +@@ -0,0 +1,78 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++mc_SRC_FILES := \ ++ ELFObjectWriter.cpp \ ++ MachObjectWriter.cpp \ ++ MCAsmBackend.cpp \ ++ MCAsmInfo.cpp \ ++ MCAsmInfoCOFF.cpp \ ++ MCAsmInfoDarwin.cpp \ ++ MCAsmInfoELF.cpp \ ++ MCAsmStreamer.cpp \ ++ MCAssembler.cpp \ ++ MCCodeEmitter.cpp \ ++ MCCodeGenInfo.cpp \ ++ MCContext.cpp \ ++ MCDisassembler.cpp \ ++ MCDwarf.cpp \ ++ MCELF.cpp \ ++ MCELFObjectTargetWriter.cpp \ ++ MCELFStreamer.cpp \ ++ MCExpr.cpp \ ++ MCExternalSymbolizer.cpp \ ++ MCFixup.cpp \ ++ MCInst.cpp \ ++ MCInstPrinter.cpp \ ++ MCInstrAnalysis.cpp \ ++ MCLabel.cpp \ ++ MCLinkerOptimizationHint.cpp \ ++ MCMachObjectTargetWriter.cpp \ ++ MCMachOStreamer.cpp \ ++ MCNullStreamer.cpp \ ++ MCObjectFileInfo.cpp \ ++ MCObjectStreamer.cpp \ ++ MCObjectWriter.cpp \ ++ MCRegisterInfo.cpp \ ++ MCRelocationInfo.cpp \ ++ MCSection.cpp \ ++ MCSectionCOFF.cpp \ ++ MCSectionELF.cpp \ ++ MCSectionMachO.cpp \ ++ MCStreamer.cpp \ ++ MCSubtargetInfo.cpp \ ++ MCSymbol.cpp \ ++ MCSymbolizer.cpp \ ++ MCValue.cpp \ ++ MCWin64EH.cpp \ ++ WinCOFFObjectWriter.cpp \ ++ WinCOFFStreamer.cpp \ ++ SubtargetFeature.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(mc_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMMC ++ ++LOCAL_MODULE_TAGS := optional ++ ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++include $(CLEAR_VARS) ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++ ++LOCAL_SRC_FILES := $(mc_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMMC ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/MC/MCDisassembler/Android.mk b/lib/MC/MCDisassembler/Android.mk +new file mode 100644 +index 0000000..7f73df3 +--- /dev/null ++++ b/lib/MC/MCDisassembler/Android.mk +@@ -0,0 +1,15 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := \ ++ Disassembler.cpp ++ ++LOCAL_MODULE:= libLLVMMCDisassembler ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) +diff --git a/lib/MC/MCParser/Android.mk b/lib/MC/MCParser/Android.mk +new file mode 100644 +index 0000000..505a12b +--- /dev/null ++++ b/lib/MC/MCParser/Android.mk +@@ -0,0 +1,40 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++mc_parser_SRC_FILES := \ ++ AsmLexer.cpp \ ++ AsmParser.cpp \ ++ COFFAsmParser.cpp \ ++ DarwinAsmParser.cpp \ ++ ELFAsmParser.cpp \ ++ MCAsmLexer.cpp \ ++ MCAsmParser.cpp \ ++ MCAsmParserExtension.cpp \ ++ MCTargetAsmParser.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(mc_parser_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMMCParser ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++include $(CLEAR_VARS) ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++ ++LOCAL_SRC_FILES := $(mc_parser_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMMCParser ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Object/Android.mk b/lib/Object/Android.mk +new file mode 100644 +index 0000000..7dfa44f +--- /dev/null ++++ b/lib/Object/Android.mk +@@ -0,0 +1,45 @@ ++LOCAL_PATH := $(call my-dir) ++ ++object_SRC_FILES := \ ++ Archive.cpp \ ++ Binary.cpp \ ++ COFFObjectFile.cpp \ ++ ELF.cpp \ ++ ELFObjectFile.cpp \ ++ Error.cpp \ ++ IRObjectFile.cpp \ ++ MachOObjectFile.cpp \ ++ MachOUniversal.cpp \ ++ Object.cpp \ ++ ObjectFile.cpp \ ++ SymbolicFile.cpp ++ ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMObject ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(object_SRC_FILES) ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device only ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE:= libLLVMObject ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(object_SRC_FILES) ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Option/Android.mk b/lib/Option/Android.mk +new file mode 100644 +index 0000000..8680ce4 +--- /dev/null ++++ b/lib/Option/Android.mk +@@ -0,0 +1,42 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++option_SRC_FILES := \ ++ Arg.cpp \ ++ ArgList.cpp \ ++ Option.cpp \ ++ OptTable.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++# FIXME: This only requires RTTI because tblgen uses it. Fix that. ++REQUIRES_RTTI := 1 ++ ++LOCAL_SRC_FILES := $(option_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMOption ++ ++LOCAL_CFLAGS := -D__android__ ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++include $(CLEAR_VARS) ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++ ++LOCAL_SRC_FILES := $(option_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMOption ++ ++LOCAL_CFLAGS := -D__android__ ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Support/Android.mk b/lib/Support/Android.mk +new file mode 100644 +index 0000000..165305e +--- /dev/null ++++ b/lib/Support/Android.mk +@@ -0,0 +1,120 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++support_SRC_FILES := \ ++ Allocator.cpp \ ++ APFloat.cpp \ ++ APInt.cpp \ ++ APSInt.cpp \ ++ ARMBuildAttrs.cpp \ ++ Atomic.cpp \ ++ BlockFrequency.cpp \ ++ BranchProbability.cpp \ ++ CommandLine.cpp \ ++ Compression.cpp \ ++ ConvertUTF.c \ ++ ConvertUTFWrapper.cpp \ ++ CrashRecoveryContext.cpp \ ++ DAGDeltaAlgorithm.cpp \ ++ DataStream.cpp \ ++ DataExtractor.cpp \ ++ Debug.cpp \ ++ DeltaAlgorithm.cpp \ ++ Dwarf.cpp \ ++ DynamicLibrary.cpp \ ++ Errno.cpp \ ++ ErrorHandling.cpp \ ++ FileUtilities.cpp \ ++ FoldingSet.cpp \ ++ FormattedStream.cpp \ ++ GraphWriter.cpp \ ++ Hashing.cpp \ ++ Host.cpp \ ++ IntervalMap.cpp \ ++ IntEqClasses.cpp \ ++ IntrusiveRefCntPtr.cpp \ ++ IsInf.cpp \ ++ IsNAN.cpp \ ++ LEB128.cpp \ ++ LineIterator.cpp \ ++ Locale.cpp \ ++ LockFileManager.cpp \ ++ MD5.cpp \ ++ ManagedStatic.cpp \ ++ Memory.cpp \ ++ MemoryBuffer.cpp \ ++ MemoryObject.cpp \ ++ Mutex.cpp \ ++ Path.cpp \ ++ PluginLoader.cpp \ ++ PrettyStackTrace.cpp \ ++ Process.cpp \ ++ Program.cpp \ ++ Regex.cpp \ ++ RWMutex.cpp \ ++ SearchForAddressOfSpecialSymbol.cpp \ ++ Signals.cpp \ ++ SmallPtrSet.cpp \ ++ SmallVector.cpp \ ++ SourceMgr.cpp \ ++ Statistic.cpp \ ++ StreamableMemoryObject.cpp \ ++ StringExtras.cpp \ ++ StringMap.cpp \ ++ StringPool.cpp \ ++ StringRef.cpp \ ++ SystemUtils.cpp \ ++ TargetRegistry.cpp \ ++ Threading.cpp \ ++ ThreadLocal.cpp \ ++ Timer.cpp \ ++ TimeValue.cpp \ ++ ToolOutputFile.cpp \ ++ Triple.cpp \ ++ Twine.cpp \ ++ Unicode.cpp \ ++ Valgrind.cpp \ ++ Watchdog.cpp \ ++ circular_raw_ostream.cpp \ ++ raw_os_ostream.cpp \ ++ raw_ostream.cpp \ ++ regcomp.c \ ++ regerror.c \ ++ regexec.c \ ++ regfree.c \ ++ regstrlcpy.c \ ++ system_error.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++# FIXME: This only requires RTTI because tblgen uses it. Fix that. ++REQUIRES_RTTI := 1 ++ ++LOCAL_SRC_FILES := $(support_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMSupport ++ ++LOCAL_CFLAGS := -D__android__ ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(support_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMSupport ++ ++LOCAL_CFLAGS := -D__android__ ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/TableGen/Android.mk b/lib/TableGen/Android.mk +new file mode 100644 +index 0000000..1f01ef7 +--- /dev/null ++++ b/lib/TableGen/Android.mk +@@ -0,0 +1,39 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++libtablegen_SRC_FILES := \ ++ Error.cpp \ ++ Main.cpp \ ++ Record.cpp \ ++ StringMatcher.cpp \ ++ TableGenBackend.cpp \ ++ TGLexer.cpp \ ++ TGParser.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(libtablegen_SRC_FILES) ++LOCAL_MODULE:= libLLVMTableGen ++ ++LOCAL_MODULE_TAGS := optional ++ ++REQUIRES_EH := 1 ++REQUIRES_RTTI := 1 ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++## For the device ++## ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++#include $(CLEAR_VARS) ++# ++#LOCAL_SRC_FILES := $(libtablegen_SRC_FILES) ++#LOCAL_MODULE:= libLLVMTableGen ++# ++#LOCAL_MODULE_TAGS := optional ++# ++#include $(LLVM_DEVICE_BUILD_MK) ++#include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/AArch64/Android.mk b/lib/Target/AArch64/Android.mk +new file mode 100644 +index 0000000..144c2d3 +--- /dev/null ++++ b/lib/Target/AArch64/Android.mk +@@ -0,0 +1,67 @@ ++LOCAL_PATH := $(call my-dir) ++ ++arm64_codegen_TBLGEN_TABLES := \ ++ AArch64GenRegisterInfo.inc \ ++ AArch64GenInstrInfo.inc \ ++ AArch64GenCodeEmitter.inc \ ++ AArch64GenMCCodeEmitter.inc \ ++ AArch64GenMCPseudoLowering.inc \ ++ AArch64GenAsmWriter.inc \ ++ AArch64GenAsmMatcher.inc \ ++ AArch64GenDAGISel.inc \ ++ AArch64GenFastISel.inc \ ++ AArch64GenCallingConv.inc \ ++ AArch64GenSubtargetInfo.inc \ ++ AArch64GenDisassemblerTables.inc ++ ++arm64_codegen_SRC_FILES := \ ++ AArch64AsmPrinter.cpp \ ++ AArch64FrameLowering.cpp \ ++ AArch64ISelDAGToDAG.cpp \ ++ AArch64MachineFunctionInfo.cpp \ ++ AArch64RegisterInfo.cpp \ ++ AArch64Subtarget.cpp \ ++ AArch64TargetObjectFile.cpp \ ++ AArch64BranchFixupPass.cpp \ ++ AArch64InstrInfo.cpp \ ++ AArch64ISelLowering.cpp \ ++ AArch64MCInstLower.cpp \ ++ AArch64SelectionDAGInfo.cpp \ ++ AArch64TargetMachine.cpp \ ++ AArch64TargetTransformInfo.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMARM64CodeGen ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(arm64_codegen_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc ++TBLGEN_TABLES := $(arm64_codegen_TBLGEN_TABLES) ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device only ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMARM64CodeGen ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(arm64_codegen_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc ++TBLGEN_TABLES := $(arm64_codegen_TBLGEN_TABLES) ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/AArch64/AsmParser/Android.mk b/lib/Target/AArch64/AsmParser/Android.mk +new file mode 100644 +index 0000000..0588511 +--- /dev/null ++++ b/lib/Target/AArch64/AsmParser/Android.mk +@@ -0,0 +1,63 @@ ++LOCAL_PATH := $(call my-dir) ++ ++#===---------------------------------------------------------------=== ++# libARMAsmParser (common) ++#===---------------------------------------------------------------=== ++ ++arm64_asm_parser_SRC_FILES := \ ++ AArch64AsmParser.cpp ++ ++arm64_asm_parser_TBLGEN_TABLES := \ ++ AArch64GenInstrInfo.inc \ ++ AArch64GenRegisterInfo.inc \ ++ AArch64GenAsmMatcher.inc \ ++ AArch64GenSubtargetInfo.inc ++ ++arm64_asm_parser_TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++arm64_asm_parser_C_INCLUDES := $(LOCAL_PATH)/.. ++ ++ ++#===---------------------------------------------------------------=== ++# libARM64AsmParser (host) ++#===---------------------------------------------------------------=== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMARM64AsmParser ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(arm64_asm_parser_SRC_FILES) ++LOCAL_C_INCLUDES += $(arm64_asm_parser_C_INCLUDES) ++TBLGEN_TABLES := $(arm64_asm_parser_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(arm64_asm_parser_TBLGEN_TD_DIR) ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++ifneq (,$(filter windows darwin,$(HOST_OS))) ++# Override the default optimization level to work around taking forever (~50m) ++# to compile ARM64AsmParser.cpp on Mac with gcc 4.2, ++# or on Linux with mingw32msvc-gcc 4.2, which is used to cross-compile ++# the win_sdk. ++LOCAL_CFLAGS += -O0 ++endif ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++ ++#===---------------------------------------------------------------=== ++# libARM64AsmParser (target) ++#===---------------------------------------------------------------=== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMARM64AsmParser ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(arm64_asm_parser_SRC_FILES) ++LOCAL_C_INCLUDES += $(arm64_asm_parser_C_INCLUDES) ++TBLGEN_TABLES := $(arm64_asm_parser_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(arm64_asm_parser_TBLGEN_TD_DIR) ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/AArch64/Disassembler/Android.mk b/lib/Target/AArch64/Disassembler/Android.mk +new file mode 100644 +index 0000000..fcc53ad +--- /dev/null ++++ b/lib/Target/AArch64/Disassembler/Android.mk +@@ -0,0 +1,55 @@ ++LOCAL_PATH := $(call my-dir) ++ ++arm64_disassembler_TBLGEN_TABLES := \ ++ AArch64GenDisassemblerTables.inc \ ++ AArch64GenInstrInfo.inc \ ++ AArch64GenSubtargetInfo.inc \ ++ AArch64GenRegisterInfo.inc ++ ++arm64_disassembler_SRC_FILES := \ ++ AArch64Disassembler.cpp ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(arm64_disassembler_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(arm64_disassembler_SRC_FILES) ++ ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMARM64Disassembler ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(arm64_disassembler_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(arm64_disassembler_SRC_FILES) ++ ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMARM64Disassembler ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ +diff --git a/lib/Target/AArch64/InstPrinter/Android.mk b/lib/Target/AArch64/InstPrinter/Android.mk +new file mode 100644 +index 0000000..ac9b0df +--- /dev/null ++++ b/lib/Target/AArch64/InstPrinter/Android.mk +@@ -0,0 +1,57 @@ ++LOCAL_PATH := $(call my-dir) ++ ++arm64_asm_printer_TBLGEN_TABLES := \ ++ AArch64GenAsmWriter.inc \ ++ AArch64GenRegisterInfo.inc \ ++ AArch64GenSubtargetInfo.inc \ ++ AArch64GenInstrInfo.inc ++ ++arm64_asm_printer_SRC_FILES := \ ++ AArch64InstPrinter.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(arm64_asm_printer_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(arm64_asm_printer_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMARM64AsmPrinter ++ ++LOCAL_C_INCLUDES += \ ++ $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device only ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(arm64_asm_printer_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(arm64_asm_printer_SRC_FILES) ++ ++LOCAL_C_INCLUDES+= \ ++ $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMARM64AsmPrinter ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif ++ +diff --git a/lib/Target/AArch64/MCTargetDesc/Android.mk b/lib/Target/AArch64/MCTargetDesc/Android.mk +new file mode 100644 +index 0000000..edcf1f2 +--- /dev/null ++++ b/lib/Target/AArch64/MCTargetDesc/Android.mk +@@ -0,0 +1,57 @@ ++LOCAL_PATH := $(call my-dir) ++ ++arm64_mc_desc_TBLGEN_TABLES := \ ++ AArch64GenRegisterInfo.inc \ ++ AArch64GenInstrInfo.inc \ ++ AArch64GenMCCodeEmitter.inc \ ++ AArch64GenSubtargetInfo.inc ++ ++arm64_mc_desc_SRC_FILES := \ ++ AArch64AsmBackend.cpp \ ++ AArch64ELFObjectWriter.cpp \ ++ AArch64ELFStreamer.cpp \ ++ AArch64MCAsmInfo.cpp \ ++ AArch64MCCodeEmitter.cpp \ ++ AArch64MCExpr.cpp \ ++ AArch64MCTargetDesc.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++ ++LOCAL_MODULE:= libLLVMARM64Desc ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(arm64_mc_desc_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++TBLGEN_TABLES := $(arm64_mc_desc_TBLGEN_TABLES) ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device only ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMARM64Desc ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(arm64_mc_desc_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++TBLGEN_TABLES := $(arm64_mc_desc_TBLGEN_TABLES) ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/AArch64/TargetInfo/Android.mk b/lib/Target/AArch64/TargetInfo/Android.mk +new file mode 100644 +index 0000000..cc650f6 +--- /dev/null ++++ b/lib/Target/AArch64/TargetInfo/Android.mk +@@ -0,0 +1,55 @@ ++LOCAL_PATH := $(call my-dir) ++ ++arm64_target_info_TBLGEN_TABLES := \ ++ AArch64GenSubtargetInfo.inc \ ++ AArch64GenRegisterInfo.inc \ ++ AArch64GenInstrInfo.inc ++ ++arm64_target_info_SRC_FILES := \ ++ AArch64TargetInfo.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(arm64_target_info_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(arm64_target_info_SRC_FILES) ++ ++LOCAL_C_INCLUDES += \ ++ $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMARM64Info ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(arm64_target_info_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(arm64_target_info_SRC_FILES) ++ ++LOCAL_C_INCLUDES += \ ++ $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMARM64Info ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/AArch64/Utils/Android.mk b/lib/Target/AArch64/Utils/Android.mk +new file mode 100644 +index 0000000..b8bf795 +--- /dev/null ++++ b/lib/Target/AArch64/Utils/Android.mk +@@ -0,0 +1,36 @@ ++LOCAL_PATH := $(call my-dir) ++ ++arm64_utils_SRC_FILES := \ ++ AArch64BaseInfo.cpp ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(arm64_utils_SRC_FILES) ++ ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMARM64Utils ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(arm64_utils_SRC_FILES) ++ ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMARM64Utils ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) +diff --git a/lib/Target/ARM/Android.mk b/lib/Target/ARM/Android.mk +new file mode 100644 +index 0000000..4be95aa +--- /dev/null ++++ b/lib/Target/ARM/Android.mk +@@ -0,0 +1,87 @@ ++LOCAL_PATH := $(call my-dir) ++ ++arm_codegen_TBLGEN_TABLES := \ ++ ARMGenRegisterInfo.inc \ ++ ARMGenInstrInfo.inc \ ++ ARMGenCodeEmitter.inc \ ++ ARMGenMCCodeEmitter.inc \ ++ ARMGenMCPseudoLowering.inc \ ++ ARMGenAsmWriter.inc \ ++ ARMGenAsmMatcher.inc \ ++ ARMGenDAGISel.inc \ ++ ARMGenFastISel.inc \ ++ ARMGenCallingConv.inc \ ++ ARMGenSubtargetInfo.inc \ ++ ARMGenDisassemblerTables.inc ++ ++arm_codegen_SRC_FILES := \ ++ A15SDOptimizer.cpp \ ++ ARMAsmPrinter.cpp \ ++ ARMAtomicExpandPass.cpp \ ++ ARMBaseInstrInfo.cpp \ ++ ARMBaseRegisterInfo.cpp \ ++ ARMCodeEmitter.cpp \ ++ ARMConstantIslandPass.cpp \ ++ ARMConstantPoolValue.cpp \ ++ ARMExpandPseudoInsts.cpp \ ++ ARMFastISel.cpp \ ++ ARMFrameLowering.cpp \ ++ ARMHazardRecognizer.cpp \ ++ ARMISelDAGToDAG.cpp \ ++ ARMISelLowering.cpp \ ++ ARMInstrInfo.cpp \ ++ ARMJITInfo.cpp \ ++ ARMLoadStoreOptimizer.cpp \ ++ ARMMCInstLower.cpp \ ++ ARMMachineFunctionInfo.cpp \ ++ ARMOptimizeBarriersPass.cpp \ ++ ARMRegisterInfo.cpp \ ++ ARMSelectionDAGInfo.cpp \ ++ ARMSubtarget.cpp \ ++ ARMTargetMachine.cpp \ ++ ARMTargetObjectFile.cpp \ ++ ARMTargetTransformInfo.cpp \ ++ MLxExpansionPass.cpp \ ++ Thumb1FrameLowering.cpp \ ++ Thumb1InstrInfo.cpp \ ++ Thumb1RegisterInfo.cpp \ ++ Thumb2ITBlockPass.cpp \ ++ Thumb2InstrInfo.cpp \ ++ Thumb2RegisterInfo.cpp \ ++ Thumb2SizeReduction.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMARMCodeGen ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(arm_codegen_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc ++TBLGEN_TABLES := $(arm_codegen_TBLGEN_TABLES) ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device only ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMARMCodeGen ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(arm_codegen_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc ++TBLGEN_TABLES := $(arm_codegen_TBLGEN_TABLES) ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/ARM/AsmParser/Android.mk b/lib/Target/ARM/AsmParser/Android.mk +new file mode 100644 +index 0000000..5f88cc3 +--- /dev/null ++++ b/lib/Target/ARM/AsmParser/Android.mk +@@ -0,0 +1,63 @@ ++LOCAL_PATH := $(call my-dir) ++ ++#===---------------------------------------------------------------=== ++# libARMAsmParser (common) ++#===---------------------------------------------------------------=== ++ ++arm_asm_parser_SRC_FILES := \ ++ ARMAsmParser.cpp ++ ++arm_asm_parser_TBLGEN_TABLES := \ ++ ARMGenInstrInfo.inc \ ++ ARMGenRegisterInfo.inc \ ++ ARMGenAsmMatcher.inc \ ++ ARMGenSubtargetInfo.inc ++ ++arm_asm_parser_TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++arm_asm_parser_C_INCLUDES := $(LOCAL_PATH)/.. ++ ++ ++#===---------------------------------------------------------------=== ++# libARMAsmParser (host) ++#===---------------------------------------------------------------=== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMARMAsmParser ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(arm_asm_parser_SRC_FILES) ++LOCAL_C_INCLUDES += $(arm_asm_parser_C_INCLUDES) ++TBLGEN_TABLES := $(arm_asm_parser_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(arm_asm_parser_TBLGEN_TD_DIR) ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++ifneq (,$(filter windows darwin,$(HOST_OS))) ++# Override the default optimization level to work around taking forever (~50m) ++# to compile ARMAsmParser.cpp on Mac with gcc 4.2, ++# or on Linux with mingw32msvc-gcc 4.2, which is used to cross-compile ++# the win_sdk. ++LOCAL_CFLAGS += -O0 ++endif ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++ ++#===---------------------------------------------------------------=== ++# libARMAsmParser (target) ++#===---------------------------------------------------------------=== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMARMAsmParser ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(arm_asm_parser_SRC_FILES) ++LOCAL_C_INCLUDES += $(arm_asm_parser_C_INCLUDES) ++TBLGEN_TABLES := $(arm_asm_parser_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(arm_asm_parser_TBLGEN_TD_DIR) ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/ARM/Disassembler/Android.mk b/lib/Target/ARM/Disassembler/Android.mk +new file mode 100644 +index 0000000..3db61a5 +--- /dev/null ++++ b/lib/Target/ARM/Disassembler/Android.mk +@@ -0,0 +1,55 @@ ++LOCAL_PATH := $(call my-dir) ++ ++arm_disassembler_TBLGEN_TABLES := \ ++ ARMGenDisassemblerTables.inc \ ++ ARMGenInstrInfo.inc \ ++ ARMGenSubtargetInfo.inc \ ++ ARMGenRegisterInfo.inc ++ ++arm_disassembler_SRC_FILES := \ ++ ARMDisassembler.cpp ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(arm_disassembler_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(arm_disassembler_SRC_FILES) ++ ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMARMDisassembler ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(arm_disassembler_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(arm_disassembler_SRC_FILES) ++ ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMARMDisassembler ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ +diff --git a/lib/Target/ARM/InstPrinter/Android.mk b/lib/Target/ARM/InstPrinter/Android.mk +new file mode 100644 +index 0000000..cefed76 +--- /dev/null ++++ b/lib/Target/ARM/InstPrinter/Android.mk +@@ -0,0 +1,57 @@ ++LOCAL_PATH := $(call my-dir) ++ ++arm_asm_printer_TBLGEN_TABLES := \ ++ ARMGenAsmWriter.inc \ ++ ARMGenRegisterInfo.inc \ ++ ARMGenSubtargetInfo.inc \ ++ ARMGenInstrInfo.inc ++ ++arm_asm_printer_SRC_FILES := \ ++ ARMInstPrinter.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(arm_asm_printer_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(arm_asm_printer_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMARMAsmPrinter ++ ++LOCAL_C_INCLUDES += \ ++ $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device only ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(arm_asm_printer_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(arm_asm_printer_SRC_FILES) ++ ++LOCAL_C_INCLUDES+= \ ++ $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMARMAsmPrinter ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif ++ +diff --git a/lib/Target/ARM/MCTargetDesc/Android.mk b/lib/Target/ARM/MCTargetDesc/Android.mk +new file mode 100644 +index 0000000..074d29e +--- /dev/null ++++ b/lib/Target/ARM/MCTargetDesc/Android.mk +@@ -0,0 +1,61 @@ ++LOCAL_PATH := $(call my-dir) ++ ++arm_mc_desc_TBLGEN_TABLES := \ ++ ARMGenRegisterInfo.inc \ ++ ARMGenInstrInfo.inc \ ++ ARMGenMCCodeEmitter.inc \ ++ ARMGenSubtargetInfo.inc ++ ++arm_mc_desc_SRC_FILES := \ ++ ARMAsmBackend.cpp \ ++ ARMELFObjectWriter.cpp \ ++ ARMELFStreamer.cpp \ ++ ARMMCAsmInfo.cpp \ ++ ARMMCCodeEmitter.cpp \ ++ ARMMCExpr.cpp \ ++ ARMMCTargetDesc.cpp \ ++ ARMMachObjectWriter.cpp \ ++ ARMMachORelocationInfo.cpp \ ++ ARMTargetStreamer.cpp \ ++ ARMUnwindOpAsm.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++ ++LOCAL_MODULE:= libLLVMARMDesc ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(arm_mc_desc_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++TBLGEN_TABLES := $(arm_mc_desc_TBLGEN_TABLES) ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device only ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMARMDesc ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(arm_mc_desc_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++TBLGEN_TABLES := $(arm_mc_desc_TBLGEN_TABLES) ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/ARM/TargetInfo/Android.mk b/lib/Target/ARM/TargetInfo/Android.mk +new file mode 100644 +index 0000000..e31c2b8 +--- /dev/null ++++ b/lib/Target/ARM/TargetInfo/Android.mk +@@ -0,0 +1,55 @@ ++LOCAL_PATH := $(call my-dir) ++ ++arm_target_info_TBLGEN_TABLES := \ ++ ARMGenSubtargetInfo.inc \ ++ ARMGenRegisterInfo.inc \ ++ ARMGenInstrInfo.inc ++ ++arm_target_info_SRC_FILES := \ ++ ARMTargetInfo.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(arm_target_info_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(arm_target_info_SRC_FILES) ++ ++LOCAL_C_INCLUDES += \ ++ $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMARMInfo ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(arm_target_info_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(arm_target_info_SRC_FILES) ++ ++LOCAL_C_INCLUDES += \ ++ $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMARMInfo ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/Android.mk b/lib/Target/Android.mk +new file mode 100644 +index 0000000..1b43ce4 +--- /dev/null ++++ b/lib/Target/Android.mk +@@ -0,0 +1,39 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++target_SRC_FILES := \ ++ Target.cpp \ ++ TargetIntrinsicInfo.cpp \ ++ TargetJITInfo.cpp \ ++ TargetLibraryInfo.cpp \ ++ TargetLoweringObjectFile.cpp \ ++ TargetMachineC.cpp \ ++ TargetMachine.cpp \ ++ TargetSubtargetInfo.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(target_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMTarget ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(target_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMTarget ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/Mips/Android.mk b/lib/Target/Mips/Android.mk +new file mode 100644 +index 0000000..74b8a3b +--- /dev/null ++++ b/lib/Target/Mips/Android.mk +@@ -0,0 +1,85 @@ ++LOCAL_PATH := $(call my-dir) ++ ++mips_codegen_TBLGEN_TABLES := \ ++ MipsGenRegisterInfo.inc \ ++ MipsGenInstrInfo.inc \ ++ MipsGenCodeEmitter.inc \ ++ MipsGenMCCodeEmitter.inc \ ++ MipsGenMCPseudoLowering.inc \ ++ MipsGenAsmWriter.inc \ ++ MipsGenDAGISel.inc \ ++ MipsGenCallingConv.inc \ ++ MipsGenSubtargetInfo.inc ++ ++mips_codegen_SRC_FILES := \ ++ Mips16FrameLowering.cpp \ ++ Mips16HardFloat.cpp \ ++ Mips16HardFloatInfo.cpp \ ++ Mips16ISelDAGToDAG.cpp \ ++ Mips16ISelLowering.cpp \ ++ Mips16InstrInfo.cpp \ ++ Mips16RegisterInfo.cpp \ ++ MipsAnalyzeImmediate.cpp \ ++ MipsAsmPrinter.cpp \ ++ MipsCodeEmitter.cpp \ ++ MipsConstantIslandPass.cpp \ ++ MipsDelaySlotFiller.cpp \ ++ MipsFrameLowering.cpp \ ++ MipsInstrInfo.cpp \ ++ MipsISelDAGToDAG.cpp \ ++ MipsISelLowering.cpp \ ++ MipsJITInfo.cpp \ ++ MipsLongBranch.cpp \ ++ MipsMachineFunction.cpp \ ++ MipsMCInstLower.cpp \ ++ MipsModuleISelDAGToDAG.cpp \ ++ MipsOs16.cpp \ ++ MipsOptimizePICCall.cpp \ ++ MipsRegisterInfo.cpp \ ++ MipsSEFrameLowering.cpp \ ++ MipsSEISelDAGToDAG.cpp \ ++ MipsSEISelLowering.cpp \ ++ MipsSEInstrInfo.cpp \ ++ MipsSERegisterInfo.cpp \ ++ MipsSelectionDAGInfo.cpp \ ++ MipsSubtarget.cpp \ ++ MipsTargetMachine.cpp \ ++ MipsTargetObjectFile.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMMipsCodeGen ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(mips_codegen_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc ++ ++TBLGEN_TABLES := $(mips_codegen_TBLGEN_TABLES) ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device only ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMMipsCodeGen ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(mips_codegen_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc ++ ++TBLGEN_TABLES := $(mips_codegen_TBLGEN_TABLES) ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/Mips/AsmParser/Android.mk b/lib/Target/Mips/AsmParser/Android.mk +new file mode 100644 +index 0000000..7d8eec1 +--- /dev/null ++++ b/lib/Target/Mips/AsmParser/Android.mk +@@ -0,0 +1,56 @@ ++LOCAL_PATH := $(call my-dir) ++ ++#===---------------------------------------------------------------=== ++# libLLVMMipsAsmParser (common) ++#===---------------------------------------------------------------=== ++ ++mips_asm_parser_SRC_FILES := \ ++ MipsAsmParser.cpp ++ ++mips_asm_parser_C_INCLUDES := $(LOCAL_PATH)/.. ++ ++mips_asm_parser_TBLGEN_TABLES := \ ++ MipsGenAsmMatcher.inc \ ++ MipsGenInstrInfo.inc \ ++ MipsGenRegisterInfo.inc \ ++ MipsGenSubtargetInfo.inc ++ ++mips_asm_parser_TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++ ++#===---------------------------------------------------------------=== ++# libLLVMMipsAsmParser (host) ++#===---------------------------------------------------------------=== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMMipsAsmParser ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(mips_asm_parser_SRC_FILES) ++LOCAL_C_INCLUDES += $(mips_asm_parser_C_INCLUDES) ++TBLGEN_TABLES := $(mips_asm_parser_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++ ++#===---------------------------------------------------------------=== ++# libLLVMMipsAsmParser (target) ++#===---------------------------------------------------------------=== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMMipsAsmParser ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(mips_asm_parser_SRC_FILES) ++LOCAL_C_INCLUDES += $(mips_asm_parser_C_INCLUDES) ++TBLGEN_TABLES := $(mips_asm_parser_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/Mips/Disassembler/Android.mk b/lib/Target/Mips/Disassembler/Android.mk +new file mode 100644 +index 0000000..20fd87a +--- /dev/null ++++ b/lib/Target/Mips/Disassembler/Android.mk +@@ -0,0 +1,48 @@ ++LOCAL_PATH := $(call my-dir) ++ ++mips_disassembler_TBLGEN_TABLES := \ ++ MipsGenDisassemblerTables.inc \ ++ MipsGenInstrInfo.inc \ ++ MipsGenRegisterInfo.inc \ ++ MipsGenSubtargetInfo.inc ++ ++mips_disassembler_SRC_FILES := \ ++ MipsDisassembler.cpp ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMMipsDisassembler ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(mips_disassembler_SRC_FILES) ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++TBLGEN_TABLES := $(mips_disassembler_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMMipsDisassembler ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(mips_disassembler_SRC_FILES) ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++TBLGEN_TABLES := $(mips_disassembler_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) +diff --git a/lib/Target/Mips/InstPrinter/Android.mk b/lib/Target/Mips/InstPrinter/Android.mk +new file mode 100644 +index 0000000..f4f3a4f +--- /dev/null ++++ b/lib/Target/Mips/InstPrinter/Android.mk +@@ -0,0 +1,48 @@ ++LOCAL_PATH := $(call my-dir) ++ ++mips_asm_printer_TBLGEN_TABLES := \ ++ MipsGenAsmWriter.inc \ ++ MipsGenRegisterInfo.inc \ ++ MipsGenSubtargetInfo.inc \ ++ MipsGenInstrInfo.inc ++ ++mips_asm_printer_SRC_FILES := \ ++ MipsInstPrinter.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMMipsAsmPrinter ++LOCAL_MODULE_TAGS := optional ++ ++TBLGEN_TABLES := $(mips_asm_printer_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(mips_asm_printer_SRC_FILES) ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device only ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMMipsAsmPrinter ++LOCAL_MODULE_TAGS := optional ++ ++TBLGEN_TABLES := $(mips_asm_printer_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(mips_asm_printer_SRC_FILES) ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/Mips/MCTargetDesc/Android.mk b/lib/Target/Mips/MCTargetDesc/Android.mk +new file mode 100644 +index 0000000..7ee11a1 +--- /dev/null ++++ b/lib/Target/Mips/MCTargetDesc/Android.mk +@@ -0,0 +1,58 @@ ++LOCAL_PATH := $(call my-dir) ++ ++mips_mc_desc_TBLGEN_TABLES := \ ++ MipsGenRegisterInfo.inc \ ++ MipsGenInstrInfo.inc \ ++ MipsGenMCCodeEmitter.inc \ ++ MipsGenSubtargetInfo.inc ++ ++mips_mc_desc_SRC_FILES := \ ++ MipsAsmBackend.cpp \ ++ MipsELFObjectWriter.cpp \ ++ MipsELFStreamer.cpp \ ++ MipsMCAsmInfo.cpp \ ++ MipsMCCodeEmitter.cpp \ ++ MipsMCExpr.cpp \ ++ MipsMCTargetDesc.cpp \ ++ MipsNaClELFStreamer.cpp \ ++ MipsTargetStreamer.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMMipsDesc ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(mips_mc_desc_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++TBLGEN_TABLES := $(mips_mc_desc_TBLGEN_TABLES) ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device only ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMMipsDesc ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(mips_mc_desc_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++TBLGEN_TABLES := $(mips_mc_desc_TBLGEN_TABLES) ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/Mips/TargetInfo/Android.mk b/lib/Target/Mips/TargetInfo/Android.mk +new file mode 100644 +index 0000000..173d05b +--- /dev/null ++++ b/lib/Target/Mips/TargetInfo/Android.mk +@@ -0,0 +1,47 @@ ++LOCAL_PATH := $(call my-dir) ++ ++mips_target_info_TBLGEN_TABLES := \ ++ MipsGenInstrInfo.inc \ ++ MipsGenRegisterInfo.inc \ ++ MipsGenSubtargetInfo.inc ++ ++mips_target_info_SRC_FILES := \ ++ MipsTargetInfo.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMMipsInfo ++LOCAL_MODULE_TAGS := optional ++ ++TBLGEN_TABLES := $(mips_target_info_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(mips_target_info_SRC_FILES) ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMMipsInfo ++LOCAL_MODULE_TAGS := optional ++ ++TBLGEN_TABLES := $(mips_target_info_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(mips_target_info_SRC_FILES) ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +\ No newline at end of file +diff --git a/lib/Target/X86/Android.mk b/lib/Target/X86/Android.mk +new file mode 100644 +index 0000000..73031de +--- /dev/null ++++ b/lib/Target/X86/Android.mk +@@ -0,0 +1,72 @@ ++LOCAL_PATH := $(call my-dir) ++ ++x86_codegen_TBLGEN_TABLES := \ ++ X86GenAsmWriter.inc \ ++ X86GenAsmWriter1.inc \ ++ X86GenRegisterInfo.inc \ ++ X86GenInstrInfo.inc \ ++ X86GenDAGISel.inc \ ++ X86GenFastISel.inc \ ++ X86GenSubtargetInfo.inc \ ++ X86GenCallingConv.inc ++ ++x86_codegen_SRC_FILES := \ ++ X86AsmPrinter.cpp \ ++ X86COFFMachineModuleInfo.cpp \ ++ X86CodeEmitter.cpp \ ++ X86FastISel.cpp \ ++ X86FixupLEAs.cpp \ ++ X86FloatingPoint.cpp \ ++ X86FrameLowering.cpp \ ++ X86ISelDAGToDAG.cpp \ ++ X86ISelLowering.cpp \ ++ X86InstrInfo.cpp \ ++ X86JITInfo.cpp \ ++ X86MachineFunctionInfo.cpp \ ++ X86MCInstLower.cpp \ ++ X86PadShortFunction.cpp \ ++ X86RegisterInfo.cpp \ ++ X86SelectionDAGInfo.cpp \ ++ X86Subtarget.cpp \ ++ X86TargetMachine.cpp \ ++ X86TargetObjectFile.cpp \ ++ X86TargetTransformInfo.cpp \ ++ X86VZeroUpper.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(x86_codegen_TBLGEN_TABLES) ++ ++LOCAL_SRC_FILES := $(x86_codegen_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMX86CodeGen ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device only ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(x86_codegen_TBLGEN_TABLES) ++ ++LOCAL_SRC_FILES := $(x86_codegen_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMX86CodeGen ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/X86/AsmParser/Android.mk b/lib/Target/X86/AsmParser/Android.mk +new file mode 100644 +index 0000000..4235cb1 +--- /dev/null ++++ b/lib/Target/X86/AsmParser/Android.mk +@@ -0,0 +1,59 @@ ++LOCAL_PATH := $(call my-dir) ++ ++# For the device only ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++x86_asm_parser_SRC_FILES := \ ++ X86AsmInstrumentation.cpp \ ++ X86AsmParser.cpp ++ ++x86_asm_parser_TBLGEN_TABLES := \ ++ X86GenAsmMatcher.inc \ ++ X86GenInstrInfo.inc \ ++ X86GenRegisterInfo.inc \ ++ X86GenSubtargetInfo.inc ++ ++x86_asm_parser_TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++x86_asm_parser_C_INCLUDES += \ ++ $(LOCAL_PATH)/.. ++ ++ ++#===---------------------------------------------------------------=== ++# libX86AsmParser (host) ++#===---------------------------------------------------------------=== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMX86AsmParser ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(x86_asm_parser_SRC_FILES) ++LOCAL_C_INCLUDES += $(x86_asm_parser_C_INCLUDES) ++TBLGEN_TABLES := $(x86_asm_parser_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(x86_asm_parser_TBLGEN_TD_DIR) ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++ ++#===---------------------------------------------------------------=== ++# libX86AsmParser (target) ++#===---------------------------------------------------------------=== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMX86AsmParser ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(x86_asm_parser_SRC_FILES) ++LOCAL_C_INCLUDES += $(x86_asm_parser_C_INCLUDES) ++TBLGEN_TABLES := $(x86_asm_parser_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(x86_asm_parser_TBLGEN_TD_DIR) ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/X86/Disassembler/Android.mk b/lib/Target/X86/Disassembler/Android.mk +new file mode 100644 +index 0000000..3984266 +--- /dev/null ++++ b/lib/Target/X86/Disassembler/Android.mk +@@ -0,0 +1,56 @@ ++LOCAL_PATH := $(call my-dir) ++ ++x86_disassembler_TBLGEN_TABLES := \ ++ X86GenDisassemblerTables.inc \ ++ X86GenInstrInfo.inc \ ++ X86GenRegisterInfo.inc \ ++ X86GenSubtargetInfo.inc ++ ++x86_disassembler_SRC_FILES := \ ++ X86Disassembler.cpp \ ++ X86DisassemblerDecoder.c ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(x86_disassembler_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(x86_disassembler_SRC_FILES) ++ ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMX86Disassembler ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(x86_disassembler_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(x86_disassembler_SRC_FILES) ++ ++LOCAL_C_INCLUDES += \ ++ $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMX86Disassembler ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) +diff --git a/lib/Target/X86/InstPrinter/Android.mk b/lib/Target/X86/InstPrinter/Android.mk +new file mode 100644 +index 0000000..9881beb +--- /dev/null ++++ b/lib/Target/X86/InstPrinter/Android.mk +@@ -0,0 +1,57 @@ ++LOCAL_PATH := $(call my-dir) ++ ++x86_instprinter_TBLGEN_TABLES := \ ++ X86GenAsmWriter.inc \ ++ X86GenAsmWriter1.inc \ ++ X86GenInstrInfo.inc \ ++ X86GenRegisterInfo.inc \ ++ X86GenSubtargetInfo.inc ++ ++x86_instprinter_SRC_FILES := \ ++ X86ATTInstPrinter.cpp \ ++ X86IntelInstPrinter.cpp \ ++ X86InstComments.cpp ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(x86_instprinter_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(x86_instprinter_SRC_FILES) ++ ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMX86AsmPrinter ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(x86_instprinter_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(x86_instprinter_SRC_FILES) ++ ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE := libLLVMX86AsmPrinter ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) +diff --git a/lib/Target/X86/MCTargetDesc/Android.mk b/lib/Target/X86/MCTargetDesc/Android.mk +new file mode 100644 +index 0000000..ee37c27 +--- /dev/null ++++ b/lib/Target/X86/MCTargetDesc/Android.mk +@@ -0,0 +1,56 @@ ++LOCAL_PATH := $(call my-dir) ++ ++x86_mc_desc_TBLGEN_TABLES := \ ++ X86GenRegisterInfo.inc \ ++ X86GenInstrInfo.inc \ ++ X86GenSubtargetInfo.inc ++ ++x86_mc_desc_SRC_FILES := \ ++ X86AsmBackend.cpp \ ++ X86ELFObjectWriter.cpp \ ++ X86ELFRelocationInfo.cpp \ ++ X86MCTargetDesc.cpp \ ++ X86MCAsmInfo.cpp \ ++ X86MCCodeEmitter.cpp \ ++ X86MachORelocationInfo.cpp \ ++ X86MachObjectWriter.cpp \ ++ X86WinCOFFObjectWriter.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++LOCAL_MODULE:= libLLVMX86Desc ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(x86_mc_desc_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. ++TBLGEN_TABLES := $(x86_mc_desc_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device only ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++ ++LOCAL_MODULE:= libLLVMX86Desc ++LOCAL_MODULE_TAGS := optional ++ ++LOCAL_SRC_FILES := $(x86_mc_desc_SRC_FILES) ++LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. ++TBLGEN_TABLES := $(x86_mc_desc_TBLGEN_TABLES) ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/X86/TargetInfo/Android.mk b/lib/Target/X86/TargetInfo/Android.mk +new file mode 100644 +index 0000000..1a6c902 +--- /dev/null ++++ b/lib/Target/X86/TargetInfo/Android.mk +@@ -0,0 +1,55 @@ ++LOCAL_PATH := $(call my-dir) ++ ++x86_target_info_TBLGEN_TABLES := \ ++ X86GenRegisterInfo.inc \ ++ X86GenSubtargetInfo.inc \ ++ X86GenInstrInfo.inc ++ ++x86_target_info_SRC_FILES := \ ++ X86TargetInfo.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(x86_target_info_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(x86_target_info_SRC_FILES) ++ ++LOCAL_C_INCLUDES += \ ++ $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMX86Info ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++include $(CLEAR_TBLGEN_VARS) ++ ++TBLGEN_TABLES := $(x86_target_info_TBLGEN_TABLES) ++ ++TBLGEN_TD_DIR := $(LOCAL_PATH)/.. ++ ++LOCAL_SRC_FILES := $(x86_target_info_SRC_FILES) ++ ++LOCAL_C_INCLUDES += \ ++ $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMX86Info ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_TBLGEN_RULES_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Target/X86/Utils/Android.mk b/lib/Target/X86/Utils/Android.mk +new file mode 100644 +index 0000000..e0c4797 +--- /dev/null ++++ b/lib/Target/X86/Utils/Android.mk +@@ -0,0 +1,36 @@ ++LOCAL_PATH := $(call my-dir) ++ ++x86_utils_SRC_FILES := \ ++ X86ShuffleDecode.cpp ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(x86_utils_SRC_FILES) ++ ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMX86Utils ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(x86_utils_SRC_FILES) ++ ++LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. ++ ++LOCAL_MODULE:= libLLVMX86Utils ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) +diff --git a/lib/Transforms/IPO/Android.mk b/lib/Transforms/IPO/Android.mk +new file mode 100644 +index 0000000..1fe7d63 +--- /dev/null ++++ b/lib/Transforms/IPO/Android.mk +@@ -0,0 +1,52 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++transforms_ipo_SRC_FILES := \ ++ ArgumentPromotion.cpp \ ++ BarrierNoopPass.cpp \ ++ ConstantMerge.cpp \ ++ DeadArgumentElimination.cpp \ ++ ExtractGV.cpp \ ++ FunctionAttrs.cpp \ ++ GlobalDCE.cpp \ ++ GlobalOpt.cpp \ ++ IPConstantPropagation.cpp \ ++ IPO.cpp \ ++ InlineAlways.cpp \ ++ InlineSimple.cpp \ ++ Inliner.cpp \ ++ Internalize.cpp \ ++ LoopExtractor.cpp \ ++ MergeFunctions.cpp \ ++ PartialInlining.cpp \ ++ PassManagerBuilder.cpp \ ++ PruneEH.cpp \ ++ StripDeadPrototypes.cpp \ ++ StripSymbols.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(transforms_ipo_SRC_FILES) ++LOCAL_MODULE:= libLLVMipo ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(transforms_ipo_SRC_FILES) ++LOCAL_MODULE:= libLLVMipo ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Transforms/InstCombine/Android.mk b/lib/Transforms/InstCombine/Android.mk +new file mode 100644 +index 0000000..62dc7d9 +--- /dev/null ++++ b/lib/Transforms/InstCombine/Android.mk +@@ -0,0 +1,44 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++transforms_inst_combine_SRC_FILES := \ ++ InstCombineAddSub.cpp \ ++ InstCombineAndOrXor.cpp \ ++ InstCombineCalls.cpp \ ++ InstCombineCasts.cpp \ ++ InstCombineCompares.cpp \ ++ InstCombineLoadStoreAlloca.cpp \ ++ InstCombineMulDivRem.cpp \ ++ InstCombinePHI.cpp \ ++ InstCombineSelect.cpp \ ++ InstCombineShifts.cpp \ ++ InstCombineSimplifyDemanded.cpp \ ++ InstCombineVectorOps.cpp \ ++ InstructionCombining.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(transforms_inst_combine_SRC_FILES) ++LOCAL_MODULE:= libLLVMInstCombine ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(transforms_inst_combine_SRC_FILES) ++LOCAL_MODULE:= libLLVMInstCombine ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Transforms/Instrumentation/Android.mk b/lib/Transforms/Instrumentation/Android.mk +new file mode 100644 +index 0000000..f9a55c7 +--- /dev/null ++++ b/lib/Transforms/Instrumentation/Android.mk +@@ -0,0 +1,37 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++instrumentation_SRC_FILES := \ ++ AddressSanitizer.cpp \ ++ BoundsChecking.cpp \ ++ DataFlowSanitizer.cpp \ ++ DebugIR.cpp \ ++ GCOVProfiling.cpp \ ++ Instrumentation.cpp \ ++ MemorySanitizer.cpp \ ++ ThreadSanitizer.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE:= libLLVMInstrumentation ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(instrumentation_SRC_FILES) ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the target ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE:= libLLVMInstrumentation ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(instrumentation_SRC_FILES) ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Transforms/ObjCARC/Android.mk b/lib/Transforms/ObjCARC/Android.mk +new file mode 100644 +index 0000000..226e9e1 +--- /dev/null ++++ b/lib/Transforms/ObjCARC/Android.mk +@@ -0,0 +1,40 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++transforms_objcarc_SRC_FILES := \ ++ DependencyAnalysis.cpp \ ++ ObjCARCAliasAnalysis.cpp \ ++ ObjCARCAPElim.cpp \ ++ ObjCARCContract.cpp \ ++ ObjCARC.cpp \ ++ ObjCARCExpand.cpp \ ++ ObjCARCOpts.cpp \ ++ ObjCARCUtil.cpp \ ++ ProvenanceAnalysis.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(transforms_objcarc_SRC_FILES) ++LOCAL_MODULE:= libLLVMTransformObjCARC ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(transforms_objcarc_SRC_FILES) ++LOCAL_MODULE:= libLLVMTransformObjCARC ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Transforms/Scalar/Android.mk b/lib/Transforms/Scalar/Android.mk +new file mode 100644 +index 0000000..3894f93 +--- /dev/null ++++ b/lib/Transforms/Scalar/Android.mk +@@ -0,0 +1,73 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++transforms_scalar_SRC_FILES := \ ++ ADCE.cpp \ ++ ConstantProp.cpp \ ++ ConstantHoisting.cpp \ ++ CorrelatedValuePropagation.cpp \ ++ DCE.cpp \ ++ DeadStoreElimination.cpp \ ++ EarlyCSE.cpp \ ++ GlobalMerge.cpp \ ++ GVN.cpp \ ++ IndVarSimplify.cpp \ ++ JumpThreading.cpp \ ++ LICM.cpp \ ++ LoopDeletion.cpp \ ++ LoopIdiomRecognize.cpp \ ++ LoopInstSimplify.cpp \ ++ LoopRerollPass.cpp \ ++ LoopRotation.cpp \ ++ LoopStrengthReduce.cpp \ ++ LoopUnrollPass.cpp \ ++ LoopUnswitch.cpp \ ++ LowerAtomic.cpp \ ++ MemCpyOptimizer.cpp \ ++ PartiallyInlineLibCalls.cpp \ ++ Reassociate.cpp \ ++ Reg2Mem.cpp \ ++ SCCP.cpp \ ++ SROA.cpp \ ++ SampleProfile.cpp \ ++ Scalar.cpp \ ++ Scalarizer.cpp \ ++ ScalarReplAggregates.cpp \ ++ SimplifyCFGPass.cpp \ ++ Sink.cpp \ ++ StructurizeCFG.cpp \ ++ TailRecursionElimination.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := \ ++ $(transforms_scalar_SRC_FILES) ++ ++LOCAL_MODULE:= libLLVMScalarOpts ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(transforms_scalar_SRC_FILES) ++LOCAL_MODULE:= libLLVMScalarOpts ++ ++# Override the default optimization level to work around a SIGSEGV ++# on x86 target builds for SROA.cpp. ++# Bug: 8047767 ++LOCAL_CFLAGS_x86 += -O1 ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Transforms/Utils/Android.mk b/lib/Transforms/Utils/Android.mk +new file mode 100644 +index 0000000..ab4d8a8 +--- /dev/null ++++ b/lib/Transforms/Utils/Android.mk +@@ -0,0 +1,66 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++transforms_utils_SRC_FILES := \ ++ AddDiscriminators.cpp \ ++ ASanStackFrameLayout.cpp \ ++ BasicBlockUtils.cpp \ ++ BreakCriticalEdges.cpp \ ++ BuildLibCalls.cpp \ ++ BypassSlowDivision.cpp \ ++ CloneFunction.cpp \ ++ CloneModule.cpp \ ++ CmpInstAnalysis.cpp \ ++ CodeExtractor.cpp \ ++ DemoteRegToStack.cpp \ ++ GlobalStatus.cpp \ ++ InlineFunction.cpp \ ++ InstructionNamer.cpp \ ++ LCSSA.cpp \ ++ Local.cpp \ ++ LoopSimplify.cpp \ ++ LoopUnroll.cpp \ ++ LoopUnrollRuntime.cpp \ ++ LowerExpectIntrinsic.cpp \ ++ LowerInvoke.cpp \ ++ LowerSwitch.cpp \ ++ Mem2Reg.cpp \ ++ MetaRenamer.cpp \ ++ ModuleUtils.cpp \ ++ PromoteMemoryToRegister.cpp \ ++ SSAUpdater.cpp \ ++ SimplifyCFG.cpp \ ++ SimplifyIndVar.cpp \ ++ SimplifyInstructions.cpp \ ++ SimplifyLibCalls.cpp \ ++ SpecialCaseList.cpp \ ++ UnifyFunctionExitNodes.cpp \ ++ Utils.cpp \ ++ ValueMapper.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(transforms_utils_SRC_FILES) ++LOCAL_MODULE:= libLLVMTransformUtils ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(transforms_utils_SRC_FILES) ++LOCAL_MODULE:= libLLVMTransformUtils ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/lib/Transforms/Vectorize/Android.mk b/lib/Transforms/Vectorize/Android.mk +new file mode 100644 +index 0000000..ea090c0 +--- /dev/null ++++ b/lib/Transforms/Vectorize/Android.mk +@@ -0,0 +1,35 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++transforms_vectorize_SRC_FILES := \ ++ BBVectorize.cpp \ ++ LoopVectorize.cpp \ ++ SLPVectorizer.cpp \ ++ Vectorize.cpp ++ ++# For the host ++# ===================================================== ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(transforms_vectorize_SRC_FILES) ++LOCAL_MODULE:= libLLVMVectorize ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_STATIC_LIBRARY) ++ ++# For the device ++# ===================================================== ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_SRC_FILES := $(transforms_vectorize_SRC_FILES) ++LOCAL_MODULE:= libLLVMVectorize ++ ++LOCAL_MODULE_TAGS := optional ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_STATIC_LIBRARY) ++endif +diff --git a/llvm-device-build.mk b/llvm-device-build.mk +new file mode 100644 +index 0000000..7464c98 +--- /dev/null ++++ b/llvm-device-build.mk +@@ -0,0 +1,79 @@ ++LOCAL_MODULE_TARGET_ARCH := $(LLVM_SUPPORTED_ARCH) ++ ++LOCAL_CLANG := true ++ ++LOCAL_CFLAGS := \ ++ -D_GNU_SOURCE \ ++ -D__STDC_LIMIT_MACROS \ ++ -D__STDC_CONSTANT_MACROS \ ++ -D__STDC_FORMAT_MACROS \ ++ -O2 \ ++ -fomit-frame-pointer \ ++ -Wall \ ++ -W \ ++ -Wno-unused-parameter \ ++ -Wwrite-strings \ ++ -Dsprintf=sprintf \ ++ $(LOCAL_CFLAGS) ++ ++# The three inline options together reduce libbcc.so almost 1MB. ++# We move them from global build/core/combo/TARGET_linux-arm.mk ++# to here. ++LOCAL_CFLAGS := -DANDROID_TARGET_BUILD \ ++ -finline-functions \ ++ $(LOCAL_CFLAGS) ++ ++ifeq ($(TARGET_BUILD_VARIANT),eng) ++LOCAL_CFLAGS := -DANDROID_ENGINEERING_BUILD \ ++ $(LOCAL_CFLAGS) ++endif ++ ++ifeq ($(LLVM_ENABLE_ASSERTION),true) ++LOCAL_CFLAGS := \ ++ $(LOCAL_CFLAGS) \ ++ -D_DEBUG \ ++ -UNDEBUG ++endif ++ ++ifneq ($(REQUIRES_EH),1) ++LOCAL_CFLAGS += -fno-exceptions ++else ++# No action. The device target should not have exception enabled since bionic ++# doesn't support it ++REQUIRES_EH := 0 ++endif ++ ++ifneq ($(REQUIRES_RTTI),1) ++LOCAL_CPPFLAGS += -fno-rtti ++else ++REQUIRES_RTTI := 0 ++endif ++ ++LOCAL_CPPFLAGS := \ ++ $(LOCAL_CPPFLAGS) \ ++ -Woverloaded-virtual \ ++ -Wno-sign-promo ++ ++# Make sure bionic is first so we can include system headers. ++LOCAL_C_INCLUDES := \ ++ bionic \ ++ external/stlport/stlport \ ++ $(LLVM_ROOT_PATH) \ ++ $(LLVM_ROOT_PATH)/include \ ++ $(LLVM_ROOT_PATH)/device/include \ ++ $(LOCAL_C_INCLUDES) ++ ++########################################################### ++## Commands for running tblgen to compile a td file ++########################################################### ++define transform-device-td-to-out ++@mkdir -p $(dir $@) ++@echo "Device TableGen (gen-$(1)): $(TBLGEN_LOCAL_MODULE) <= $<" ++$(hide) $(TBLGEN) \ ++ -I $(dir $<) \ ++ -I $(LLVM_ROOT_PATH)/include \ ++ -I $(LLVM_ROOT_PATH)/device/include \ ++ -I $(LLVM_ROOT_PATH)/lib/Target \ ++ -gen-$(strip $(1)) \ ++ -o $@ $< ++endef +diff --git a/llvm-gen-intrinsics.mk b/llvm-gen-intrinsics.mk +new file mode 100644 +index 0000000..358027b +--- /dev/null ++++ b/llvm-gen-intrinsics.mk +@@ -0,0 +1,19 @@ ++# We treat Intrinsics.td as a very special target just like what lib/VMCore/Makefile does ++INTRINSICTD := $(LLVM_ROOT_PATH)/include/llvm/IR/Intrinsics.td ++INTRINSICTDS := $(wildcard $(dir $(INTRINSICTD))/Intrinsics*.td) ++ ++LOCAL_SRC_FILES := $(INTRINSICTD) $(LOCAL_SRC_FILES) ++ ++ifeq ($(LOCAL_MODULE_CLASS),) ++ LOCAL_MODULE_CLASS := STATIC_LIBRARIES ++endif ++ ++GENFILE := $(addprefix $(call local-generated-sources-dir)/llvm/IR/,Intrinsics.gen) ++LOCAL_GENERATED_SOURCES += $(GENFILE) ++$(GENFILE): TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(GENFILE): $(INTRINSICTD) $(INTRINSICTDS) | $(TBLGEN) ++ifeq ($(LOCAL_IS_HOST_MODULE),true) ++ $(call transform-host-td-to-out,intrinsic) ++else ++ $(call transform-device-td-to-out,intrinsic) ++endif +diff --git a/llvm-host-build.mk b/llvm-host-build.mk +new file mode 100644 +index 0000000..7e96615 +--- /dev/null ++++ b/llvm-host-build.mk +@@ -0,0 +1,64 @@ ++LOCAL_CLANG := true ++ ++LOCAL_CFLAGS += \ ++ -D_GNU_SOURCE \ ++ -D__STDC_LIMIT_MACROS \ ++ -O2 \ ++ -fomit-frame-pointer \ ++ -Wall \ ++ -W \ ++ -Wno-unused-parameter \ ++ -Wwrite-strings \ ++ -Dsprintf=sprintf \ ++ $(LOCAL_CFLAGS) ++ ++ifeq ($(LLVM_ENABLE_ASSERTION),true) ++LOCAL_CFLAGS := \ ++ $(LOCAL_CFLAGS) \ ++ -D_DEBUG \ ++ -UNDEBUG ++endif ++ ++ifneq ($(REQUIRES_EH),1) ++LOCAL_CFLAGS += -fno-exceptions ++else ++REQUIRES_EH := 0 ++LOCAL_CFLAGS += -fexceptions ++endif ++ ++ifneq ($(REQUIRES_RTTI),1) ++LOCAL_CPPFLAGS += -fno-rtti ++else ++REQUIRES_RTTI := 0 ++endif ++ ++LOCAL_CPPFLAGS := \ ++ $(LOCAL_CPPFLAGS) \ ++ -Woverloaded-virtual \ ++ -Wno-sign-promo \ ++ -std=c++11 ++ ++# Make sure bionic is first so we can include system headers. ++LOCAL_C_INCLUDES := \ ++ $(LLVM_ROOT_PATH) \ ++ $(LLVM_ROOT_PATH)/include \ ++ $(LLVM_ROOT_PATH)/host/include \ ++ $(LOCAL_C_INCLUDES) ++ ++LOCAL_IS_HOST_MODULE := true ++ ++########################################################### ++## Commands for running tblgen to compile a td file ++########################################################### ++define transform-host-td-to-out ++@mkdir -p $(dir $@) ++@echo "Host TableGen: $(TBLGEN_LOCAL_MODULE) (gen-$(1)) <= $<" ++$(hide) $(TBLGEN) \ ++ -I $(dir $<) \ ++ -I $(LLVM_ROOT_PATH)/include \ ++ -I $(LLVM_ROOT_PATH)/host/include \ ++ -I $(LLVM_ROOT_PATH)/lib/Target \ ++ $(if $(strip $(CLANG_ROOT_PATH)),-I $(CLANG_ROOT_PATH)/include,) \ ++ -gen-$(strip $(1)) \ ++ -o $@ $< ++endef +diff --git a/llvm-tblgen-rules.mk b/llvm-tblgen-rules.mk +new file mode 100644 +index 0000000..0746e8b +--- /dev/null ++++ b/llvm-tblgen-rules.mk +@@ -0,0 +1,208 @@ ++########################################################### ++## Commands for running tblgen to compile a td file ++########################################################## ++define transform-td-to-out ++$(if $(LOCAL_IS_HOST_MODULE), \ ++ $(call transform-host-td-to-out,$(1)), \ ++ $(call transform-device-td-to-out,$(1))) ++endef ++ ++########################################################### ++## TableGen: Compile .td files to .inc. ++########################################################### ++ ++# Set LOCAL_MODULE_CLASS to STATIC_LIBRARIES default (require ++# for macro local-generated-sources-dir) ++ifeq ($(LOCAL_MODULE_CLASS),) ++ LOCAL_MODULE_CLASS := STATIC_LIBRARIES ++endif ++ ++ifneq ($(strip $(TBLGEN_TABLES)),) ++ ++generated_sources := $(call local-generated-sources-dir) ++tblgen_gen_tables := $(addprefix $(generated_sources)/,$(TBLGEN_TABLES)) ++LOCAL_GENERATED_SOURCES += $(tblgen_gen_tables) ++ ++tblgen_source_dir := $(LOCAL_PATH) ++ifneq ($(TBLGEN_TD_DIR),) ++tblgen_source_dir := $(TBLGEN_TD_DIR) ++endif ++ ++ifneq (,$(filter $(tblgen_source_dir),MCTargetDesc)) ++tblgen_td_deps := $(tblgen_source_dir)/../*.td ++else ++tblgen_td_deps := $(tblgen_source_dir)/*.td ++endif ++tblgen_td_deps := $(wildcard $(tblgen_td_deps)) ++ ++# ++# The directory and the .td directory is not the same. ++# ++ifeq ($(tblgen_source_dir),$(LLVM_ROOT_PATH)/lib/Target/ARM/MCTargetDesc) ++$(generated_sources)/%GenRegisterInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenRegisterInfo.inc: $(tblgen_source_dir)/../%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out, register-info) ++ ++$(generated_sources)/%GenInstrInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenInstrInfo.inc: $(tblgen_source_dir)/../%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,instr-info) ++ ++$(generated_sources)/%GenSubtargetInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenSubtargetInfo.inc: $(tblgen_source_dir)/../%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,subtarget) ++endif ++ ++ifeq ($(tblgen_source_dir),$(LLVM_ROOT_PATH)/lib/Target/X86/MCTargetDesc) ++$(generated_sources)/%GenRegisterInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenRegisterInfo.inc: $(tblgen_source_dir)/../%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out, register-info) ++ ++$(generated_sources)/%GenInstrInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenInstrInfo.inc: $(tblgen_source_dir)/../%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,instr-info) ++ ++$(generated_sources)/%GenSubtargetInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenSubtargetInfo.inc: $(tblgen_source_dir)/../%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,subtarget) ++endif ++ ++ifeq ($(tblgen_source_dir),$(LLVM_ROOT_PATH)/lib/Target/Mips/MCTargetDesc) ++$(generated_sources)/%GenRegisterInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenRegisterInfo.inc: $(tblgen_source_dir)/../%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out, register-info) ++ ++$(generated_sources)/%GenInstrInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenInstrInfo.inc: $(tblgen_source_dir)/../%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,instr-info) ++ ++$(generated_sources)/%GenSubtargetInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenSubtargetInfo.inc: $(tblgen_source_dir)/../%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,subtarget) ++endif ++ ++ ++ifneq ($(filter %GenRegisterInfo.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenRegisterInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenRegisterInfo.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,register-info) ++endif ++ ++ifneq ($(filter %GenInstrInfo.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenInstrInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenInstrInfo.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,instr-info) ++endif ++ ++ifneq ($(filter %GenAsmWriter.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenAsmWriter.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenAsmWriter.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,asm-writer) ++endif ++ ++ifneq ($(filter %GenAsmWriter1.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenAsmWriter1.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenAsmWriter1.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,asm-writer -asmwriternum=1) ++endif ++ ++ifneq ($(filter %GenAsmMatcher.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenAsmMatcher.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenAsmMatcher.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,asm-matcher) ++endif ++ ++ifneq ($(filter %GenCodeEmitter.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenCodeEmitter.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenCodeEmitter.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,emitter) ++endif ++ ++ifneq ($(filter %GenMCCodeEmitter.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenMCCodeEmitter.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenMCCodeEmitter.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,emitter -mc-emitter) ++endif ++ ++ifneq ($(filter %GenMCPseudoLowering.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenMCPseudoLowering.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenMCPseudoLowering.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,pseudo-lowering) ++endif ++ ++ifneq ($(filter %GenDAGISel.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenDAGISel.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenDAGISel.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,dag-isel) ++endif ++ ++ifneq ($(filter %GenDisassemblerTables.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenDisassemblerTables.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenDisassemblerTables.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,disassembler) ++endif ++ ++ifneq ($(filter %GenEDInfo.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenEDInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenEDInfo.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,enhanced-disassembly-info) ++endif ++ ++ifneq ($(filter %GenFastISel.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenFastISel.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenFastISel.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,fast-isel) ++endif ++ ++ifneq ($(filter %GenSubtargetInfo.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenSubtargetInfo.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenSubtargetInfo.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,subtarget) ++endif ++ ++ifneq ($(filter %GenCallingConv.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenCallingConv.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenCallingConv.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,callingconv) ++endif ++ ++ifneq ($(filter %GenIntrinsics.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/%GenIntrinsics.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/%GenIntrinsics.inc: $(tblgen_source_dir)/%.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,tgt_intrinsics) ++endif ++ ++ifneq ($(findstring ARMGenDecoderTables.inc,$(tblgen_gen_tables)),) ++$(generated_sources)/ARMGenDecoderTables.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE) ++$(generated_sources)/ARMGenDecoderTables.inc: $(tblgen_source_dir)/ARM.td \ ++ $(tblgen_td_deps) | $(TBLGEN) ++ $(call transform-td-to-out,arm-decoder) ++endif ++ ++# Reset local variables ++tblgen_td_deps := ++ ++endif +diff --git a/llvm.mk b/llvm.mk +new file mode 100644 +index 0000000..073ceb7 +--- /dev/null ++++ b/llvm.mk +@@ -0,0 +1,11 @@ ++ifeq ($(LLVM_ROOT_PATH),) ++$(error Must set variable LLVM_ROOT_PATH before including this! $(LOCAL_PATH)) ++endif ++ ++CLEAR_TBLGEN_VARS := $(LLVM_ROOT_PATH)/clear_tblgen_vars.mk ++LLVM_HOST_BUILD_MK := $(LLVM_ROOT_PATH)/llvm-host-build.mk ++LLVM_DEVICE_BUILD_MK := $(LLVM_ROOT_PATH)/llvm-device-build.mk ++LLVM_GEN_INTRINSICS_MK := $(LLVM_ROOT_PATH)/llvm-gen-intrinsics.mk ++LLVM_TBLGEN_RULES_MK := $(LLVM_ROOT_PATH)/llvm-tblgen-rules.mk ++ ++LLVM_SUPPORTED_ARCH := arm arm64 mips x86 x86_64 +diff --git a/shared_llvm.mk b/shared_llvm.mk +new file mode 100644 +index 0000000..f4be822 +--- /dev/null ++++ b/shared_llvm.mk +@@ -0,0 +1,137 @@ ++# Don't build the library in unbundled branches. ++ifeq (,$(TARGET_BUILD_APPS)) ++ ++LOCAL_PATH:= $(call my-dir) ++ ++llvm_pre_static_libraries := \ ++ libLLVMLinker \ ++ libLLVMipo \ ++ libLLVMIRReader \ ++ libLLVMBitWriter \ ++ libLLVMBitReader ++ ++llvm_arm_static_libraries := \ ++ libLLVMARMCodeGen \ ++ libLLVMARMAsmParser \ ++ libLLVMARMAsmPrinter \ ++ libLLVMARMInfo \ ++ libLLVMARMDesc \ ++ libLLVMARMDisassembler ++ ++llvm_x86_static_libraries := \ ++ libLLVMX86CodeGen \ ++ libLLVMX86Info \ ++ libLLVMX86Desc \ ++ libLLVMX86AsmParser \ ++ libLLVMX86AsmPrinter \ ++ libLLVMX86Utils \ ++ libLLVMX86Disassembler ++ ++llvm_mips_static_libraries := \ ++ libLLVMMipsCodeGen \ ++ libLLVMMipsInfo \ ++ libLLVMMipsDesc \ ++ libLLVMMipsAsmParser \ ++ libLLVMMipsAsmPrinter \ ++ libLLVMMipsDisassembler ++ ++llvm_arm64_static_libraries := \ ++ libLLVMARM64CodeGen \ ++ libLLVMARM64Info \ ++ libLLVMARM64Desc \ ++ libLLVMARM64AsmParser \ ++ libLLVMARM64AsmPrinter \ ++ libLLVMARM64Utils \ ++ libLLVMARM64Disassembler ++ ++llvm_post_static_libraries := \ ++ libLLVMAsmPrinter \ ++ libLLVMSelectionDAG \ ++ libLLVMCodeGen \ ++ libLLVMObject \ ++ libLLVMScalarOpts \ ++ libLLVMInstCombine \ ++ libLLVMInstrumentation \ ++ libLLVMTransformObjCARC \ ++ libLLVMTransformUtils \ ++ libLLVMipa \ ++ libLLVMAnalysis \ ++ libLLVMTarget \ ++ libLLVMMC \ ++ libLLVMMCParser \ ++ libLLVMCore \ ++ libLLVMAsmParser \ ++ libLLVMOption \ ++ libLLVMSupport \ ++ libLLVMVectorize ++ ++llvm_host_static_libraries := \ ++ libLLVMExecutionEngine \ ++ libLLVMMCDisassembler \ ++ libLLVMRuntimeDyld \ ++ libLLVMJIT \ ++ libLLVMMCJIT ++ ++ifeq (true,$(FORCE_BUILD_LLVM_COMPONENTS)) ++# HOST LLVM shared library build ++include $(CLEAR_VARS) ++LOCAL_IS_HOST_MODULE := true ++ ++LOCAL_MODULE:= libLLVM ++ ++LOCAL_MODULE_TAGS := optional ++ ++# Host build pulls in all ARM, Mips, X86 components. ++LOCAL_WHOLE_STATIC_LIBRARIES := \ ++ $(llvm_pre_static_libraries) \ ++ $(llvm_arm_static_libraries) \ ++ $(llvm_x86_static_libraries) \ ++ $(llvm_mips_static_libraries) \ ++ $(llvm_arm64_static_libraries) \ ++ $(llvm_host_static_libraries) \ ++ $(llvm_post_static_libraries) ++ ++ifeq ($(HOST_OS),windows) ++ LOCAL_LDLIBS := -limagehlp -lpsapi ++else ++ LOCAL_LDLIBS := -ldl -lpthread ++endif ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_SHARED_LIBRARY) ++endif ++ ++ifeq (,$(filter $(TARGET_ARCH),$(LLVM_SUPPORTED_ARCH))) ++$(warning TODO $(TARGET_ARCH): Enable llvm build) ++endif ++ ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++# DEVICE LLVM shared library build ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE:= libLLVM ++ ++LOCAL_MODULE_TAGS := optional ++ ++# Device build selectively pulls in ARM, Mips, X86 components. ++LOCAL_WHOLE_STATIC_LIBRARIES := \ ++ $(llvm_pre_static_libraries) ++ ++LOCAL_WHOLE_STATIC_LIBRARIES_arm += $(llvm_arm_static_libraries) ++LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_x86_static_libraries) ++LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_x86_static_libraries) ++LOCAL_WHOLE_STATIC_LIBRARIES_mips += $(llvm_mips_static_libraries) ++LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_arm64_static_libraries) ++ ++LOCAL_WHOLE_STATIC_LIBRARIES += $(llvm_post_static_libraries) ++ ++#LOCAL_LDLIBS := -ldl -lpthread ++LOCAL_SHARED_LIBRARIES := libcutils libdl libstlport ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(BUILD_SHARED_LIBRARY) ++ ++endif ++ ++endif # don't build in unbundled branches ++ +diff --git a/tools/llc/Android.mk b/tools/llc/Android.mk +new file mode 100644 +index 0000000..b9d4b74 +--- /dev/null ++++ b/tools/llc/Android.mk +@@ -0,0 +1,136 @@ ++LOCAL_PATH := $(call my-dir) ++ ++LLVM_ROOT_PATH := $(LOCAL_PATH)/../.. ++ ++ ++#===---------------------------------------------------------------=== ++# llc command line tool (common) ++#===---------------------------------------------------------------=== ++ ++llvm_llc_SRC_FILES := \ ++ llc.cpp ++ ++llvm_llc_mips_STATIC_LIBRARIES := \ ++ libLLVMMipsAsmParser \ ++ libLLVMMipsInfo \ ++ libLLVMMipsCodeGen \ ++ libLLVMMipsDesc \ ++ libLLVMMipsAsmPrinter \ ++ ++llvm_llc_x86_STATIC_LIBRARIES := \ ++ libLLVMX86Info \ ++ libLLVMX86AsmParser \ ++ libLLVMX86CodeGen \ ++ libLLVMX86Disassembler \ ++ libLLVMX86Desc \ ++ libLLVMX86AsmPrinter \ ++ libLLVMX86Utils ++ ++llvm_llc_arm_STATIC_LIBRARIES := \ ++ libLLVMARMCodeGen \ ++ libLLVMARMDisassembler \ ++ libLLVMARMAsmParser \ ++ libLLVMARMAsmPrinter \ ++ libLLVMARMDesc \ ++ libLLVMARMInfo ++ ++llvm_llc_STATIC_LIBRARIES := \ ++ libLLVMAsmPrinter \ ++ libLLVMIRReader \ ++ libLLVMAsmParser \ ++ libLLVMBitReader \ ++ libLLVMBitWriter \ ++ libLLVMSelectionDAG \ ++ libLLVMInstCombine \ ++ libLLVMInstrumentation \ ++ libLLVMCodeGen \ ++ libLLVMObject \ ++ libLLVMipo \ ++ libLLVMipa \ ++ libLLVMLinker \ ++ libLLVMMC \ ++ libLLVMMCParser \ ++ libLLVMScalarOpts \ ++ libLLVMTransformUtils \ ++ libLLVMVectorize \ ++ libLLVMAnalysis \ ++ libLLVMTarget \ ++ libLLVMCore \ ++ libLLVMSupport ++ ++llvm_llc_arm64_STATIC_LIBRARIES := \ ++ libLLVMARM64Info \ ++ libLLVMARM64AsmParser \ ++ libLLVMARM64CodeGen \ ++ libLLVMARM64Disassembler \ ++ libLLVMARM64Desc \ ++ libLLVMARM64AsmPrinter \ ++ libLLVMARM64Utils ++ ++ ++ ++#===---------------------------------------------------------------=== ++# llc command line tool (host) ++#===---------------------------------------------------------------=== ++ ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE := llc ++LOCAL_MODULE_TAGS := optional ++LOCAL_MODULE_CLASS := EXECUTABLES ++LOCAL_IS_HOST_MODULE := true ++ ++LOCAL_SRC_FILES := $(llvm_llc_SRC_FILES) ++ ++LOCAL_STATIC_LIBRARIES := \ ++ $(llvm_llc_arm_STATIC_LIBRARIES) \ ++ $(llvm_llc_mips_STATIC_LIBRARIES) \ ++ $(llvm_llc_x86_STATIC_LIBRARIES) \ ++ $(llvm_llc_arm64_STATIC_LIBRARIES) \ ++ $(llvm_llc_STATIC_LIBRARIES) ++ ++LOCAL_LDLIBS += -lpthread -lm -ldl ++LOCAL_C_INCLUDES += external/llvm/include ++ ++include $(LLVM_ROOT_PATH)/llvm.mk ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_EXECUTABLE) ++ ++ ++#===---------------------------------------------------------------=== ++# llc command line tool (target) ++#===---------------------------------------------------------------=== ++ ++ifeq (,$(filter $(TARGET_ARCH),$(LLVM_SUPPORTED_ARCH))) ++$(warning TODO $(TARGET_ARCH): Enable llc build) ++endif ++ ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE := llc ++LOCAL_MODULE_TAGS := optional ++LOCAL_MODULE_CLASS := EXECUTABLES ++ ++LOCAL_SRC_FILES := $(llvm_llc_SRC_FILES) ++LOCAL_C_INCLUDES += external/llvm/include ++ ++LOCAL_STATIC_LIBRARIES_arm := $(llvm_llc_arm_STATIC_LIBRARIES) ++LOCAL_STATIC_LIBRARIES_mips := $(llvm_llc_mips_STATIC_LIBRARIES) ++LOCAL_STATIC_LIBRARIES_x86 := $(llvm_llc_x86_STATIC_LIBRARIES) ++LOCAL_STATIC_LIBRARIES_x86_64 := $(llvm_llc_x86_STATIC_LIBRARIES) ++LOCAL_STATIC_LIBRARIES_arm64 := $(llvm_llc_arm64_STATIC_LIBRARIES) ++ ++LOCAL_STATIC_LIBRARIES += $(llvm_llc_STATIC_LIBRARIES) ++ ++LOCAL_SHARED_LIBRARIES := \ ++ libcutils \ ++ libdl \ ++ libstlport ++ ++include $(LLVM_ROOT_PATH)/llvm.mk ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_EXECUTABLE) ++endif +diff --git a/tools/llvm-as/Android.mk b/tools/llvm-as/Android.mk +new file mode 100644 +index 0000000..e58868b +--- /dev/null ++++ b/tools/llvm-as/Android.mk +@@ -0,0 +1,28 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++llvm_as_SRC_FILES := \ ++ llvm-as.cpp ++ ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE := llvm-as ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(llvm_as_SRC_FILES) ++LOCAL_LDLIBS += -lm ++ifdef USE_MINGW ++LOCAL_LDLIBS += -limagehlp ++else ++LOCAL_LDLIBS += -lpthread -ldl ++endif ++ ++REQUIRES_EH := 1 ++REQUIRES_RTTI := 1 ++ ++LOCAL_STATIC_LIBRARIES := \ ++ libLLVMAsmParser \ ++ libLLVMBitWriter \ ++ libLLVMCore \ ++ libLLVMSupport ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_EXECUTABLE) +diff --git a/tools/llvm-dis/Android.mk b/tools/llvm-dis/Android.mk +new file mode 100644 +index 0000000..22d44fd +--- /dev/null ++++ b/tools/llvm-dis/Android.mk +@@ -0,0 +1,25 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++llvm_dis_SRC_FILES := \ ++ llvm-dis.cpp ++ ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE := llvm-dis ++LOCAL_MODULE_CLASS := EXECUTABLES ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(llvm_dis_SRC_FILES) ++LOCAL_LDLIBS += -lpthread -lm -ldl ++ ++REQUIRES_EH := 1 ++REQUIRES_RTTI := 1 ++ ++LOCAL_STATIC_LIBRARIES := \ ++ libLLVMAnalysis \ ++ libLLVMBitReader \ ++ libLLVMCore \ ++ libLLVMSupport ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_EXECUTABLE) +diff --git a/tools/llvm-link/Android.mk b/tools/llvm-link/Android.mk +new file mode 100644 +index 0000000..e051492 +--- /dev/null ++++ b/tools/llvm-link/Android.mk +@@ -0,0 +1,50 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++llvm_link_SRC_FILES := \ ++ llvm-link.cpp ++ ++llvm_link_STATIC_LIBRARIES := \ ++ libLLVMLinker \ ++ libLLVMIRReader \ ++ libLLVMBitReader \ ++ libLLVMBitWriter \ ++ libLLVMAsmParser \ ++ libLLVMTransformUtils \ ++ libLLVMAnalysis \ ++ libLLVMTarget \ ++ libLLVMCore \ ++ libLLVMSupport ++ ++#===---------------------------------------------------------------=== ++# llvm-link command line tool (host) ++#===---------------------------------------------------------------=== ++ ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE := llvm-link ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(llvm_link_SRC_FILES) ++LOCAL_STATIC_LIBRARIES := $(llvm_link_STATIC_LIBRARIES) ++LOCAL_LDLIBS += -lpthread -lm -ldl ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_EXECUTABLE) ++ ++#===---------------------------------------------------------------=== ++# llvm-link command line tool (target) ++#===---------------------------------------------------------------=== ++ ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE := llvm-link ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(llvm_link_SRC_FILES) ++LOCAL_STATIC_LIBRARIES := $(llvm_link_STATIC_LIBRARIES) ++LOCAL_SHARED_LIBRARIES := \ ++ libcutils \ ++ libstlport ++ ++include $(LLVM_DEVICE_BUILD_MK) ++include $(BUILD_EXECUTABLE) ++endif +diff --git a/tools/opt/Android.mk b/tools/opt/Android.mk +new file mode 100644 +index 0000000..c5bb4f8 +--- /dev/null ++++ b/tools/opt/Android.mk +@@ -0,0 +1,81 @@ ++LOCAL_PATH := $(call my-dir) ++ ++LLVM_ROOT_PATH := $(LOCAL_PATH)/../.. ++ ++ ++#===---------------------------------------------------------------=== ++# opt command line tool (common) ++#===---------------------------------------------------------------=== ++ ++llvm_opt_SRC_FILES := \ ++ AnalysisWrappers.cpp \ ++ GraphPrinters.cpp \ ++ PrintSCC.cpp \ ++ opt.cpp ++ ++llvm_opt_STATIC_LIBRARIES := \ ++ libLLVMScalarOpts \ ++ libLLVMInstCombine \ ++ libLLVMInstrumentation \ ++ libLLVMMCParser \ ++ libLLVMMC \ ++ libLLVMAsmParser \ ++ libLLVMBitWriter \ ++ libLLVMBitReader \ ++ libLLVMipa \ ++ libLLVMipo \ ++ libLLVMTransformUtils \ ++ libLLVMVectorize \ ++ libLLVMAnalysis \ ++ libLLVMTarget \ ++ libLLVMCore \ ++ libLLVMSupport ++ ++ ++#===---------------------------------------------------------------=== ++# opt command line tool (host) ++#===---------------------------------------------------------------=== ++ ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE := opt ++LOCAL_MODULE_TAGS := optional ++LOCAL_MODULE_CLASS := EXECUTABLES ++LOCAL_IS_HOST_MODULE := true ++ ++LOCAL_SRC_FILES := $(llvm_opt_SRC_FILES) ++LOCAL_STATIC_LIBRARIES := $(llvm_opt_STATIC_LIBRARIES) ++LOCAL_LDLIBS += -lpthread -lm -ldl ++LOCAL_C_INCLUDES += external/llvm/include ++ ++include $(LLVM_ROOT_PATH)/llvm.mk ++include $(LLVM_HOST_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_HOST_EXECUTABLE) ++ ++ ++#===---------------------------------------------------------------=== ++# opt command line tool (target) ++#===---------------------------------------------------------------=== ++ ++ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS)) ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE := opt ++LOCAL_MODULE_TAGS := optional ++LOCAL_MODULE_CLASS := EXECUTABLES ++ ++LOCAL_SRC_FILES := $(llvm_opt_SRC_FILES) ++LOCAL_C_INCLUDES += external/llvm/include ++LOCAL_STATIC_LIBRARIES := $(llvm_opt_STATIC_LIBRARIES) ++LOCAL_SHARED_LIBRARIES := \ ++ libcutils \ ++ libdl \ ++ libstlport ++ ++ ++include $(LLVM_ROOT_PATH)/llvm.mk ++include $(LLVM_DEVICE_BUILD_MK) ++include $(LLVM_GEN_INTRINSICS_MK) ++include $(BUILD_EXECUTABLE) ++endif +diff --git a/utils/FileCheck/Android.mk b/utils/FileCheck/Android.mk +new file mode 100644 +index 0000000..2c211cf +--- /dev/null ++++ b/utils/FileCheck/Android.mk +@@ -0,0 +1,23 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++filecheck_SRC_FILES := \ ++ FileCheck.cpp ++ ++filecheck_STATIC_LIBRARIES := \ ++ libLLVMSupport ++ ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE := FileCheck ++LOCAL_SRC_FILES := $(filecheck_SRC_FILES) ++LOCAL_STATIC_LIBRARIES := $(filecheck_STATIC_LIBRARIES) ++LOCAL_C_INCLUDES += external/llvm/include ++LOCAL_C_INCLUDES += external/llvm/host/include ++LOCAL_LDLIBS += -lpthread -lm -ldl ++LOCAL_CFLAGS += -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS ++ ++#REQUIRES_EH := 1 ++#REQUIRES_RTTI := 1 ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_EXECUTABLE) +diff --git a/utils/TableGen/Android.mk b/utils/TableGen/Android.mk +new file mode 100644 +index 0000000..8117672 +--- /dev/null ++++ b/utils/TableGen/Android.mk +@@ -0,0 +1,58 @@ ++LOCAL_PATH:= $(call my-dir) ++ ++tablegen_SRC_FILES := \ ++ AsmMatcherEmitter.cpp \ ++ AsmWriterEmitter.cpp \ ++ AsmWriterInst.cpp \ ++ CallingConvEmitter.cpp \ ++ CodeEmitterGen.cpp \ ++ CodeGenDAGPatterns.cpp \ ++ CodeGenInstruction.cpp \ ++ CodeGenMapTable.cpp \ ++ CodeGenRegisters.cpp \ ++ CodeGenSchedule.cpp \ ++ CodeGenTarget.cpp \ ++ CTagsEmitter.cpp \ ++ DAGISelEmitter.cpp \ ++ DAGISelMatcherEmitter.cpp \ ++ DAGISelMatcherGen.cpp \ ++ DAGISelMatcherOpt.cpp \ ++ DAGISelMatcher.cpp \ ++ DFAPacketizerEmitter.cpp \ ++ DisassemblerEmitter.cpp \ ++ FastISelEmitter.cpp \ ++ FixedLenDecoderEmitter.cpp \ ++ InstrInfoEmitter.cpp \ ++ IntrinsicEmitter.cpp \ ++ OptParserEmitter.cpp \ ++ PseudoLoweringEmitter.cpp \ ++ RegisterInfoEmitter.cpp \ ++ SetTheory.cpp \ ++ SubtargetEmitter.cpp \ ++ TableGen.cpp \ ++ X86DisassemblerTables.cpp \ ++ X86ModRMFilters.cpp \ ++ X86RecognizableInstr.cpp ++ ++include $(CLEAR_VARS) ++ ++LOCAL_MODULE := tblgen ++LOCAL_MODULE_TAGS := optional ++LOCAL_SRC_FILES := $(tablegen_SRC_FILES) ++ ++REQUIRES_EH := 1 ++REQUIRES_RTTI := 1 ++ ++LOCAL_STATIC_LIBRARIES := \ ++ libLLVMTableGen \ ++ libLLVMSupport ++ ++LOCAL_LDLIBS += -lm ++ifeq ($(HOST_OS),windows) ++ LOCAL_LDLIBS += -limagehlp -lpsapi ++else ++ LOCAL_LDLIBS += -lpthread -ldl ++endif ++ ++include $(LLVM_HOST_BUILD_MK) ++include $(BUILD_HOST_EXECUTABLE) +-- +1.9.1.423.g4596e3a + |