From patchwork Wed Mar 16 15:05:43 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Pitre X-Patchwork-Id: 63934 Delivered-To: patch@linaro.org Received: by 10.112.199.169 with SMTP id jl9csp1375531lbc; Wed, 16 Mar 2016 08:06:05 -0700 (PDT) X-Received: by 10.66.222.199 with SMTP id qo7mr6765729pac.38.1458140752751; Wed, 16 Mar 2016 08:05:52 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u6si5627958pfa.186.2016.03.16.08.05.52; Wed, 16 Mar 2016 08:05:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dkim=pass header.i=@linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966895AbcCPPFt (ORCPT + 31 others); Wed, 16 Mar 2016 11:05:49 -0400 Received: from mail-qg0-f43.google.com ([209.85.192.43]:33324 "EHLO mail-qg0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966844AbcCPPFq (ORCPT ); Wed, 16 Mar 2016 11:05:46 -0400 Received: by mail-qg0-f43.google.com with SMTP id a36so13638069qge.0 for ; Wed, 16 Mar 2016 08:05:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=H48qLCNFf8PENCow49gW0U7fCW+ogepUuJ1JrrUzJ2k=; b=AAWdo1XfBDbZBCrDxiM7B9TNk6hZb6SDJ9Bm15/z7xqOCh840GJJ30MRQ42h7YJeH7 SP2uM5i5UkLX6iHt7cN7EORFoLJPWTYSLdnPqqkJvGmesXMVdsoDsPnRueAYnIwNsmeR WzBTRo+mqTePhn+qtZm3LyQ0P86MgdRmJLXDU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=H48qLCNFf8PENCow49gW0U7fCW+ogepUuJ1JrrUzJ2k=; b=jYyO+HWKZPcQyDjkNlOkw+RuWYFBldI1aWrhiofdPKkQ9veTSerixAyJbcFg4czf1s htjC/ZyzYSwoFuZrpGda1Pg1qaZXd9hcoUie/NsgSgLe2F8oktZPF54mqHVUPCgAX6As rxw80hG32qXWrp84n13VltRUerEfl2NVR63rKEAXfmXp0MJHxrl4rZt4gx9CuOab4uoI OGfNG+Xwb7yacJYBiCXC8Dtc1hUaMSerKtWl3iKB2iBpZSM5aOplMXEX0c6fYuJXVhrO thQBDyzWbz15gkVvEvrv5gQ+EpHKeU+SK8Cb6Kk+KEA8cdVPe7rrCxFUPzgDZZEUqqkv 48sQ== X-Gm-Message-State: AD7BkJJSSyyi67bDjHHCSA29u6RecR96cfMaLKIwOdHO9YIwnxHE+4IuCaL+4CaNFK5maYAA X-Received: by 10.140.220.207 with SMTP id q198mr6280421qhb.103.1458140745347; Wed, 16 Mar 2016 08:05:45 -0700 (PDT) Received: from xanadu.home ([2607:fa48:6e39:d410:feaa:14ff:fea7:ed77]) by smtp.gmail.com with ESMTPSA id m82sm1670479qkh.8.2016.03.16.08.05.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Mar 2016 08:05:44 -0700 (PDT) Date: Wed, 16 Mar 2016 11:05:43 -0400 (EDT) From: Nicolas Pitre To: Michal Marek cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v6 5/8] kbuild: add fine grained build dependencies for exported symbols In-Reply-To: <56E9518E.1020206@suse.com> Message-ID: References: <1457923336-2732-1-git-send-email-nicolas.pitre@linaro.org> <1457923336-2732-6-git-send-email-nicolas.pitre@linaro.org> <56E8718E.9010607@suse.com> <56E9518E.1020206@suse.com> User-Agent: Alpine 2.20 (LFD 67 2015-01-07) MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 16 Mar 2016, Michal Marek wrote: > On 2016-03-16 00:14, Nicolas Pitre wrote: > > On Tue, 15 Mar 2016, Michal Marek wrote: > > > >> Dne 14.3.2016 v 03:42 Nicolas Pitre napsal(a): > >>> +# Filter out exported kernel symbol names from the preprocessor output. > >>> +# See also __KSYM_DEPS__ in include/linux/export.h. > >>> +# We disable the depfile generation here, so as not to overwrite the existing > >>> +# depfile while fixdep is parsing it > >>> +flags_nodeps = $(filter-out -Wp$(comma)-M%, $($(1))) > >>> +ksym_dep_filter = \ > >>> + case "$(1)" in \ > >>> + cc_*_c) $(CPP) $(call flags_nodeps,c_flags) -D__KSYM_DEPS__ $< ;; \ > >>> + as_*_S) $(CPP) $(call flags_nodeps,a_flags) -D__KSYM_DEPS__ $< ;; \ > >>> + cpp_lds_S) : ;; \ > >>> + *) echo "Don't know how to preprocess $(1)" >&2; false ;; \ > >>> + esac | sed -rn 's/^.*=== __KSYM_(.*) ===.*$$/KSYM_\1/p' > >>> + > >>> +cmd_and_fixdep = \ > >>> + $(echo-cmd) $(cmd_$(1)); \ > >>> + $(ksym_dep_filter) | \ > >>> + scripts/basic/fixdep -e $(depfile) $@ '$(make-cmd)' \ > >>> + > $(dot-target).tmp; \ > >>> + rm -f $(depfile); \ > >>> + mv -f $(dot-target).tmp $(dot-target).cmd; > >>> + > >>> +endif > >> > >> Not sure what happened this time, but I got > >> > >> drivers/md/.dm-round-robin.mod.o.cmd:5: *** unterminated call to > >> function 'wildcard': missing ')'. Stop. > >> > >> The depfile is indeed corrupt (truncated): > >> tail drivers/md/.dm-round-robin.mod.o.cmd > >> arch/x86/include/asm/disabled-features.h \ > >> $(wildcard include/config/x86/intel/mpx.h) \ > >> arch/x86/include/asm/rmwcc.h \ > >> arch/x86/include/asm/barrier.h \ > >> $(wildcard include/config/x86/ppro/fence.h) \ > >> arch/x86/include/asm/nops.h \ > >> $(wildcard include/config/mk7.h) \ > >> include/asm-generic/barrier.h \ > >> include/asm-generic/bitops/find.h \ > >> $(wildcard include/config/generic/ > >> > >> The file is exactly 8kB long: > >> $ ls -l drivers/md/.dm-round-robin.mod.o.cmd > >> -rw-r--r-- 1 mmarek users 8192 Mar 8 13:33 > >> drivers/md/.dm-round-robin.mod.o.cmd > > > > [...] > > > >> Forgot to add: This was an allmodconfig build without > >> CONFIG_TRIM_UNUSED_SYMS. > > > > If CONFIG_TRIM_UNUSED_SYMS is actually not selected, then I really don't > > see how my changes can be involved in this failure. > > I have no idea either. > > > > And I cannot reproduce here so far. I didn't receive anything from > > kbuild test robot since February 15 either. Is this something that you > > are able to reproduce on your side? > > I started a build loop now. > > > > If so, do you get suspicious output on stderr during the build? Maybe > > fixdep exits prematurelywith "fixdep: bad data on stdin"? However, that > > cannot happen if CONFIG_TRIM_UNUSED_SYMS=n. > > > > Did you test my git branch, or did you apply the posted patches to your > > tree? If the later, could you publish a branch for it so I could test > > the same tree as you do? > > I applied the patches to my -rc1 based kbuild branch and yes, there was > a conflict with 2aedcd098a94 ("kbuild: suppress annoying "... is up to > date." message"). So it's possible that I screwed it up. I pushed the > branch to > > git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild.git > tmp.autoksyms6 As far as I can see, the conflict resolution is correct. Testing your branch now. No failure so far. I did notice spurious error messages after cleaning my build tree. They're unrelated to your failure case though. Regardless, here's a patch to silence them. ----- >8 From: Nicolas Pitre Subject: kbuild: don't complain about existing if_changed_dep targets There are more if_changed_dep cases for which we know there is no ksyms to parse. Add them to the list. Also add a full stop to the comment. Signed-off-by: Nicolas Pitre diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index f8631a935e..a09927e027 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include @@ -271,13 +271,13 @@ else # Filter out exported kernel symbol names from the preprocessor output. # See also __KSYM_DEPS__ in include/linux/export.h. # We disable the depfile generation here, so as not to overwrite the existing -# depfile while fixdep is parsing it +# depfile while fixdep is parsing it. flags_nodeps = $(filter-out -Wp$(comma)-M%, $($(1))) ksym_dep_filter = \ case "$(1)" in \ cc_*_c) $(CPP) $(call flags_nodeps,c_flags) -D__KSYM_DEPS__ $< ;; \ as_*_S) $(CPP) $(call flags_nodeps,a_flags) -D__KSYM_DEPS__ $< ;; \ - cpp_lds_S) : ;; \ + boot*|build*|*cpp_lds_S|dtc|host*|vdso*) : ;; \ *) echo "Don't know how to preprocess $(1)" >&2; false ;; \ esac | sed -rn 's/^.*=== __KSYM_(.*) ===.*$$/KSYM_\1/p'