diff --git a/tools/lkl/Makefile b/tools/lkl/Makefile index 9ca22b7605e3ad..1946fac364be66 100644 --- a/tools/lkl/Makefile +++ b/tools/lkl/Makefile @@ -87,13 +87,15 @@ $(OUTPUT)lib/lkl.o: bin/stat $(DOT_CONFIG) $(MAKE) -C ../.. ARCH=lkl $(KOPT) $(MAKE) -C ../.. ARCH=lkl $(KOPT) install INSTALL_PATH=$(OUTPUT) -# rules to link libs +# rules to link hijack libs $(OUTPUT)%$(SOSUF): LDFLAGS += -shared -$(OUTPUT)%$(SOSUF): $(OUTPUT)%-in.o $(OUTPUT)liblkl.a +$(OUTPUT)%$(SOSUF): $(priv-libs-y:%=$(OUTPUT)%-in.o) $(OUTPUT)%-in.o $(OUTPUT)liblkl.a $(QUIET_LINK)$(CC) $(LDFLAGS) $(LDFLAGS_$*-y) -o $@ $^ $(LDLIBS) $(LDLIBS_$*-y) # liblkl is special -$(OUTPUT)liblkl$(SOSUF): $(OUTPUT)%-in.o $(OUTPUT)lib/lkl.o +$(OUTPUT)lib/liblkl$(SOSUF): $(OUTPUT)lib/liblkl-in.o $(OUTPUT)lib/lkl.o + $(QUIET_LINK)$(CC) $(LDFLAGS) $(LDFLAGS_$*-y) -o $@ $^ $(LDLIBS) $(LDLIBS_$*-y) + $(OUTPUT)liblkl.a: $(OUTPUT)lib/liblkl-in.o $(OUTPUT)lib/lkl.o $(QUIET_AR)$(AR) -rc $@ $^ @@ -105,7 +107,6 @@ $(OUTPUT)%$(EXESUF): $(OUTPUT)%-in.o $(OUTPUT)liblkl.a $(OUTPUT)%-in.o: $(OUTPUT)lib/lkl.o FORCE $(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=$(patsubst %/,%,$(dir $*)) obj=$(notdir $*) - $(OUTPUT)cpfromfs$(EXESUF): cptofs$(EXESUF) $(Q)if ! [ -e $@ ]; then ln -s $< $@; fi diff --git a/tools/lkl/Targets b/tools/lkl/Targets index 3d30bd8be3c840..7974d57b4ac88a 100644 --- a/tools/lkl/Targets +++ b/tools/lkl/Targets @@ -1,6 +1,7 @@ libs-y += lib/liblkl ifneq ($(LKL_HOST_CONFIG_BSD),y) +priv-libs-$(LKL_HOST_CONFIG_POSIX) += lib/hijack/libhijack-priv libs-$(LKL_HOST_CONFIG_POSIX) += lib/hijack/liblkl-hijack libs-$(LKL_HOST_CONFIG_POSIX) += lib/hijack/liblkl-zpoline endif diff --git a/tools/lkl/lib/hijack/Build b/tools/lkl/lib/hijack/Build index b42239e47d8e78..64f61db29882c0 100644 --- a/tools/lkl/lib/hijack/Build +++ b/tools/lkl/lib/hijack/Build @@ -1,14 +1,11 @@ +libhijack-priv-y += hijack.o +libhijack-priv-y += init.o +libhijack-priv-y += xlate.o +libhijack-priv-y += dbg_handler.o + liblkl-hijack-y += preload.o -liblkl-hijack-y += hijack.o -liblkl-hijack-y += init.o -liblkl-hijack-y += xlate.o -liblkl-hijack-y += dbg_handler.o liblkl-zpoline-y += zpoline.o -liblkl-zpoline-y += hijack.o -liblkl-zpoline-y += init.o -liblkl-zpoline-y += xlate.o -liblkl-zpoline-y += dbg_handler.o # -std=gnu23/c23 fails due to HOST_CALL (*host_##name)() CFLAGS_hijack.o += -std=gnu11