@@ -8,6 +8,7 @@ set(PACKAGE_VENDOR Fuchsia CACHE STRING "")
88set (LLVM_INCLUDE_EXAMPLES OFF  CACHE  BOOL  "" )
99set (LLVM_INCLUDE_DOCS OFF  CACHE  BOOL  "" )
1010set (LLVM_ENABLE_BACKTRACES OFF  CACHE  BOOL  "" )
11+ set (LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON  CACHE  BOOL  "" )
1112set (LLVM_ENABLE_TERMINFO OFF  CACHE  BOOL  "" )
1213set (LLVM_ENABLE_ZLIB ON  CACHE  BOOL  "" )
1314set (LLVM_EXTERNALIZE_DEBUGINFO ON  CACHE  BOOL  "" )
@@ -27,69 +28,87 @@ set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "")
2728set (CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -gline-tables-only -DNDEBUG"  CACHE  STRING  "" )
2829set (CMAKE_CXX_FLAGS_RELWITHDEBINFO  "-O3 -gline-tables-only -DNDEBUG"  CACHE  STRING  "" )
2930
30- set (FUCHSIA_BUILTINS_BUILD_TYPE Release CACHE  STRING  "" )
31- set (FUCHSIA_RUNTIMES_BUILD_TYPE Release CACHE  STRING  "" )
32- set (FUCHSIA_RUNTIMES_ENABLE_ASSERTIONS ON  CACHE  BOOL  "" )
31+ if (APPLE )
32+   list (APPEND  BUILTIN_TARGETS "default" )
33+   list (APPEND  RUNTIME_TARGETS "default" )
34+ elseif (UNIX )
35+   foreach (target  i386;x86_64;armhf;aarch64)
36+     if (LINUX_${target} _SYSROOT)
37+       # Set the per-target builtins options. 
38+       list (APPEND  BUILTIN_TARGETS "${target} -linux-gnu" )
39+       set (BUILTINS_${target} -linux-gnu_CMAKE_SYSTEM_NAME Linux CACHE  STRING  "" )
40+       set (BUILTINS_${target} -linux-gnu_CMAKE_BUILD_TYPE Release CACHE  STRING  "" )
41+       set (BUILTINS_${target} -linux-gnu_CMAKE_SYSROOT ${LINUX_${target} _SYSROOT} CACHE  STRING  "" )
3342
34- set (LLVM_BUILTIN_TARGETS "default;x86_64-fuchsia;aarch64-fuchsia"  CACHE  STRING  "" )
43+       # Set the per-target runtimes options. 
44+       list (APPEND  RUNTIME_TARGETS "${target} -linux-gnu" )
45+       set (RUNTIMES_${target} -linux-gnu_CMAKE_SYSTEM_NAME Linux CACHE  STRING  "" )
46+       set (RUNTIMES_${target} -linux-gnu_CMAKE_BUILD_TYPE Release CACHE  STRING  "" )
47+       set (RUNTIMES_${target} -linux-gnu_CMAKE_SYSROOT ${LINUX_${target} _SYSROOT} CACHE  STRING  "" )
48+       set (RUNTIMES_${target} -linux-gnu_LLVM_ENABLE_ASSERTIONS ON  CACHE  BOOL  "" )
49+       set (RUNTIMES_${target} -linux-gnu_LIBUNWIND_ENABLE_SHARED OFF  CACHE  BOOL  "" )
50+       set (RUNTIMES_${target} -linux-gnu_LIBUNWIND_USE_COMPILER_RT ON  CACHE  BOOL  "" )
51+       set (RUNTIMES_${target} -linux-gnu_LIBUNWIND_INSTALL_LIBRARY OFF  CACHE  BOOL  "" )
52+       set (RUNTIMES_${target} -linux-gnu_LIBCXXABI_USE_COMPILER_RT ON  CACHE  BOOL  "" )
53+       set (RUNTIMES_${target} -linux-gnu_LIBCXXABI_ENABLE_SHARED OFF  CACHE  BOOL  "" )
54+       set (RUNTIMES_${target} -linux-gnu_LIBCXXABI_USE_LLVM_UNWINDER ON  CACHE  BOOL  "" )
55+       set (RUNTIMES_${target} -linux-gnu_LIBCXXABI_ENABLE_STATIC_UNWINDER ON  CACHE  BOOL  "" )
56+       set (RUNTIMES_${target} -linux-gnu_LIBCXXABI_INSTALL_LIBRARY OFF  CACHE  BOOL  "" )
57+       set (RUNTIMES_${target} -linux-gnu_LIBCXX_USE_COMPILER_RT ON  CACHE  BOOL  "" )
58+       set (RUNTIMES_${target} -linux-gnu_LIBCXX_ENABLE_SHARED OFF  CACHE  BOOL  "" )
59+       set (RUNTIMES_${target} -linux-gnu_LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON  CACHE  BOOL  "" )
60+     endif ()
61+   endforeach ()
62+ endif ()
3563
36- # Set the per-target builtins options. 
37- foreach (target  x86_64;aarch64)
38-   set (BUILTINS_${target} -fuchsia_CMAKE_SYSTEM_NAME Fuchsia CACHE  STRING  "" )
39-   set (BUILTINS_${target} -fuchsia_CMAKE_BUILD_TYPE ${FUCHSIA_BUILTINS_BUILD_TYPE}  CACHE  STRING  "" )
40-   set (BUILTINS_${target} -fuchsia_CMAKE_ASM_FLAGS ${FUCHSIA_${target} _C_FLAGS} CACHE  PATH  "" )
41-   set (BUILTINS_${target} -fuchsia_CMAKE_C_FLAGS ${FUCHSIA_${target} _C_FLAGS} CACHE  PATH  "" )
42-   set (BUILTINS_${target} -fuchsia_CMAKE_CXX_FLAGS ${FUCHSIA_${target} _CXX_FLAGS} CACHE  PATH  "" )
43-   set (BUILTINS_${target} -fuchsia_CMAKE_EXE_LINKER_FLAGS ${FUCHSIA_${target} _LINKER_FLAGS} CACHE  PATH  "" )
44-   set (BUILTINS_${target} -fuchsia_CMAKE_SHARED_LINKER_FLAGS ${FUCHSIA_${target} _LINKER_FLAGS} CACHE  PATH  "" )
45-   set (BUILTINS_${target} -fuchsia_CMAKE_MODULE_LINKER_FLAGS ${FUCHSIA_${target} _LINKER_FLAGS} CACHE  PATH  "" )
46-   set (BUILTINS_${target} -fuchsia_CMAKE_SYSROOT ${FUCHSIA_${target} _SYSROOT} CACHE  PATH  "" )
47- endforeach ()
64+ if (FUCHSIA_SDK)
65+   set (FUCHSIA_aarch64_NAME arm64)
66+   set (FUCHSIA_x86_64_NAME x64)
67+   foreach (target  x86_64;aarch64)
68+     set (FUCHSIA_${target} _COMPILER_FLAGS "-I${FUCHSIA_SDK} /pkg/fdio/include" )
69+     set (FUCHSIA_${target} _LINKER_FLAGS "-L${FUCHSIA_SDK} /arch/${FUCHSIA_${target} _NAME}/lib" )
70+     set (FUCHSIA_${target} _SYSROOT "${FUCHSIA_SDK} /arch/${FUCHSIA_${target} _NAME}/sysroot" )
71+   endforeach ()
4872
49- set (LLVM_RUNTIME_TARGETS "default;x86_64-fuchsia;aarch64-fuchsia;x86_64-fuchsia-asan:x86_64-fuchsia;aarch64-fuchsia-asan:aarch64-fuchsia"  CACHE  STRING  "" )
73+   foreach (target  x86_64;aarch64)
74+     # Set the per-target builtins options. 
75+     list (APPEND  BUILTIN_TARGETS "${target} -fuchsia" )
76+     set (BUILTINS_${target} -fuchsia_CMAKE_SYSTEM_NAME Fuchsia CACHE  STRING  "" )
77+     set (BUILTINS_${target} -fuchsia_CMAKE_BUILD_TYPE Release CACHE  STRING  "" )
78+     set (BUILTINS_${target} -fuchsia_CMAKE_ASM_FLAGS ${FUCHSIA_${target} _COMPILER_FLAGS} CACHE  PATH  "" )
79+     set (BUILTINS_${target} -fuchsia_CMAKE_C_FLAGS ${FUCHSIA_${target} _COMPILER_FLAGS} CACHE  PATH  "" )
80+     set (BUILTINS_${target} -fuchsia_CMAKE_CXX_FLAGS ${FUCHSIA_${target} _COMPILER_FLAGS} CACHE  PATH  "" )
81+     set (BUILTINS_${target} -fuchsia_CMAKE_SHARED_LINKER_FLAGS ${FUCHSIA_${target} _LINKER_FLAGS} CACHE  PATH  "" )
82+     set (BUILTINS_${target} -fuchsia_CMAKE_MODULE_LINKER_FLAGS ${FUCHSIA_${target} _LINKER_FLAGS} CACHE  PATH  "" )
83+     set (BUILTINS_${target} -fuchsia_CMAKE_EXE_LINKER_FLAGS ${FUCHSIA_${target} _LINKER_FLAGS} CACHE  PATH  "" )
84+     set (BUILTINS_${target} -fuchsia_CMAKE_SYSROOT ${FUCHSIA_${target} _SYSROOT} CACHE  PATH  "" )
5085
51- # Set the default target runtimes options. 
52- if (NOT  APPLE )
53-   set (LIBUNWIND_ENABLE_SHARED OFF  CACHE  BOOL  "" )
54-   set (LIBUNWIND_USE_COMPILER_RT ON  CACHE  BOOL  "" )
55-   set (LIBUNWIND_INSTALL_LIBRARY OFF  CACHE  BOOL  "" )
56-   set (LIBCXXABI_USE_COMPILER_RT ON  CACHE  BOOL  "" )
57-   set (LIBCXXABI_ENABLE_SHARED OFF  CACHE  BOOL  "" )
58-   set (LIBCXXABI_USE_LLVM_UNWINDER ON  CACHE  BOOL  "" )
59-   set (LIBCXXABI_ENABLE_STATIC_UNWINDER ON  CACHE  BOOL  "" )
60-   set (LIBCXXABI_INSTALL_LIBRARY OFF  CACHE  BOOL  "" )
61-   set (LIBCXX_USE_COMPILER_RT ON  CACHE  BOOL  "" )
62-   set (LIBCXX_ENABLE_SHARED OFF  CACHE  BOOL  "" )
63-   set (LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON  CACHE  BOOL  "" )
64- endif ()
86+     # Set the per-target runtimes options. 
87+     list (APPEND  RUNTIME_TARGETS "${target} -fuchsia" )
88+     set (RUNTIMES_${target} -fuchsia_CMAKE_SYSTEM_NAME Fuchsia CACHE  STRING  "" )
89+     set (RUNTIMES_${target} -fuchsia_CMAKE_BUILD_TYPE Release CACHE  STRING  "" )
90+     set (RUNTIMES_${target} -fuchsia_CMAKE_BUILD_WITH_INSTALL_RPATH ON  CACHE  STRING  "" )
91+     set (RUNTIMES_${target} -fuchsia_CMAKE_ASM_FLAGS ${FUCHSIA_${target} _COMPILER_FLAGS} CACHE  PATH  "" )
92+     set (RUNTIMES_${target} -fuchsia_CMAKE_C_FLAGS ${FUCHSIA_${target} _COMPILER_FLAGS} CACHE  PATH  "" )
93+     set (RUNTIMES_${target} -fuchsia_CMAKE_CXX_FLAGS ${FUCHSIA_${target} _COMPILER_FLAGS} CACHE  PATH  "" )
94+     set (RUNTIMES_${target} -fuchsia_CMAKE_SHARED_LINKER_FLAGS ${FUCHSIA_${target} _LINKER_FLAGS} CACHE  PATH  "" )
95+     set (RUNTIMES_${target} -fuchsia_CMAKE_MODULE_LINKER_FLAGS ${FUCHSIA_${target} _LINKER_FLAGS} CACHE  PATH  "" )
96+     set (RUNTIMES_${target} -fuchsia_CMAKE_EXE_LINKER_FLAGS ${FUCHSIA_${target} _LINKER_FLAGS} CACHE  PATH  "" )
97+     set (RUNTIMES_${target} -fuchsia_CMAKE_SYSROOT ${FUCHSIA_${target} _SYSROOT} CACHE  PATH  "" )
98+     set (RUNTIMES_${target} -fuchsia_LLVM_ENABLE_ASSERTIONS ON  CACHE  BOOL  "" )
99+     set (RUNTIMES_${target} -fuchsia_LIBUNWIND_USE_COMPILER_RT ON  CACHE  BOOL  "" )
100+     set (RUNTIMES_${target} -fuchsia_LIBCXXABI_USE_COMPILER_RT ON  CACHE  BOOL  "" )
101+     set (RUNTIMES_${target} -fuchsia_LIBCXXABI_USE_LLVM_UNWINDER ON  CACHE  BOOL  "" )
102+     set (RUNTIMES_${target} -fuchsia_LIBCXX_USE_COMPILER_RT ON  CACHE  BOOL  "" )
103+     set (RUNTIMES_${target} -fuchsia_SANITIZER_USE_COMPILER_RT ON  CACHE  BOOL  "" )
104+   endforeach ()
65105
66- # Set the per-target runtimes options. 
67- foreach (target  x86_64;aarch64)
68-   set (RUNTIMES_${target} -fuchsia_CMAKE_SYSTEM_NAME Fuchsia CACHE  STRING  "" )
69-   set (RUNTIMES_${target} -fuchsia_CMAKE_BUILD_TYPE ${FUCHSIA_RUNTIMES_BUILD_TYPE}  CACHE  STRING  "" )
70-   set (RUNTIMES_${target} -fuchsia_CMAKE_BUILD_WITH_INSTALL_RPATH ON  CACHE  STRING  "" )
71-   set (RUNTIMES_${target} -fuchsia_CMAKE_ASM_FLAGS ${FUCHSIA_${target} _C_FLAGS} CACHE  PATH  "" )
72-   set (RUNTIMES_${target} -fuchsia_CMAKE_C_FLAGS ${FUCHSIA_${target} _C_FLAGS} CACHE  PATH  "" )
73-   set (RUNTIMES_${target} -fuchsia_CMAKE_CXX_FLAGS ${FUCHSIA_${target} _CXX_FLAGS} CACHE  PATH  "" )
74-   set (RUNTIMES_${target} -fuchsia_CMAKE_EXE_LINKER_FLAGS ${FUCHSIA_${target} _LINKER_FLAGS} CACHE  PATH  "" )
75-   set (RUNTIMES_${target} -fuchsia_CMAKE_SHARED_LINKER_FLAGS ${FUCHSIA_${target} _LINKER_FLAGS} CACHE  PATH  "" )
76-   set (RUNTIMES_${target} -fuchsia_CMAKE_MODULE_LINKER_FLAGS ${FUCHSIA_${target} _LINKER_FLAGS} CACHE  PATH  "" )
77-   set (RUNTIMES_${target} -fuchsia_CMAKE_SYSROOT ${FUCHSIA_${target} _SYSROOT} CACHE  PATH  "" )
78-   set (RUNTIMES_${target} -fuchsia_LLVM_ENABLE_ASSERTIONS ${FUCHSIA_RUNTIMES_ENABLE_ASSERTIONS}  CACHE  BOOL  "" )
79-   set (RUNTIMES_${target} -fuchsia_LIBUNWIND_USE_COMPILER_RT ON  CACHE  BOOL  "" )
80-   set (RUNTIMES_${target} -fuchsia_LIBUNWIND_ENABLE_STATIC OFF  CACHE  BOOL  "" )
81-   set (RUNTIMES_${target} -fuchsia_LIBCXXABI_USE_COMPILER_RT ON  CACHE  BOOL  "" )
82-   set (RUNTIMES_${target} -fuchsia_LIBCXXABI_USE_LLVM_UNWINDER ON  CACHE  BOOL  "" )
83-   set (RUNTIMES_${target} -fuchsia_LIBCXXABI_ENABLE_STATIC OFF  CACHE  BOOL  "" )
84-   set (RUNTIMES_${target} -fuchsia_LIBCXX_USE_COMPILER_RT ON  CACHE  BOOL  "" )
85-   set (RUNTIMES_${target} -fuchsia_LIBCXX_ENABLE_STATIC OFF  CACHE  BOOL  "" )
86-   set (RUNTIMES_${target} -fuchsia_SANITIZER_USE_COMPILER_RT ON  CACHE  BOOL  "" )
106+   set (LLVM_RUNTIME_SANITIZERS "Address"  CACHE  STRING  "" )
107+   set (LLVM_RUNTIME_SANITIZER_Address_TARGETS "x86_64-fuchsia;aarch64-fuchsia"  CACHE  STRING  "" )
108+ endif ()
87109
88-   set (RUNTIMES_${target} -fuchsia-asan_LLVM_USE_SANITIZER Address CACHE  STRING  "" )
89-   set (RUNTIMES_${target} -fuchsia-asan_LLVM_RUNTIMES_PREFIX "${target} -fuchsia/"  CACHE  STRING  "" )
90-   set (RUNTIMES_${target} -fuchsia-asan_LLVM_RUNTIMES_LIBDIR_SUFFIX "/asan"  CACHE  STRING  "" )
91-   set (RUNTIMES_${target} -fuchsia-asan_LIBCXX_INSTALL_HEADERS OFF  CACHE  BOOL  "" )
92- endforeach ()
110+ set (LLVM_BUILTIN_TARGETS "${BUILTIN_TARGETS} "  CACHE  STRING  "" )
111+ set (LLVM_RUNTIME_TARGETS "${RUNTIME_TARGETS} "  CACHE  STRING  "" )
93112
94113# Setup toolchain. 
95114set (LLVM_INSTALL_TOOLCHAIN_ONLY ON  CACHE  BOOL  "" )
0 commit comments