diff --git a/ChangeLog b/ChangeLog index 79b571710a..206206a8b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2012-08-18 Mike Frysinger + + [BZ #9685] + * include/unistd.h (__have_pipe2): Change define into an extern int. + (__have_dup3): Likewise. + * socket/have_sock_cloexec.c: Include fcntl.h. + (__have_pipe2): New variable. + (__have_dup3): Likewise. + 2012-08-17 Mike Frysinger * sysdeps/unix/sysv/linux/nice.c: Adjust #include. diff --git a/include/unistd.h b/include/unistd.h index e4bff80fc7..9d74fb49e8 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -174,11 +174,8 @@ extern int __libc_pause (void); extern int __pause_nocancel (void) attribute_hidden; extern int __have_sock_cloexec; -/* At lot of other functionality became available at the same time as - SOCK_CLOEXEC. Avoid defining separate variables for all of them - unless it is really necessary. */ -#define __have_pipe2 __have_sock_cloexec -#define __have_dup3 __have_sock_cloexec +extern int __have_pipe2; +extern int __have_dup3; extern int __getlogin_r_loginuid (char *name, size_t namesize) attribute_hidden; diff --git a/socket/have_sock_cloexec.c b/socket/have_sock_cloexec.c index d57cbcfaad..8cf0959462 100644 --- a/socket/have_sock_cloexec.c +++ b/socket/have_sock_cloexec.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2008 Free Software Foundation, Inc. +/* Copyright (C) 2008-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,9 +15,18 @@ License along with the GNU C Library; if not, see . */ +#include #include #include #if defined SOCK_CLOEXEC && !defined __ASSUME_SOCK_CLOEXEC int __have_sock_cloexec; #endif + +#if defined O_CLOEXEC && !defined __ASSUME_PIPE2 +int __have_pipe2; +#endif + +#if defined O_CLOEXEC && !defined __ASSUME_DUP3 +int __have_dup3; +#endif