Spent 6+ hours debugging why an Arm board that that I installed Debian on wasn't booting. In the end it turned out that /home and swap were not mounting because the kernel for this board did not have CONFIG_FHANDLE enabled.
If a Linux kernel has a /proc/config.gz psuedo file it would be trivial to search that for kernel config items that systemd depends on.
Somewhere deep in the internals of systemd some system call must have been failing because of the lack of the CONFIG_FHANDLE feature. That failure should have been reported up the stack.
Please see README before building systemd or the kernel for the use with systemd. This is documented there. When building such a low-level component it's essential to read what's documented there.
I did *not* build systemd from source and hence did not read the readme.
I had an Ubuntu 14.04 install for this board (Odroid xu3) on a micro SD card and from that setup I used debootstrap to install Debian on an SSD drive, using the kernel from Ubuntu.
Seeing as I installed systemd as a package (along with over 100 other packages), at what point would I read the readme file that ships in the source code tarball?