[libc] Install GPU headers to `gpu-none-llvm/` subfolder
authorJoseph Huber <jhuber6@vols.utk.edu>
Mon, 27 Mar 2023 13:55:02 +0000 (08:55 -0500)
committerJoseph Huber <jhuber6@vols.utk.edu>
Tue, 28 Mar 2023 19:27:35 +0000 (14:27 -0500)
The GPU support for the `libc` generates all its own headers. Since
these headers use the same names as the system headers we need to make
sure that they are separate. Currently, we either use the system headers
on the GPU or the GPU headers on the system. This patch makes them
explicitly separate. A follow-up patch will then make `clang` look in
this folder by default.

Reviewed By: sivachandra, lntue

Differential Revision: https://reviews.llvm.org/D146970

libc/include/CMakeLists.txt

index 39b5988..9c48fd7 100644 (file)
@@ -511,6 +511,11 @@ foreach(target IN LISTS all_install_header_targets)
   endif()
   file(RELATIVE_PATH relative_path ${LIBC_INCLUDE_BINARY_DIR} ${header_file})
   get_filename_component(nested_dir ${relative_path} DIRECTORY)
+  # The GPU headers are installed to 'gpu-none-llvm/' to prevent shadowing the
+  # system headers.
+  if(LIBC_TARGET_ARCHITECTURE_IS_GPU)
+    set(nested_dir gpu-none-llvm/${nested_dir})
+  endif()
   install(FILES ${header_file}
           DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${nested_dir}
           COMPONENT libc-headers)