Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp1267943pxu; Mon, 23 Nov 2020 16:32:23 -0800 (PST) X-Google-Smtp-Source: ABdhPJzTEFeBRTDITOUQs1iNmpHkpH7UZ8fzNqOkO8TaGlaSSvipmpNKkqkM0sURcZJBTaBa36gX X-Received: by 2002:a17:906:a891:: with SMTP id ha17mr2109089ejb.116.1606177943548; Mon, 23 Nov 2020 16:32:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606177943; cv=none; d=google.com; s=arc-20160816; b=rWv3s5+rgzbqgznWY35MQAdeDTnnjVOd9Q04C3EUoupoOkFaAzNCfkOkS2jDGzMm5I ZNfCroawNWi9ImAQMJ1h62IsZF6ZhakKD3yfS6bVE3t12T5mg8K04fnodUdLgZXFrz3S 7ckmsh808T+UvK0XpnO2sNxZu8QTv8Z+7dF2sRHa7W8zc5iIs8bXmDWTO4whIX6Kb6vV YzfHO8VRZKFVVe0vEJg/W0lKPlcobUwg8XpGf2xLHoOM9MUKuHOOci6ZsdECdEjm1RzC R7sVCKXCaEAZBr/s94PUOkPALVcIrAlgynS4dEJ8kRmG8wN8Y6TnDKqEFW37vLCgv94e V1Fg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=q/UD3WI185xGIowKBXtaFF2Qhn0OozjVsxQLr96aHzg=; b=Bg/kAf/M3DB4W6yp+UFo9KL+at8P/McfCwcfKNINqFAtsgn5ovAX0mgR4zrJfdekm6 SsRn1gaWOvQvR6P2IwXCBxmHPFnQBkvro5quFl1HGS6FODXGIcJmxNRQhDl6m9v5DvO+ w3glRlvYHqlkFFhekT4RywyuhKBABej3z9LVAJRmzLxKCbYXAqa7A2w2Sa1OBTw6n/We 8tw/0F+SBpD1/8oXG2301hFr4WqgQdmCotGoSqo5WaJHLWisCcv7n+wN2yd3ltj2MOgZ voylRTpNzK3+2ZS2mOYXGLnSjETqnXHbdCjGtHtbtiOqb399HMX/fwJ4XPCvG6zbrtQu Lfzw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=ucloud.cn Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id sd28si4854968ejb.474.2020.11.23.16.32.01; Mon, 23 Nov 2020 16:32:23 -0800 (PST) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=ucloud.cn Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389338AbgKWPFE (ORCPT + 99 others); Mon, 23 Nov 2020 10:05:04 -0500 Received: from m9785.mail.qiye.163.com ([220.181.97.85]:54133 "EHLO m9785.mail.qiye.163.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729602AbgKWPFE (ORCPT ); Mon, 23 Nov 2020 10:05:04 -0500 Received: from localhost (unknown [1.203.100.158]) by m9785.mail.qiye.163.com (Hmail) with ESMTPA id 23F5D5C16B8; Mon, 23 Nov 2020 23:04:53 +0800 (CST) Date: Mon, 23 Nov 2020 23:04:52 +0800 From: WANG Chao To: Masahiro Yamada Cc: Linux Kernel Mailing List , Linux Kbuild mailing list Subject: Re: [PATCH] kbuild: add extra-y to targets-for-modules Message-ID: <20201123150452.GA68187@MacBook-Pro-2> References: <20201103054425.59251-1-chao.wang@ucloud.cn> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-HM-Spam-Status: e1kfGhgUHx5ZQUtXWQgYFAkeWUFZS1VLWVdZKFlBSUI3V1ktWUFJV1kPCR oVCBIfWUFZSEtJQ0tKQ0oeS0JIVkpNS01KT0hDQkhJS0xVGRETFhoSFyQUDg9ZV1kWGg8SFR0UWU FZT0tIVUpKS0hKTFVLWQY+ X-HM-Sender-Digest: e1kMHhlZQR0aFwgeV1kSHx4VD1lBWUc6Mj46FTo4Nz0xLjJRHjM8NzoT TThPCzJVSlVKTUtNSk9IQ0JISE1DVTMWGhIXVRgTGhRVDBoVHDsOGBcUDh9VGBVFWVdZEgtZQVlK VUlLSFVKS0tVSk5DWVdZCAFZQUhPQ0o3Bg++ X-HM-Tid: 0a75f5a2de9f2087kuqy23f5d5c16b8 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/23/20 at 02:23P, Masahiro Yamada wrote: > On Tue, Nov 3, 2020 at 3:23 PM WANG Chao wrote: > > > > extra-y target doesn't build for 'make M=...' since commit 6212804f2d78 > > ("kbuild: do not create built-in objects for external module builds"). > > > > This especially breaks kpatch, which is using 'extra-y := kpatch.lds' > > and 'make M=...' to build livepatch patch module. > > > > Add extra-y to targets-for-modules so that such kind of build works > > properly. > > > > Signed-off-by: WANG Chao > > --- > > scripts/Makefile.build | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/scripts/Makefile.build b/scripts/Makefile.build > > index ae647379b579..0113a042d643 100644 > > --- a/scripts/Makefile.build > > +++ b/scripts/Makefile.build > > @@ -86,7 +86,7 @@ ifdef need-builtin > > targets-for-builtin += $(obj)/built-in.a > > endif > > > > -targets-for-modules := $(patsubst %.o, %.mod, $(filter %.o, $(obj-m))) > > +targets-for-modules := $(extra-y) $(patsubst %.o, %.mod, $(filter %.o, $(obj-m))) > > > > ifdef need-modorder > > targets-for-modules += $(obj)/modules.order > > -- > > 2.29.1 > > > > NACK. > > Please fix your Makefile. > > Hint: > https://patchwork.kernel.org/project/linux-kbuild/patch/20201123045403.63402-6-masahiroy@kernel.org/ > > > Probably what you should use is 'targets'. I tried with 'targets' and 'always-y'. Both doesn't work for me. I narraw it down to the following example: cat > Makefile << _EOF_ obj-m += foo.o ldflags-y += -T $(src)/kpatch.lds always-y += kpatch.lds foo-objs += bar.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean _EOF_ Take a look into scripts/Makefile.build:488: __build: $(if $(KBUILD_BUILTIN), $(targets-for-builtin)) \ $(if $(KBUILD_MODULES), $(targets-for-modules)) \ $(subdir-ym) $(always-y) @: 'always-y' is built after 'targets-for-modules'. This makes 'targets-for-modules' fails because kpatch.lds isn't there. For 'targets', in case of OOT, does not seem to be useful. What change do you suggest to make to fix this kind of Makefile? Thanks, WANG Chao