@@ -1,8 +1,8 @@
11diff --git a/CMakeLists.txt b/CMakeLists.txt
2−index 277d0fe54d7b..af69c8be8745 100644
2+index e5febba8043c..3cf530c341b0 100644
33--- a/CMakeLists.txt
44+++ b/CMakeLists.txt
5−@@ -256,15 +256,21 @@ if (CMAKE_BUILD_TYPE AND
5+@@ -270,15 +270,21 @@ if (CMAKE_BUILD_TYPE AND
66 message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
77 endif()
88
@@ -25,7 +25,7 @@ index 277d0fe54d7b..af69c8be8745 100644
2525 # They are used as destination of target generators.
2626 set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
2727 set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
28−@@ -567,9 +573,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
28+@@ -581,9 +587,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
2929 option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
3030 option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
3131
@@ -37,7 +37,7 @@ index 277d0fe54d7b..af69c8be8745 100644
3737 CACHE STRING "OCamldoc-generated HTML documentation install directory")
3838
3939 option (LLVM_BUILD_EXTERNAL_COMPILER_RT
40−@@ -1027,7 +1033,7 @@ endif()
40+@@ -1046,7 +1052,7 @@ endif()
4141
4242 if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
4343 install(DIRECTORY include/llvm include/llvm-c
@@ -46,7 +46,7 @@ index 277d0fe54d7b..af69c8be8745 100644
4646 COMPONENT llvm-headers
4747 FILES_MATCHING
4848 PATTERN "*.def"
49−@@ -1038,7 +1044,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
49+@@ -1057,7 +1063,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
5050 )
5151
5252 install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
@@ -55,7 +55,7 @@ index 277d0fe54d7b..af69c8be8745 100644
5555 COMPONENT llvm-headers
5656 FILES_MATCHING
5757 PATTERN "*.def"
58−@@ -1052,13 +1058,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
58+@@ -1071,13 +1077,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
5959
6060 if (LLVM_INSTALL_MODULEMAPS)
6161 install(DIRECTORY include/llvm include/llvm-c
@@ -72,11 +72,11 @@ index 277d0fe54d7b..af69c8be8745 100644
7272 RENAME "module.extern.modulemap"
7373 )
7474diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
75−index 97c9980c7de3..409e8b615f75 100644
75+index 1c419cddbe93..fa0be670986b 100644
7676--- a/cmake/modules/AddLLVM.cmake
7777+++ b/cmake/modules/AddLLVM.cmake
78−@@ -804,9 +804,9 @@ macro(add_llvm_library name)
79−
78+@@ -801,9 +801,9 @@ macro(add_llvm_library name)
79+ get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella})
8080 install(TARGETS ${name}
8181 ${export_to_llvmexports}
8282- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
@@ -88,7 +88,7 @@ index 97c9980c7de3..409e8b615f75 100644
8888
8989 if (NOT LLVM_ENABLE_IDE)
9090 add_llvm_install_targets(install-${name}
91−@@ -1022,7 +1022,7 @@ function(process_llvm_pass_plugins)
91+@@ -1019,7 +1019,7 @@ function(process_llvm_pass_plugins)
9292 "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})")
9393 install(FILES
9494 ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake
@@ -97,7 +97,7 @@ index 97c9980c7de3..409e8b615f75 100644
9797 COMPONENT cmake-exports)
9898
9999 set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
100−@@ -1242,7 +1242,7 @@ macro(add_llvm_example name)
100+@@ -1233,7 +1233,7 @@ macro(add_llvm_example name)
101101 endif()
102102 add_llvm_executable(${name} ${ARGN})
103103 if( LLVM_BUILD_EXAMPLES )
@@ -106,7 +106,7 @@ index 97c9980c7de3..409e8b615f75 100644
106106 endif()
107107 set_target_properties(${name} PROPERTIES FOLDER "Examples")
108108 endmacro(add_llvm_example name)
109−@@ -1854,7 +1854,7 @@ function(llvm_install_library_symlink name dest type)
109+@@ -1851,7 +1851,7 @@ function(llvm_install_library_symlink name dest type)
110110 set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
111111 set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
112112
@@ -115,8 +115,8 @@ index 97c9980c7de3..409e8b615f75 100644
115115 if(WIN32 AND "${type}" STREQUAL "SHARED")
116116 set(output_dir bin)
117117 endif()
118−@@ -1871,7 +1871,7 @@ function(llvm_install_library_symlink name dest type)
119− endif()
118+@@ -1862,7 +1862,7 @@ function(llvm_install_library_symlink name dest type)
119+
120120 endfunction()
121121
122122-function(llvm_install_symlink name dest)
@@ -124,7 +124,7 @@ index 97c9980c7de3..409e8b615f75 100644
124124 cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
125125 foreach(path ${CMAKE_MODULE_PATH})
126126 if(EXISTS ${path}/LLVMInstallSymlink.cmake)
127−@@ -1894,7 +1894,7 @@ function(llvm_install_symlink name dest)
127+@@ -1885,7 +1885,7 @@ function(llvm_install_symlink name dest)
128128 set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
129129
130130 install(SCRIPT ${INSTALL_SYMLINK}
@@ -133,7 +133,7 @@ index 97c9980c7de3..409e8b615f75 100644
133133 COMPONENT ${component})
134134
135135 if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
136−@@ -1977,7 +1977,8 @@ function(add_llvm_tool_symlink link_name target)
136+@@ -1968,7 +1968,8 @@ function(add_llvm_tool_symlink link_name target)
137137 endif()
138138
139139 if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
@@ -143,12 +143,12 @@ index 97c9980c7de3..409e8b615f75 100644
143143 endif()
144144 endif()
145145 endfunction()
146−@@ -2100,9 +2101,9 @@ function(llvm_setup_rpath name)
147−
148− if (APPLE)
149− set(_install_name_dir INSTALL_NAME_DIR "@rpath")
150−- set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
151−+ set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
146+@@ -2097,9 +2098,9 @@ function(llvm_setup_rpath name)
147+ # Since BUILD_SHARED_LIBS is only recommended for use by developers,
148+ # hardcode the rpath to build/install lib dir first in this mode.
149+ # FIXME: update this when there is better solution.
150+- set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
151++ set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
152152 elseif(UNIX)
153153- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
154154+ set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
@@ -185,16 +185,18 @@ index e80c3b5c1cac..482f6d715ef5 100644
185185
186186 # '/.' indicates: copy the contents of the directory directly into
187187diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
188−index 505dc9a29d70..36e6c63af3f4 100644
188+index 51b6a4fdc284..4adc2acfc074 100644
189189--- a/cmake/modules/CMakeLists.txt
190190+++ b/cmake/modules/CMakeLists.txt
191−@@ -1,4 +1,4 @@
191+@@ -1,6 +1,6 @@
192+ include(LLVMDistributionSupport)
193+
192194-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
193195+set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
194196 set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
195197
196198 # First for users who use an installed LLVM, create the LLVMExports.cmake file.
197−@@ -107,13 +107,13 @@ foreach(p ${_count})
199+@@ -109,13 +109,13 @@ foreach(p ${_count})
198200 set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
199201 get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
200202 endforeach(p)
@@ -212,20 +214,20 @@ index 505dc9a29d70..36e6c63af3f4 100644
212214 # Generate a default location for lit
213215 if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS)
214216diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
215−index 09fed8085c23..aa79f192abf0 100644
217+index 3e6a2c9a2648..52e14d955c60 100644
216218--- a/cmake/modules/LLVMInstallSymlink.cmake
217219+++ b/cmake/modules/LLVMInstallSymlink.cmake
218−@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
219− set(LINK_OR_COPY copy)
220− endif()
220+@@ -4,7 +4,7 @@
221221
222+ function(install_symlink name target outdir)
223+ set(DESTDIR $ENV{DESTDIR})
222224- set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
223225+ set(bindir "${DESTDIR}${outdir}/")
224226
225227 message(STATUS "Creating ${name}")
226228
227229diff --git a/docs/CMake.rst b/docs/CMake.rst
228−index bb821b417ad9..6a528f7c2ad3 100644
230+index 589b09f28281..af43b082f755 100644
229231--- a/docs/CMake.rst
230232+++ b/docs/CMake.rst
231233@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
@@ -237,7 +239,7 @@ index bb821b417ad9..6a528f7c2ad3 100644
237239
238240 **CMAKE_C_FLAGS**:STRING
239241 Extra flags to use when compiling C source files.
240−@@ -550,8 +550,8 @@ LLVM-specific variables
242+@@ -555,8 +555,8 @@ LLVM-specific variables
241243
242244 **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
243245 The path to install Doxygen-generated HTML documentation to. This path can
@@ -248,7 +250,7 @@ index bb821b417ad9..6a528f7c2ad3 100644
248250
249251 **LLVM_ENABLE_SPHINX**:BOOL
250252 If specified, CMake will search for the ``sphinx-build`` executable and will make
251−@@ -582,13 +582,33 @@ LLVM-specific variables
253+@@ -587,13 +587,33 @@ LLVM-specific variables
252254
253255 **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
254256 The path to install Sphinx-generated HTML documentation to. This path can
@@ -286,7 +288,7 @@ index bb821b417ad9..6a528f7c2ad3 100644
286288
287289 **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
288290 macOS Only: If enabled CMake will generate a target named
289−@@ -786,9 +806,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
291+@@ -791,9 +811,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
290292
291293 This file is available in two different locations.
292294