On Thu, May 02, 2024 at 06:58:20PM -0700, John Hubbard wrote: > First of all, in order to build with clang at all, one must first apply > Valentin Obst's build fix for LLVM [1]. Once that is done, then when > building with clang, via: > > make LLVM=1 -C tools/testing/selftests > > ...the following error occurs: > > clang: error: cannot specify -o when generating multiple output files > > This is because clang, unlike gcc, won't accept invocations of this > form: > > clang file1.c header2.h > > While trying to fix this, I noticed that: > > a) selftests/lib.mk already avoids the problem, and > > b) The binderfs Makefile indavertently bypasses the selftests/lib.mk > build system, and quitely uses Make's implicit build rules for .c files > instead. > > The Makefile attempts to set up both a dependency and a source file, > neither of which was needed, because lib.mk is able to automatically > handle both. This line: > > binderfs_test: binderfs_test.c > > ...causes Make's implicit rules to run, which builds binderfs_test > without ever looking at lib.mk. > > Fix this by simply deleting the "binderfs_test:" Makefile target and > letting lib.mk handle it instead. > > [1] https://lore.kernel.org/all/20240329-selftests-libmk-llvm-rfc-v1-1-2f9ed7d1c49f@xxxxxxxxxxxxxxx/ > > Fixes: 6e29225af902 ("binderfs: port tests to test harness infrastructure") > Cc: Christian Brauner <brauner@xxxxxxxxxx> > Signed-off-by: John Hubbard <jhubbard@xxxxxxxxxx> > --- Reviewed-by: Christian Brauner <brauner@xxxxxxxxxx>