···11-diff --git a/toolchain/cc.in b/toolchain/cc.in
22-index 337562a..0ec9315 100644
33---- a/toolchain/cc.in
44-+++ b/toolchain/cc.in
55-@@ -30,9 +30,9 @@
66- # symbols.
77-88- prog="$(basename $0)"
99--I="$(dirname $0)/../include"
1010-+I="$(realpath $0 | xargs dirname)/../include"
1111- [ ! -d "${I}" ] && echo "$prog: Could not determine include path" 1>&2 && exit 1
1212--L="$(dirname $0)/../lib/@@CONFIG_TARGET_TRIPLE@@"
1313-+L="$(realpath $0 | xargs dirname)/../lib/@@CONFIG_TARGET_TRIPLE@@"
1414- [ ! -d "${L}" ] && echo "$prog: Could not determine library path" 1>&2 && exit 1
1515- # we can't really tell if 'cc' is called with no input, but work around the
1616- # most obvious cases and stop them from "succeeding" and producing an "a.out"
1717-diff --git a/toolchain/ld.in b/toolchain/ld.in
1818-index 01dffa8..13dca2c 100644
1919---- a/toolchain/ld.in
2020-+++ b/toolchain/ld.in
2121-@@ -28,7 +28,7 @@
2222- # linking a unikernel. No default for ABI is provided, as it is expected that a
2323- # caller directly using 'ld' knows what they are doing.
2424-2525--L="$(dirname $0)/../lib/@@CONFIG_TARGET_TRIPLE@@"
2626-+L="$(realpath $0 | xargs dirname)/../lib/@@CONFIG_TARGET_TRIPLE@@"
2727- [ ! -d "${L}" ] && echo "$0: Could not determine library path" 1>&2 && exit 1
2828- # ld accepts -z solo5-abi=ABI, but does not provide a default ABI
2929- # this is intentional
-22
pkgs/os-specific/solo5/test_sleep.patch
···11-diff --git a/tests/test_time/test_time.c b/tests/test_time/test_time.c
22-index 931500b..cde64ad 100644
33---- a/tests/test_time/test_time.c
44-+++ b/tests/test_time/test_time.c
55-@@ -110,7 +110,8 @@ int solo5_app_main(const struct solo5_start_info *si __attribute__((unused)))
66- /*
77- * Verify that we did not sleep less than requested (see above).
88- */
99-- if (delta < NSEC_PER_SEC) {
1010-+ const solo5_time_t slack = 100000000ULL;
1111-+ if (delta < NSEC_PER_SEC - slack) {
1212- printf("[%d] ERROR: slept too little (expected at least %llu ns)\n",
1313- iters, (unsigned long long)NSEC_PER_SEC);
1414- failed = true;
1515-@@ -120,7 +121,6 @@ int solo5_app_main(const struct solo5_start_info *si __attribute__((unused)))
1616- * Verify that we did not sleep more than requested, within reason
1717- * (scheduling delays, general inaccuracy of the current timing code).
1818- */
1919-- const solo5_time_t slack = 100000000ULL;
2020- if (delta > (NSEC_PER_SEC + slack)) {
2121- printf("[%d] ERROR: slept too much (expected at most %llu ns)\n",
2222- iters, (unsigned long long)slack);