diff --git a/libc/CMakeLists.txt b/libc/CMakeLists.txt --- a/libc/CMakeLists.txt +++ b/libc/CMakeLists.txt @@ -18,7 +18,7 @@ # The top-level directory in which libc is being built. set(LIBC_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}) -if(LLVM_LIBC_FULL_BUILD) +if(LLVM_LIBC_FULL_BUILD OR LIBC_GPU_BUILD OR LIBC_GPU_ARCHITECTURES) if(NOT LIBC_HDRGEN_EXE) # We need to set up hdrgen first since other targets depend on it. add_subdirectory(utils/LibcTableGenUtil) diff --git a/libc/cmake/modules/LLVMLibCArchitectures.cmake b/libc/cmake/modules/LLVMLibCArchitectures.cmake --- a/libc/cmake/modules/LLVMLibCArchitectures.cmake +++ b/libc/cmake/modules/LLVMLibCArchitectures.cmake @@ -6,7 +6,7 @@ # platform. # ------------------------------------------------------------------------------ -if(LIBC_GPU_BUILD) +if(LIBC_GPU_BUILD OR LIBC_GPU_ARCHITECTURES) # We set the generic target and OS to "gpu" here. More specific defintions # for the exact target GPU are set up in prepare_libc_gpu_build.cmake. set(LIBC_TARGET_OS "gpu") diff --git a/libc/cmake/modules/prepare_libc_gpu_build.cmake b/libc/cmake/modules/prepare_libc_gpu_build.cmake --- a/libc/cmake/modules/prepare_libc_gpu_build.cmake +++ b/libc/cmake/modules/prepare_libc_gpu_build.cmake @@ -29,8 +29,9 @@ " is not `Clang ${req_ver}.") endif() if(NOT LLVM_LIBC_FULL_BUILD) - message(FATAL_ERROR "LLVM_LIBC_FULL_BUILD must be enabled to build libc for " - "GPU.") + message(STATUS "LLVM_LIBC_FULL_BUILD must be enabled to build libc for GPU. " + "Overriding LLVM_LIBC_FULL_BUILD to ON.") + set(LLVM_LIBC_FULL_BUILD ON FORCE) endif() # Identify the program used to package multiple images into a single binary. diff --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt --- a/llvm/runtimes/CMakeLists.txt +++ b/llvm/runtimes/CMakeLists.txt @@ -385,7 +385,8 @@ list(APPEND extra_deps llvm-link) endif() endif() - if("libc" IN_LIST LLVM_ENABLE_RUNTIMES AND LLVM_LIBC_FULL_BUILD) + if("libc" IN_LIST LLVM_ENABLE_RUNTIMES AND + (LLVM_LIBC_FULL_BUILD OR LIBC_GPU_BUILD OR LIBC_GPU_ARCHITECTURES)) if(TARGET libc-hdrgen) set(libc_tools libc-hdrgen) set(libc_cmake_args "-DLIBC_HDRGEN_EXE=$"