OpenBSD/sgi on octane2 - あ、うごいた

MPCONFにセットされたアドレスを確認していったら、なぜかMP_STACKADDR(1)に0x4000とか入ってた。

extern char *kstack;
MP_STACKADDR(1) = (unsigned long)(kstack + USPACE);

とかしてたのを

extern unsigned char kstack[];
MP_STACKADDR(1) = (unsigned long)(kstack + USPACE);

に書き換えたら正しくなった。
#指している先は別ファイルのunsigned char kstack[USPACE];なんだが

ああん?なぜ?どゆこと?
多分、kstack == 0x0になってたんだと思うんだけど、そんなことって起きるんだろうか。ようわからん。