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: 8601691 Return-Path: X-Original-To: patchwork-linux-kbuild@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 08ACD9F6E1 for ; Wed, 16 Mar 2016 15:06:13 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id EBDB5201CE for ; Wed, 16 Mar 2016 15:06:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 09176201E4 for ; Wed, 16 Mar 2016 15:06:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966868AbcCPPFs (ORCPT ); Wed, 16 Mar 2016 11:05:48 -0400 Received: from mail-qg0-f53.google.com ([209.85.192.53]:35489 "EHLO mail-qg0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966843AbcCPPFq (ORCPT ); Wed, 16 Mar 2016 11:05:46 -0400 Received: by mail-qg0-f53.google.com with SMTP id y89so45630033qge.2 for ; Wed, 16 Mar 2016 08:05:45 -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=OTv1wp0cFmR+pF65F3ncKucjDnODHFQ8I2PdoQKJtubMhFqgQLnc+JgkeBcW+qd2Fb uUV6NzskwXKUhaJLQUHti+KIHs28Qc5rNkJnZrr6RfFlMtE61bJttelblxkFR5vg8SCb LgiIJ/KtQZs6u4wZbKGa2H4NHZWB6WRv4nnZNWzutqNQwmSwjCDO7EVOVz1OVb+Jeroo WYG3ytIHzyKbMPM5VBBVv17ZaIfos/TbF8VKwZYJKJfc3OtPtPSuU4jA/Z2PyCfNKsm4 Bi6o1iJH0issXtLoX3ONOG8bcGC7YxiWX1QQCit33itIAAOZfQJapanjKWMH57sd7c4V aBrA== X-Gm-Message-State: AD7BkJKvodeOtkmL66jI9zaFDLDS0g+O4rIy8nPHL3rXtywi3vs7ZvGFDlSJurOze8nhGvfq 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-kbuild-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 --- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html 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'