Re: clang: error: unknown argument '-static-libasan'; did you mean '-static-libsan'?
From: Ryan Roberts
Date: Tue Apr 16 2024 - 10:33:25 EST
+ Arnd
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@xxxxxxxxx>
> | Closes: https://lore.kernel.org/r/202404141807.LgsqXPY5-lkp@xxxxxxxxx/
>
> 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,
Ryan
[1]
https://lore.kernel.org/linux-mm/53d194db-c7d4-4026-9fbb-3b41de545849@xxxxxxxxxxxxxxxx/