summaryrefslogtreecommitdiff
path: root/pkgtools/libnbcompat/files
diff options
context:
space:
mode:
authorjoerg <joerg>2008-09-08 20:20:22 +0000
committerjoerg <joerg>2008-09-08 20:20:22 +0000
commitcf72c4610f43c0827389c6b629fff1f651ae599b (patch)
tree6d679e2261990eecef7e255092be02d61e34fa5e /pkgtools/libnbcompat/files
parent96406a0f64acb54bcd6857530a3314933db75d67 (diff)
downloadpkgsrc-cf72c4610f43c0827389c6b629fff1f651ae599b.tar.gz
libnbcompat-20080908:
- declare endpwent and endgrent if system headers are missing them - check for existance of statfs.f_flags before using it - drop a bunch of redundant function checks Based on the work of Timothy Larson.
Diffstat (limited to 'pkgtools/libnbcompat/files')
-rwxr-xr-xpkgtools/libnbcompat/files/configure256
-rw-r--r--pkgtools/libnbcompat/files/configure.ac9
-rw-r--r--pkgtools/libnbcompat/files/nbcompat/config.h.in11
-rw-r--r--pkgtools/libnbcompat/files/nbcompat/grp.h6
-rw-r--r--pkgtools/libnbcompat/files/nbcompat/pwd.h6
-rw-r--r--pkgtools/libnbcompat/files/statvfs.c4
6 files changed, 226 insertions, 66 deletions
diff --git a/pkgtools/libnbcompat/files/configure b/pkgtools/libnbcompat/files/configure
index 19b593aae64..d66dd466254 100755
--- a/pkgtools/libnbcompat/files/configure
+++ b/pkgtools/libnbcompat/files/configure
@@ -11791,20 +11791,76 @@ fi
done
+{ $as_echo "$as_me:$LINENO: checking whether endgrent is declared" >&5
+$as_echo_n "checking whether endgrent is declared... " >&6; }
+if test "${ac_cv_have_decl_endgrent+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+#ifndef endgrent
+ (void) endgrent;
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_have_decl_endgrent=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+ ac_cv_have_decl_endgrent=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_endgrent" >&5
+$as_echo "$ac_cv_have_decl_endgrent" >&6; }
+if test $ac_cv_have_decl_endgrent = yes; then
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ENDGRENT 1
+_ACEOF
-for ac_func in gid_from_group group_from_gid pwcache_groupdb \
- pwcache_userdb uid_from_user user_from_uid \
+else
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ENDGRENT 0
+_ACEOF
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+
+fi
+{ $as_echo "$as_me:$LINENO: checking whether endpwent is declared" >&5
+$as_echo_n "checking whether endpwent is declared... " >&6; }
+if test "${ac_cv_have_decl_endpwent+set}" = set; then
$as_echo_n "(cached) " >&6
else
cat >conftest.$ac_ext <<_ACEOF
@@ -11813,54 +11869,27 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
+$ac_includes_default
int
main ()
{
-return $ac_func ();
+#ifndef endpwent
+ (void) endpwent;
+#endif
+
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>conftest.er1
+ (eval "$ac_compile") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -11869,34 +11898,35 @@ $as_echo "$ac_try_echo") >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then
- eval "$as_ac_var=yes"
+ } && test -s conftest.$ac_objext; then
+ ac_cv_have_decl_endpwent=yes
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- eval "$as_ac_var=no"
+ ac_cv_have_decl_endpwent=no
fi
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if test `eval 'as_val=${'$as_ac_var'}
- $as_echo "$as_val"'` = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_endpwent" >&5
+$as_echo "$ac_cv_have_decl_endpwent" >&6; }
+if test $ac_cv_have_decl_endpwent = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ENDPWENT 1
+_ACEOF
+
+
+else
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_DECL_ENDPWENT 0
_ACEOF
+
fi
-done
+
+
@@ -12961,6 +12991,114 @@ fi
fi
+{ $as_echo "$as_me:$LINENO: checking for struct statfs.f_flags" >&5
+$as_echo_n "checking for struct statfs.f_flags... " >&6; }
+if test "${ac_cv_member_struct_statfs_f_flags+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+ #include <sys/statfs.h>
+
+int
+main ()
+{
+static struct statfs ac_aggr;
+if (ac_aggr.f_flags)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_member_struct_statfs_f_flags=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+ #include <sys/statfs.h>
+
+int
+main ()
+{
+static struct statfs ac_aggr;
+if (sizeof ac_aggr.f_flags)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_member_struct_statfs_f_flags=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_member_struct_statfs_f_flags=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_statfs_f_flags" >&5
+$as_echo "$ac_cv_member_struct_statfs_f_flags" >&6; }
+if test $ac_cv_member_struct_statfs_f_flags = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STATFS_F_FLAGS 1
+_ACEOF
+
+:
+else
+ :
+fi
+
{ $as_echo "$as_me:$LINENO: checking for struct statfs.f_fsize" >&5
$as_echo_n "checking for struct statfs.f_fsize... " >&6; }
if test "${ac_cv_member_struct_statfs_f_fsize+set}" = set; then
diff --git a/pkgtools/libnbcompat/files/configure.ac b/pkgtools/libnbcompat/files/configure.ac
index da822490cd7..88dfe4a2a5f 100644
--- a/pkgtools/libnbcompat/files/configure.ac
+++ b/pkgtools/libnbcompat/files/configure.ac
@@ -1,4 +1,4 @@
-dnl $NetBSD: configure.ac,v 1.63 2008/05/19 12:52:57 joerg Exp $
+dnl $NetBSD: configure.ac,v 1.64 2008/09/08 20:20:23 joerg Exp $
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.52)
@@ -260,9 +260,8 @@ AC_CHECK_FUNCS([getmode setmode], [:], [
break
])
-AC_CHECK_FUNCS([gid_from_group group_from_gid pwcache_groupdb \
- pwcache_userdb uid_from_user user_from_uid \
-])
+AC_CHECK_DECLS([endgrent, endpwent])
+
AC_CHECK_FUNCS([gid_from_group group_from_gid pwcache_groupdb \
pwcache_userdb uid_from_user user_from_uid \
], [:], [
@@ -326,6 +325,8 @@ AC_CHECK_FUNCS([getpassphrase getpgrp memmove select])
AC_CHECK_FUNC(getpgrp, [AC_FUNC_GETPGRP])
+AC_CHECK_MEMBERS([struct statfs.f_flags], [:], [:],
+ [ #include <sys/statfs.h> ])
AC_CHECK_MEMBERS([struct statfs.f_fsize], [:], [:],
[ #include <sys/statfs.h> ])
AC_CHECK_MEMBERS([struct statfs.f_iosize], [:], [:],
diff --git a/pkgtools/libnbcompat/files/nbcompat/config.h.in b/pkgtools/libnbcompat/files/nbcompat/config.h.in
index 6913cbf9f3e..6717d647e43 100644
--- a/pkgtools/libnbcompat/files/nbcompat/config.h.in
+++ b/pkgtools/libnbcompat/files/nbcompat/config.h.in
@@ -24,6 +24,14 @@
/* Define to 1 if you have the <ctype.h> header file. */
#undef HAVE_CTYPE_H
+/* Define to 1 if you have the declaration of `endgrent', and to 0 if you
+ don't. */
+#undef HAVE_DECL_ENDGRENT
+
+/* Define to 1 if you have the declaration of `endpwent', and to 0 if you
+ don't. */
+#undef HAVE_DECL_ENDPWENT
+
/* Define to 1 if you have the declaration of `optind', and to 0 if you don't.
*/
#undef HAVE_DECL_OPTIND
@@ -343,6 +351,9 @@
/* Define to 1 if `d_namlen' is member of `struct dirent'. */
#undef HAVE_STRUCT_DIRENT_D_NAMLEN
+/* Define to 1 if `f_flags' is member of `struct statfs'. */
+#undef HAVE_STRUCT_STATFS_F_FLAGS
+
/* Define to 1 if `f_fsize' is member of `struct statfs'. */
#undef HAVE_STRUCT_STATFS_F_FSIZE
diff --git a/pkgtools/libnbcompat/files/nbcompat/grp.h b/pkgtools/libnbcompat/files/nbcompat/grp.h
index c8a79721161..ace08a59bb4 100644
--- a/pkgtools/libnbcompat/files/nbcompat/grp.h
+++ b/pkgtools/libnbcompat/files/nbcompat/grp.h
@@ -1,4 +1,4 @@
-/* $NetBSD: grp.h,v 1.2 2008/04/29 05:46:08 martin Exp $ */
+/* $NetBSD: grp.h,v 1.3 2008/09/08 20:20:23 joerg Exp $ */
/*-
* Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -52,4 +52,8 @@ const char *group_from_gid(gid_t, int);
int gid_from_group(const char *, gid_t *);
#endif
+#if !HAVE_DECL_ENDGRENT
+void endgrent(void);
+#endif
+
#endif /* !_NBCOMPAT_GRP_H_ */
diff --git a/pkgtools/libnbcompat/files/nbcompat/pwd.h b/pkgtools/libnbcompat/files/nbcompat/pwd.h
index 547db89cd87..58c476279cf 100644
--- a/pkgtools/libnbcompat/files/nbcompat/pwd.h
+++ b/pkgtools/libnbcompat/files/nbcompat/pwd.h
@@ -1,4 +1,4 @@
-/* $NetBSD: pwd.h,v 1.2 2008/04/29 05:46:08 martin Exp $ */
+/* $NetBSD: pwd.h,v 1.3 2008/09/08 20:20:23 joerg Exp $ */
/*-
* Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -52,4 +52,8 @@ const char *user_from_uid(uid_t, int);
int uid_from_user(const char *, uid_t *);
#endif
+#if !HAVE_DECL_ENDPWENT
+void endpwent(void);
+#endif
+
#endif /* !_NBCOMPAT_PWD_H_ */
diff --git a/pkgtools/libnbcompat/files/statvfs.c b/pkgtools/libnbcompat/files/statvfs.c
index d18b401978c..e4ee57e031a 100644
--- a/pkgtools/libnbcompat/files/statvfs.c
+++ b/pkgtools/libnbcompat/files/statvfs.c
@@ -1,4 +1,4 @@
-/* $NetBSD: statvfs.c,v 1.4 2008/04/29 05:46:08 martin Exp $ */
+/* $NetBSD: statvfs.c,v 1.5 2008/09/08 20:20:23 joerg Exp $ */
/*-
* Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -39,10 +39,12 @@ static void
fs2vfs(struct statvfs *vfs, const struct statfs *sfs)
{
vfs->f_flag = 0;
+#if HAVE_STRUCT_STATFS_F_FLAGS
if (sfs->f_flags & MNT_RDONLY)
vfs->f_flag |= ST_RDONLY;
if (sfs->f_flags & MNT_NOSUID)
vfs->f_flag |= ST_NOSUID;
+#endif
#if HAVE_STRUCT_STATFS_F_FSIZE
vfs->f_bsize = sfs->f_fsize