From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964981AbbJ2GgS (ORCPT ); Thu, 29 Oct 2015 02:36:18 -0400 Received: from mail-bl2on0123.outbound.protection.outlook.com ([65.55.169.123]:36843 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1756361AbbJ2GgL (ORCPT ); Thu, 29 Oct 2015 02:36:11 -0400 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; logfs.org; dkim=none (message not signed) header.d=none;logfs.org; dmarc=none action=none header.from=freescale.com; Date: Thu, 29 Oct 2015 14:34:28 +0800 From: Peter Chen To: Michal Marek CC: , , , Michal Marek , , Joern Engel , Prasad Joshi , Subject: Re: [PATCH 2/3] kbuild: Allow to specify composite modules with modname-m Message-ID: <20151029063427.GB8367@shlinux2> References: <1446038742-13482-1-git-send-email-mmarek@suse.cz> <1446038742-13482-2-git-send-email-mmarek@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1446038742-13482-2-git-send-email-mmarek@suse.cz> User-Agent: Mutt/1.5.21 (2010-09-15) X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD054;1:fkJsYs4BVLw79k1XmRaG7UPvuIjBrCo6Tqz5ATDkRdNUQNLD5cCksZRC9RWJkMJaQ2KNddULP5sGh+AoJ4Ykz0tZijwqUFrZZg/I2JKKK2G3sZ7bAorDThcf3v2ZKQDWAyUuqo3ZDT7P8isAMbSTbrWpTiOEPQV8D8bemeNrnYB8jT2GZppyXIEiu8R8msP10nFHcCYByJfEm4jfk8Z148KGLpRgXVtmPVz1FWMMJodNmGh/7jSilRKCLwh1oiOv/213Fb5GxQ/uK+skXQa6/IwVVBsrQ9B6/XE9xOZudJTpdvR/M0JdA6wIjdXd20dm12CfIVwTYWPUHD538iK70Pcsyv22UnbZMZO202F48x60olQnQUNph9Zqrd01dJpZ X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(24454002)(189002)(199003)(54356999)(83506001)(81156007)(23726002)(85426001)(97736004)(5001920100001)(33656002)(6806005)(97756001)(77096005)(87936001)(86362001)(104016004)(33716001)(105606002)(4001350100001)(106466001)(2950100001)(5007970100001)(76176999)(50986999)(189998001)(46406003)(19580395003)(5001960100002)(5008740100001)(50466002)(19580405001)(92566002)(47776003)(110136002)(11100500001);DIR:OUT;SFP:1102;SCL:1;SRVR:BY1PR0301MB1272;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY1PR0301MB1272;2:ZISJYSq7whJ+uiXS5qym518nC+b509nWmx2D331XJwkujFSBWdKea5SxHUMKEPkplBco8aFDmS1clesVrufzXM6Q8JipHsMqaWUQaY/dUOCMZ7Uca4SWbGuO0EL3c3G/Hdz09+VP3N787vpM+4EV8s7F+hN1VPeOHSViFYWff2Q=;3:yzoxd2htnqpdnlmXXvcANmWK6r+b6adxUVgs17YMuQby4ZFNwTAy8O/jFqjY6g4XW89BGQgprAhXOALd2y2BitNZpXB7DA1vL9y4vUlfywTnOMZVpGDysymfRnGpL3ESXmy28Ssvst1g0F99K8SaW+XW3OD3ICZu0eeny1qg/Ue9qq46RC5qQaX2vn1eAFiCKCpgHgHcxlsOW5TE1Fyo2aaTxUU2Nz1XL6D+rt820CM=;25:BI3r3BJCVeVOdhl2VERq07BlfPXI3s5fL8IBbOyfWxoWKnM6dAyhHjORPkrC6+4hA+sHSiL6Q1Qs/vIVAtcbb8k23pBFxP1ntHng2258CnJSbDDRnJVPVH+1xwWbsyEINWwtyPCy+aVYt3iT7rpsEBCtrubqQgSbS1MAkz8CLgja0K6s4dZCEtdl19d37QDSo96yreE63r5DT4nGPKbNU+sK44n2HBn9LAtUI0QwkKXV8Ujndew/LV11zKDiCYgq X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB1272; X-Microsoft-Exchange-Diagnostics: 1;BY1PR0301MB1272;20:njYHxhWidUD59w5RUmKcek5lxTMShC7pAwT1MMvJppg1Nw+v5JKuzKMt3khjhC6Jc2O4U9JzdCRW3ZV2UI7JBy41BF/O1KEIkwQ2MfbsZclnkVgGD9NgypzwQ6MdRFsFsKavKXNYUAfcpeKiaZPbQbywiBuMZDJjTEPonZSwK3vdSBmmDENKxC6b8zfnrE5FmAJKO9OdWb41+28mIFqPmyt637qOwDLz5qC54RunjXSuluFVBVTs4HokxSe0eEpYd0SpMpowaeTu09QHwsdZSWFclfAg6efCkWvGxQ3RCAIzcrOgpOQ8aH3J+5y2pbJLcThS/wZkMJn8hi7tPDS0bWYBuxBi04dutg6dCiqH/q8=;4:EHV+TkNXYpNxcZJ+trhKbeZW/5m6CNJTDSMSax6a+Ny6uzNBUOIkhbVKMHReXQGHC4DjuER056Sz2ttf9RLH9Nky3US0cBknF8Z1dxSglosQTj5/YeX3ioSzp5hdmg3/nE29CfqF8n3olblMawuhbs3nfnkHI80WPww29kUiURQpIOw9ISuk4+h2nYLtfZhT1lIY51cTr3nY76PTXBJmhiXYSc79iQEqbP535D9JcyqRNtXzcuQlj426OyAf3SlU76yXpWp2QcjyMzy1nsH4Zm2d31oGIvZj5OvXei1hGK0k1w7jAM5VvCU5toxy1AJY4vLrjHxcSX4eoU0Xw9ySqLiMbv9IPALYMyQl/OErWANHhse3weYrSG+ncYX5ODq02jPJvzB2vpOqPTKbI9U/rg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(10201501046)(3002001)(102215026);SRVR:BY1PR0301MB1272;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB1272; X-Forefront-PRVS: 0744CFB5E8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY1PR0301MB1272;23:GUXaL3bu7942huvqYOlfFCMLpRr4VjaW1hukRYh?= =?us-ascii?Q?RhskpIc/umnxD4d5MG74QhyO5GJXkpuwTTAPyZlcOpb/vVK5LwwygGZo5CGx?= =?us-ascii?Q?lVLJuzl+yLFIl+dOzxljxMAQFqrJ+4kKRD084GB77DQ9YwbXWM60dkXslGS+?= =?us-ascii?Q?7S5Uizl44dwLou5cKYLQgSqXOCB4eN03iB2qg2GCtUTEidm8v039o5RWfPd9?= =?us-ascii?Q?lQ1MwUj3Tl9zgrMnFhaQva98wuKy0VxuuUC5ar67eEjXdRTB7Z5cAEIdPDDb?= =?us-ascii?Q?eo3PD1qfUmALawWZKyzganSXeTj3o/9cHhbo7b3a5TdEnspHIDEmO5nkmZJq?= =?us-ascii?Q?wpFvzlOu2pgUY8vpKpNM/qQfzwlz3nfMwo1yn4UG2KIJcAt5iZ8j4BBWgHcf?= =?us-ascii?Q?oUV+aoSfPoQq4jI3wP/zMJh7BBnzYuWWwpp2VMy5US6N+ucPcxjT/ENuQwG6?= =?us-ascii?Q?NH/mLuZSeUjcs/XXBKi2eAsM/bcuFWC+KcEnXmq0FNesT6IN+4RmsKoBksAI?= =?us-ascii?Q?HEz/zp3ufznuJz0srjxKsIxgo/yOv9UIWChk32p5/HgMgoavT8sHlq/g6fN+?= =?us-ascii?Q?+FXnvsDGTeG6XaBet2EU4y2ZVWv3BV7J9U46ViZ+thO4OdajQeERJpzVnF4w?= =?us-ascii?Q?3wNFWpczGOqIWnV+klVHwHPW9MlBkUK+Cwp/ZMx3VHsZTjjcLT8HSQwhPzVH?= =?us-ascii?Q?g2poXq/c3Fk/gb/kDHB+QNKolWa0lD5OZPjG5Gmhy5W70CevUJ/qbcTkhH5/?= =?us-ascii?Q?I2uJD783P5ORI2tp9W7yqMS7ctpC/LYiyfgI7MlIO02W8oQiNoPYyQzn1moO?= =?us-ascii?Q?Q2Zil/BeUTgXD8NDDP9pqO6JOZlgBjnioz9qst/jvSzexGiW1Eu/xl5gUUBH?= =?us-ascii?Q?cbCgI4CtDQhb/3Vah73wEIf/CEcL2pdyc1ev7zwV0qkW660z2zUgGya2+qpA?= =?us-ascii?Q?VE9xY4ez6yRkMSRF2G7k1E6WaaC1JM/qA8S6s+RyBSdQHD+Aykx3r6nqu///?= =?us-ascii?Q?aIcpWHRNQ7XOG4QBuJnjqWKgnm/Yz0rZbwkvSHMTylGdEl1fI+OYErf6O5fI?= =?us-ascii?Q?C8SiXdd34fMZtoUI5wqghdQYIsaq9HkIq8sgLbv1zkAvZz0NG+wbT2/W4PvL?= =?us-ascii?Q?ZNAKi1/kVvJ0=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY1PR0301MB1272;5:p2xzSyzXg24yFRW4brYWFBzL/qbeUqFtolO2kNevqt8UBcYj+x/mNDNIX5YQ+fYV67ZZUaO7tfGOly12n7W9073uyGy5UrOLEz5q07MvUlTI5ugVaF6NpKFdUuPaZt2nLzATF5Ix6nsKp/d2nXe5rA==;24:E79OgioEtOCKrHr0oBJ/3jGxgbE7yS3O6jsN4/eV9D0f5j2SAi+eeJZ//o94lwPkcJToZK17a/S6DcOce1nU60QSD8OueSaGztrIUojmJiQ=;20:lub1lgX9xVV7LdIwgFc3qCHSO7pE6+fe1KkPV0ZSL/WtlC17MgJFwqSzeESpixvT/gqxX7U/qU/Uzh1TxTF2Yw== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Oct 2015 06:36:07.3091 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0301MB1272 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Oct 28, 2015 at 02:25:41PM +0100, Michal Marek wrote: > From: Michal Marek > > This allows to write > > drm-$(CONFIG_AGP) += drm_agpsupport.o > > without having to handle CONFIG_AGP=y vs. CONFIG_AGP=m. Only support > this syntax for modules, since built-in code depending on something > modular cannot work and init/Makefile actually relies on the current > semantics. There are a few drivers which adapted to the current > semantics out of necessity; these are fixed to also work when the > respective subsystem is modular. > > Cc: Peter Chen > Cc: linux-usb@vger.kernel.org > Cc: Joern Engel > Cc: Prasad Joshi > Cc: logfs@logfs.org > Signed-off-by: Michal Marek > --- > drivers/misc/ibmasm/ibmasm.h | 2 +- > drivers/usb/chipidea/otg_fsm.h | 2 +- > fs/logfs/logfs.h | 2 +- > scripts/Makefile.build | 8 ++++++-- > scripts/Makefile.lib | 4 ++-- > 5 files changed, 11 insertions(+), 7 deletions(-) > > diff --git a/drivers/misc/ibmasm/ibmasm.h b/drivers/misc/ibmasm/ibmasm.h > index 9b08344..5bd1277 100644 > --- a/drivers/misc/ibmasm/ibmasm.h > +++ b/drivers/misc/ibmasm/ibmasm.h > @@ -211,7 +211,7 @@ void ibmasmfs_unregister(void); > void ibmasmfs_add_sp(struct service_processor *sp); > > /* uart */ > -#ifdef CONFIG_SERIAL_8250 > +#if IS_ENABLED(CONFIG_SERIAL_8250) > void ibmasm_register_uart(struct service_processor *sp); > void ibmasm_unregister_uart(struct service_processor *sp); > #else > diff --git a/drivers/usb/chipidea/otg_fsm.h b/drivers/usb/chipidea/otg_fsm.h > index 2689375..262d6ef 100644 > --- a/drivers/usb/chipidea/otg_fsm.h > +++ b/drivers/usb/chipidea/otg_fsm.h > @@ -62,7 +62,7 @@ > /* SSEND time before SRP */ > #define TB_SSEND_SRP (1500) /* minimum 1.5 sec, section:5.1.2 */ > > -#ifdef CONFIG_USB_OTG_FSM > +#if IS_ENABLED(CONFIG_USB_OTG_FSM) Does it mean if the configuration is tristate, it must use IS_ENABLED? Peter > > int ci_hdrc_otg_fsm_init(struct ci_hdrc *ci); > int ci_otg_fsm_work(struct ci_hdrc *ci); > diff --git a/fs/logfs/logfs.h b/fs/logfs/logfs.h > index 5f09376..23f961a 100644 > --- a/fs/logfs/logfs.h > +++ b/fs/logfs/logfs.h > @@ -485,7 +485,7 @@ static inline int logfs_get_sb_bdev(struct logfs_super *s, > #endif > > /* dev_mtd.c */ > -#ifdef CONFIG_MTD > +#if IS_ENABLED(CONFIG_MTD) > int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr); > #else > static inline int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr) > diff --git a/scripts/Makefile.build b/scripts/Makefile.build > index 01df30a..2c47f9c 100644 > --- a/scripts/Makefile.build > +++ b/scripts/Makefile.build > @@ -372,10 +372,14 @@ endif > # -objs := > # or > # -y := > +# or > +# -m := > +# The -m syntax only works if is a module > link_multi_deps = \ > $(filter $(addprefix $(obj)/, \ > $($(subst $(obj)/,,$(@:.o=-objs))) \ > -$($(subst $(obj)/,,$(@:.o=-y)))), $^) > +$($(subst $(obj)/,,$(@:.o=-y))) \ > +$($(subst $(obj)/,,$(@:.o=-m)))), $^) > > quiet_cmd_link_multi-y = LD $@ > cmd_link_multi-y = $(LD) $(ld_flags) -r -o $@ $(link_multi_deps) $(cmd_secanalysis) > @@ -390,7 +394,7 @@ $(call multi_depend, $(multi-used-y), .o, -objs -y) > $(multi-used-m): FORCE > $(call if_changed,link_multi-m) > @{ echo $(@:.o=.ko); echo $(link_multi_deps); } > $(MODVERDIR)/$(@F:.o=.mod) > -$(call multi_depend, $(multi-used-m), .o, -objs -y) > +$(call multi_depend, $(multi-used-m), .o, -objs -y -m) > > targets += $(multi-used-y) $(multi-used-m) > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 79e8661..e18957b 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -48,7 +48,7 @@ subdir-ym := $(sort $(subdir-y) $(subdir-m)) > > # if $(foo-objs) exists, foo.o is a composite object > multi-used-y := $(sort $(foreach m,$(obj-y), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))), $(m)))) > -multi-used-m := $(sort $(foreach m,$(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))), $(m)))) > +multi-used-m := $(sort $(foreach m,$(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m))), $(m)))) > multi-used := $(multi-used-y) $(multi-used-m) > single-used-m := $(sort $(filter-out $(multi-used-m),$(obj-m))) > > @@ -67,7 +67,7 @@ obj-dirs := $(dir $(multi-objs) $(obj-y)) > > # Replace multi-part objects by their individual parts, look at local dir only > real-objs-y := $(foreach m, $(filter-out $(subdir-obj-y), $(obj-y)), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))),$($(m:.o=-objs)) $($(m:.o=-y)),$(m))) $(extra-y) > -real-objs-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))),$($(m:.o=-objs)) $($(m:.o=-y)),$(m))) > +real-objs-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m))),$($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m)),$(m))) > > # Add subdir path > > -- > 1.9.2 > -- Best Regards, Peter Chen