diff --git a/repos/libports/lib/mk/solo5.mk b/repos/libports/lib/mk/solo5.mk
index 1b0648c57d..20da4ab8f2 100644
--- a/repos/libports/lib/mk/solo5.mk
+++ b/repos/libports/lib/mk/solo5.mk
@@ -12,5 +12,4 @@ INC_DIR += $(SOLO5_PORT_DIR)/src/lib/solo5/bindings
INC_DIR += $(SOLO5_PORT_DIR)/include/solo5
INC_DIR += $(REP_DIR)/include/solo5
-vpath %.cc $(SOLO5_PORT_DIR)/src/lib/solo5/bindings/genode
-vpath %.cc $(REP_DIR)/src/lib/solo5/bindings/genode
+vpath bindings.cc $(SOLO5_PORT_DIR)/src/lib/solo5/bindings/genode
diff --git a/repos/libports/ports/solo5.hash b/repos/libports/ports/solo5.hash
index 730fe9bb43..35076bb9c1 100644
--- a/repos/libports/ports/solo5.hash
+++ b/repos/libports/ports/solo5.hash
@@ -1 +1 @@
-38981f1a735dfaa4bffc241db5d3b31e2b47163c
+9d1dcd38b2f71a7e8062ceb13072d17ec725a536
diff --git a/repos/libports/ports/solo5.port b/repos/libports/ports/solo5.port
index e384b6f957..efe35889b5 100644
--- a/repos/libports/ports/solo5.port
+++ b/repos/libports/ports/solo5.port
@@ -2,11 +2,11 @@ LICENSE := ISC
VERSION := HEAD
DOWNLOADS := solo5.archive
-OWNER := Solo5
+OWNER := ehmry
REPO := solo5
-REV := 58e855e149b069174b97176dcc0cba077e8a7440
+REV := 7dca1a677f548ea0bc911a209f34ceb55d8f10fd
URL(solo5) := https://github.com/$(OWNER)/$(REPO)/archive/$(REV).tar.gz
-SHA(solo5) := b90e727a75b447caa5668c4babf306e1d34c0d1534665900f09d559ef47366a9
+SHA(solo5) := 87a8e8e047bc6fffe0384f1cbb2bfde1e4c88c545287899be29444ec9a4d6b95
DIR(solo5) := src/lib/solo5
DIRS := include/solo5
diff --git a/repos/libports/recipes/pkg/test-solo5/runtime b/repos/libports/recipes/pkg/test-solo5/runtime
index 2514e8743f..09175d3d20 100644
--- a/repos/libports/recipes/pkg/test-solo5/runtime
+++ b/repos/libports/recipes/pkg/test-solo5/runtime
@@ -59,7 +59,7 @@
-
+
diff --git a/repos/libports/run/solo5.run b/repos/libports/run/solo5.run
index 9332bb3b89..8b5e3b3c60 100644
--- a/repos/libports/run/solo5.run
+++ b/repos/libports/run/solo5.run
@@ -13,7 +13,10 @@ create_boot_directory
import_from_depot \
[depot_user]/src/[base_src] \
[depot_user]/src/init \
+ [depot_user]/src/nic_loopback \
+ [depot_user]/src/ram_block \
[depot_user]/src/rtc_drv \
+ [depot_user]/src/sequence \
append config {
@@ -58,14 +61,14 @@ append config {
-
+
-
+
}
if { ![get_cmd_switch --autopilot] || ![have_include "power_on/qemu"] } {
@@ -84,16 +87,10 @@ append config {
install_config $config
build {
- app/sequence
- server/nic_loopback
- server/ram_block
test/solo5
}
build_boot_image {
- nic_loopback
- ram_block
- sequence
solo5.lib.so
solo5-test_blk
solo5-test_fpu
diff --git a/repos/libports/run/solo5_ssp.run b/repos/libports/run/solo5_ssp.run
new file mode 100644
index 0000000000..658dc2bc74
--- /dev/null
+++ b/repos/libports/run/solo5_ssp.run
@@ -0,0 +1,51 @@
+if {![have_spec 64bit]} {
+ puts "\nSolo5 requires a 64bit architecture\n"
+ exit 0
+}
+
+create_boot_directory
+
+import_from_depot \
+ [depot_user]/src/[base_src] \
+ [depot_user]/src/init \
+
+append config {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+install_config $config
+
+build {
+ test/solo5
+}
+
+build_boot_image {
+ solo5.lib.so
+ solo5-test_ssp
+}
+
+append qemu_args " -nographic "
+
+run_genode_until {Error: stack protector check failed} 20
diff --git a/repos/libports/src/test/solo5/ssp/target.mk b/repos/libports/src/test/solo5/ssp/target.mk
new file mode 100644
index 0000000000..c52248b9b9
--- /dev/null
+++ b/repos/libports/src/test/solo5/ssp/target.mk
@@ -0,0 +1 @@
+include $(REP_DIR)/src/test/solo5/test.inc
diff --git a/repos/libports/src/test/solo5/test.inc b/repos/libports/src/test/solo5/test.inc
index 7a7fa3aaad..d7deb0e0d3 100644
--- a/repos/libports/src/test/solo5/test.inc
+++ b/repos/libports/src/test/solo5/test.inc
@@ -1,7 +1,9 @@
TEST_NAME := test_$(subst $(REP_DIR)/src/test/solo5/,,$(PRG_DIR))
TARGET = solo5-$(TEST_NAME)
-LIBS += solo5
+LIBS += base solo5
+
+CC_OPT += -fstack-protector-strong
SRC_C += $(TEST_NAME).c