Messages in this thread | | | From | Alexander Lobakin <> | Subject | Re: [PATCH v9 01/15] modpost: fix removing numeric suffixes | Date | Mon, 27 Dec 2021 19:22:46 +0100 |
| |
From: Borislav Petkov <bp@alien8.de> Date: Thu, 23 Dec 2021 17:19:06 +0100
> On Thu, Dec 23, 2021 at 01:21:55AM +0100, Alexander Lobakin wrote: > > For now, that condition from remove_dot(): > > > > if (m && (s[n + m] == '.' || s[n + m] == 0)) > > > > which was designed to test if it's a dot or a \0 after the suffix > > is never satisfied. > > This is due to that s[n + m] always points to the last digit of a > > numeric suffix, not on the symbol next to it: > > > > param_set_uint.0, s[n + m] is '0', s[n + m + 1] is '\0' > > > > So it's off by one and was like that since 2014. > > What's the relevance of this? Looking at > > 7d02b490e93c ("Kbuild, lto: Drop .number postfixes in modpost") > > what you're fixing here is something LTO-related. How do you trigger > this?
It's just a couple lines below. I trigger this using `-z uniq-symbol` which uses numeric suffixes for globals as well.
> > For a Cc:stable patch, I'm missing a lot of context.
It fixes a commit dated 2014, thus Cc:stable. Although the remove_dot() might've been introduced for neverlanded GCC LTO, but in fact numeric suffixes are used a lot by the toolchains in regular builds as well. Just not for globals, that's why it's "well hidden".
> > > `-z uniq-symbol` linker flag which we are planning to use to > ^^ > > Who's "we"?
I thought it's a common saying in commit messages, isn't it?
> > > simplify livepatching brings numeric suffixes back, fix this. > > Otherwise: > > > > ERROR: modpost: "param_set_uint.0" [vmlinux] is a static EXPORT_SYMBOL > > > > Fixes: fcd38ed0ff26 ("scripts: modpost: fix compilation warning") > > Cc: stable@vger.kernel.org # 3.17+ > > Signed-off-by: Alexander Lobakin <alexandr.lobakin@intel.com> > > ... > > -- > Regards/Gruss, > Boris. > > https://people.kernel.org/tglx/notes-about-netiquette
Thanks, Al
| |