Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

selftests: net: rebuild YNL if dependencies changed

Try to rebuild YNL if either user added a new family or the specs
of the families have changed. Stanislav's ncdevmem cause a false
positive build failure in NIPA because libynl.a isn't rebuilt
after ethtool is added to YNL_GENS.

Note that sha1sum is already used in other parts of the build system.

Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20241011230311.2529760-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+13 -2
+13 -2
tools/testing/selftests/net/ynl.mk
··· 9 9 # YNL_GEN_FILES: TEST_GEN_FILES which need YNL 10 10 11 11 YNL_OUTPUTS := $(patsubst %,$(OUTPUT)/%,$(YNL_GEN_FILES)) 12 + YNL_SPECS := \ 13 + $(patsubst %,$(top_srcdir)/Documentation/netlink/specs/%.yaml,$(YNL_GENS)) 12 14 13 15 $(YNL_OUTPUTS): $(OUTPUT)/libynl.a 14 16 $(YNL_OUTPUTS): CFLAGS += \ ··· 18 16 -I$(top_srcdir)/tools/net/ynl/lib/ \ 19 17 -I$(top_srcdir)/tools/net/ynl/generated/ 20 18 21 - $(OUTPUT)/libynl.a: 19 + # Make sure we rebuild libynl if user added a new family. We can't easily 20 + # depend on the contents of a variable so create a fake file with a hash. 21 + YNL_GENS_HASH := $(shell echo $(YNL_GENS) | sha1sum | cut -c1-8) 22 + $(OUTPUT)/.libynl-$(YNL_GENS_HASH).sig: 23 + $(Q)rm -f $(OUTPUT)/.libynl-*.sig 24 + $(Q)touch $(OUTPUT)/.libynl-$(YNL_GENS_HASH).sig 25 + 26 + $(OUTPUT)/libynl.a: $(YNL_SPECS) $(OUTPUT)/.libynl-$(YNL_GENS_HASH).sig 27 + $(Q)rm -f $(top_srcdir)/tools/net/ynl/libynl.a 22 28 $(Q)$(MAKE) -C $(top_srcdir)/tools/net/ynl GENS="$(YNL_GENS)" libynl.a 23 29 $(Q)cp $(top_srcdir)/tools/net/ynl/libynl.a $(OUTPUT)/libynl.a 24 30 25 31 EXTRA_CLEAN += \ 26 32 $(top_srcdir)/tools/net/ynl/lib/__pycache__ \ 27 - $(top_srcdir)/tools/net/ynl/lib/*.[ado] 33 + $(top_srcdir)/tools/net/ynl/lib/*.[ado] \ 34 + $(OUTPUT)/.libynl-*.sig