Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit 442b15a

Browse files
johnhubbardshuahkh
authored andcommitted
selftests/openat2: fix clang build failures: -static-libasan, LOCAL_HDRS
When building with clang via: make LLVM=1 -C tools/testing/selftests two distinct failures occur: 1) 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, fix this by simply omitting -static-libasan for clang builds. And leave behind a comment, because the whole reason for static linking might not be obvious. 2) clang won't accept invocations of this form, but gcc will: $(CC) file1.c header2.h Fix this by using selftests/lib.mk facilities for tracking local header file dependencies: add them to LOCAL_HDRS, leaving only the .c files to be passed to the compiler. Reviewed-by: Ryan Roberts <ryan.roberts@arm.com> Signed-off-by: John Hubbard <jhubbard@nvidia.com> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
1 parent 04e1f99 commit 442b15a

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed
Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
# SPDX-License-Identifier: GPL-2.0-or-later
22

3-
CFLAGS += -Wall -O2 -g -fsanitize=address -fsanitize=undefined -static-libasan
3+
CFLAGS += -Wall -O2 -g -fsanitize=address -fsanitize=undefined
44
TEST_GEN_PROGS := openat2_test resolve_test rename_attack_test
55

6+
# gcc requires -static-libasan in order to ensure that Address Sanitizer's
7+
# library is the first one loaded. However, clang already statically links the
8+
# Address Sanitizer if -fsanitize is specified. Therefore, simply omit
9+
# -static-libasan for clang builds.
10+
ifeq ($(LLVM),)
11+
CFLAGS += -static-libasan
12+
endif
13+
14+
LOCAL_HDRS += helpers.h
15+
616
include ../lib.mk
717

8-
$(TEST_GEN_PROGS): helpers.c helpers.h
18+
$(TEST_GEN_PROGS): helpers.c

0 commit comments

Comments
 (0)