[PATCH] D45436: [llvm-exegesis] Add a flag to disable libpfm even if present.
Roman Lebedev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 9 06:34:44 PDT 2018
lebedev.ri added inline comments.
================
Comment at: cmake/config-ix.cmake:93
# Check for libpfm.
-check_library_exists(pfm pfm_initialize "" HAVE_LIBPFM_INITIALIZE)
-if(HAVE_LIBPFM_INITIALIZE)
- check_include_file(perfmon/perf_event.h HAVE_PERFMON_PERF_EVENT_H)
- check_include_file(perfmon/pfmlib.h HAVE_PERFMON_PFMLIB_H)
- check_include_file(perfmon/pfmlib_perf_event.h HAVE_PERFMON_PFMLIB_PERF_EVENT_H)
- if(HAVE_PERFMON_PERF_EVENT_H AND HAVE_PERFMON_PFMLIB_H AND HAVE_PERFMON_PFMLIB_PERF_EVENT_H)
- set(HAVE_LIBPFM 1)
+if (LLVM_ENABLE_LIBPFM)
+ check_library_exists(pfm pfm_initialize "" HAVE_LIBPFM_INITIALIZE)
----------------
courbet wrote:
> lebedev.ri wrote:
> > One more piece is missing, `LLVM_ENABLE_LIBPFM` needs to be checked where linking to pfm happens.
> Thanks Roman,
>
> This is already done by checking on HAVE_LIBPFM, see tools/llvm-exegesis/CMakeLists.txt:
>
> ```
> if(HAVE_LIBPFM)
> target_link_libraries(llvm-exegesis PRIVATE pfm)
> endif()
> ```
Exactly, and that is insufficient.
It should be
```
if(LLVM_ENABLE_LIBPFM AND HAVE_LIBPFM)
target_link_libraries(llvm-exegesis PRIVATE pfm)
endif()
```
I'm not sure if LLVM can be built as part of some parent CMake project, so *this* may be not-an-issue,
but will //just// give a bad example for future changes. The problem is, what will happen if one
defines `HAVE_LIBPFM` (e.g. by using it in some parent cmake project), but disables `LLVM_ENABLE_LIBPFM`?
Similar problem: https://github.com/google/googletest/pull/975
Repository:
rL LLVM
https://reviews.llvm.org/D45436
More information about the llvm-commits
mailing list