@Pentarctagon noticed in commit 9a34cbb3291 that $UID isn't set when
/bin/sh isn't GNU Bash. `id -u` is specified by POSIX:
https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/id.html
Also move `-xe` to a `set` command (in case someone runs scripts with
`sh path/to/script` instead of `path/to/script`) and add `set -u` to
complain more loudly about such unset variables.
The gcc-9 shipped with the Scout runtime forces the use of -static-libstdc++ which is what allows this to work. However, LTO is not yet able to be enabled since as of right now it simply crashes immediately with `free(): invalid pointer`.