diff options
Diffstat (limited to 'libc/startup')
-rw-r--r-- | libc/startup/gpu/amdgpu/CMakeLists.txt | 3 | ||||
-rw-r--r-- | libc/startup/gpu/amdgpu/start.cpp | 6 |
2 files changed, 7 insertions, 2 deletions
diff --git a/libc/startup/gpu/amdgpu/CMakeLists.txt b/libc/startup/gpu/amdgpu/CMakeLists.txt index be20237..d1c6fc7 100644 --- a/libc/startup/gpu/amdgpu/CMakeLists.txt +++ b/libc/startup/gpu/amdgpu/CMakeLists.txt @@ -2,11 +2,12 @@ add_startup_object( crt1 SRC start.cpp + DEPENDS + libc.src.__support.RPC.rpc_client COMPILE_OPTIONS -ffreestanding # To avoid compiler warnings about calling the main function. -fno-builtin -nogpulib # Do not include any GPU vendor libraries. - -nostdinc -mcpu=${LIBC_GPU_TARGET_ARCHITECTURE} -emit-llvm # AMDGPU's intermediate object file format is bitcode. --target=${LIBC_GPU_TARGET_TRIPLE} diff --git a/libc/startup/gpu/amdgpu/start.cpp b/libc/startup/gpu/amdgpu/start.cpp index 3be3745..cc30982 100644 --- a/libc/startup/gpu/amdgpu/start.cpp +++ b/libc/startup/gpu/amdgpu/start.cpp @@ -6,9 +6,13 @@ // //===----------------------------------------------------------------------===// +#include "src/__support/RPC/rpc_client.h" + extern "C" int main(int argc, char **argv); extern "C" [[gnu::visibility("protected"), clang::amdgpu_kernel]] void -_start(int argc, char **argv, int *ret) { +_start(int argc, char **argv, int *ret, void *in, void *out, void *buffer) { + __llvm_libc::rpc::client.reset(in, out, buffer); + __atomic_fetch_or(ret, main(argc, argv), __ATOMIC_RELAXED); } |