about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2010-04-04 01:51:01 -0700
committerUlrich Drepper <drepper@redhat.com>2010-04-04 01:51:01 -0700
commit952df0afdca2333e9fae7d62a36077c348d2df93 (patch)
treee5c48e2a2b4eb47cf549e5022e967be0957a2eef
parent9e37946dba22b53c5108eef777e867f93c894502 (diff)
downloadglibc-952df0afdca2333e9fae7d62a36077c348d2df93.tar.gz
glibc-952df0afdca2333e9fae7d62a36077c348d2df93.tar.xz
glibc-952df0afdca2333e9fae7d62a36077c348d2df93.zip
Fix definition and testing of S_ISSOCK.
-rw-r--r--ChangeLog5
-rw-r--r--conform/data/sys/stat.h-data5
-rw-r--r--io/sys/stat.h6
3 files changed, 11 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 7db74b326c..a178be5de4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/conform/data/sys/stat.h-data b/conform/data/sys/stat.h-data
index df39fd3d81..b0e10a4c7f 100644
--- a/conform/data/sys/stat.h-data
+++ b/conform/data/sys/stat.h-data
@@ -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?
diff --git a/io/sys/stat.h b/io/sys/stat.h
index 733a927888..ac740cad38 100644
--- a/io/sys/stat.h
+++ b/io/sys/stat.h
@@ -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