Lines Matching +full:libc +full:- +full:build

2 How to build Windows Itanium applications.
17 * libc++.
18 * libc++-abi.
25 Note: compiler-rt is not used. This functionality is supplied by the MS VCRT.
31 * Clang with support for the windows-itanium triple.
32 * COFF LLD with support for the -autoimport switch.
37 SJLJ exceptions, "-fsjlj-exceptions", are the only currently supported model.
39 link.exe (the MS linker) is unsuitable as it doesn't support auto-importing which
44 A reasonable work-around is to build clang with a windows-msvc default target and
45 then override the triple with e.g. "-Xclang -triple -Xclang x86_64-unknown-windows-itanium".
46 The linker can be specified with: "-fuse-ld=lld".
58 programs to link we currently rely on the -auto-import switch in LLD to auto-import
71 # Build an LLVM toolchain with support for Windows Itanium.
72 # Use the toolchain from step 1. to build libc++, libc++abi, and libunwind.
74 It is also possible to cross-compile from Linux.
76 To build the libraries in step 2, refer to the `libc++ documentation <https://libcxx.llvm.org/VendorDocumentation.html#the-default-build>`_.
79 libraries. This assumes that we are building libunwind and libc++ as DLLs and statically linking libc++abi
80 into libc++. Other build configurations are possible, but they are not discussed here.
83 -----------------------------------
85 * ``-D_LIBCPP_ABI_FORCE_ITANIUM'``
87 Tell the libc++ headers that the Itanium C++ ABI is being used.
89 * ``-DCMAKE_C_FLAGS="-lmsvcrt -llegacy_stdio_definitions -D_NO_CRT_STDIO_INLINE"``
95 * ``-DCMAKE_INSTALL_PREFIX=<install path>``
100 -------------------
102 * ``-DLIBUNWIND_ENABLE_SHARED=ON``
103 * ``-DLIBUNWIND_ENABLE_STATIC=OFF``
107 * ``-DLIBUNWIND_USE_COMPILER_RT=OFF``
113 Building libc++abi:
114 -------------------
116 * ``-DLIBCXXABI_ENABLE_SHARED=OFF``
117 * ``-DLIBCXXABI_ENABLE_STATIC=ON``
118 * ``-DLIBCXX_ENABLE_SHARED=ON'``
119 * ``-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON``
121 To break the symbol dependency between libc++abi and libc++ we
122 build libc++abi as a static library and then statically link it
123 into the libc++ DLL. This necessitates setting the CMake file
125 are expanded as they will be needed when creating the final libc++
128 * ``-DLIBCXXABI_LIBCXX_INCLUDES=<path to libcxx>/include``
130 Where to find the libc++ headers
132 Building libc++:
133 ----------------
135 * ``-DLIBCXX_ENABLE_SHARED=ON``
136 * ``-DLIBCXX_ENABLE_STATIC=OFF``
138 We build libc++ as a DLL and statically link libc++abi into it.
140 * ``-DLIBCXX_INSTALL_HEADERS=ON``
144 * ``-DLIBCXX_USE_COMPILER_RT=OFF``
148 * ``-DLIBCXX_HAS_WIN32_THREAD_API=ON``
150 Windows Itanium does not offer a POSIX-like layer over WIN32.
152 * ``-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON``
153 * ``-DLIBCXX_CXX_ABI=libcxxabi``
154 * ``-DLIBCXX_CXX_ABI_INCLUDE_PATHS=<libcxxabi src path>/include``
155 * ``-DLIBCXX_CXX_ABI_LIBRARY_PATH=<libcxxabi build path>/lib``
157 Use the static libc++abi library built earlier.
159 * ``-DLIBCXX_NO_VCRUNTIME=ON``
161 Remove any dependency on the VC runtime - we need libc++abi to supply the C++ runtime.
163 * ``-DCMAKE_C_FLAGS=<path to installed unwind.lib>``
169 * ``-DCMAKE_C_FLAGS+=' -UCLOCK_REALTIME'``
174 ------
176 An example build recipe is available here: https://reviews.llvm.org/D88124