From: "Arnd Bergmann" <arnd@arndb.de>
To: "Ryan Roberts" <ryan.roberts@arm.com>,
"kernel test robot" <yujie.liu@intel.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
"Andrew Morton" <akpm@linux-foundation.org>,
llvm@lists.linux.dev,
"Linux Memory Management List" <linux-mm@kvack.org>
Subject: Re: clang: error: unknown argument '-static-libasan'; did you mean '-static-libsan'?
Date: Tue, 16 Apr 2024 16:42:18 +0200 [thread overview]
Message-ID: <a5516289-96b6-41f4-8cbb-6c34c7bf7996@app.fastmail.com> (raw)
In-Reply-To: <31b4e05d-62c6-44cd-8038-7ac8d21320c3@arm.com>
On Tue, Apr 16, 2024, at 16:33, Ryan Roberts wrote:
> On 16/04/2024 08:42, kernel test robot wrote:
>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>> head: 7efd0a74039fb6b584be2cb91c1d0ef0bd796ee1
>> commit: c652df8a4a9d7853fa1100b244024fd6f1a9c18a selftests: link libasan statically for tests with -fsanitize=address
>> compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
>>
>> If you fix the issue in a separate patch/commit (i.e. not just a new version of
>> the same patch/commit), kindly add following tags
>> | Reported-by: kernel test robot <yujie.liu@intel.com>
>> | Closes: https://lore.kernel.org/r/202404141807.LgsqXPY5-lkp@intel.com/
>>
>> All errors (new ones prefixed by >>):
>>
>> # tools/testing/selftests/fchmodat2$ make CC=clang
>> clang -Wall -O2 -g -fsanitize=address -fsanitize=undefined -static-libasan -isystem usr/include fchmodat2_test.c -o tools/testing/selftests/fchmodat2/fchmodat2_test
>> clang: error: unknown argument '-static-libasan'; did you mean '-static-libsan'?
>> make: *** [../lib.mk:181: tools/testing/selftests/fchmodat2/fchmodat2_test] Error 1
>>
>> # tools/testing/selftests/openat2$ make CC=clang
>> clang -Wall -O2 -g -fsanitize=address -fsanitize=undefined -static-libasan openat2_test.c helpers.c helpers.h -o tools/testing/selftests/openat2/openat2_test
>> clang: error: unknown argument '-static-libasan'; did you mean '-static-libsan'?
>> clang: error: cannot specify -o when generating multiple output files
>> make: *** [../lib.mk:181: tools/testing/selftests/openat2/openat2_test] Error 1
>>
>
> Hi Arnd,
>
> This change went in quite a while ago and is on;y just blowing up. I saw your
> comment in another thread [1] that Andrew merged your change to set -Wextra.
> Perhaps that's what has caused this to show up only now? *although I don't
> actually see -Wextra in the command line).
>
> I guess the problem is that `-static-libasan` is only supported by gcc. But I'm
> Makefile-illiterate. Can anyone advise on what's the best way to make this
> argument gcc-only?
Thanks for letting me know about the problem, I had indeed missed
build-testing any of tools/testing, so this might not be
the only problem there.
I'm not entirely sure how much of the Kbuild infrastructure we
can rely on here. If the .config file gets included, this should
work:
--- a/tools/testing/selftests/fchmodat2/Makefile
+++ b/tools/testing/selftests/fchmodat2/Makefile
@@ -1,6 +1,12 @@
# 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)
+ifdef CONFIG_CC_IS_GCC
+CFLAGS += -static-libasan
+else
+CFLAGS += -static-libsan
+endif
+
TEST_GEN_PROGS := fchmodat2_test
include ../lib.mk
Alternatively, if the cc-option macro is available, you could
try this one
CFLAGS += $(call cc-option, -static-libasan) $(call cc-option, -static-libsan)
Arnd
next prev parent reply other threads:[~2024-04-16 14:42 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-16 7:42 kernel test robot
2024-04-16 14:33 ` Ryan Roberts
2024-04-16 14:42 ` Arnd Bergmann [this message]
2024-04-16 14:55 ` Ryan Roberts
2024-04-17 15:11 ` Ryan Roberts
2024-04-17 15:23 ` Arnd Bergmann
2024-04-17 15:52 ` Ryan Roberts
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a5516289-96b6-41f4-8cbb-6c34c7bf7996@app.fastmail.com \
--to=arnd@arndb.de \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=ryan.roberts@arm.com \
--cc=yujie.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox