[PATCH] D143768: [Clang] Add options to disable direct linking of arch tools
Aaron Siddhartha Mondal via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 10 11:51:54 PST 2023
aaronmondal added a comment.
Fun fact I now know that libxml2 also struggles with this 😆
The following would roughly be how zlib and others handle it:
if (CLANG_ENABLE_HSA)
if (CLANG_ENABLE_HSA STREQUAL FORCE_ON)
find_package(hsa-runtime... REQUIRED)
else()
find_package (hsa-runtime...)
endif()
if (hsa-runtime_FOUND)
# TODO: Some hsa sanity check, executed during configuration.
# If check passes, `HAVE_HSA` is set.
if (CLANG_ENABLE_HSA STREQUAL FORCE_ON AND NOT HAVE_HSA)
message(FATAL_ERROR "Failed to configure HSA.")
endif()
endif()
set(CLANG_ENABLE_HSA "${HAVE_HSA}")
else()
set(CLANG_ENABLE_HSA 0)
endif()
Then we could remove `__have_include` and could directly check for `CLANG_ENABLE_HSA` during compile time.
#ifdef CLANG_HAVE_HSA
#include "hsa/hsa.h"
#endif
Since HSA is used by both OpenMP and the amdgpu-arch plugin, I think it would make sense to not call it `CLANG_ENABLE_HSA` but instead use `LLVM_ENABLE_HSA` and just put it `llvm/cmake/config-ix.cmake` (where I took the above code from).
@jhuber6 This doesn't consider the "DYNAMIC_..." macros. Do you think an approach like this, if worked out a bit more, could work?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D143768/new/
https://reviews.llvm.org/D143768
More information about the cfe-commits
mailing list