Topic: Experience trying to compile HyperBK and HyperbolaBSD userland
(note: this was done in Hyperbola GNU+LinuxLibre, the latest stable version. Not trying to pressure the Hyperbola team, I just hope this throught documentation of what I've faced can be helpful)
I've managed to compile a kernel and it is 18 megabytes in size, though I had to modify the ld.script file in the compilation directory because it contains PT_OPENBSD_RANDOMIZE (which gave me an "unknown phdr type" error), so I changed PT_OPENBSD_RANDOMIZE to just PT_LOAD and the kernel managed to compile (this workaround might break something (or everything) within the kernel, I'm not sure, but atleast I got a binary)
I've also noticed that the "make install" script for the kernel seems to be directed at (Open)BSD-based systems and therefore it doesn't work inside Hyperbola GNU+LinuxLibre, so it might be a good idea to add a comment in the documentation mentioning that the make install script is not compatible with GNU+Linux systems, so that people who are compiling from GNU+Linux won't get confused
Now, I also tried to compile the userland more than once; at first I put the source for the userland inside the /usr/src directory of my Hyperbola GNU+LinuxLibre installation, but later I decided to make a separate "OpenBSD data" partition through the cfdisk utility, and I added an ext2 filesystem to the partition through the mkfs utility (which is deprecated and not meant for OpenBSD partitions, so perhaps I didn't think this one through); I then made an /usr/src directory for the "OpenBSD data" partition and I put the source for the userland there (thought I had to get as close to an HyperbolaBSD environment as possible). Now, I didn't have nearly as much success trying to compile the userland as compiling the kernel, and one of the reasons for that was that the /usr/include/sys directory within my Hyperbola GNU+LinuxLibre installation did not have the C headers requested by the sources of HyperbolaBSD's userland. I tried a workaround by temporarily overwriting my /user/include/sys directory with the sys directory included in the HyperBK source (which seems to have some of the C headers I was missing).
Then there's something weird that happened when I ran the "bmake obj" command. Maybe I should send this to Hyperbola's issue tracker, but I'm not sure if this is really a bug or if I'm just doing something wrong, plus I can't actually log into the issue tracker (I get Error 23, which claims that my user is not permitted to log in). What happens is: "bmake obj" can result in 2 different outcomes: 1: it gives a chown error ("chown: invalid user: build:wobj") or 2: it makes directories like there's no tomorrow, and the number of forward slashes keeps increasing (not sure if this intended or not). The output of the "bmake obj" command looks something like this (not sure if the name of the directories actually repeats itself, but I will represent them as if they do)
./foo
./foo2
.//foo
.//foo2
.///foo
.///foo2
.////foo
.////foo2
./////foo
./////foo2
.//////foo
.//////foo2
Not sure if this goes on for infinity or if it eventually stops.
Then there's also something about mtree; I'm not sure what mtree really is, but Makefile.cross tries to execute it. There's a manpage about mtree in my installation, and there are a bunch of files named "mtree" within /var/lib/pacman/local, but there's no mtree binary in my system that Makefile.cross can execute, so it errors out and ceases cross compilation. After doing some research, It appears that mtree is a program included in OpenBSD, though I'm not sure of its status in GNU+Linux.
Look at https://pst.moe/paste/hqdjuj?format=raw if you want to see the output of my last compilation attempt