[libc-commits] [libc] [libc] Fix missing sysroot path for kernel headers when crosscompiling (PR #99588)
via libc-commits
libc-commits at lists.llvm.org
Thu Jul 18 19:48:00 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: Mikhail R. Gadelha (mikhailramalho)
<details>
<summary>Changes</summary>
When crosscompiling, we need to search for the linux kernel headers in the sysroot but since #<!-- -->97486 the linux kernel headers were always searched in /usr/include.
This patch fixes this behaviour by prepending a '=' to where we search for the kernel headers. As per the gcc/clang's documentation a '=' before the path is replaced by the sysroot.
---
Full diff: https://github.com/llvm/llvm-project/pull/99588.diff
2 Files Affected:
- (modified) libc/cmake/modules/LLVMLibCCompileOptionRules.cmake (+5-1)
- (modified) libc/src/time/linux/nanosleep.cpp (+1-1)
``````````diff
diff --git a/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake b/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
index 62e16d52cb3ea..a722fe709af5f 100644
--- a/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
+++ b/libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
@@ -88,7 +88,11 @@ function(_get_common_compile_options output_var flags)
(LIBC_CC_SUPPORTS_NOSTDLIBINC OR COMPILER_RESOURCE_DIR))
# We use -idirafter to avoid preempting libc's own headers in case the
# directory (e.g. /usr/include) contains other headers.
- list(APPEND compile_options "-idirafter${LIBC_KERNEL_HEADERS}")
+ if(CMAKE_CROSSCOMPILING)
+ list(APPEND compile_options "-idirafter=${LIBC_KERNEL_HEADERS}")
+ else()
+ list(APPEND compile_options "-idirafter${LIBC_KERNEL_HEADERS}")
+ endif()
endif()
endif()
diff --git a/libc/src/time/linux/nanosleep.cpp b/libc/src/time/linux/nanosleep.cpp
index b267c3238b01f..7a856376ffb20 100644
--- a/libc/src/time/linux/nanosleep.cpp
+++ b/libc/src/time/linux/nanosleep.cpp
@@ -7,7 +7,7 @@
//===----------------------------------------------------------------------===//
#include "src/time/nanosleep.h"
-
+#include "hdr/time_macros.h"
#include "src/__support/OSUtil/syscall.h" // For syscall functions.
#include "src/__support/common.h"
#include "src/__support/macros/config.h"
``````````
</details>
https://github.com/llvm/llvm-project/pull/99588
More information about the libc-commits
mailing list