Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756952AbcK2Nvn (ORCPT ); Tue, 29 Nov 2016 08:51:43 -0500 Received: from tartarus.angband.pl ([89.206.35.136]:47565 "EHLO tartarus.angband.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755083AbcK2Nvb (ORCPT ); Tue, 29 Nov 2016 08:51:31 -0500 From: Adam Borowski To: Linus Torvalds , Ben Hutchings , Nicholas Piggin , "linux-arch@vger.kernel.org" , Linux Kbuild mailing list , Linux Kernel Mailing List , Greg Kroah-Hartman , Michal Marek , Arnd Bergmann , Ingo Molnar , Debian kernel maintainers Cc: Adam Borowski Date: Tue, 29 Nov 2016 14:51:17 +0100 Message-Id: <20161129135118.24696-1-kilobyte@angband.pl> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20161129131922.GA31466@angband.pl> References: <20161129131922.GA31466@angband.pl> X-SA-Exim-Connect-IP: 2001:6a0:118::6 X-SA-Exim-Mail-From: kilobyte@angband.pl Subject: [PATCH] x86/kbuild: enable modversions for symbols exported from asm X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000) X-SA-Exim-Scanned: Yes (on tartarus.angband.pl) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2475 Lines: 78 Commit 4efca4ed ("kbuild: modversions for EXPORT_SYMBOL() for asm") adds modversion support for symbols exported from asm files. Architectures must include C-style declarations for those symbols in asm/asm-prototypes.h in order for them to be versioned. Add these declarations for x86, and an architecture-independent file that can be used for common symbols. User impact: kernels may fail to load modules at all when CONFIG_MODVERSIONS=y. Signed-off-by: Adam Borowski Tested-by: Kalle Valo Acked-by: Nicholas Piggin Tested-by: Peter Wu Tested-by: Oliver Hartkopp --- > So somebody send me a minimal patch that is > > (a) tested By many people. > (b) explains it The actual logic is in 4efca4ed0. It wants C prototypes defined in asm/asm-prototypes.h that lists symbols defined in assembly -- genksyms knows only how to read C code. > (c) obvious To be honest I don't quite understand what's the real gain over code that was removed by 784d5699eddc, this mostly brings the symbols back. But that's for people wiser than me to explain. > and I'll happily re-enable modversions. The powerpc counterpart to this patch is in mainline as 9e5f688, although a file by that name already existed. As for arm, it looks like it was handled the other way by 8478132. diff --git a/arch/x86/include/asm/asm-prototypes.h b/arch/x86/include/asm/asm-prototypes.h new file mode 100644 index 0000000..ae87224 --- /dev/null +++ b/arch/x86/include/asm/asm-prototypes.h @@ -0,0 +1,12 @@ +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include diff --git a/include/asm-generic/asm-prototypes.h b/include/asm-generic/asm-prototypes.h new file mode 100644 index 0000000..df13637 --- /dev/null +++ b/include/asm-generic/asm-prototypes.h @@ -0,0 +1,7 @@ +#include +extern void *__memset(void *, int, __kernel_size_t); +extern void *__memcpy(void *, const void *, __kernel_size_t); +extern void *__memmove(void *, const void *, __kernel_size_t); +extern void *memset(void *, int, __kernel_size_t); +extern void *memcpy(void *, const void *, __kernel_size_t); +extern void *memmove(void *, const void *, __kernel_size_t); -- 2.10.2