diff --git a/app/iscsi_tgt/Makefile b/app/iscsi_tgt/Makefile index 2083fc5e4..d38e73d98 100644 --- a/app/iscsi_tgt/Makefile +++ b/app/iscsi_tgt/Makefile @@ -52,15 +52,13 @@ ifeq ($(OS),Linux) SPDK_LIB_LIST += event_nbd nbd endif -LIBS += $(BLOCKDEV_MODULES_LINKER_ARGS) \ - $(COPY_MODULES_LINKER_ARGS) \ - $(SOCK_MODULES_LINKER_ARGS) +LIBS += $(ALL_MODULES_LINKER_ARGS) LIBS += $(SPDK_LIB_LINKER_ARGS) all : $(APP) @: -$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ENV_LIBS) $(BLOCKDEV_MODULES_FILES) $(COPY_MODULES_FILES) $(SOCK_MODULES_FILES) +$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ENV_LIBS) $(ALL_MODULES_FILES) $(LINK_C) clean : diff --git a/app/nvmf_tgt/Makefile b/app/nvmf_tgt/Makefile index adbeaf676..887c680b0 100644 --- a/app/nvmf_tgt/Makefile +++ b/app/nvmf_tgt/Makefile @@ -48,15 +48,13 @@ ifeq ($(OS),Linux) SPDK_LIB_LIST += event_nbd nbd endif -LIBS += $(BLOCKDEV_MODULES_LINKER_ARGS) \ - $(COPY_MODULES_LINKER_ARGS) \ - $(SOCK_MODULES_LINKER_ARGS) \ +LIBS += $(ALL_MODULES_LINKER_ARGS) \ $(SPDK_LIB_LINKER_ARGS) all : $(APP) @: -$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(SPDK_WHOLE_LIBS) $(BLOCKDEV_MODULES_FILES) $(COPY_MODULES_FILES) $(SOCK_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) +$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(SPDK_WHOLE_LIBS) $(ALL_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) $(LINK_C) clean : diff --git a/app/spdk_tgt/Makefile b/app/spdk_tgt/Makefile index b2cbb1dfe..fd23d552f 100644 --- a/app/spdk_tgt/Makefile +++ b/app/spdk_tgt/Makefile @@ -56,15 +56,13 @@ ifeq ($(OS),Linux) SPDK_LIB_LIST += event_nbd nbd endif -LIBS += $(BLOCKDEV_MODULES_LINKER_ARGS) \ - $(COPY_MODULES_LINKER_ARGS) \ - $(SOCK_MODULES_LINKER_ARGS) \ +LIBS += $(ALL_MODULES_LINKER_ARGS) \ $(SPDK_LIB_LINKER_ARGS) all: $(APP) @: -$(APP): $(OBJS) $(SPDK_LIB_FILES) $(SPDK_WHOLE_LIBS) $(BLOCKDEV_MODULES_FILES) $(COPY_MODULES_FILES) $(SOCK_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) +$(APP): $(OBJS) $(SPDK_LIB_FILES) $(SPDK_WHOLE_LIBS) $(ALL_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) $(LINK_C) clean: diff --git a/app/vhost/Makefile b/app/vhost/Makefile index bc3090241..b0ca7d85e 100644 --- a/app/vhost/Makefile +++ b/app/vhost/Makefile @@ -46,15 +46,13 @@ SPDK_LIB_LIST += jsonrpc json rpc bdev_rpc bdev scsi copy trace conf SPDK_LIB_LIST += thread util log log_rpc app_rpc SPDK_LIB_LIST += event_nbd nbd net sock -LIBS += $(BLOCKDEV_MODULES_LINKER_ARGS) \ - $(COPY_MODULES_LINKER_ARGS) \ - $(SOCK_MODULES_LINKER_ARGS) +LIBS += $(ALL_MODULES_LINKER_ARGS) LIBS += $(SPDK_LIB_LINKER_ARGS) all : $(APP) @: -$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ENV_LIBS) $(BLOCKDEV_MODULES_FILES) $(COPY_MODULES_FILES) $(SOCK_MODULES_FILES) +$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ENV_LIBS) $(ALL_MODULES_FILES) $(LINK_C) clean : diff --git a/examples/bdev/fio_plugin/Makefile b/examples/bdev/fio_plugin/Makefile index c31839159..7c571e1d1 100644 --- a/examples/bdev/fio_plugin/Makefile +++ b/examples/bdev/fio_plugin/Makefile @@ -45,14 +45,13 @@ LDFLAGS += -shared -rdynamic SPDK_LIB_LIST += thread util bdev conf copy rpc jsonrpc json log sock trace -LIBS += $(BLOCKDEV_MODULES_LINKER_ARGS) $(SOCK_MODULES_LINKER_ARGS) -LIBS += $(COPY_MODULES_LINKER_ARGS) +LIBS += $(ALL_MODULES_LINKER_ARGS) LIBS += $(SPDK_LIB_LINKER_ARGS) all: $(APP) @: -$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ENV_LIBS) $(BLOCKDEV_MODULES_FILES) +$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ENV_LIBS) $(ALL_MODULES_FILES) $(LINK_C) clean: diff --git a/examples/bdev/hello_world/Makefile b/examples/bdev/hello_world/Makefile index 12a90baa7..5bd27690b 100644 --- a/examples/bdev/hello_world/Makefile +++ b/examples/bdev/hello_world/Makefile @@ -41,13 +41,13 @@ C_SRCS := hello_bdev.c SPDK_LIB_LIST = event_bdev event_copy SPDK_LIB_LIST += bdev copy event thread util conf trace log jsonrpc json rpc sock -LIBS += $(COPY_MODULES_LINKER_ARGS) $(BLOCKDEV_MODULES_LINKER_ARGS) $(SOCK_MODULES_LINKER_ARGS) +LIBS += $(ALL_MODULES_LINKER_ARGS) LIBS += $(SPDK_LIB_LINKER_ARGS) all : $(APP) @: -$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(BLOCKDEV_MODULES_FILES) $(COPY_MODULES_FILES) $(SOCK_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) +$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ALL_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) $(LINK_C) clean : diff --git a/examples/blob/cli/Makefile b/examples/blob/cli/Makefile index 3212a7a8f..6670b06fb 100644 --- a/examples/blob/cli/Makefile +++ b/examples/blob/cli/Makefile @@ -43,15 +43,15 @@ SPDK_LIB_LIST += bdev copy event thread util conf trace \ log jsonrpc json rpc sock # Don't link bdev_lvol in blobcli - otherwise this utility cannot operate on an lvolstore -BLOCKDEV_MODULES_LIST := $(filter-out bdev_lvol,$(BLOCKDEV_MODULES_LIST)) +ALL_MODULES_LIST := $(filter-out bdev_lvol,$(ALL_MODULES_LIST)) -LIBS += $(COPY_MODULES_LINKER_ARGS) $(BLOCKDEV_MODULES_LINKER_ARGS) $(SOCK_MODULES_LINKER_ARGS) +LIBS += $(ALL_MODULES_LINKER_ARGS) LIBS += $(SPDK_LIB_LINKER_ARGS) all : $(APP) @: -$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(COPY_MODULES_FILES) $(BLOCKDEV_MODULES_FILES) $(SOCK_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) +$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ALL_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) $(LINK_C) clean : diff --git a/examples/blob/hello_world/Makefile b/examples/blob/hello_world/Makefile index 08f7b6880..6bcf61216 100644 --- a/examples/blob/hello_world/Makefile +++ b/examples/blob/hello_world/Makefile @@ -42,13 +42,13 @@ SPDK_LIB_LIST = event_bdev event_copy SPDK_LIB_LIST += bdev copy event thread util conf trace \ log jsonrpc json rpc sock -LIBS += $(COPY_MODULES_LINKER_ARGS) $(BLOCKDEV_MODULES_LINKER_ARGS) $(SOCK_MODULES_LINKER_ARGS) +LIBS += $(ALL_MODULES_LINKER_ARGS) LIBS += $(SPDK_LIB_LINKER_ARGS) all : $(APP) @: -$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(COPY_MODULES_FILES) $(BLOCKDEV_MODULES_FILES) $(SOCK_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) +$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ALL_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) $(LINK_C) clean : diff --git a/lib/rocksdb/spdk.rocksdb.mk b/lib/rocksdb/spdk.rocksdb.mk index c4a9b1ef6..b5eb9f356 100644 --- a/lib/rocksdb/spdk.rocksdb.mk +++ b/lib/rocksdb/spdk.rocksdb.mk @@ -56,8 +56,7 @@ endif SPDK_LIB_LIST = event_bdev event_copy SPDK_LIB_LIST += bdev copy event util conf trace log jsonrpc json rpc sock thread -AM_LINK += $(COPY_MODULES_LINKER_ARGS) $(BLOCKDEV_MODULES_LINKER_ARGS) -AM_LINK += $(SOCK_MODULES_LINKER_ARGS) +AM_LINK += $(ALL_MODULES_LINKER_ARGS) AM_LINK += $(SPDK_LIB_LINKER_ARGS) $(ENV_LINKER_ARGS) AM_LINK += $(SYS_LIBS) diff --git a/mk/spdk.modules.mk b/mk/spdk.modules.mk index 893fff65a..c6949629f 100644 --- a/mk/spdk.modules.mk +++ b/mk/spdk.modules.mk @@ -99,3 +99,11 @@ SOCK_MODULES_LINKER_ARGS = -Wl,--whole-archive \ -Wl,--no-whole-archive SOCK_MODULES_FILES = $(call spdk_lib_list_to_static_libs,$(SOCK_MODULES_LIST)) + +ALL_MODULES_LIST = $(BLOCKDEV_MODULES_LIST) $(COPY_MODULES_LIST) $(SOCK_MODULES_LIST) + +ALL_MODULES_LINKER_ARGS = -Wl,--whole-archive \ + $(ALL_MODULES_LIST:%=-lspdk_%) \ + -Wl,--no-whole-archive + +ALL_MODULES_FILES = $(call spdk_lib_list_to_static_libs,$(ALL_MODULES_LIST)) diff --git a/test/app/bdev_svc/Makefile b/test/app/bdev_svc/Makefile index 3475a5af0..da31653c4 100644 --- a/test/app/bdev_svc/Makefile +++ b/test/app/bdev_svc/Makefile @@ -48,15 +48,13 @@ ifeq ($(OS),Linux) SPDK_LIB_LIST += event_nbd nbd endif -LIBS += $(BLOCKDEV_MODULES_LINKER_ARGS) \ - $(COPY_MODULES_LINKER_ARGS) \ - $(SOCK_MODULES_LINKER_ARGS) \ +LIBS += $(ALL_MODULES_LINKER_ARGS) \ $(SPDK_LIB_LINKER_ARGS) all : $(APP) @: -$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(SPDK_WHOLE_LIBS) $(COPY_MODULES_FILES) $(BLOCKDEV_MODULES_FILES) $(SOCK_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) +$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(SPDK_WHOLE_LIBS) $(ALL_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) $(LINK_C) clean : diff --git a/test/bdev/bdevio/Makefile b/test/bdev/bdevio/Makefile index 016468159..259129f36 100644 --- a/test/bdev/bdevio/Makefile +++ b/test/bdev/bdevio/Makefile @@ -43,16 +43,14 @@ C_SRCS := bdevio.c SPDK_LIB_LIST = event_bdev event_copy SPDK_LIB_LIST += bdev copy event trace log conf thread util rpc jsonrpc json sock -LIBS += $(BLOCKDEV_MODULES_LINKER_ARGS) \ - $(COPY_MODULES_LINKER_ARGS) \ - $(SOCK_MODULES_LINKER_ARGS) +LIBS += $(ALL_MODULES_LINKER_ARGS) LIBS += $(SPDK_LIB_LINKER_ARGS) -lcunit all : $(APP) @: -$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(COPY_MODULES_FILES) $(BLOCKDEV_MODULES_FILES) $(SOCK_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) +$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ALL_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS) $(LINK_C) clean : diff --git a/test/bdev/bdevperf/Makefile b/test/bdev/bdevperf/Makefile index 8eef9bf6e..f161e7223 100644 --- a/test/bdev/bdevperf/Makefile +++ b/test/bdev/bdevperf/Makefile @@ -43,16 +43,13 @@ C_SRCS := bdevperf.c SPDK_LIB_LIST = event_bdev event_copy SPDK_LIB_LIST += bdev copy event trace log conf thread util rpc jsonrpc json sock -LIBS += $(BLOCKDEV_MODULES_LINKER_ARGS) \ - $(COPY_MODULES_LINKER_ARGS) \ - $(SOCK_MODULES_LINKER_ARGS) - +LIBS += $(ALL_MODULES_LINKER_ARGS) LIBS += $(SPDK_LIB_LINKER_ARGS) all : $(APP) @: -$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(BLOCKDEV_MODULES_FILES) $(COPY_MODULES_FILES) $(SOCK_MODULES_FILES) $(ENV_LIBS) +$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ALL_MODULES_FILES) $(ENV_LIBS) $(LINK_C) clean : diff --git a/test/blobfs/fuse/Makefile b/test/blobfs/fuse/Makefile index 541f6016c..b052150bf 100644 --- a/test/blobfs/fuse/Makefile +++ b/test/blobfs/fuse/Makefile @@ -44,14 +44,14 @@ SPDK_LIB_LIST = event_bdev event_copy SPDK_LIB_LIST += bdev copy event thread util conf trace \ log jsonrpc json rpc sock -LIBS += $(COPY_MODULES_LINKER_ARGS) $(BLOCKDEV_MODULES_LINKER_ARGS) $(SOCK_MODULES_LINKER_ARGS) +LIBS += $(ALL_MODULES_LINKER_ARGS) LIBS += $(SPDK_LIB_LINKER_ARGS) LIBS+= -L/usr/local/lib -lfuse3 all : $(APP) @: -$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(COPY_MODULES_FILES) $(BLOCKDEV_MODULES_FILES) $(ENV_LIBS) +$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ALL_MODULES_FILES) $(ENV_LIBS) $(LINK_C) clean : diff --git a/test/blobfs/mkfs/Makefile b/test/blobfs/mkfs/Makefile index 14abf1197..7785d829a 100644 --- a/test/blobfs/mkfs/Makefile +++ b/test/blobfs/mkfs/Makefile @@ -44,13 +44,13 @@ SPDK_LIB_LIST = event_bdev event_copy SPDK_LIB_LIST += bdev copy event thread util conf trace \ log jsonrpc json rpc sock -LIBS += $(COPY_MODULES_LINKER_ARGS) $(BLOCKDEV_MODULES_LINKER_ARGS) $(SOCK_MODULES_LINKER_ARGS) +LIBS += $(ALL_MODULES_LINKER_ARGS) LIBS += $(SPDK_LIB_LINKER_ARGS) all : $(APP) @: -$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(COPY_MODULES_FILES) $(BLOCKDEV_MODULES_FILES) $(SOCK_MODULES_FILES) $(ENV_LIBS) +$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ALL_MODULES_FILES) $(ENV_LIBS) $(LINK_C) clean :