From 31c7001c99e042c2722217410d8a913875d44149 Mon Sep 17 00:00:00 2001 From: Blake Jones Date: Fri, 16 Aug 2013 16:38:14 +0200 Subject: 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 --- compat/check_getpwuid.c | 11 +++++++++++ compat/compat.h | 4 ++++ 2 files changed, 15 insertions(+) create mode 100644 compat/check_getpwuid.c (limited to 'compat') 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 +#include + +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 #include -- cgit v1.2.3