On Thu, Jul 16, 2015 at 02:03:57PM +0200, Michael Biebl wrote: > Am 16.07.2015 um 10:05 schrieb Michael Cree: > > Systemd FTBFS on alpha due to missing syscalls. Build log at: > > http://buildd.debian-ports.org/status/package.php?p=systemd&suite=sid > > Looks like systemd has been failing to build for a while now: > > http://buildd.debian-ports.org/status/logs.php?pkg=systemd&arch=alpha
Indeed. > Thanks for the explanation and the link to the patch, Michael. Have you > tested, that systemd builds successfully with this patch? Not at the time but I have done so now. I attach an updated patch as the Gentoo provided patch expected the missing.h file to be in a different place than where it is located in the Debian source. As the kernel in unstable (4.0.8) does not have the newest syscalls wired up on Alpha (the one in experimental does have them) I further patched systemd to have the Alpha syscall numbers for memfd_create and getrandom (that patch not attached here as waiting for the upload of linux 4.1 to unstable is a better solution). That built successfully and now installed into an Alpha with a self-compiled 4.1 kernel (to get those latest syscalls). For some reason systemd can't automount the disks from /etc/fstab (it wasn't doing that before so this is not new to this systemd version) and drops into a shell, at which point I can mount the disks and it continues to boot up fine after that. So seems to be working. > Can you file the issue upstream as well at > https://github.com/systemd/systemd/issues No. I do not agree with the github terms and conditions so do not and will not have an account there. Unfortunately, it seems one to has to have an account to file a bug report on github. Cheers Michael.
Index: systemd-222/src/basic/missing.h =================================================================== --- systemd-222.orig/src/basic/missing.h +++ systemd-222/src/basic/missing.h @@ -945,7 +945,11 @@ static inline int raw_clone(unsigned lon } static inline pid_t raw_getpid(void) { +#if defined(__alpha__) + return (pid_t) syscall(__NR_getxpid); +#else return (pid_t) syscall(__NR_getpid); +#endif } #if !HAVE_DECL_RENAMEAT2