Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp769679pxa; Wed, 12 Aug 2020 12:57:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwHSHoFsIe7cPfNuKMH6x+HThtPHA25dUKhyQ3IndPnClr1v4sYXKpQZc1MQppJGVqXliuj X-Received: by 2002:a17:906:1f88:: with SMTP id t8mr1438423ejr.241.1597262252883; Wed, 12 Aug 2020 12:57:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597262252; cv=none; d=google.com; s=arc-20160816; b=lyR2kPKJz0x/AJTrZBlF3/Kb+zrRHQ+0g6q4fEe2/3vlX6jK43zTLRjcUgkAgPZIqA QaiYVjqFknAP8UNlD+Lw9H0uTGuaHStyY9rWlbnout4cJDIOY9hsvF5z/Tuw+Hdm4xAO q0ohT91Y0nuYdQuHjXAr4aSgM6RW6NqKGBDvMRl50vY3qdUutEMVZNgH6VnMjN+5cxNw VykgfepsTCaYjk9Q0+g5AEPrEMJL9GYPwiobTqaHqUhJzan1V8RfARCoXhly0YFmDGNA Y/gmJCOQtqakg4Sh2Z5O8szcQV4C8u08lhff+ea8SVf4tTNntdB32yRmj63w5aKXDkQX JnSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=wWaTeN8Ytl2katk+bZVElXkZxt9E6gO+CzcMFpZntSQ=; b=zbzrh3xIP+wim479zPzzHPeNBPpwiJZfA5q4khVTbu3P7+vHObK+JvR2ZnfxchGtwZ Nwxrr6aqLFOW1r589UzB1yr/mfiuzBZSWjhNk73wRs2aPDVQJ16ec/rVen0IAB+BT8aV URmkf2ECX2gfMdOaiNPxZ9lnH3klsNyo4c22FulqQvHMbnP3IS5RdcHKMcqj4PJgKzji zF5pcH0CKpsoZ86Y2/s7bOG30OFF1nbhhR+7MJ0FLsqmW/sle+H3LSySiApdDyEAYqUQ 3EujEIag8XHpcBRMSAuWN4B5bR7oANwgRMcDLg1IJMC8pLYM7SqnkrIWqoOqZeYwkVBk wA0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=m3Weqppl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cq22si1841390edb.609.2020.08.12.12.57.09; Wed, 12 Aug 2020 12:57:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=m3Weqppl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726600AbgHLT4i (ORCPT + 99 others); Wed, 12 Aug 2020 15:56:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40382 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726564AbgHLT4h (ORCPT ); Wed, 12 Aug 2020 15:56:37 -0400 Received: from mail-qk1-x744.google.com (mail-qk1-x744.google.com [IPv6:2607:f8b0:4864:20::744]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5FDF7C061384 for ; Wed, 12 Aug 2020 12:56:37 -0700 (PDT) Received: by mail-qk1-x744.google.com with SMTP id 77so3213768qkm.5 for ; Wed, 12 Aug 2020 12:56:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=wWaTeN8Ytl2katk+bZVElXkZxt9E6gO+CzcMFpZntSQ=; b=m3WeqpplCCpS0xJJWpLWDAQaigUOSDmVuwIm36QQ9zskb15CkeTK+NRNRxkXXSsJSf dAJN7VDaKTJYy47Xry5yjydZN1p2kNS0t0KfkLu0zsAUC+6aJSn4PcjcrocXeQsNKari blt//CydgIt4FzJ6yaqeN+nAVwv22VgLCiVi3km7A/didrMaOWiNSDHNq0nomwupZC0r ApbixQkEQJaPw7Jq9otRQSZC/Gjaxn6yerB/i+Fl5pqfZ+Tm9DZp8y429mk/yIEo1j0i zy79HPlk+i69PZRJtanKvVUOM/TFusVGRM+2stVzrxz7kn4Ew5I7rrkInK+GLlxL+9/C 555w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=wWaTeN8Ytl2katk+bZVElXkZxt9E6gO+CzcMFpZntSQ=; b=cYEAkF8qXs8HmekZHlmDNRYJEUUHPujJspQsukTmig+hs1mfhBdcfX+vyMU9vywqAy wN3hVE2ITHJ9G4WRRTb1kRXCYrNxNGIpQhaP06SDTui1RIHMUqKgBJNvVJ4zkD3tlCMl wJkXFA0xVRW0IaT2w4Hh/AtEVKerB/eMSYK79IDr3T/YDA9qjnK4/ftaEtAaFwO/MDj5 R8EMPDVp2gEboOW5ka0HNHQMUtiEmiv3Lj/cN4Su2jwmmkR0q1LSsdWRkrbfuQWIQ7MO VTvjfzKfjVFlHbqFzNUP7dPB0NUCP+9FV2VWJeiAGURyj+PpF3K8vX/ESezY3eZjcRUx MYig== X-Gm-Message-State: AOAM532hXVDCe37jPhbdgIQWWqoIs+JZhQ47NaDmjoz4+0w4dd3PElZ7 i/x/NhuYFoZuEATUoNmP+zNxq3vwHHzn7UGW2Z4ftA== X-Received: by 2002:a37:a354:: with SMTP id m81mr1537714qke.277.1597262196294; Wed, 12 Aug 2020 12:56:36 -0700 (PDT) MIME-Version: 1.0 References: <20200812173958.2307251-1-masahiroy@kernel.org> In-Reply-To: <20200812173958.2307251-1-masahiroy@kernel.org> From: Nathan Huckleberry Date: Wed, 12 Aug 2020 14:56:24 -0500 Message-ID: Subject: Re: [PATCH 0/3] kbuild: clang-tidy To: Masahiro Yamada Cc: Linux Kbuild mailing list , Nick Desaulniers , Tom Roeder , clang-built-linux , "David S. Miller" , Mauro Carvalho Chehab , Michal Marek , Rob Herring , LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Aug 12, 2020 at 12:40 PM Masahiro Yamada wrote: > > > I improved gen_compile_commands.py in the first two patches, > then rebased Nathan's v7 [1] on top of them. > To save time, I modified the Makefile part. > No change for run-clang-tools.py > > I am not sure if the new directory, scripts/clang-tools/, > is worth creating only for 2 files, but I do not have > a strong opinion about it. > > "make clang-tidy" should work in-tree build, > out-of-tree build (O=), and external module build (M=). > Tests and reviews are appreciated. > > "make clang-tidy" worked for me. > > masahiro@oscar:~/workspace/linux-kbuild$ make -j24 CC=clang clang-tidy > DESCEND objtool > CALL scripts/atomic/check-atomics.sh > CALL scripts/checksyscalls.sh > CHK include/generated/compile.h > GEN compile_commands.json > CHECK compile_commands.json > > But "make clang-analyzer" just sprinkled the following error: > > Error: no checks enabled. > USAGE: clang-tidy [options] [... ] > > I built clang-tidy from the latest source. > I had no idea how to make it work... How are you building clang-tidy? The clang static-analyzer may not have been built. I believe the static analyzer is built as a part of clang, not as a part of clang-tools-extra. I use this command to build. cmake -DCMAKE_BUILD_TYPE="release" -DLLVM_TARGETS_TO_BUILD="X86;AArch64;ARM;RISCV" -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;llvm-as" -DLLVM_ENABLE_LLD=1 -G "Ninja" ../llvm Adding clang to the list of -DLLVM_ENABLE_PROJECTS will build the static analyzer. -DCLANG_ENABLE_STATIC_ANALYZER=1 might also work, but I haven't tested it. I tested the patchset and both clang-tidy and clang-analyzer work for me. > > [1] https://patchwork.kernel.org/patch/11687833/ > > > > Masahiro Yamada (2): > gen_compile_commands: parse only the first line of .*.cmd files > gen_compile_commands: wire up build rule to Makefile > > Nathan Huckleberry (1): > Makefile: Add clang-tidy and static analyzer support to makefile > > MAINTAINERS | 1 + > Makefile | 45 +++++- > scripts/clang-tools/gen_compile_commands.py | 117 +++++++++++++++ > scripts/clang-tools/run-clang-tools.py | 74 ++++++++++ > scripts/gen_compile_commands.py | 151 -------------------- > 5 files changed, 233 insertions(+), 155 deletions(-) > create mode 100755 scripts/clang-tools/gen_compile_commands.py > create mode 100755 scripts/clang-tools/run-clang-tools.py > delete mode 100755 scripts/gen_compile_commands.py > > -- > 2.25.1 >