[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20191004095748.223119-1-maennich@google.com>
Date: Fri, 4 Oct 2019 10:57:48 +0100
From: Matthias Maennich <maennich@...gle.com>
To: linux-kernel@...r.kernel.org
Cc: kernel-team@...roid.com, maennich@...gle.com,
Stefan Wahren <stefan.wahren@...e.com>,
Masahiro Yamada <yamada.masahiro@...ionext.com>,
Lucas De Marchi <lucas.de.marchi@...il.com>,
Jessica Yu <jeyu@...nel.org>,
Martijn Coenen <maco@...roid.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-modules@...r.kernel.org
Subject: [PATCH] depmod: create and use System.map.no_namespaces
depmod in its current version is not aware of symbol namespace in
ksymtab entries introduced with 8651ec01daed ("module: add support for
symbol namespaces."). They have the form
__ksymtab_NAMESPACE.symbol_name
A fix for kmod's depmod has been proposed [1]. In order to support older
versions of depmod as well, create a System.map.no_namespaces during
scripts/depmod.sh that has the pre-namespaces format. That way users do
not immediately upgrade the userspace tool.
[1] https://lore.kernel.org/linux-modules/20191004094136.166621-1-maennich@google.com/
Reported-by: Stefan Wahren <stefan.wahren@...e.com>
Fixes: 8651ec01daed ("module: add support for symbol namespaces.")
Cc: Masahiro Yamada <yamada.masahiro@...ionext.com>
Cc: Lucas De Marchi <lucas.de.marchi@...il.com>
Cc: Jessica Yu <jeyu@...nel.org>
Cc: Martijn Coenen <maco@...roid.com>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: linux-modules@...r.kernel.org
Signed-off-by: Matthias Maennich <maennich@...gle.com>
---
Please note this depends on the new ksymtab entry format proposed in
https://lore.kernel.org/lkml/20191003075826.7478-2-yamada.masahiro@socionext.com/
That is likely to be merged soon as well as it fixes problems in 5.4-rc*, hence
this patch depends on it.
Cheers,
Matthias
.gitignore | 1 +
scripts/depmod.sh | 8 +++++++-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index 70580bdd352c..5ed58a7cb433 100644
--- a/.gitignore
+++ b/.gitignore
@@ -59,6 +59,7 @@ modules.order
/vmlinux-gdb.py
/vmlinuz
/System.map
+/System.map.no_namespaces
/Module.markers
/modules.builtin.modinfo
diff --git a/scripts/depmod.sh b/scripts/depmod.sh
index e083bcae343f..602e1af072c7 100755
--- a/scripts/depmod.sh
+++ b/scripts/depmod.sh
@@ -39,7 +39,13 @@ if $depmod_hack_needed; then
KERNELRELEASE=99.98.$KERNELRELEASE
fi
-set -- -ae -F System.map
+# Older versions of depmod do not support symbol namespaces in ksymtab entries,
+# hence create an alternative System.map with namespace patched out to use for
+# depmod. I.e. transform entries as follows:
+# __ksymtab_NAMESPACE.symbol_name -> __ksymtab_symbol_name
+sed 's/__ksymtab_.*\./__ksymtab_/' System.map > System.map.no_namespaces
+
+set -- -ae -F System.map.no_namespaces
if test -n "$INSTALL_MOD_PATH"; then
set -- "$@" -b "$INSTALL_MOD_PATH"
fi
--
2.23.0.581.g78d2f28ef7-goog
Powered by blists - more mailing lists