From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from cantor.suse.de ([195.135.220.2]:39323 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751470Ab1EPUFf (ORCPT ); Mon, 16 May 2011 16:05:35 -0400 Message-ID: <4DD1838D.7030305@suse.cz> Date: Mon, 16 May 2011 22:05:33 +0200 From: Michal Marek MIME-Version: 1.0 Subject: Re: [PATCH v2] kconfig: autogenerated config_is_xxx macro References: <1304658229-30820-1-git-send-email-plagnioj@jcrosoft.com> <20110507015041.GA21017@game.jcrosoft.org> <4DC7AB57.9050002@suse.cz> <20110513080909.GO18952@game.jcrosoft.org> <32557.1305572616@localhost> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kbuild-owner@vger.kernel.org List-ID: To: Arnaud Lacombe Cc: Valdis.Kletnieks@vt.edu, Jean-Christophe PLAGNIOL-VILLARD , linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, x86@kernel.org, Ingo Molnar On 16.5.2011 21:38, Arnaud Lacombe wrote: > On Mon, May 16, 2011 at 3:03 PM, wrote: >> #if defined(CONFIG_NO_HZ) && defined(CONFIG_SMP) >> if (!pinned && get_sysctl_timer_migration() && idle_cpu(cpu)) >> cpu = get_nohz_timer_target(); >> #endif >> new_base = per_cpu(tvec_bases, cpu); >> >> If you convert this to an if statement, will it still compile? Which will >> happen first, dead code elimination, or the warning that get_nohz_timer_target() >> is an implicit declaration because the definition in the .h file is also >> guarded by #ifdef CONFIG_NO_HZ? >> > I already exposed this case, but let's prove it: > [proven] Yes, probably a majority #ifdef CONFIG_FOO construct cannot be converted to C if statements. And architecture specific code can only be built on that architecture. But there are places where it is possible to let the compiler eliminate the if(0) and at least Ingo likes it for x86, so I'll merge it. The more build coverage the better. I figure that this feature is not wanted outside of the kernel build, though. So what about an option to 'conf' that controls whether these macros will be generated? Michal