This change introduces per-thread kernel stack canaries using
clang's `-mstack-protector-guard=tls` flag. Under this scheme, we
instruct the compiler to fetch the canary value through the `gs`
register, allowing us to store the canary value in `struct pcpu`.
N.B.: This revision depends on LLVM PR [[ https://github.com/llvm/llvm-project/pull/213107 | 213107 ]] since `clang` will not generate the proper `gs`-aware instrumentation on FreeBSD.