diff options
Diffstat (limited to 'tools/include/nolibc/sys.h')
| -rw-r--r-- | tools/include/nolibc/sys.h | 13 | 
1 files changed, 13 insertions, 0 deletions
| diff --git a/tools/include/nolibc/sys.h b/tools/include/nolibc/sys.h index 295e71d34aba..90aadad31f6c 100644 --- a/tools/include/nolibc/sys.h +++ b/tools/include/nolibc/sys.h @@ -238,6 +238,19 @@ static __attribute__((unused))  int sys_dup2(int old, int new)  {  #if defined(__NR_dup3) +	int ret, nr_fcntl; + +#ifdef __NR_fcntl64 +	nr_fcntl = __NR_fcntl64; +#else +	nr_fcntl = __NR_fcntl; +#endif + +	if (old == new) { +		ret = my_syscall2(nr_fcntl, old, F_GETFD); +		return ret < 0 ? ret : old; +	} +  	return my_syscall3(__NR_dup3, old, new, 0);  #elif defined(__NR_dup2)  	return my_syscall2(__NR_dup2, old, new); | 
