8f50862be5
Use direct syscall::openat with ns_fd to get pipe READ end, then syscall::dup with 'write' to get WRITE end. This avoids the redox_rt::sys::open bug where step 2 (openat_into_posix on the pipe read end) consumes has_run_dup, leaving the subsequent dup() unable to get the write end.