Message ID | 20241011230311.2529760-1-kuba@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 0cb06dc6c42b1b2940e01f207ddf980f2d637545 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v2,1/2] selftests: net: rebuild YNL if dependencies changed | expand |
Hello: This series was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Fri, 11 Oct 2024 16:03:10 -0700 you wrote: > 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. > > [...] Here is the summary with links: - [net-next,v2,1/2] selftests: net: rebuild YNL if dependencies changed https://git.kernel.org/netdev/net-next/c/0cb06dc6c42b - [net-next,v2,2/2] selftests: net: move EXTRA_CLEAN of libynl.a into ynl.mk https://git.kernel.org/netdev/net-next/c/60b4d49b9621 You are awesome, thank you!
diff --git a/tools/testing/selftests/net/ynl.mk b/tools/testing/selftests/net/ynl.mk index 1ef24119def0..add5c0cdeac4 100644 --- a/tools/testing/selftests/net/ynl.mk +++ b/tools/testing/selftests/net/ynl.mk @@ -9,6 +9,8 @@ # YNL_GEN_FILES: TEST_GEN_FILES which need YNL YNL_OUTPUTS := $(patsubst %,$(OUTPUT)/%,$(YNL_GEN_FILES)) +YNL_SPECS := \ + $(patsubst %,$(top_srcdir)/Documentation/netlink/specs/%.yaml,$(YNL_GENS)) $(YNL_OUTPUTS): $(OUTPUT)/libynl.a $(YNL_OUTPUTS): CFLAGS += \ @@ -16,10 +18,19 @@ $(YNL_OUTPUTS): CFLAGS += \ -I$(top_srcdir)/tools/net/ynl/lib/ \ -I$(top_srcdir)/tools/net/ynl/generated/ -$(OUTPUT)/libynl.a: +# Make sure we rebuild libynl if user added a new family. We can't easily +# depend on the contents of a variable so create a fake file with a hash. +YNL_GENS_HASH := $(shell echo $(YNL_GENS) | sha1sum | cut -c1-8) +$(OUTPUT)/.libynl-$(YNL_GENS_HASH).sig: + $(Q)rm -f $(OUTPUT)/.libynl-*.sig + $(Q)touch $(OUTPUT)/.libynl-$(YNL_GENS_HASH).sig + +$(OUTPUT)/libynl.a: $(YNL_SPECS) $(OUTPUT)/.libynl-$(YNL_GENS_HASH).sig + $(Q)rm -f $(top_srcdir)/tools/net/ynl/libynl.a $(Q)$(MAKE) -C $(top_srcdir)/tools/net/ynl GENS="$(YNL_GENS)" libynl.a $(Q)cp $(top_srcdir)/tools/net/ynl/libynl.a $(OUTPUT)/libynl.a EXTRA_CLEAN += \ $(top_srcdir)/tools/net/ynl/lib/__pycache__ \ - $(top_srcdir)/tools/net/ynl/lib/*.[ado] + $(top_srcdir)/tools/net/ynl/lib/*.[ado] \ + $(OUTPUT)/.libynl-*.sig