mirror of
https://github.com/intel/llvm.git
synced 2026-01-13 19:08:21 +08:00
[libc][darwin] add syscall numbers from macos sdk (#166354)
This PR adds support to include syscall.h from MacOS sdk by explicitly including the path to the sdk via `xcrun`.
This commit is contained in:
@@ -215,6 +215,37 @@ else()
|
||||
"Unsupported libc target operating system ${LIBC_TARGET_OS}")
|
||||
endif()
|
||||
|
||||
# If the compiler target triple is not the same as the triple specified by
|
||||
# LIBC_TARGET_TRIPLE or LLVM_RUNTIMES_TARGET, we will add a --target option
|
||||
# if the compiler is clang. If the compiler is GCC we just error out as there
|
||||
# is no equivalent of an option like --target.
|
||||
if(explicit_target_triple AND
|
||||
(NOT (libc_compiler_triple STREQUAL explicit_target_triple)))
|
||||
set(LIBC_CROSSBUILD TRUE)
|
||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||
message(FATAL_ERROR
|
||||
"GCC target triple (${libc_compiler_triple}) and the explicity "
|
||||
"specified target triple (${explicit_target_triple}) do not match.")
|
||||
else()
|
||||
list(APPEND
|
||||
LIBC_COMPILE_OPTIONS_DEFAULT "--target=${explicit_target_triple}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(LIBC_TARGET_OS_IS_DARWIN)
|
||||
execute_process(
|
||||
COMMAND xcrun --sdk macosx --show-sdk-path
|
||||
OUTPUT_VARIABLE MACOSX_SDK_PATH
|
||||
RESULT_VARIABLE MACOSX_SDK_PATH_RESULT
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
if(MACOSX_SDK_PATH_RESULT EQUAL 0)
|
||||
list(APPEND LIBC_COMPILE_OPTIONS_DEFAULT "-I" "${MACOSX_SDK_PATH}/usr/include")
|
||||
else()
|
||||
message(WARNING "Could not find macOS SDK path. `xcrun --sdk macosx --show-sdk-path` failed.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Windows does not support full mode build.
|
||||
if (LIBC_TARGET_OS_IS_WINDOWS AND LLVM_LIBC_FULL_BUILD)
|
||||
message(FATAL_ERROR "Windows does not support full mode build.")
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#ifndef LLVM_LIBC_SYS_SYSCALL_H
|
||||
#define LLVM_LIBC_SYS_SYSCALL_H
|
||||
|
||||
//TODO: Handle non-linux syscalls
|
||||
#if defined(__linux__)
|
||||
|
||||
#include <asm/unistd.h>
|
||||
|
||||
@@ -2361,5 +2361,6 @@
|
||||
#define SYS_writev __NR_writev
|
||||
#endif
|
||||
|
||||
#endif // __linux__
|
||||
|
||||
#endif // LLVM_LIBC_SYS_SYSCALL_H
|
||||
|
||||
Reference in New Issue
Block a user