Re: [PATCH net-next v3 11/11] wireguard: netlink: generate netlink code
From: Asbjørn Sloth Tønnesen
Date: Thu Nov 20 2025 - 14:49:42 EST
On 11/20/25 12:54 AM, Jason A. Donenfeld wrote:
On Tue, Nov 18, 2025 at 05:00:45PM -0800, Jakub Kicinski wrote:
On Tue, 18 Nov 2025 23:51:37 +0100 Jason A. Donenfeld wrote:
I mean, there is *tons* of generated code in the kernel. This is how it
works. And you *want the output to change when the tool changes*. That's
literally the point. It would be like if you wanted to check in all the
.o files, in case the compiler started generating different output, or
if you wanted the objtool output or anything else to be checked in. And
sheerly from a git perspective, it seems outrageous to touch a zillion
files every time the ynl code changes. Rather, the fact that it's
generated on the fly ensures that the ynl generator stays correctly
implemented. It's the best way to keep that code from rotting.
CI checks validate that the files are up to date.
There has been no churn to the kernel side of the generated code.
Let's be practical.
Okay, it sounds like neither of you want to do this. Darn. I really hate
having generated artifacts laying around that can be created efficiently
at compile time. But okay, so it goes. I guess we'll do that.
I generally agree, but given this generates code across the tree, then I
prefer this, as side-effects are more obvious.
To complete Jakub's earlier argument of not complicating everyone's life,
then this code generator is Python-based and depends on yaml and jsonschema.
Even doing compile-time generation for a single family, would elevate those
packages from developer-dependencies to build-dependencies.
I would like to ask two things, then, which may or may not be possible:
1) Can we put this in drivers/net/wireguard/generated/netlink.{c.h}
And then in the Makefile, do `wireguard-y += netlink.o generated/netlink.o`
on one line like that. I prefer this to keeping it in the same
directory with the awkward -gen suffix.
Sure, there isn't much consistency across families anyway.