Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753627AbcKTTNQ (ORCPT ); Sun, 20 Nov 2016 14:13:16 -0500 Received: from pandora.armlinux.org.uk ([78.32.30.218]:43066 "EHLO pandora.armlinux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752857AbcKTTNN (ORCPT ); Sun, 20 Nov 2016 14:13:13 -0500 Date: Sun, 20 Nov 2016 19:12:57 +0000 From: Russell King - ARM Linux To: Linus Torvalds Cc: Nicholas Piggin , Arnd Bergmann , Michal Marek , Adam Borowski , Omar Sandoval , Alexey Dobriyan , Stephen Rothwell , Al Viro , Linux Kbuild mailing list , Linux Kernel Mailing List , "linux-arch@vger.kernel.org" Subject: Re: [PATCH 1/2] kbuild: provide include/asm/asm-prototypes.h for ARM Message-ID: <20161120191257.GX1041@n2100.armlinux.org.uk> References: <20161017065131.GA27863@angband.pl> <20161020150814.42951f61@roar.ozlabs.ibm.com> <3446653.W8FbGAKSeQ@wuerfel> <14534456.e6dv16VA3R@wuerfel> <20161025193200.1f4d9e24@roar.ozlabs.ibm.com> <20161120132127.GU1041@n2100.armlinux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: 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: 2109 Lines: 53 On Sun, Nov 20, 2016 at 10:32:50AM -0800, Linus Torvalds wrote: > On Sun, Nov 20, 2016 at 5:21 AM, Russell King - ARM Linux > wrote: > > On Tue, Oct 25, 2016 at 07:32:00PM +1100, Nicholas Piggin wrote: > >> > >> Michal, what's your thoughts? If you merge my patch 2/2 and skip 1/2, it > >> should not give any new build warnings or errors, so then arch patches can > >> go via arch trees. 1/2 could go in after everyone is up to date. > > > > So what's the conclusion on this? I've just had a failure due to > > CONFIG_TRIM_UNUSED_KSYMS reported on ARM, and it looks like (at > > least some of) patch 1 could resolve it. > > Hmm. I've got > > cc6acc11cad1 kbuild: be more careful about matching preprocessed asm > ___EXPORT_SYMBOL > 4efca4ed05cb kbuild: modversions for EXPORT_SYMBOL() for asm > > in my tree. Is that sufficient, or do we still have issues? Hmm, those seem to have gone in during the last week, so I haven't tested it yet (build running, but it'll take a while). However, I don't think they'll solve _this_ problem. Some of the issue here is that we use a mixture of assembly macros and preprocessor for the ARM bitops - the ARM bitops are created with an assembly macro which contains some pre-processor expanded macros (eg, EXPORT_SYMBOL()). This means that the actual symbol being exported is not known to the preprocessor, so doing the "__is_defined(__KSYM_##sym)" inside "EXPORT_SYMBOL(\name)" becomes "__is_defined(__KSYM_\name)" to the preprocessor. As "__KSYM_\name" is never defined, it always comes out as zero, hence we always use __cond_export_sym_0, which omits the symbol export from the assembly macro definition: .macro bitop, name, instr .globl \name ; .align 0 ; \name: ... .type \name, %function; .size \name, .-\name .endm In other words, using preprocessor macros inside an assembly macro may not work as expected, and now leads to config-specific failures. -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net.