Differences From
Artifact [582c735deb]:
- Executable file
global/common.sh
— part of check-in
[e50a476efe]
at
2019-08-22 02:52:20
on branch trunk
— removed sneaky segfault in x86-64 syscall fn where %r8 (the register that contains the pointer to the syscall arguments from the C syscall wrapper, which need to be copied into the correct registers before the kernel is invoked) gets overwritten if the syscall valency > 5, because of overlapping ccall and syscall ABI argument registers - r8 is clobbered by argument 5 and any further attempts to use it as a ptr segfault at best. also modified the report function so that it immediate cancels compilation if a sub-process reports failure. changed allocator function signatures so they can return a condition code if the kernel reports an error; updated example code so it compiles and runs without fault.
(user:
lexi,
size: 1780)
[annotate]
[blame]
[check-ins using]
4 4 check() {
5 5 var=$1
6 6 test "${!var}" == "" || return 0
7 7 say "we were not able to detect a default value for the configuration variable \$$var. please set this variable to $2 and try again."
8 8 exit 1
9 9 }
10 10
11 -test "$to" = "" && {
12 - say "\$to environment variable must be set to your build directory - are you running this script by hand? run [1m./build.sh[m in the root directory instead!"
13 - exit 2
14 -}
15 -
16 11 reqpack() {
17 12 if ! has "$1"; then
18 13 say "to $2 for [1mlibk[m, install the [1m$1[m package and try again"
19 14 exit 3
20 15 fi
21 16 }
22 17