diff -urN xdm-orig/greet.h xdm/greet.h --- xdm-orig/greet.h 2004-04-23 12:54:42.000000000 -0700 +++ xdm/greet.h 2006-06-24 17:40:25.000000000 -0700 @@ -78,10 +78,12 @@ void (*_endgrent)(void); /* no longer used */ #ifdef USESHADOW struct spwd *(*_getspnam)(GETSPNAM_ARGS); +# ifndef QNX4 void (*_endspent)(void); +# endif /* QNX4 doesn't use endspent */ #endif struct passwd *(*_getpwnam)(GETPWNAM_ARGS); -#ifdef linux +#if defined(linux) || defined(__GLIBC__) void (*_endpwent)(void); #endif char *(*_crypt)(CRYPT_ARGS); @@ -160,10 +162,12 @@ extern void (*__xdm_endgrent)(void); #ifdef USESHADOW extern struct spwd *(*__xdm_getspnam)(GETSPNAM_ARGS); +# ifndef QNX4 extern void (*__xdm_endspent)(void); +# endif /* QNX4 doesn't use endspent */ #endif extern struct passwd *(*__xdm_getpwnam)(GETPWNAM_ARGS); -#ifdef linux +#if defined(linux) || defined(__GLIBC__) extern void (*__xdm_endpwent)(void); #endif extern char *(*__xdm_crypt)(CRYPT_ARGS); @@ -199,14 +203,18 @@ #define getgrent (*__xdm_getgrent) #define endgrent (*__xdm_endgrent) #ifdef USESHADOW -#define getspnam (*__xdm_getspnam) -#define endspent (*__xdm_endspent) -#endif -#ifdef linux -#define endpwent (*__xdm_endpwent) +# define getspnam (*__xdm_getspnam) +# ifndef QNX4 +# define endspent (*__xdm_endspent) +# endif /* QNX4 doesn't use endspent */ #endif #define getpwnam (*__xdm_getpwnam) +#if defined(linux) || defined(__GLIBC__) +# define endpwent (*__xdm_endpwent) +#endif #define crypt (*__xdm_crypt) -#define thepamhp (*__xdm_thepamhp) +#ifdef USE_PAM +# define thepamhp (*__xdm_thepamhp) +#endif #endif /* GREET_LIB */ diff -urN xdm-orig/greeter/greet.c xdm/greeter/greet.c --- xdm-orig/greeter/greet.c 2006-06-02 18:13:44.000000000 -0700 +++ xdm/greeter/greet.c 2006-06-24 17:33:35.000000000 -0700 @@ -121,10 +121,12 @@ void (*__xdm_endgrent)(void) = NULL; #ifdef USESHADOW struct spwd *(*__xdm_getspnam)(GETSPNAM_ARGS) = NULL; +# ifndef QNX4 void (*__xdm_endspent)(void) = NULL; +# endif /* QNX4 doesn't use endspent */ #endif struct passwd *(*__xdm_getpwnam)(GETPWNAM_ARGS) = NULL; -#ifdef linux +#if defined(linux) || defined(__GLIBC__) void (*__xdm_endpwent)(void) = NULL; #endif char *(*__xdm_crypt)(CRYPT_ARGS) = NULL; @@ -458,10 +460,12 @@ __xdm_endgrent = dlfuncs->_endgrent; #ifdef USESHADOW __xdm_getspnam = dlfuncs->_getspnam; +# ifndef QNX4 __xdm_endspent = dlfuncs->_endspent; +# endif /* QNX4 doesn't use endspent */ #endif __xdm_getpwnam = dlfuncs->_getpwnam; -#ifdef linux +#if defined(linux) || defined(__GLIBC__) __xdm_endpwent = dlfuncs->_endpwent; #endif __xdm_crypt = dlfuncs->_crypt;