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


Reply via email to