[libc-commits] [libc] ac11430 - [libc] Fix missing sysroot path for kernel headers when crosscompiling (#99588)
via libc-commits
libc-commits at lists.llvm.org
Fri Jul 19 08:20:19 PDT 2024
Author: Mikhail R. Gadelha
Date: 2024-07-19T12:20:16-03:00
New Revision: ac11430983d0d89b7ccd8e10a1a3d02ad7e2208d
URL: https://github.com/llvm/llvm-project/commit/ac11430983d0d89b7ccd8e10a1a3d02ad7e2208d
DIFF: https://github.com/llvm/llvm-project/commit/ac11430983d0d89b7ccd8e10a1a3d02ad7e2208d.diff
LOG: [libc] Fix missing sysroot path for kernel headers when crosscompiling (#99588)
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.
This patch also includes a fix for rv32, that fails to compile due to a missing definition of CLOCK_REALTIME after this change.
Added:
Modified:
libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
libc/src/time/linux/nanosleep.cpp
Removed:
################################################################################
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"
More information about the libc-commits
mailing list