diff options
author | John Hubbard <jhubbard@nvidia.com> | 2024-06-01 03:45:34 +0200 |
---|---|---|
committer | Shuah Khan <skhan@linuxfoundation.org> | 2024-06-11 23:05:05 +0200 |
commit | ed3994ac847e0d6605f248e7f6776b1d4f445f4b (patch) | |
tree | 286a7479f0a935f3fb1da5f8628c8f9c7af71b57 /tools/testing/selftests | |
parent | selftests/openat2: fix clang build failures: -static-libasan, LOCAL_HDRS (diff) | |
download | linux-ed3994ac847e0d6605f248e7f6776b1d4f445f4b.tar.xz linux-ed3994ac847e0d6605f248e7f6776b1d4f445f4b.zip |
selftests/fchmodat2: fix clang build failure due to -static-libasan
gcc requires -static-libasan in order to ensure that Address Sanitizer's
library is the first one loaded. However, this leads to build failures
on clang, when building via:
make LLVM=1 -C tools/testing/selftests
However, clang already does the right thing by default: it statically
links the Address Sanitizer if -fsanitize is specified. Therefore,
simply omit -static-libasan for clang builds. And leave behind a
comment, because the whole reason for static linking might not be
obvious.
Cc: Ryan Roberts <ryan.roberts@arm.com>
Signed-off-by: John Hubbard <jhubbard@nvidia.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Diffstat (limited to 'tools/testing/selftests')
-rw-r--r-- | tools/testing/selftests/fchmodat2/Makefile | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tools/testing/selftests/fchmodat2/Makefile b/tools/testing/selftests/fchmodat2/Makefile index 71ec34bf1501..4373cea79b79 100644 --- a/tools/testing/selftests/fchmodat2/Makefile +++ b/tools/testing/selftests/fchmodat2/Makefile @@ -1,6 +1,15 @@ # SPDX-License-Identifier: GPL-2.0-or-later -CFLAGS += -Wall -O2 -g -fsanitize=address -fsanitize=undefined -static-libasan $(KHDR_INCLUDES) +CFLAGS += -Wall -O2 -g -fsanitize=address -fsanitize=undefined $(KHDR_INCLUDES) + +# gcc requires -static-libasan in order to ensure that Address Sanitizer's +# library is the first one loaded. However, clang already statically links the +# Address Sanitizer if -fsanitize is specified. Therefore, simply omit +# -static-libasan for clang builds. +ifeq ($(LLVM),) + CFLAGS += -static-libasan +endif + TEST_GEN_PROGS := fchmodat2_test include ../lib.mk |