On Thu, 2024-08-15 at 14:06 -0700, Andrii Nakryiko wrote: [...] > > @@ -627,6 +669,9 @@ ifneq ($2:$(OUTPUT),:$(shell pwd)) > > $(Q)rsync -aq $$^ $(TRUNNER_OUTPUT)/ > > endif > > > > +$(OUTPUT)/$(TRUNNER_BINARY): LDLIBS += $$($(TRUNNER_BASE_NAME)-LDLIBS) > > +$(OUTPUT)/$(TRUNNER_BINARY): LDFLAGS += $$($(TRUNNER_BASE_NAME)-LDFLAGS) > > is there any reason why you need to have this blah-LDFLAGS convention > and then applying that with extra pass, instead of just writing > > $(OUTPUT)/$(TRUNNER_BINARY): LDFLAGS += $(LLVM_LDFLAGS) > > I'm not sure I understand the need for extra logical hops to do this Sorry, I missed this detail on Thursday. The $$($(TRUNNER_BASE_NAME)-LDLIBS) thing is needed to avoid linking LLVM dependencies for test_maps. Still, I can remove it if you think this does not matter. > > + > > # some X.test.o files have runtime dependencies on Y.bpf.o files > > $(OUTPUT)/$(TRUNNER_BINARY): | $(TRUNNER_BPF_OBJS) > > > > @@ -636,7 +681,7 @@ $(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS) \ > > $(TRUNNER_BPFTOOL) \ > > | $(TRUNNER_BINARY)-extras > > $$(call msg,BINARY,,$$@) > > - $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@ > > + $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) $$(LDFLAGS) -o $$@ > > $(Q)$(RESOLVE_BTFIDS) --btf $(TRUNNER_OUTPUT)/btf_data.bpf.o $$@ > > $(Q)ln -sf $(if $2,..,.)/tools/build/bpftool/$(USE_BOOTSTRAP)bpftool \ > > $(OUTPUT)/$(if $2,$2/)bpftool [...]