Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966177AbbLPQ6a (ORCPT ); Wed, 16 Dec 2015 11:58:30 -0500 Received: from foss.arm.com ([217.140.101.70]:56777 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965678AbbLPQ60 (ORCPT ); Wed, 16 Dec 2015 11:58:26 -0500 Date: Wed, 16 Dec 2015 16:58:20 +0000 From: Catalin Marinas To: Arnd Bergmann Cc: Yury Norov , pinskia@gmail.com, Prasun.Kapoor@caviumnetworks.com, Nathan_Lynch@mentor.com, linux-kernel@vger.kernel.org, agraf@suse.de, Andrew Pinski , klimov.linux@gmail.com, Andrew Pinski , broonie@kernel.org, jan.dakinevich@gmail.com, joseph@codesourcery.com, ddaney.cavm@gmail.com, schwab@suse.de, bamvor.zhangjian@huawei.com, philipp.tomsich@theobroma-systems.com, linux-arm-kernel@lists.infradead.org, christoph.muellner@theobroma-systems.com Subject: Re: [PATCH v6 09/20] arm64:ilp32: share HWCAP between LP64 and ILP32 Message-ID: <20151216165819.GD27051@e104818-lin.cambridge.arm.com> References: <1450215766-14765-1-git-send-email-ynorov@caviumnetworks.com> <1450215766-14765-10-git-send-email-ynorov@caviumnetworks.com> <2049962.OV4jWs7vGi@wuerfel> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2049962.OV4jWs7vGi@wuerfel> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1269 Lines: 34 On Wed, Dec 16, 2015 at 04:54:34PM +0100, Arnd Bergmann wrote: > On Wednesday 16 December 2015 00:42:35 Yury Norov wrote: > > > > #ifdef CONFIG_COMPAT > > -#define COMPAT_ELF_HWCAP (compat_elf_hwcap) > > -#define COMPAT_ELF_HWCAP2 (compat_elf_hwcap2) > > extern unsigned int compat_elf_hwcap, compat_elf_hwcap2; > > +#define COMPAT_ELF_HWCAP \ > > + (is_a32_compat_task() \ > > + ? compat_elf_hwcap \ > > + : elf_hwcap) > > + > > +#define COMPAT_ELF_HWCAP2 \ > > + (is_a32_compat_task() \ > > + ? compat_elf_hwcap2 \ > > + : 0) > > + > > #endif > > I'm trying to understand how this is used. Are you compiling > fs/compat_binfmt_elf.c twice to handle both 32-bit ELF types? It's the same compat_binfmt_elf.c which handles all 32-bit ELF types, i.e. AArch32 and A64/ILP32. The above macros are not constants, so they are evaluated every time a new ELF file is loaded. We do a similar trick with COMPAT_SET_PERSONALITY in patch 11. -- Catalin -- 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/