Re: [PATCH v2] Makefile: avoid breaking compilation database generation with DEVELOPER
From: brian m. carlson <hidden>
Date: 2021-09-23 01:41:47
On 2021-09-22 at 18:57:02, Carlo Marcelo Arenas Belón wrote:
quoted hunk ↗ jump to hunk
3821c38068 (Makefile: add support for generating JSON compilation database, 2020-09-03), adds a feature to be used with clang to generate a compilation database by copying most of what was done before with the header dependency, but by doing so includes on its availability check the CFLAGS which became specially problematic once DEVELOPER=1 implied -pedantic as pointed out by Ævar[1]. Remove the unnecessary flags in the availability test, so it will work regardless of which other warnings are enabled or if the compiler has been told to error on them. [1] https://lore.kernel.org/git/patch-1.1-6b2e9af5e67-20210922T103749Z-avarab@gmail.com/ (local) Helped-by: Eric Sunshine [off-list ref] Signed-off-by: Carlo Marcelo Arenas Belón <redacted> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/Makefile b/Makefile index 9df565f27b..d5c6d0ea3b 100644 --- a/Makefile +++ b/Makefile@@ -1302,7 +1302,7 @@ GENERATE_COMPILATION_DATABASE = no endif ifeq ($(GENERATE_COMPILATION_DATABASE),yes) -compdb_check = $(shell $(CC) $(ALL_CFLAGS) \ +compdb_check = $(shell $(CC) \ -c -MJ /dev/null \ -x c /dev/null -o /dev/null 2>&1; \ echo $$?)
Are you sure this results in a functional set of files? As I understand it, the reason that clangd needs these files is because it needs to know what include arguments and headers are supposed to be used, since C programs don't have a standard layout. In this case, it looks like you're removing all of the -I arguments, so in that case clangd wouldn't be able to find all the files it's supposed to. Of course, if I've misunderstood, and somehow we get those arguments elsewhere, that's fine, but I just want to be sure we don't regress the behavior. -- brian m. carlson (he/him or they/them) Toronto, Ontario, CA
Attachments
- signature.asc [application/pgp-signature] 262 bytes