Re: [PATCH 2/2] perf clang: Fixes for more recent LLVM/clang

From: Ma Xinjian
Date: Fri Nov 12 2021 - 05:34:06 EST


Hi

We build perf with clang also recently, but unlucky that failed with following errors:


```
In file included from /usr/lib/llvm-7/include/llvm/ADT/STLExtras.h:21,
from /usr/lib/llvm-7/include/llvm/ADT/StringRef.h:13,
from /usr/lib/llvm-7/include/clang/Basic/Version.h:20,
from test-clang.cpp:2:
/usr/lib/llvm-7/include/llvm/ADT/SmallVector.h: In instantiation of 'void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = clang::driver::OffloadUnbundlingJobAction::DependentActionInfo]':
/usr/lib/llvm-7/include/clang/Driver/Action.h:579:61: required from here
/usr/lib/llvm-7/include/llvm/ADT/SmallVector.h:313:11: error: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'struct clang::driver::OffloadUnbundlingJobAction::DependentActionInfo' with no trivial copy-assignment; use copy-initialization instead [-Werror=class-memaccess]
memcpy(this->end(), &Elt, sizeof(T));
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/llvm-7/include/clang/Driver/Driver.h:15,
from test-clang.cpp:6:
/usr/lib/llvm-7/include/clang/Driver/Action.h:549:10: note: 'struct clang::driver::OffloadUnbundlingJobAction::DependentActionInfo' declared here
struct DependentActionInfo final {
^~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
```

llvm version: 7
rootfs: Debian10
kernel: v5.8 v5.11 v5.15
reproduce:
$ cd linux/tools/perf
$ make LIBCLANGLLVM=1 ARCH= EXTRA_CFLAGS='-fno-omit-frame-pointer -fsanitize=undefined -fsanitize=address'

Would you please kindly point out what's wrong with our steps? Or can you give us your command to make perf with clang?


Thanks
Ma Xinjian