mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 08:03:01 +09:00
lkl: fix hijack and zpoline parallel builds
This is a follow up change for commit 3c97822a40 ("lkl: add tests
build barrier") tracked via https://github.com/lkl/linux/issues/558.
The hijack and zpoline libraries also share object files, so need extra
logic to avoid parallel build failures.
Add a new intermediate libhijack-priv-in.o prerequisite for the hijack
libraries, avoiding the .WAIT target which breaks make libraries_install
on older (e.g. 4.2.1) versions of make.
The existing liblkl$(SOSUF) target is currently unmatched, so fix it and
use it as a linker target which omits libhijack-priv-in.o.
Signed-off-by: David Disseldorp <ddiss@suse.de>
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user