diff options
author | Stanislav Fomichev <sdf@fomichev.me> | 2024-12-04 07:55:46 -0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-12-05 12:03:04 -0800 |
commit | 001b0b59efbbdf54126c2ae512009d4a7c9f9f88 (patch) | |
tree | fb4e1f586abc5f03d8c0f11e3a37aa6378cb2057 | |
parent | 0187e602c03c876d69cf955dd438bc7fea8c8fd3 (diff) |
ynl: include uapi header after all dependencies
Essentially reverse the order of headers for userspace generated files.
Before (make -C tools/net/ynl/; cat tools/net/ynl/ethtool-user.h):
#include <linux/ethtool_netlink_generated.h>
#include <linux/ethtool.h>
#include <linux/ethtool.h>
#include <linux/ethtool.h>
After:
#include <linux/ethtool.h>
#include <linux/ethtool_netlink_generated.h>
While at it, make sure we track which headers we've already included
and include the headers only once.
Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20241204155549.641348-6-sdf@fomichev.me
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rwxr-xr-x | tools/net/ynl/ynl-gen-c.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/tools/net/ynl/ynl-gen-c.py b/tools/net/ynl/ynl-gen-c.py index 2bf4d992e54a..8098bcbb6f40 100755 --- a/tools/net/ynl/ynl-gen-c.py +++ b/tools/net/ynl/ynl-gen-c.py @@ -2782,12 +2782,17 @@ def main(): else: cw.p(f'#include "{hdr_file}"') cw.p('#include "ynl.h"') - headers = [parsed.uapi_header] + headers = [] for definition in parsed['definitions']: if 'header' in definition: headers.append(definition['header']) + if args.mode == 'user': + headers.append(parsed.uapi_header) + seen_header = [] for one in headers: - cw.p(f"#include <{one}>") + if one not in seen_header: + cw.p(f"#include <{one}>") + seen_header.append(one) cw.nl() if args.mode == "user": |