Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755049Ab1EPUFg (ORCPT ); Mon, 16 May 2011 16:05:36 -0400 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 User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; cs-CZ; rv:1.9.2.14) Gecko/20110221 SUSE/3.1.8 Thunderbird/3.1.8 MIME-Version: 1.0 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 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-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1439 Lines: 32 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/