Thread (49 messages) 49 messages, 3 authors, 2025-11-26

Re: [PATCH net-next v3 11/11] wireguard: netlink: generate netlink code

From: "Jason A. Donenfeld" <Jason@zx2c4.com>
Date: 2025-11-18 22:51:49
Also in: lkml

On Tue, Nov 18, 2025 at 10:23:12PM +0000, Asbjørn Sloth Tønnesen wrote:
On 11/18/25 3:15 PM, Jason A. Donenfeld wrote:
quoted
On Wed, Nov 05, 2025 at 06:32:20PM +0000, Asbjørn Sloth Tønnesen wrote:
quoted
  drivers/net/wireguard/netlink_gen.c | 77 +++++++++++++++++++++++++++++
  drivers/net/wireguard/netlink_gen.h | 29 +++++++++++
  create mode 100644 drivers/net/wireguard/netlink_gen.c
  create mode 100644 drivers/net/wireguard/netlink_gen.h
+#include "netlink_gen.h"
+// SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
+/* Do not edit directly, auto-generated from: */
+/*	Documentation/netlink/specs/wireguard.yaml */
+/* YNL-GEN kernel source */
Similar to what's happening in the tools/ynl/samples build system,
instead of statically generating this, can you have this be generated at
build time, and placed into a generated/ folder that doesn't get checked
into git? I don't see the purpose of having to manually keep this in
check?

(And if for some reason, you refuse to do that, it'd be very nice if the
  DO NOT EDIT header of the file also had the command that generated it,
  in case I need to regenerate it later and can't remember how it was
  done, because I didn't do it the first time, etc. Go's generated files
  usually follow this pattern.

  But anyway, I think I'd prefer, if it's possible, to just have this
  generated at compile time.)
The main value in having the generated kernel code in git, is that it can't
change accidentally, which makes it easy for patchwork to catch if output
changes without being a part of the commit.

I will leave it up to Donald and Jakub, if they want to allow these files to
be generated on-the-fly.
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.

Jason
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help