From 2c43b4f2789af483694fa0c2aae699bfd0196c80 Mon Sep 17 00:00:00 2001 From: joerg Date: Mon, 8 Sep 2008 20:20:22 +0000 Subject: 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. --- pkgtools/libnbcompat/Makefile | 4 +- pkgtools/libnbcompat/files/configure | 256 ++++++++++++++++++------ pkgtools/libnbcompat/files/configure.ac | 9 +- pkgtools/libnbcompat/files/nbcompat/config.h.in | 11 + pkgtools/libnbcompat/files/nbcompat/grp.h | 6 +- pkgtools/libnbcompat/files/nbcompat/pwd.h | 6 +- pkgtools/libnbcompat/files/statvfs.c | 4 +- 7 files changed, 228 insertions(+), 68 deletions(-) (limited to 'pkgtools/libnbcompat') diff --git a/pkgtools/libnbcompat/Makefile b/pkgtools/libnbcompat/Makefile index 24cd8287ec5..b056fc5bf80 100644 --- a/pkgtools/libnbcompat/Makefile +++ b/pkgtools/libnbcompat/Makefile @@ -1,11 +1,11 @@ -# $NetBSD: Makefile,v 1.62 2008/07/27 16:02:09 joerg Exp $ +# $NetBSD: Makefile,v 1.63 2008/09/08 20:20:22 joerg Exp $ # # NOTE: If you update this package, it is *mandatory* that you update # pkgsrc/pkgtools/libnbcompat/files/README to reflect the actual # list of tested and supported platforms. # -DISTNAME= libnbcompat-20080422 +DISTNAME= libnbcompat-20080908 CATEGORIES= pkgtools devel MASTER_SITES= # empty DISTFILES= # empty 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 declares $ac_func. - For example, HP-UX 11i 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 to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#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 + +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 + +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 ]) AC_CHECK_MEMBERS([struct statfs.f_fsize], [:], [:], [ #include ]) 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 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 -- cgit v1.2.3