summaryrefslogtreecommitdiff
path: root/tools/net/ynl/generated
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2023-06-14 03:28:00 +0300
committerDavid S. Miller <davem@davemloft.net>2023-06-15 13:44:37 +0300
commitf0ec58d557d65838974035ffd8a8862cf8166a81 (patch)
treeea77ee95c881927a10d7c3794b5ce5f03b08754b /tools/net/ynl/generated
parented3c9a2fcab3b60b0766eb5d7566fd3b10df9a8e (diff)
downloadlinux-f0ec58d557d65838974035ffd8a8862cf8166a81.tar.xz
tools: ynl: work around stale system headers
The inability to include the uAPI headers directly in tools/ is one of the bigger annoyances of compiling user space code. Most projects trade the pain for smaller inconvenience of having to copy the headers under tools/include. In case of netlink headers I think that we can avoid both. Netlink family headers are simple and should be self-contained. We can try to twiddle the Makefile a little to force-include just the family header, and use system headers for the rest. This works fairly well. There are two warts - for some reason if we specify -include $path/family.h as a compilation flag, the #ifdef header guard does not seem to work. So we need to throw the guard in on the command line as well. Seems like GCC detects that the header is different and tries to include both. Second problem is that make wants hash sign to be escaped or not depending on the version. Sigh. Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/net/ynl/generated')
-rw-r--r--tools/net/ynl/generated/Makefile6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/net/ynl/generated/Makefile b/tools/net/ynl/generated/Makefile
index f15c24893296..f8817d2e56e4 100644
--- a/tools/net/ynl/generated/Makefile
+++ b/tools/net/ynl/generated/Makefile
@@ -2,11 +2,13 @@
CC=gcc
CFLAGS=-std=gnu11 -O2 -W -Wall -Wextra -Wno-unused-parameter -Wshadow \
- -I../lib/
+ -I../lib/ -idirafter $(UAPI_PATH)
ifeq ("$(DEBUG)","1")
CFLAGS += -g -fsanitize=address -fsanitize=leak -static-libasan
endif
+include ../Makefile.deps
+
YNL_GEN_ARG_ethtool:=--user-header linux/ethtool_netlink.h \
--exclude-op stats-get
@@ -33,7 +35,7 @@ protos.a: $(OBJS)
%-user.o: %-user.c %-user.h
@echo -e "\tCC $@"
- @$(COMPILE.c) -c -o $@ $<
+ @$(COMPILE.c) $(CFLAGS_$*) -o $@ $<
clean:
rm -f *.o