Fix definition and testing of S_ISSOCK.

This commit is contained in:
Ulrich Drepper 2010-04-04 01:51:01 -07:00
parent 9e37946dba
commit 952df0afdc
3 changed files with 11 additions and 5 deletions

View File

@ -1,5 +1,10 @@
2010-04-04 Ulrich Drepper <drepper@redhat.com>
* conform/data/sys/stat.h-data: Fix testing of S_IS* macros.
[BZ #11279]
* io/sys/stat.h: Always define S_ISSOCK for XPG6 and up.
[BZ #11287]
* csu/Makefile ($(objpfx)version-info.h): Handle newer kernel headers
which don't define UTS_RELEASE.

View File

@ -66,15 +66,14 @@ constant S_ISGID
constant S_ISVTX
#endif
#if !defined POSIX && !defined POSIX2008
macro S_IFMT
#if !defined POSIX
macro S_ISBLK
macro S_ISCHR
macro S_ISDIR
macro S_ISFIFO
macro S_ISREG
macro S_ISLNK
macro S_IFSOCK
macro S_ISSOCK
#endif
// How to represent optional tests?

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1995-2004, 2005, 2006, 2007, 2009
/* Copyright (C) 1991, 1992, 1995-2004, 2005, 2006, 2007, 2009, 2010
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -143,9 +143,11 @@ __BEGIN_DECLS
# define S_ISLNK(mode) 0
#endif
#if (defined __USE_BSD || defined __USE_UNIX98) \
#if (defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K) \
&& defined __S_IFSOCK
# define S_ISSOCK(mode) __S_ISTYPE((mode), __S_IFSOCK)
#elif defined __USE_XOPEN2K
# define S_ISSOCK(mode) 0
#endif
/* These are from POSIX.1b. If the objects are not implemented using separate