From patchwork Tue Nov 29 13:51:17 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adam Borowski X-Patchwork-Id: 9452131 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id D140060710 for ; Tue, 29 Nov 2016 13:51:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C1C4228339 for ; Tue, 29 Nov 2016 13:51:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B68322833B; Tue, 29 Nov 2016 13:51:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E4CEA28339 for ; Tue, 29 Nov 2016 13:51:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755262AbcK2Nvd (ORCPT ); Tue, 29 Nov 2016 08:51:33 -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 Received: from umbar.angband.pl ([2001:6a0:118::6]) by tartarus.angband.pl with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cBiob-0003Bb-S2; Tue, 29 Nov 2016 14:51:24 +0100 Received: from kilobyte by umbar.angband.pl with local (Exim 4.88) (envelope-from ) id 1cBiob-0006Sj-DK; Tue, 29 Nov 2016 14:51:21 +0100 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-kbuild-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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);