On Thu, Nov 06, 2025 at 05:32:47PM +0530, Ankit Khushwaha wrote:
On Thu, Nov 06, 2025 at 12:18:57PM +0100, David Hildenbrand (Red Hat) wrote:
On 06.11.25 11:49, Ankit Khushwaha wrote:
Pointer arthemitic with 'void * addr' and 'unsigned long long dest_alignment' triggers following warning:
mremap_test.c:1035:31: warning: pointer comparison always evaluates to false [-Wtautological-compare] 1035 | if (addr + c.dest_alignment < addr) { | ^
typecasting 'addr' to 'unsigned long long' to fix pointer comparison.
With which compiler are you seeing this?
Hi David,
clang version 20.1.8 (Fedora 20.1.8-4.fc42) raised this warning.
To reproduce: make -C tools/testing/selftests/mm CC=clang
FYI That doesn't work:
$ make -C tools/testing/selftests/mm CC=clang make: Entering directory '/data/kerndev/kernels/mm/tools/testing/selftests/mm' warning: the compiler differs from the one used to build the kernel The kernel was built by: gcc (GCC) 15.2.1 20250813 You are using: clang version 20.1.8 CC [M] page_frag_test.o clang: error: unknown argument: '-fmin-function-alignment=16' clang: error: unknown argument: '-fconserve-stack' clang: error: unsupported option '-mrecord-mcount' for target 'x86_64-unknown-linux-gnu' make[4]: *** [/usr/lib/modules/6.17.2-arch1-1/build/scripts/Makefile.build:287: page_frag_test.o] Error 1 make[3]: *** [/usr/lib/modules/6.17.2-arch1-1/build/Makefile:2011: .] Error 2 make[2]: *** [Makefile:248: __sub-make] Error 2 make[1]: *** [Makefile:15: all] Error 2 make: *** [../lib.mk:146: gen_mods_dir] Error 2 make: Leaving directory '/data/kerndev/kernels/mm/tools/testing/selftests/mm' [649ms][2][review/loz-v2][~/kerndev/kernels/mm]$ cd tools/testing/selftests/mm
Even if I rebuild the entire kernel using clang via LLVM=1 it doesn't work.
The following KIND OF works:
$ make -C tools/testing/selftests/mm clean $ make tools/testing/selftests/mm LLVM=1
But I still get:
warning: the compiler differs from the one used to build the kernel The kernel was built by: gcc (GCC) 15.2.1 20250813 You are using: clang version 20.1.8 CC [M] page_frag_test.o clang: error: unknown argument: '-fmin-function-alignment=16' clang: error: unknown argument: '-fconserve-stack' clang: error: unsupported option '-mrecord-mcount' for target 'x86_64-unknown-linux-gnu' make[4]: *** [/usr/lib/modules/6.17.2-arch1-1/build/scripts/Makefile.build:287: page_frag_test.o] Error 1 make[3]: *** [/usr/lib/modules/6.17.2-arch1-1/build/Makefile:2011: .] Error 2 make[2]: *** [Makefile:248: __sub-make] Error 2 make[1]: *** [Makefile:15: all] Error 2 make: *** [../lib.mk:146: gen_mods_dir] Error 2 make: Leaving directory '/data/kerndev/kernels/mm/tools/testing/selftests/mm'
Errors, presumably unless you build _the entire kernel_ using LLVM=1 :)
Thanks,
Ankit
It may be worth looking at how to make this behave better because this seems silly if clang will pick up additional warnings.
Cheers, Lorenzo