diff --git a/linux-user/strace.list b/linux-user/strace.list index a7eeaef99f..af3c6a0cce 100644 --- a/linux-user/strace.list +++ b/linux-user/strace.list @@ -1527,3 +1527,6 @@ #ifdef TARGET_NR_sync_file_range2 { TARGET_NR_sync_file_range2, "sync_file_range2", NULL, NULL, NULL }, #endif +#ifdef TARGET_NR_pipe2 +{ TARGET_NR_pipe2, "pipe2", NULL, NULL, NULL }, +#endif diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 7d149a1570..07823e176b 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -5595,7 +5595,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, break; #ifdef TARGET_NR_pipe2 case TARGET_NR_pipe2: - ret = do_pipe(cpu_env, arg1, arg2, 1); + ret = do_pipe(cpu_env, arg1, + target_to_host_bitmask(arg2, fcntl_flags_tbl), 1); break; #endif case TARGET_NR_times: