On Mon, Jul 28, 2025 at 10:58 PM Alexander Gordeev
wrote:
>
> On Thu, Jul 24, 2025 at 03:49:40PM +0200, Alexey Gladkov wrote:
>
> Hi Alexey, Masahiro,
>
> > From: Masahiro Yamada
> >
> > Keep the .modinfo section during linking, but strip it from the final
&g
On Tue, Jul 29, 2025 at 12:18 AM Alexey Gladkov wrote:
>
> On Mon, Jul 28, 2025 at 04:01:09PM +0200, Heiko Carstens wrote:
> > On Sat, Jul 26, 2025 at 07:59:16PM +0900, Masahiro Yamada wrote:
> > > On Thu, Jul 24, 2025 at 10:50 PM Alexey Gladkov wrote:
> > > >
&
/* Debugging sections. */
> - STABS_DEBUG
> - DWARF_DEBUG
> - ELF_DETAILS
> -
> /*
> * Make sure that the .got.plt is either completely empty or it
> * contains only the three reserved double words.
> --
> 2.50.1
>
--
Best Regards
Masahiro Yamada
le is built separately.
> >
> > To fix this it is necessary to add the generated by modpost modalias to
> > modules.builtin.modinfo.
> >
> > Fortunately modpost already generates .vmlinux.export.c for exported
> > symbols. It
> > is possible to use this
rder.
>
> The series is marked as v2 to distinguish it from earlier versions
> where the changes were posted individually.
>
Both applied to linux-kbuild.
Thanks!
--
Best Regards
Masahiro Yamada
On Mon, Jun 30, 2025 at 10:46 PM Giuliano Procida wrote:
>
> On Mon, 30 Jun 2025 at 14:24, Masahiro Yamada wrote:
> >
> > On Mon, Jun 30, 2025 at 7:05 PM Giuliano Procida
> > wrote:
> > >
> > > Hi.
> > >
> > > On Sun, 29 Jun 2025 at
On Mon, Jun 30, 2025 at 7:05 PM Giuliano Procida wrote:
>
> Hi.
>
> On Sun, 29 Jun 2025 at 18:51, Masahiro Yamada wrote:
> >
> > On Wed, Jun 25, 2025 at 6:52 PM Giuliano Procida
> > wrote:
> > >
> > > When writing symtypes information, we iterat
xpansion_name);
> +
> + for (i = 0; i < count; ++i) {
> + checkp(fputs(es[i]->name, file));
> checkp(fputs(" ", file));
> - type_list_write(&e->expanded, file);
> + type_list_write(&es[i]->expanded, file);
> checkp(fputs("\n", file));
> }
> +
> + free(es);
> }
>
> static void type_map_free(void)
> --
> 2.50.0.714.g196bf9f422-goog
>
>
--
Best Regards
Masahiro Yamada
On Fri, Jun 20, 2025 at 1:01 AM Jakub Kicinski wrote:
>
> On Sun, 1 Jun 2025 22:31:29 +0900 Masahiro Yamada wrote:
> > The problem was described in commit 5b20755b7780 ("init: move THIS_MODULE
> > from to ").
> >
> > To summarize it again here: is includ
On Fri, Jun 6, 2025 at 2:10 PM Masahiro Yamada wrote:
>
> On Wed, Jun 4, 2025 at 8:26 PM Alexey Gladkov wrote:
> >
> > On Tue, Jun 03, 2025 at 01:18:25AM +0900, Masahiro Yamada wrote:
> > > > > > Before these patches this was not a problem as non-unique
>
On Tue, Jun 3, 2025 at 3:44 AM Alexey Gladkov wrote:
>
> On Tue, Jun 03, 2025 at 03:00:07AM +0900, Masahiro Yamada wrote:
> > On Mon, Jun 2, 2025 at 5:24 PM Alexey Gladkov wrote:
> > >
> > > On Mon, Jun 02, 2025 at 04:52:36PM +0900, Masahiro Yamada wrote:
> >
On Wed, Jun 4, 2025 at 8:26 PM Alexey Gladkov wrote:
>
> On Tue, Jun 03, 2025 at 01:18:25AM +0900, Masahiro Yamada wrote:
> > > > > Before these patches this was not a problem as non-unique characters
> > > > > are
> > > > > in separate
On Wed, Jun 4, 2025 at 5:50 PM Petr Pavlu wrote:
>
> On 6/2/25 12:55 PM, Masahiro Yamada wrote:
> > The __mod_device_table__* symbols are only parsed by modpost to generate
> > MODULE_ALIAS() entries from MODULE_DEVICE_TABLE().
> >
> > Therefore, these symbols do n
On Mon, Jun 2, 2025 at 11:04 PM Alexey Gladkov wrote:
>
> On Mon, Jun 02, 2025 at 07:58:41PM +0900, Masahiro Yamada wrote:
> > On Mon, Jun 2, 2025 at 5:07 PM Alexey Gladkov wrote:
> > >
> > > On Mon, Jun 02, 2025 at 04:45:36PM +0900, Masahiro Yamada wrote:
> >
On Mon, Jun 2, 2025 at 10:06 PM Masahiro Yamada wrote:
>
> In the old days, KBUILD_MODNAME was passed to C without double quotes,
> and then handled by __stringify() on the C side. This was the reason
> why KBUILD_MODNAME was mangled: characters such as commas (,) and
> hyph
On Mon, Jun 2, 2025 at 5:24 PM Alexey Gladkov wrote:
>
> On Mon, Jun 02, 2025 at 04:52:36PM +0900, Masahiro Yamada wrote:
> > On Tue, May 27, 2025 at 6:08 PM Alexey Gladkov wrote:
> > >
> > > In order to avoid symbol conflicts if they appear in the same bin
converts hyphens to underscores, and passes "foo_bar" to the
delete_module syscall.
Therefore, the mod_strncmp() needs to remain in find_module_all(),
otherwise, we cannot unload modules.
Signed-off-by: Masahiro Yamada
---
kernel/module/main.c | 8 ++--
scripts/Makefile.lib | 4 ++--
fine with parsing multiple symbols with the
same name.
Signed-off-by: Masahiro Yamada
---
include/linux/module.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/module.h b/include/linux/module.h
index 8050f77c3b64..92e1420fccdf 100644
--- a/include/linux
On Mon, Jun 2, 2025 at 5:07 PM Alexey Gladkov wrote:
>
> On Mon, Jun 02, 2025 at 04:45:36PM +0900, Masahiro Yamada wrote:
> > On Tue, May 27, 2025 at 6:08 PM Alexey Gladkov wrote:
> > >
> > > In order to avoid symbol conflicts if they appear in the same bin
*/
This format relies on module-name mangling, but
I hope we will be able to stop doing it some day.
Can we come up with a different idea
in case contains hyphens?
--
Best Regards
Masahiro Yamada
gt; +
> +#define __MODULE_INFO(tag, name, info) \
> + __MODULE_INFO_WITH_PREFIX(__MODULE_INFO_PREFIX, tag, name, info)
>
> #define __MODULE_PARM_TYPE(name, _type)
> \
> __MODULE_INFO(parmtype, name##type, #name ":" _type)
> --
> 2.49.0
>
--
Best Regards
Masahiro Yamada
return;
> - type = symname + strlen(prefix);
> +
> + modname = strstr(symname, "__kmod_");
> + if (!modname)
> + return;
> + modname += strlen("__kmod_");
> +
> + type = strstr(modname, "__");
> + if (!type)
> + return;
> + modnamelen = type - modname;
> + type += strlen("__");
>
> name = strstr(type, "__");
> if (!name)
> --
> 2.49.0
>
--
Best Regards
Masahiro Yamada
az"
Apply the same logic for kernel space as well.
Fixes: 092a4f5985f2 ("module: Add module specific symbol namespace support")
Signed-off-by: Masahiro Yamada
---
kernel/module/main.c | 37 -
scripts/mod/modpost.c | 35 ++--
On Wed, May 21, 2025 at 9:08 PM Masahiro Yamada wrote:
>
> I think the patch subject is stale.
>
> MODULE_ was the prefix in the previous v2 series.
>
> Now, the prefix part is module:
I will apply with the subject fixed, as "MODULE_" prefix does not make
sense any
On Sat, May 17, 2025 at 4:19 PM Masahiro Yamada wrote:
>
> On Fri, May 2, 2025 at 11:26 PM Peter Zijlstra wrote:
> >
> > Designate the "module:${modname}" symbol namespace to mean: 'only
> > export to the named module'.
> >
> > Notably
if (sep[-1] == '*') {
> + len--;
> + glob = true;
> + }
> +
> + if (*sep)
> + sep++;
> +
> + if (strncmp(namespace, modname, len) == 0 && (glob || len ==
> modlen))
> + return true;
> + }
> +
> + return false;
> }
>
> static void check_exports(struct module *mod)
>
>
--
Best Regards
Masahiro Yamada
is wrong because "make nsdeps" would
incorrectly add MOULDE_IMPORT_NS().
When MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y,
EXPORT_SYMBOL_NS(foo, "module:bar") can be used by
any module or not.
That is not what we have decided yet.
At least, MODULE_IMPORT_NS("module:bar");
does not solve the issue at all.
--
Best Regards
Masahiro Yamada
;&
> + !strcmp(namespace + strlen(prefix), modname);
> +}
> +
> static void check_exports(struct module *mod)
> {
> struct symbol *s, *exp;
> @@ -1709,7 +1717,8 @@ static void check_exports(struct module
>
> basename = get_basename(mod->name);
>
> - if (!contains_namespace(&mod->imported_namespaces,
> exp->namespace)) {
> + if (!verify_module_namespace(exp->namespace, basename) &&
> + !contains_namespace(&mod->imported_namespaces,
> exp->namespace)) {
> modpost_log(!allow_missing_ns_imports,
> "module %s uses symbol %s from namespace
> %s, but does not import it.\n",
> basename, exp->name, exp->namespace);
>
>
--
Best Regards
Masahiro Yamada
you. I'd like to take it
> for v6.16-rc1.
The first patch was applied to linux-kbuild.
I think I can take it.
Peter did not use the common API for glob matching.
I will check this part.
--
Best Regards
Masahiro Yamada
> -namespace);
> - }
>
> if (!get_modinfo(&info, "description"))
> warn("missing MODULE_DESCRIPTION() in %s\n", modname);
>
>
--
Best Regards
Masahiro Yamada
ipts/gendwarfksyms/examples/kabi_ex.h | 101 +++-
> scripts/gendwarfksyms/gendwarfksyms.h| 2 +
> scripts/gendwarfksyms/kabi.c | 143 ++-
> scripts/gendwarfksyms/types.c| 140 +++---
> 8 files changed, 470 insertions(+), 99 deletions(-)
>
>
> base-commit: 92a09c47464d040866cf2b4cd052bc60555185fb
> --
> 2.49.0.987.g0cc8ee98dc-goog
>
>
--
Best Regards
Masahiro Yamada
--
> scripts/mod/file2alias.c | 5 +
> scripts/mod/modpost.c| 35 +++
> scripts/mod/modpost.h| 15 ++-
> 4 files changed, 46 insertions(+), 13 deletions(-)
I can implement this with less code change.
I attached my patch.
--
Best Regards
=
>
> Perhaps the most common ABI compatible change is adding a member to a
> @@ -237,7 +321,7 @@ natural method. This section describes gendwarfksyms
> support for using
> reserved space in data structures and hiding members that don't change
> the ABI when calculating symbol versions.
>
> -4.3.1. Reserving space and replacing members
> +4.2.1. Reserving space and replacing members
>
Hmm, renumbering is annoying.
Maybe, better to stop managing section numbers?
For example, see this commit
1a4c1c9df72ec266f94631edc59f9f2a9dc5aa8c
--
Best Regards
Masahiro Yamada
"; \
> >> -echo >&2 "*** The source tree is not clean, please run
> >> 'make$(if $(findstring command line, $(origin ARCH)), ARCH=$(ARCH))
> >> mrproper'"; \
> >> +echo >&2 "*** The source tree is not clean, please run 'make
> >> ARCH=$(shell grep UTS_MACHINE $(srctree)/include/generated/compile.h | cut
> >> -d '"' -f 2) mrproper'"; \
> >
> > Please 'grep' option '-s'.
> >
> > There are some (rare) occassions, when there is no
> > include/generated/compile.h
> > but still the source tree will be considered to be dirty:
>
> I considered adding a check for not finding include/generated/compile.h
> and figured if include/config is found we are probably safe.
>
> I will fix that.
Does this fix your issue?
https://patchwork.kernel.org/project/linux-kbuild/patch/20250507074936.486648-1-masahi...@kernel.org/
--
Best Regards
Masahiro Yamada
ee is not clean, please run 'make
> >> ARCH=$(shell grep UTS_MACHINE $(srctree)/include/generated/compile.h | cut
> >> -d '"' -f 2) mrproper'"; \
> >
> > Please 'grep' option '-s'.
> >
> > There are some (rare) occassions, when there is no
> > include/generated/compile.h
> > but still the source tree will be considered to be dirty:
>
> I considered adding a check for not finding include/generated/compile.h
> and figured if include/config is found we are probably safe.
>
> I will fix that.
I do not think this patch makes sense.
Kbuild correctly detects that "the source tree is not clean enough
to build with ARCH=um", and displays the following message:
***
*** The source tree is not clean, please run 'make ARCH=um mrproper'
*** in /linux/linux_srcdir
***
This is absolutely correct.
The real issue is that "make ARCH=um mrproper"
does not properly clean the source tree.
--
Best Regards
Masahiro Yamada
129
> help
> Calculate symbol versions from DWARF debugging information using
> gendwarfksyms. Requires DEBUG_INFO to be enabled.
>
> base-commit: 0af2f6be1b4281385b618cb86ad946eded089ac8
> --
> 2.49.0.504.g3bcea36a83-goog
>
--
Best Regards
Masahiro Yamada
On Sun, May 4, 2025 at 8:23 AM Randy Dunlap wrote:
>
>
>
> On 5/3/25 9:13 AM, Masahiro Yamada wrote:
> > On Sun, May 4, 2025 at 1:01 AM Masahiro Yamada wrote:
> >>
> >> On Sat, Apr 26, 2025 at 12:08 PM Randy Dunlap
> >> wrote:
> >>>
&g
On Sun, May 4, 2025 at 1:01 AM Masahiro Yamada wrote:
>
> On Sat, Apr 26, 2025 at 12:08 PM Randy Dunlap wrote:
> >
> > Since openrisc does not support PERF_EVENTS, omit the HDRTEST of
> > bpf_perf_event.h for arch/openrisc/.
> >
> > Fixes a build error:
>
e
> type
Where can I get openrisc compiler that enables CONFIG_CC_CAN_LINK?
> Signed-off-by: Randy Dunlap
> Cc: Masahiro Yamada
> Cc: Jonas Bonn
> Cc: Stefan Kristiansson
> Cc: Stafford Horne
> Cc: linux-openr...@vger.kernel.org
> Cc: linux-kbu...@vger.kernel.org
rify_module_namespace':
../kernel/module/main.c:1091:17: error: implicit declaration of
function 'strsmp'; did you mean 'strsep'?
[-Wimplicit-function-declaration]
1091 |!strsmp(namespace + strlen(prefix), modname);
| ^~
| strsep
--
Best Regards
Masahiro Yamada
BTF || PAHOLE_VERSION > 129
> help
> Calculate symbol versions from DWARF debugging information using
> gendwarfksyms. Requires DEBUG_INFO to be enabled.
>
> base-commit: 4701f33a10702d5fc577c32434eb62adde0a1ae1
> --
> 2.49.0.395.g12beb8f557-goog
>
--
Best Regards
Masahiro Yamada
On Fri, Apr 4, 2025 at 11:37 PM Uros Bizjak wrote:
>
> On Fri, Apr 4, 2025 at 4:06 PM Masahiro Yamada wrote:
>
> > > > > Current version of genksyms doesn't know anything about
> > > > > __typeof_unqual__()
> > > > > operato
On Fri, Apr 4, 2025 at 10:11 PM Uros Bizjak wrote:
>
> On Fri, Apr 4, 2025 at 2:56 PM Masahiro Yamada wrote:
> >
> > On Fri, Apr 4, 2025 at 7:25 PM Uros Bizjak wrote:
> > >
> > > Current version of genksyms doesn't know anything about
> > > __
se learns about __typeof_unqual__().
> + * XXX: Remove test for __GENKSYMS__ once "genksyms" handles
> + * __typeof_unqual__(), and test for __CHECKER__ once "sparse" handles it.
> */
> -#if CC_HAS_TYPEOF_UNQUAL && !defined(__CHECKER__)
> +#if CC_HAS_TYPEOF_UNQUAL && !defined(__GENKSYMS__) && !defined(__CHECKER__)
> # define USE_TYPEOF_UNQUAL 1
> #endif
>
> --
> 2.49.0
>
>
--
Best Regards
Masahiro Yamada
all
> DIEs before processing exports is noticeably faster.
Applied to linux-kbuild. Thanks!
--
Best Regards
Masahiro Yamada
s (and tests using them) with UML too:
>
> printf
> 'CONFIG_SAMPLES=y\nCONFIG_HEADERS_INSTALL=y\nCONFIG_SAMPLE_LANDLOCK=y\n'
> >.config
> make ARCH=um olddefconfig headers_install
> make ARCH=um samples/landlock/
>
> Cc: Anton Ivanov
> Cc: Johannes Berg
atch set is in a mature state yet.
He did not provide proper documentation or commit description.
It would be nice if he takes some time to add documentation to
Documentation/core-api/symbol-namespaces.rst
since this is a new feature of the module namespace.
--
Best Regards
Masahiro Yamada
else
> - basename = mod->name;
> + basename = mod_basename(mod->name);
>
> if (!contains_namespace(&mod->imported_namespaces,
> exp->namespace)) {
> modpost_log(!allow_missing_ns_imports,
>
>
--
Best Regards
Masahiro Yamada
|7 ++-
> 1 file changed, 2 insertions(+), 5 deletions(-)
--
Best Regards
Masahiro Yamada
= mod_basename(mod->name);
- if (!contains_namespace(&mod->imported_namespaces,
exp->namespace)) {
+ if (!verify_module_namespace(exp->namespace, mod->name) &&
+ !contains_namespace(&mod->imported_namespaces,
exp->namespace)) {
modpost_log(!allow_missing_ns_imports,
"module %s uses symbol %s from
namespace %s, but does not import it.\n",
basename, exp->name, exp->namespace);
--
Best Regards
Masahiro Yamada
namespace
MODULE_kvm, but does not import it.
We get a hint from this error message, but the solution
is not MODULE_IMPORT_NS();
'make nsdeps' will try to solve this by adding
MODULE_IMPORT_NS("MODULE_kvm");
Apparently, this does not work.
Not sure if you want to solve the issue.
--
Best Regards
Masahiro Yamada
ace);
> - namespace = get_next_modinfo(&info, "import_ns",
> -namespace);
> - }
>
> if (extra_warn && !get_modinfo(&info, "description"))
> warn("missing MODULE_DESCRIPTION() in %s\n", modname);
>
>
--
Best Regards
Masahiro Yamada
odlen))
> + return true;
> + }
Same as kernel/module/main.c.
If you see around line 700 in this file,
you will find fnmatch() is already used for glob matching.
> +
> + return false;
> +}
> +
> static void check_exports(struct module *mod)
> {
> struct symbol *s, *exp;
> @@ -1714,7 +1741,8 @@ static void check_exports(struct module
>
> basename = mod_basename(mod->name);
>
> - if (!contains_namespace(&mod->imported_namespaces,
> exp->namespace)) {
> + if (!module_namespace(exp->namespace, basename) &&
> + !contains_namespace(&mod->imported_namespaces,
> exp->namespace)) {
> modpost_log(!allow_missing_ns_imports,
> "module %s uses symbol %s from namespace
> %s, but does not import it.\n",
> basename, exp->name, exp->namespace);
>
>
--
Best Regards
Masahiro Yamada
, ns)
#define EXPORT_SYMBOL_NS_GPL(sym, ns) __EXPORT_SYMBOL(sym, "GPL", ns)
+#define EXPORT_SYMBOL_GPL_FOR(sym, mods) __EXPORT_SYMBOL(sym, "GPL",
"MODULE_" mods)
+
--
Best Regards
Masahiro Yamada
On Sun, Feb 2, 2025 at 3:51 AM Masahiro Yamada wrote:
>
> Linus observed that the symbol_request(utf8_data_table) call fails when
> CONFIG_UNICODE=y and CONFIG_TRIM_UNUSED_KSYMS=y.
>
> symbol_get() relies on the symbol data being present in the ksymtab for
> symbo
at compile-time.
Although symbol_get() may eventually be deprecated, this workaround
should be good enough meanwhile.
Reported-by: Linus Torvalds
Suggested-by: Linus Torvalds
Signed-off-by: Masahiro Yamada
---
Changes in v3:
- More precise check in case symbol_get() is called from a module
For CONFIG_TREE_SRCU, __srcu_read_(un)lock_lite() are defined as static
inline functions in . The later function declarations
are redundant.
Signed-off-by: Masahiro Yamada
---
include/linux/srcu.h | 9 ++---
include/linux/srcutree.h | 4 ++--
2 files changed, 4 insertions(+), 9
ad.org/
> [2]
> https://lore.kernel.org/lkml/20250103-extended-modversions-v13-0-35d87c65e...@google.com/
>
Applied to linux-kbuild.
Thanks.
--
Best Regards
Masahiro Yamada
On Mon, Dec 30, 2024 at 11:02 PM Petr Pavlu wrote:
>
> On 12/28/24 16:45, Masahiro Yamada wrote:
> > Commit 71810db27c1c ("modversions: treat symbol CRCs as 32 bit
> > quantities") changed the CRC fields to s32 because the __kcrctab and
> > __kcrctab_gpl section
elong to 01/18 instead of 02/18.
> static HASHTABLE_DEFINE(symbol_names, 1 << SYMBOL_HASH_BITS);
--
Best Regards
Masahiro Yamada
On Sun, Dec 29, 2024 at 12:46 AM Masahiro Yamada wrote:
>
> Commit 71810db27c1c ("modversions: treat symbol CRCs as 32 bit
> quantities") changed the CRC fields to s32 because the __kcrctab and
> __kcrctab_gpl sections contained relative references to the actual
> CRC val
ier_chain_register" },
{ 0x053d3b64, "simple_inode_init_ts" },
{ 0x65487097, "__x86_indirect_thunk_rax" },
{ 0x122c3a7e, "_printk" },
Signed-off-by: Masahiro Yamada
---
scripts/mod/modpost.c | 2 +-
1 file changed, 1 insertion(+), 1
nctional changes are intended.
Regardless of this change, the CRC value is assigned to the u32 variable,
'crcval' before the comparison, as seen in kernel/module/version.c:
crcval = *crc;
Signed-off-by: Masahiro Yamada
---
include/linux/module.h | 4 ++--
kernel/module/inte
- Fix s32 -> u32
- Make printf() format consistent
Matthew Maurer is adding more 's32'.
I need to fix the code now.
Otherwise, I would need to fix more places.
Masahiro Yamada (2):
module: get symbol crc back to unsigned
modpost: zero-pad CRC values in modversion_info ar
,
{ 0, 0, NULL, 0 }
};
> +{ "dump-dies", 0, &dump_dies, 1 },
> + { "help", 0, NULL, 'h' },
> +{ 0, 0, NULL, 0 } };
> +
--
Best Regards
Masahiro Yamada
TB_NAME to CONFIG_BUILTIN_DTB_NAME.
Signed-off-by: Masahiro Yamada
---
arch/openrisc/Kbuild | 1 -
arch/openrisc/Kconfig | 3 ++-
arch/openrisc/boot/dts/Makefile| 2 +-
arch/openrisc/configs/or1klitex_defconfig | 2 +-
arch/openrisc/configs/or1ksim_defcon
dif
>
> -export srctree := $(if $(KBUILD_EXTMOD),$(abs_srctree),$(srcroot))
> +srctree := $(if $(KBUILD_EXTMOD),$(abs_srctree),$(srcroot))
> +export srctree := $(if $(building_out_of_srctree),$(abs_srctree),$(srctree))
>
> ifdef building_out_of_srctree
> export VPATH := $(srcroot)
> --
> 2.44.0
>
>
--
Best Regards
Masahiro Yamada
struct s {
> +int a;
> +union {
> +char __kabi_ignored_0;
> +int n;
> + };
> + unsigned long b;
> +};
> +
> +With **--stable**, both versions produce the same symbol version.
> diff --git a/Documentation/kbuild/index.rst b/Documentation/kbuild/index.rst
> index cee2f99f734b..e82af05cd652 100644
> --- a/Documentation/kbuild/index.rst
> +++ b/Documentation/kbuild/index.rst
> @@ -21,6 +21,7 @@ Kernel Build System
> reproducible-builds
> gcc-plugins
> llvm
> +gendwarfksyms
>
> .. only:: subproject and html
>
> --
> 2.47.0.371.ga323438b13-goog
>
--
Best Regards
Masahiro Yamada
at compile-time.
Although symbol_get() may eventually be deprecated, this workaround
should be good enough meanwhile.
Reported-by: Linus Torvalds
Suggested-by: Linus Torvalds
Signed-off-by: Masahiro Yamada
---
Changes in v2:
- Call keep_no_trim_symbols() for modules as well.
EXPORT_SY
at compile-time.
Although symbol_get() may eventually be deprecated, this workaround
should be good enough meanwhile.
Reported-by: Linus Torvalds
Suggested-by: Linus Torvalds
Signed-off-by: Masahiro Yamada
---
include/asm-generic/vmlinux.lds.h | 1 +
include/linux/module.h
you provided a Reviewed-by and/or Tested-by tag, they would not be stripped.
I would not say you are unqualified in terms of skills or abilities.
However, this is not how the Acked-by tag is typically used.
As Miguel mentioned, "Acked-by-User" or "Acked-by: # As primary user"
could be an option, but I am not sure if they would gain
sufficient consensus.
Code reviews and tests are always appreciated.
The Reviewed-by and Tested-by tags are open to everyone.
If you are uncomfortable with a Reviewed-by or Tested-by tag,
I cannot think of any other alternatives.
--
Best Regards
Masahiro Yamada
On Wed, Nov 27, 2024 at 3:26 AM Luis Chamberlain wrote:
>
> On Tue, Nov 26, 2024 at 12:50:48PM +0900, Masahiro Yamada wrote:
> > On Tue, Nov 26, 2024 at 8:30 AM Luis Chamberlain wrote:
> > >
> > > On Thu, Nov 21, 2024 at 08:42:22PM +, Sami Tolvanen wrote:
&g
+
> > + dwfl_report_end(dwfl, NULL, NULL);
> > +
> > + if (dwfl_getmodules(dwfl, &process_module, NULL, 0))
> > + error("dwfl_getmodules failed for '%s'", argv[n]);
> > +
> > + dwfl_end(dwfl);
> > + }
> > +
> > + symbol_free();
> > +
> > + return 0;
> > +}
> > diff --git a/scripts/gendwarfksyms/gendwarfksyms.h
> > b/scripts/gendwarfksyms/gendwarfksyms.h
> > new file mode 100644
> > index ..23e484af5d22
> > --- /dev/null
> > +++ b/scripts/gendwarfksyms/gendwarfksyms.h
> > @@ -0,0 +1,100 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/*
> > + * Copyright (C) 2024 Google LLC
> > + */
> > +
> > +#define _GNU_SOURCE
>
>
> I'm getting these warnings:
>
> scripts/gendwarfksyms/kabi.c:245:6: warning: implicit declaration of
> function 'asprintf' is invalid in C99 [-Wimplicit-function-declaration]
> if (asprintf(&target, "%s %s", fqn, field) < 0)
> ^
> 1 warning generated.
>HOSTCC scripts/gendwarfksyms/symbols.o
>HOSTCC scripts/gendwarfksyms/types.o
> scripts/gendwarfksyms/types.c:260:6: warning: implicit declaration of
> function 'asprintf' is invalid in C99 [-Wimplicit-function-declaration]
> if (asprintf(&name, "%c#%s%s%s", prefix, quote, cache->fqn,
> quote) < 0)
> ^
> 1 warning generated.
>
>
> I think it may be cleaner to define _GNU_SOURCE in the CFLAGS instead.
I do not think so.
I believe the standard approach would be to define the necessary
macros and include headers where they are used.
diff --git a/scripts/gendwarfksyms/gendwarfksyms.h
b/scripts/gendwarfksyms/gendwarfksyms.h
index 86b3a3f2f558..127dceaf838d 100644
--- a/scripts/gendwarfksyms/gendwarfksyms.h
+++ b/scripts/gendwarfksyms/gendwarfksyms.h
@@ -3,8 +3,6 @@
* Copyright (C) 2024 Google LLC
*/
-#define _GNU_SOURCE
-
#include
#include
#include
diff --git a/scripts/gendwarfksyms/kabi.c b/scripts/gendwarfksyms/kabi.c
index 2c6670ff1ac9..a3b5bb9e5487 100644
--- a/scripts/gendwarfksyms/kabi.c
+++ b/scripts/gendwarfksyms/kabi.c
@@ -3,7 +3,10 @@
* Copyright (C) 2024 Google LLC
*/
+#define _GNU_SOURCE
#include
+#include
+
#include "gendwarfksyms.h"
#define KABI_RULE_SECTION ".discard.gendwarfksyms.kabi_rules"
diff --git a/scripts/gendwarfksyms/types.c b/scripts/gendwarfksyms/types.c
index f4dbd21b83e6..c37afdb90fe9 100644
--- a/scripts/gendwarfksyms/types.c
+++ b/scripts/gendwarfksyms/types.c
@@ -3,7 +3,10 @@
* Copyright (C) 2024 Google LLC
*/
+#define _GNU_SOURCE
+#include
#include
+
#include "gendwarfksyms.h"
static struct cache expansion_cache;
The current code adopts:
- Collect all library header includes to gendwarfksyms.h
- All C files include "gendwarfksyms.h" but nothing else.
This smells like "please include from every file
when you program in Visual C++".
Personally I do not do that, but others may think differently.
--
Best Regards
Masahiro Yamada
ot;);
MODULE_DESCRIPTION("InvenSense ICM-426xx device driver");
MODULE_LICENSE("GPL");
-MODULE_IMPORT_NS(IIO_INV_SENSORS_TIMESTAMP);
+MODULE_IMPORT_NS("IIO_INV_SENSORS_TIMESTAMP");
--
Best Regards
Masahiro Yamada
n: .init.text)
Fixes: 0043ecea2399 ("vmlinux.lds.h: Adjust symbol ordering in text output
section")
Reported-by: Guenter Roeck
Closes:
https://lore.kernel.org/all/5e032233-5b65-4ad5-ac50-d2eb6c001...@roeck-us.net/#t
Signed-off-by: Masahiro Yamada
---
arch/openrisc/kernel/entry.S
on
> any make without having the script or code actually change.
> Take Masahiro Yamada's suggested fix and cleanups on the Makefile
> to fix this.
>
Fixes: 84b4a51fce4c ("selftests: add new kallsyms selftests")
> Suggested-by: Masahiro Yamada
> Reported-
On Thu, Nov 28, 2024 at 12:02 PM Luis Chamberlain wrote:
>
> On Thu, Nov 28, 2024 at 11:56:44AM +0900, Masahiro Yamada wrote:
> > On Thu, Nov 28, 2024 at 11:42 AM Luis Chamberlain wrote:
> > >
> > > Now with Masahiro's cleanups, in my testing we
.c
CC [M] lib/tests/module/test_kallsyms_a.o
CC [M] lib/tests/module/test_kallsyms_b.o
CC [M] lib/tests/module/test_kallsyms_c.o
CC [M] lib/tests/module/test_kallsyms_d.o
--
Best Regards
Masahiro Yamada
On Thu, Nov 28, 2024 at 11:38 AM Luis Chamberlain wrote:
>
> On Thu, Nov 28, 2024 at 11:09:43AM +0900, Masahiro Yamada wrote:
> > diff --git a/lib/tests/module/Makefile b/lib/tests/module/Makefile
> > index af5c27b996cb..8cfc4ae600a9 100644
> > --- a/lib/tests/module/Make
_TYPE=$(echo $TARGET | sed -e 's|lib/tests/module/test_kallsyms_||g')
> TEST_TYPE=$(echo $TEST_TYPE | sed -e 's|.c||g')
> +FIRST_B_LOOKUP=1
> +
> +if [[ $NUM_SYMS -gt 2 ]]; then
> + FIRST_B_LOOKUP=$((NUM_SYMS/2))
> +fi
>
> gen_template_module_header()
> {
> @@ -52,10 +57,10 @@ END_MODULE
>
> gen_template_module_data_b()
> {
> - printf "\nextern int auto_test_a_%010d;\n\n" 28
> + printf "\nextern int auto_test_a_%010d;\n\n" $FIRST_B_LOOKUP
> echo "static int auto_runtime_test(void)"
> echo "{"
> - printf "\nreturn auto_test_a_%010d;\n" 28
> + printf "\nreturn auto_test_a_%010d;\n" $FIRST_B_LOOKUP
> echo "}"
> }
>
> --
> 2.45.2
>
--
Best Regards
Masahiro Yamada
$(obj)/%.c: $(src)/gen_test_kallsyms.sh FORCE
+ $(call if_changed,gen_test_kallsyms)
+
+targets += $(foreach x, a b c d, test_kallsyms_$(x).c)
--
Best Regards
Masahiro Yamada
ags) -c -o $(@:.o=.gendwarfksyms.o) -xc -; \
> + $(call getexportsymbols,\1) | \
> + $(gendwarfksyms) $(@:.o=.gendwarfksyms.o)
> +else
> +cmd_gensymtypes_S =\
> + $(getasmexports) | \
> + $(CPP) -D__GENKSYMS__ $(c_flags) -xc - | $(genksyms)
> +endif # CONFIG_GENDWARFKSYMS
>
> quiet_cmd_cpp_s_S = CPP $(quiet_modtag) $@
> cmd_cpp_s_S = $(CPP) $(a_flags) -o $@ $<
> --
> 2.47.0.371.ga323438b13-goog
>
--
Best Regards
Masahiro Yamada
on)"
You split the patch set into a large number of patches, but
I cannot compile-test each of them until 17/18 is applied.
--
Best Regards
Masahiro Yamada
ool with no maintainer.
It defaults to the maintainer of the scripts/ directory (i.e. me)
>
> Masahiro, should we just add both to KERNEL BUILD and add
> Sami as a Reviewer to help with gendwarfksyms?
I think it is better to have a separate entry for
F: scripts/gendwarfksyms/
with Sami as the maintainer.
>
> Luis
--
Best Regards
Masahiro Yamada
This commit renames the alias symbol, __moddevice_table
to __mod_device_table.
This change simplifies the code slightly, as there is no longer a need
to check both the prefix and suffix.
Signed-off-by: Masahiro Yamada
---
include/linux/module.h | 2 +-
scripts/mod/file2alias.c | 17
On Thu, Nov 14, 2024 at 2:54 AM Sami Tolvanen wrote:
>
> Hi,
>
> On Mon, Nov 11, 2024 at 8:06 PM Masahiro Yamada wrote:
> >
> > On Thu, Oct 31, 2024 at 2:01 AM Sami Tolvanen
> > wrote:
> > >
> > > To avoid duplication between host programs, m
all getexportsymbols,$(2:.symtypes=.o),EXPORT_SYMBOL(\1);) ; }
> +
> +ifdef CONFIG_GENDWARFKSYMS
> +cmd_gensymtypes_S = \
> + $(getasmexports) | \
> + $(CC) $(c_flags) -c -o $(2:.symtypes=.gendwarfksyms.o) -xc -; \
> + $(call getexportsymbols,$(2:.symtypes=.o),\1) | \
> + $(gendwarfksyms) $(2:.symtypes=.gendwarfksyms.o)
I do not want to see crazy suffix replacements like this.
I decided to delete this.
https://lore.kernel.org/linux-kbuild/2024171753.2917697-2-masahi...@kernel.org/T/#u
--
Best Regards
Masahiro Yamada
nly when it is given by someone who
maintains the relevant area or has established a reputation.
$ git grep "Neal Gompa"
$ git shortlog -n -s | grep "Neal Gompa"
2 Neal Gompa
His Ack feels more like "I like it" rather than a qualified endorsement.
--
Best Regards
Masahiro Yamada
BOL_NS_GPL(dw_spi_resume_host, "SPI_DW_CORE")
we clearly know "SPI_DW_CORE" is a namespace string.
https://lore.kernel.org/lkml/ymltn72chrkv4...@kroah.com/T/
> > > EXPORT_SYMBOL_NS_GPL(dw_spi_resume_host, "SPI_DW_CORE")
> > >
> > >is much much better than:
> > >
> > > EXPORT_SYMBOL_NS_GPL(dw_spi_resume_host, SPI_DW_CORE)
--
Best Regards
Masahiro Yamada
warn("missing MODULE_DESCRIPTION() in %s\n", modname);
> @@ -1700,11 +1715,7 @@ static void check_exports(struct module *mod)
> s->crc_valid = exp->crc_valid;
> s->crc = exp->crc;
>
> - basename = strrchr(mod->name, '/');
> - if (basename)
> - basename++;
> - else
> - basename = mod->name;
> + basename = mod_basename(mod->name);
This is an unrelated change.
So, it should be split into a separate prerequisite patch,
something like, "modpost: introduce mod_basename() helper"
> if (!contains_namespace(&mod->imported_namespaces,
> exp->namespace)) {
> modpost_log(!allow_missing_ns_imports,
--
Best Regards
Masahiro Yamada
MINATION is configured")
Signed-off-by: Masahiro Yamada
---
include/asm-generic/vmlinux.lds.h | 2 +-
include/linux/rcupdate.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/asm-generic/vmlinux.lds.h
b/include/asm-generic/vmlinux.lds.h
index c995474
> > Rather than reviving this script as we make further changes to `.mod.c`,
> > this patch gets rid of it because it is clearly unused.
> >
> > Signed-off-by: Matthew Maurer
>
> Thanks! Applied and pushed!
>
> Luis
Acked-by: Masahiro Yamada
--
Best Regards
Masahiro Yamada
file: @echo ' export_report - List the usages of all
exported symbols'
Makefile:PHONY += includecheck versioncheck coccicheck export_report
Makefile:export_report:
Makefile: $(PERL) $(srctree)/scripts/export_report.pl
--
Best Regards
Masahiro Yamada
ectories, and those do not contain `.mod.c` files.
If necessary, you can refer to
commit f65a486821cf ("kbuild: change module.order to list *.o instead of *.ko")
As suggested, I vote for the removal since it has been broken for 5 years
since a3d0cb04f7df.
--
Best Regards
Masahiro Yamada
On Tue, Oct 22, 2024 at 5:07 AM Helge Deller wrote:
>
> On 10/21/24 21:22, Luis Chamberlain wrote:
> > On Fri, Feb 02, 2024 at 10:23:21AM -0800, Luis Chamberlain wrote:
> >> On Sat, Feb 03, 2024 at 12:20:38AM +0900, Masahiro Yamada wrote:
> >>> On Fri, Feb 2,
st
> + * @head: the head of the list
> + */
> +static inline int list_is_last(const struct list_head *list, const struct
> list_head *head)
> +{
> + return list->next == head;
> +}
> +
> /**
> * list_is_head - tests whether @list is the list @head
> * @list: the entry to test
> --
> 2.46.0.792.g87dc391469-goog
>
--
Best Regards
Masahiro Yamada
On Fri, Sep 6, 2024 at 5:53 AM Sami Tolvanen wrote:
>
> Hi,
>
> On Thu, Sep 5, 2024 at 2:30 AM Masahiro Yamada wrote:
> >
> > On Fri, Aug 16, 2024 at 2:39 AM Sami Tolvanen
> > wrote:
> > >
> > > +++ b/scripts/gendwarfksyms/gendwarfksyms
On Thu, Sep 5, 2024 at 11:17 PM Rob Herring wrote:
>
> On Thu, Sep 05, 2024 at 08:47:40AM +0900, Masahiro Yamada wrote:
> > Some architectures embed boot DTBs in vmlinux. A potential issue for
> > these architectures is a race condition during parallel builds because
> > K
On Thu, Sep 5, 2024 at 11:17 PM Rob Herring wrote:
>
> On Thu, Sep 05, 2024 at 08:47:40AM +0900, Masahiro Yamada wrote:
> > Some architectures embed boot DTBs in vmlinux. A potential issue for
> > these architectures is a race condition during parallel builds because
> > K
On Thu, Sep 5, 2024 at 11:38 PM Rob Herring wrote:
>
> On Thu, Sep 05, 2024 at 08:47:50AM +0900, Masahiro Yamada wrote:
> > Now that all architectures have migrated to the generic built-in
> > DTB support, the GENERIC_ prefix is no longer necessary.
> >
> >
1 - 100 of 1632 matches
Mail list logo