Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753296AbeAFLuz (ORCPT + 1 other); Sat, 6 Jan 2018 06:50:55 -0500 Received: from smtp-fw-6002.amazon.com ([52.95.49.90]:1108 "EHLO smtp-fw-6002.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752934AbeAFLuH (ORCPT ); Sat, 6 Jan 2018 06:50:07 -0500 X-IronPort-AV: E=Sophos;i="5.46,321,1511827200"; d="scan'208";a="325770265" From: David Woodhouse To: Andi Kleen Cc: Paul Turner , LKML , Linus Torvalds , Greg Kroah-Hartman , Tim Chen , Dave Hansen , tglx@linutronix.de, Kees Cook , Rik van Riel , Peter Zijlstra , Andy Lutomirski , Jiri Kosina , gnomes@lxorguk.ukuu.org.uk Subject: [PATCH v5 12/12] retpoline/modpost: Quieten MODVERSION retpoline build Date: Sat, 6 Jan 2018 11:49:34 +0000 Message-Id: <1515239374-23361-13-git-send-email-dwmw@amazon.co.uk> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1515239374-23361-1-git-send-email-dwmw@amazon.co.uk> References: <1515239374-23361-1-git-send-email-dwmw@amazon.co.uk> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: From: Andi Kleen The internal retpoline thunks used by the compiler contain a dot. They have to be exported, but modversions cannot handle them it because they don't have a prototype due to the C incompatible name (and it doesn't support asm("...")) This leads to lots of warnings from modpost with a retpoline build with MODVERSIONS enabled. The actual symbols load fine, they just don't get versioned. That's not a problem here because we don't expect them to change ever. Quieten the respective warning messages in modpost for any symbols containing a dot. Signed-off-by: Andi Kleen Signed-off-by: David Woodhouse --- scripts/mod/modpost.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 98314b4..e564da2 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -693,7 +693,9 @@ static void handle_modversions(struct module *mod, struct elf_info *info, #endif if (is_crc) { const char *e = is_vmlinux(mod->name) ?"":".ko"; - warn("EXPORT symbol \"%s\" [%s%s] version generation failed, symbol will not be versioned.\n", symname + strlen(CRC_PFX), mod->name, e); + const char *name = symname + strlen(CRC_PFX); + if (!strchr(name, '.')) + warn("EXPORT symbol \"%s\" [%s%s] version generation failed, symbol will not be versioned.\n", name, mod->name, e); } mod->unres = alloc_symbol(symname, ELF_ST_BIND(sym->st_info) == STB_WEAK, @@ -2212,7 +2214,7 @@ static int add_versions(struct buffer *b, struct module *mod) for (s = mod->unres; s; s = s->next) { if (!s->module) continue; - if (!s->crc_valid) { + if (!s->crc_valid && !strchr(s->name, '.')) { warn("\"%s\" [%s.ko] has no CRC!\n", s->name, mod->name); continue; -- 2.7.4