aboutsummaryrefslogtreecommitdiffhomepage
path: root/compat
diff options
context:
space:
mode:
authorGravatar Blake Jones <blakej@foo.net>2013-08-16 16:38:14 +0200
committerGravatar David Bremner <bremner@debian.org>2013-08-23 17:53:17 +0200
commit31c7001c99e042c2722217410d8a913875d44149 (patch)
tree4b295c8e995a834ba8d0158b74ef1a1d4127a929 /compat
parente41cd1c518d7c5af565d4bed284bbd8a66366da1 (diff)
getpwuid: check for standards compliance (Solaris support)
Add checks to "configure" to see whether _POSIX_PTHREAD_SEMANTICS needs to be defined to get the right number of arguments in the prototypes for getpwuid_r(). Solaris' default implementation conforms to POSIX.1c Draft 6, rather than the final POSIX.1c spec. The standards-compliant version can be used by defining _POSIX_PTHREAD_SEMANTICS. This change also adds the file "compat/check_getpwuid.c", which configure uses to perform its check, and modifies compat/compat.h to define _POSIX_PTHREAD_SEMANTICS if configure detected it was needed. Signed-off-by: Vladimir Marek <vlmarek@volny.cz>
Diffstat (limited to 'compat')
-rw-r--r--compat/check_getpwuid.c11
-rw-r--r--compat/compat.h4
2 files changed, 15 insertions, 0 deletions
diff --git a/compat/check_getpwuid.c b/compat/check_getpwuid.c
new file mode 100644
index 00000000..c435eb89
--- /dev/null
+++ b/compat/check_getpwuid.c
@@ -0,0 +1,11 @@
+#include <stdio.h>
+#include <pwd.h>
+
+int main()
+{
+ struct passwd passwd, *ignored;
+
+ (void) getpwuid_r (0, &passwd, NULL, 0, &ignored);
+
+ return (0);
+}
diff --git a/compat/compat.h b/compat/compat.h
index b2e27368..c1ee0f93 100644
--- a/compat/compat.h
+++ b/compat/compat.h
@@ -30,6 +30,10 @@
extern "C" {
#endif
+#if !STD_GETPWUID
+#define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+
#if !HAVE_GETLINE
#include <stdio.h>
#include <unistd.h>