From 3e848dff10c92b3425cbd38cf2d2fd7b00a8b10a Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 10 Apr 2019 13:51:32 +0200 Subject: [PATCH] solo5: update bindings Update the Solo5 upstream to accomadate changes to the Block session and stack protection support in the base library. Ref #3275 Ref #3283 --- repos/libports/lib/mk/solo5.mk | 3 +- repos/libports/ports/solo5.hash | 2 +- repos/libports/ports/solo5.port | 6 +-- repos/libports/recipes/pkg/test-solo5/runtime | 2 +- repos/libports/run/solo5.run | 13 ++--- repos/libports/run/solo5_ssp.run | 51 +++++++++++++++++++ repos/libports/src/test/solo5/ssp/target.mk | 1 + repos/libports/src/test/solo5/test.inc | 4 +- 8 files changed, 66 insertions(+), 16 deletions(-) create mode 100644 repos/libports/run/solo5_ssp.run create mode 100644 repos/libports/src/test/solo5/ssp/target.mk 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