-AC_DEFUN([gl_GETLOGIN_R],
-[
- AC_REPLACE_FUNCS([getlogin_r])
- if test $ac_cv_func_strcasecmp = no; then
- gl_GETLOGIN_R_SUBSTITUTE
+ dnl Persuade glibc <unistd.h> to declare getlogin_r().
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_FUNCS_ONCE([getlogin_r])
+ if test $ac_cv_func_getlogin_r = no; then
+ AC_LIBOBJ([getlogin_r])
+ gl_PREREQ_GETLOGIN_R
+ AC_CHECK_DECLS_ONCE([getlogin_r])
+ if test $ac_cv_have_decl_getlogin_r = no; then
+ HAVE_DECL_GETLOGIN_R=0
+ fi