diff --git a/repos/dde_linux/src/drivers/wifi/target.mk b/repos/dde_linux/src/drivers/wifi/target.mk
index dd8be379e4..ac38aef2a8 100644
--- a/repos/dde_linux/src/drivers/wifi/target.mk
+++ b/repos/dde_linux/src/drivers/wifi/target.mk
@@ -4,6 +4,7 @@ TARGET = wifi_drv
SRC_CC = main.cc wpa.cc
LIBS = base wifi iwl_firmware
LIBS += wpa_supplicant libc nic_driver
+LIBS += libcrypto libssl wpa_driver_nl80211
# needed for firmware.h
INC_DIR += $(REP_DIR)/src/lib/wifi/include
diff --git a/repos/gems/lib/mk/vfs_pipe.mk b/repos/gems/lib/mk/vfs_pipe.mk
index 9b3ef9a3d9..5e9ed0aca5 100644
--- a/repos/gems/lib/mk/vfs_pipe.mk
+++ b/repos/gems/lib/mk/vfs_pipe.mk
@@ -1,5 +1,7 @@
SRC_CC = plugin.cc
+LIBS = base
+
vpath %.cc $(REP_DIR)/src/lib/vfs/pipe
SHARED_LIB = yes
diff --git a/repos/gems/src/app/cbe_tester/target.mk b/repos/gems/src/app/cbe_tester/target.mk
index 8f557e2fd0..cef3fcb7c6 100644
--- a/repos/gems/src/app/cbe_tester/target.mk
+++ b/repos/gems/src/app/cbe_tester/target.mk
@@ -8,5 +8,6 @@ SRC_CC += vfs_utilities.cc
INC_DIR := $(PRG_DIR)
LIBS += base cbe_cxx cbe_init_cxx cbe_check_cxx cbe_dump_cxx vfs
+LIBS += spark libsparkcrypto
CC_CXX_WARN_STRICT_CONVERSION =
diff --git a/repos/gems/src/lib/vfs/pipe/target.mk b/repos/gems/src/lib/vfs/pipe/target.mk
index d2d34db6b9..8961054737 100644
--- a/repos/gems/src/lib/vfs/pipe/target.mk
+++ b/repos/gems/src/lib/vfs/pipe/target.mk
@@ -1,2 +1,2 @@
TARGET = dummy-vfs_pipe
-LIBS = vfs_pipe
+LIBS = vfs_pipe base
diff --git a/repos/gems/src/server/tcp_terminal/target.mk b/repos/gems/src/server/tcp_terminal/target.mk
index 9ec8c943f2..09441f295a 100644
--- a/repos/gems/src/server/tcp_terminal/target.mk
+++ b/repos/gems/src/server/tcp_terminal/target.mk
@@ -1,5 +1,5 @@
TARGET = tcp_terminal
SRC_CC = main.cc
-LIBS = libc
+LIBS = libc base
CC_CXX_WARN_STRICT =
diff --git a/repos/gems/src/server/terminal_mux/target.mk b/repos/gems/src/server/terminal_mux/target.mk
index c388b36f5c..63465f1998 100644
--- a/repos/gems/src/server/terminal_mux/target.mk
+++ b/repos/gems/src/server/terminal_mux/target.mk
@@ -1,6 +1,6 @@
TARGET = terminal_mux
SRC_CC = main.cc ncurses.cc
-LIBS = libc ncurses
+LIBS = libc ncurses base
INC_DIR += $(PRG_DIR)
CC_CXX_WARN_STRICT =
diff --git a/repos/gems/src/test/aes_cbc_4k/target.mk b/repos/gems/src/test/aes_cbc_4k/target.mk
index aabce7d4b6..2b45151acd 100644
--- a/repos/gems/src/test/aes_cbc_4k/target.mk
+++ b/repos/gems/src/test/aes_cbc_4k/target.mk
@@ -1,3 +1,3 @@
TARGET := test-aes_cbc_4k
SRC_CC := main.cc
-LIBS += base aes_cbc_4k
+LIBS += base aes_cbc_4k libcrypto
diff --git a/repos/gems/src/test/decorator_stress/target.mk b/repos/gems/src/test/decorator_stress/target.mk
index a10aede1a2..d07afca8fc 100644
--- a/repos/gems/src/test/decorator_stress/target.mk
+++ b/repos/gems/src/test/decorator_stress/target.mk
@@ -1,8 +1,7 @@
TARGET = test-decorator_stress
SRC_CC = main.cc
-LIBS = libc libm
+LIBS = libc libm base
INC_DIR += $(PRG_DIR)
-
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/run/ieee754.run b/repos/libports/run/ieee754.run
index e9d67d7028..d9680819ca 100644
--- a/repos/libports/run/ieee754.run
+++ b/repos/libports/run/ieee754.run
@@ -25,7 +25,7 @@ install_config {
-
+
@@ -33,7 +33,7 @@ install_config {
-
+
@@ -41,7 +41,7 @@ install_config {
-
+
@@ -49,7 +49,7 @@ install_config {
-
+
@@ -58,7 +58,7 @@ install_config {
}
-build_boot_image "core ld.lib.so init test-ieee754 libc.lib.so libm.lib.so vfs.lib.so"
+build_boot_image "core ld.lib.so init test-ieee754 posix.lib.so libc.lib.so libm.lib.so vfs.lib.so"
append qemu_args "-nographic "
diff --git a/repos/libports/src/test/fatfs_block_io/target.mk b/repos/libports/src/test/fatfs_block_io/target.mk
index e3c7c0e44f..94a07f4401 100644
--- a/repos/libports/src/test/fatfs_block_io/target.mk
+++ b/repos/libports/src/test/fatfs_block_io/target.mk
@@ -1,9 +1,9 @@
TARGET = test-fatfs_block_io
-LIBS = fatfs_block libc
-SRC_C = app4.c
+LIBS = fatfs_block libc base
+SRC_C = app4.c
SRC_CC = component.cc
-CC_DEF += -D_MAX_SS=FF_MAX_SS
+CC_DEF += -D_MAX_SS=FF_MAX_SS
CC_WARN += -Wno-pointer-to-int-cast
FATFS_PORT_DIR = $(call select_from_ports,fatfs)
diff --git a/repos/libports/src/test/ieee754/component.cc b/repos/libports/src/test/ieee754/component.cc
deleted file mode 100644
index 26d0e08fda..0000000000
--- a/repos/libports/src/test/ieee754/component.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-#include
-#include
-
-extern int main (int argc, char* argv[]);
-
-void Libc::Component::construct(Libc::Env &env)
-{
- env.exec_static_constructors();
-
- Genode::Heap heap(env.ram(), env.rm());
-
- int r = 0;
- Libc::with_libc([&r] () { r = main(0, 0); });
- env.parent().exit(r);
-}
diff --git a/repos/libports/src/test/ieee754/target.mk b/repos/libports/src/test/ieee754/target.mk
index beee844132..536f4b10b6 100644
--- a/repos/libports/src/test/ieee754/target.mk
+++ b/repos/libports/src/test/ieee754/target.mk
@@ -1,4 +1,3 @@
TARGET = test-ieee754
-LIBS = libc libm
+LIBS = posix
SRC_C = tst-ieee754.c
-SRC_CC = component.cc
diff --git a/repos/libports/src/test/libc_integration/target.mk b/repos/libports/src/test/libc_integration/target.mk
index e4256efd4d..b8f5c7be11 100644
--- a/repos/libports/src/test/libc_integration/target.mk
+++ b/repos/libports/src/test/libc_integration/target.mk
@@ -3,6 +3,7 @@ TARGET := test-libc_integration
LIBS += libc
LIBS += posix
LIBS += stdcxx
+LIBS += base
LIBS += vfs
LIBS += vfs_pipe
diff --git a/repos/libports/src/test/libc_with_libc/target.mk b/repos/libports/src/test/libc_with_libc/target.mk
index 49b3e5c277..3480547f5f 100644
--- a/repos/libports/src/test/libc_with_libc/target.mk
+++ b/repos/libports/src/test/libc_with_libc/target.mk
@@ -1,5 +1,5 @@
TARGET = test-libc_with_libc
SRC_CC = main.cc
-LIBS = libc
+LIBS = libc base
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/test/lwip/http_clnt/target.mk b/repos/libports/src/test/lwip/http_clnt/target.mk
index 159554bb77..eb6d251b07 100644
--- a/repos/libports/src/test/lwip/http_clnt/target.mk
+++ b/repos/libports/src/test/lwip/http_clnt/target.mk
@@ -1,5 +1,5 @@
TARGET = test-http_clnt
-LIBS = libc
+LIBS = libc base
SRC_CC = main.cc
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/test/lwip/http_srv/target.mk b/repos/libports/src/test/lwip/http_srv/target.mk
index 1d490a2e5c..e54068cd6d 100644
--- a/repos/libports/src/test/lwip/http_srv/target.mk
+++ b/repos/libports/src/test/lwip/http_srv/target.mk
@@ -1,5 +1,5 @@
TARGET = test-lwip_httpsrv
-LIBS = libc
+LIBS = libc base
SRC_CC = main.cc
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/test/lwip/udp/client/target.mk b/repos/libports/src/test/lwip/udp/client/target.mk
index 2b0a801ff7..21db317f7c 100644
--- a/repos/libports/src/test/lwip/udp/client/target.mk
+++ b/repos/libports/src/test/lwip/udp/client/target.mk
@@ -1,5 +1,5 @@
TARGET = test-lwip-udp-client
-LIBS = libc
+LIBS = libc base
SRC_CC = main.cc
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/test/lwip/udp/server/target.mk b/repos/libports/src/test/lwip/udp/server/target.mk
index 9a6fc39ff1..4fa26aab6a 100644
--- a/repos/libports/src/test/lwip/udp/server/target.mk
+++ b/repos/libports/src/test/lwip/udp/server/target.mk
@@ -1,5 +1,5 @@
TARGET = test-lwip-udp-server
-LIBS = libc
+LIBS = libc base
SRC_CC = main.cc
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/test/memcpy/target.mk b/repos/libports/src/test/memcpy/target.mk
index 7d7de2a6cb..2fd0290686 100644
--- a/repos/libports/src/test/memcpy/target.mk
+++ b/repos/libports/src/test/memcpy/target.mk
@@ -1,5 +1,5 @@
TARGET = test-memcpy
SRC_CC = main.cc
-LIBS += libc
+LIBS += libc base
CC_CXX_WARN_STRICT_CONVERSION =
diff --git a/repos/libports/src/test/mesa_demo/triangle_gl/target.mk b/repos/libports/src/test/mesa_demo/triangle_gl/target.mk
index a0ae491de7..5788888fbd 100644
--- a/repos/libports/src/test/mesa_demo/triangle_gl/target.mk
+++ b/repos/libports/src/test/mesa_demo/triangle_gl/target.mk
@@ -1,5 +1,5 @@
TARGET = triangle_gl
-LIBS = libm libc egl mesa
+LIBS = base libm libc egl mesa
SRC_C = eglut.c main.c
SRC_CC = eglut_genode.cc
diff --git a/repos/libports/src/test/moon/target.mk b/repos/libports/src/test/moon/target.mk
index 44d333e707..e7b33ba5f3 100644
--- a/repos/libports/src/test/moon/target.mk
+++ b/repos/libports/src/test/moon/target.mk
@@ -1,5 +1,5 @@
TARGET = test-moon
-LIBS = luacxx libc
+LIBS = luacxx libc base
SRC_CC = main.cc
CC_CXX_WARN_STRICT =
diff --git a/repos/libports/src/test/smartcard/target.mk b/repos/libports/src/test/smartcard/target.mk
index ef459854bc..b5f058d7af 100644
--- a/repos/libports/src/test/smartcard/target.mk
+++ b/repos/libports/src/test/smartcard/target.mk
@@ -1,5 +1,5 @@
TARGET = test-smartcard
-LIBS = pcsc-lite posix
+LIBS = base pcsc-lite posix libusb ccid
SRC_CC = main.cc
vpath main.cc $(PRG_DIR)/..
diff --git a/repos/ports/src/app/gdb_monitor/target.mk b/repos/ports/src/app/gdb_monitor/target.mk
index 7a4cd722b0..9b0986f3c4 100644
--- a/repos/ports/src/app/gdb_monitor/target.mk
+++ b/repos/ports/src/app/gdb_monitor/target.mk
@@ -13,7 +13,7 @@ INC_DIR += $(GDB_CONTRIB_DIR)/include \
$(PRG_DIR)/gdbsupport \
$(PRG_DIR)
-LIBS = stdcxx libc \
+LIBS = base stdcxx libc \
gdbserver_platform gdbserver_libc_support
# libiberty
diff --git a/repos/ports/src/virtualbox5/target.inc b/repos/ports/src/virtualbox5/target.inc
index 58d066b1ce..1637f16da6 100644
--- a/repos/ports/src/virtualbox5/target.inc
+++ b/repos/ports/src/virtualbox5/target.inc
@@ -22,7 +22,7 @@ LIBS += virtualbox5-bios virtualbox5-recompiler virtualbox5-runtime \
LIBS += libiconv
-LIBS += qemu-usb
+LIBS += qemu-usb libyuv
INC_DIR += $(call select_from_repositories,src/lib/libc)
diff --git a/repos/ports/src/virtualbox6/target.mk b/repos/ports/src/virtualbox6/target.mk
index 31deef08fd..8ac04a1d9d 100644
--- a/repos/ports/src/virtualbox6/target.mk
+++ b/repos/ports/src/virtualbox6/target.mk
@@ -17,7 +17,7 @@ SRC_CC += HostServices/common/message.cpp services/services.cc
LIBS += base
LIBS += stdcxx
LIBS += libiconv
-LIBS += qemu-usb
+LIBS += qemu-usb libyuv
LIBS += mesa
CC_OPT_main = -Wno-multistatement-macros