On 24 Jan 2021, at 00:41, Damien Zammit <dam...@zamaudio.com> wrote: > > Hi, > > On 24/1/21 11:28 am, Samuel Thibault wrote: >> Why so? We do support SSE*. >> >> (glibc 2.33 will even use them automatically for memcpy etc. thanks to >> ifunc support recently getting enabled) > > OK, I ran the failing test in GDB: > > initmaster(int f UNUSED) > { > #ifndef VMS > # ifdef POSIX > tcflush(f, TCIOFLUSH); > # else > # ifdef TIOCFLUSH > (void)ioctl(f, TIOCFLUSH, (char *) 0);
It seems only QNX ends up setting POSIX for some inexplicable reason. Since Hurd defines TIOCFLUSH, it ends up calling this line. But TIOCFLUSH takes an int * pointing at flags, so when converting the ioctl into an RPC it'll dereference the null pointer and segfault. It should either pass a pointer to an int with the right flags or just use tcflush like a sane program. NB: Neither Linux nor FreeBSD define/implement TIOCFLUSH. Jess