Skip to content

Commit 5fa47d8

Browse files
authored
[libc] Support multilib with runtimes build (llvm#115357)
This adds minimal support for multilibs akin to libc++.
1 parent e887f82 commit 5fa47d8

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

libc/CMakeLists.txt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -248,10 +248,17 @@ foreach(config_path IN LISTS LIBC_CONFIG_JSON_FILE_LIST)
248248
load_libc_config(${config_path}/config.json ${cmd_line_conf})
249249
endforeach()
250250

251+
if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
252+
set(LIBC_TARGET_SUBDIR ${LLVM_DEFAULT_TARGET_TRIPLE})
253+
if(LIBC_LIBDIR_SUBDIR)
254+
string(APPEND LIBC_TARGET_SUBDIR /${LIBC_LIBDIR_SUBDIR})
255+
endif()
256+
endif()
257+
251258
if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND (LIBC_ENABLE_USE_BY_CLANG OR LIBC_TARGET_OS_IS_GPU))
252259
set(LIBC_INCLUDE_DIR ${LLVM_BINARY_DIR}/include/${LLVM_DEFAULT_TARGET_TRIPLE})
253260
set(LIBC_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
254-
set(LIBC_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
261+
set(LIBC_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LIBC_TARGET_SUBDIR})
255262
else()
256263
if(NOT LIBC_ENABLE_USE_BY_CLANG)
257264
set(LIBC_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include)
@@ -277,8 +284,7 @@ endif()
277284
if(LIBC_TARGET_TRIPLE)
278285
set(LIBC_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LIBC_TARGET_TRIPLE})
279286
elseif(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
280-
set(LIBC_INSTALL_LIBRARY_DIR
281-
lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE})
287+
set(LIBC_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LIBC_TARGET_SUBDIR})
282288
else()
283289
set(LIBC_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX})
284290
endif()

llvm/runtimes/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,7 @@ if(build_runtimes)
635635
CMAKE_ARGS -DLLVM_DEFAULT_TARGET_TRIPLE=${name}
636636
-DLLVM_RUNTIMES_PREFIX=${name}/
637637
-DLLVM_RUNTIMES_LIBDIR_SUBDIR=${multilib}
638+
${extra_cmake_args}
638639
BASE_NAME ${name}
639640
EXTRA_ARGS TARGET_TRIPLE ${name})
640641
endforeach()

0 commit comments

Comments
 (0)