Module Name: src Committed By: christos Date: Sat Jan 7 02:52:04 UTC 2017
Modified Files: src/tools/compat: compat_defs.h configure.ac Log Message: Check for declarations, not the existance of functions since some are visible only when _NETBSD_SOURCE is defined. This avoids || defined(__NetBSD__) hacks. To generate a diff of this commit: cvs rdiff -u -r1.104 -r1.105 src/tools/compat/compat_defs.h cvs rdiff -u -r1.85 -r1.86 src/tools/compat/configure.ac Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tools/compat/compat_defs.h diff -u src/tools/compat/compat_defs.h:1.104 src/tools/compat/compat_defs.h:1.105 --- src/tools/compat/compat_defs.h:1.104 Wed Oct 19 17:54:20 2016 +++ src/tools/compat/compat_defs.h Fri Jan 6 21:52:04 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: compat_defs.h,v 1.104 2016/10/19 21:54:20 christos Exp $ */ +/* $NetBSD: compat_defs.h,v 1.105 2017/01/07 02:52:04 christos Exp $ */ #ifndef __NETBSD_COMPAT_DEFS_H__ #define __NETBSD_COMPAT_DEFS_H__ @@ -46,6 +46,9 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#if HAVE_ERR_H +#include <err.h> +#endif #if HAVE_SYS_CDEFS_H #include <sys/cdefs.h> @@ -63,6 +66,9 @@ #if HAVE_STDDEF_H #include <stddef.h> #endif +#if HAVE_LIBGEN_H +#include <libgen.h> +#endif #if HAVE_RPC_TYPES_H #include <rpc/types.h> @@ -219,19 +225,19 @@ typedef unsigned short u_short; /* Prototypes for replacement functions. */ -#if !HAVE_ATOLL +#if !HAVE_DECL_ATOLL long long int atoll(const char *); #endif -#if !HAVE_ASPRINTF +#if !HAVE_DECL_ASPRINTF int asprintf(char **, const char *, ...); #endif -#if !HAVE_ASNPRINTF +#if !HAVE_DECL_ASNPRINTF int asnprintf(char **, size_t, const char *, ...); #endif -#if !HAVE_BASENAME +#if !HAVE_DECL_BASENAME char *basename(char *); #endif @@ -241,7 +247,7 @@ extern char *optarg; extern int optind, opterr, optopt; #endif -#if !HAVE_DIRNAME +#if !HAVE_DECL_DIRNAME char *dirname(char *); #endif @@ -323,10 +329,10 @@ int easprintf(char **, const char *, ... int evasprintf(char **, const char *, va_list); #endif -#if !HAVE_FGETLN || defined(__NetBSD__) +#if !HAVE_DECL_FGETLN char *fgetln(FILE *, size_t *); #endif -#if !HAVE_DPRINTF +#if !HAVE_DECL_DPRINTF int dprintf(int, const char *, ...); #endif @@ -338,7 +344,7 @@ int dprintf(int, const char *, ...); int flock(int, int); #endif -#if !HAVE_FPARSELN || BROKEN_FPARSELN || defined(__NetBSD__) +#if !HAVE_DECL_FPARSELN || BROKEN_FPARSELN # define FPARSELN_UNESCESC 0x01 # define FPARSELN_UNESCCONT 0x02 # define FPARSELN_UNESCCOMM 0x04 @@ -347,16 +353,18 @@ int flock(int, int); char *fparseln(FILE *, size_t *, size_t *, const char [3], int); #endif -#if !HAVE_GETLINE +#if !HAVE_DECL_GETDELIM ssize_t getdelim(char **, size_t *, int, FILE *); +#endif +#if !HAVE_DECL_GETLINE ssize_t getline(char **, size_t *, FILE *); #endif -#if !HAVE_ISSETUGID +#if !HAVE_DECL_ISSETUGID int issetugid(void); #endif -#if !HAVE_ISBLANK && !defined(isblank) +#if !HAVE_DECL_ISBLANK && !defined(isblank) #define isblank(x) ((x) == ' ' || (x) == '\t') #endif @@ -389,11 +397,11 @@ int issetugid(void); #define bswap64(x) __nbcompat_bswap64(x) #endif -#if !HAVE_MKSTEMP +#if !HAVE_DECL_MKSTEMP int mkstemp(char *); #endif -#if !HAVE_MKDTEMP +#if !HAVE_DECL_MKDTEMP char *mkdtemp(char *); #endif @@ -403,11 +411,11 @@ char *mkdtemp(char *); int __nbcompat_gettemp(char *, int *, int); #endif -#if !HAVE_PREAD +#if !HAVE_DECL_PREAD ssize_t pread(int, void *, size_t, off_t); #endif -#if !HAVE_HEAPSORT +#if !HAVE_DECL_HEAPSORT int heapsort (void *, size_t, size_t, int (*)(const void *, const void *)); #endif /* Make them use our version */ @@ -484,7 +492,7 @@ int lchmod(const char *, mode_t); int lchown(const char *, uid_t, gid_t); #endif -#if !HAVE_PWRITE +#if !HAVE_DECL_PWRITE ssize_t pwrite(int, const void *, size_t, off_t); #endif @@ -492,11 +500,11 @@ ssize_t pwrite(int, const void *, size_t int raise_default_signal(int); #endif -#if !HAVE_REALLOCARR +#if !HAVE_DECL_REALLOCARR int reallocarr(void *, size_t, size_t); #endif -#if !HAVE_SETENV +#if !HAVE_DECL_SETENV int setenv(const char *, const char *, int); #endif @@ -508,8 +516,10 @@ int setgroupent(int); int setpassent(int); #endif -#if !HAVE_SETPROGNAME || defined(__NetBSD__) +#if !HAVE_DECL_GETPROGNAME const char *getprogname(void); +#endif +#if !HAVE_DECL_SETPROGNAME void setprogname(const char *); #endif @@ -518,27 +528,19 @@ int snprintb(char *, size_t, const char int snprintb_m(char *, size_t, const char *, uint64_t, size_t); #endif -#if !HAVE_SNPRINTF +#if !HAVE_DECL_SNPRINTF int snprintf(char *, size_t, const char *, ...); #endif -#if !HAVE_STRLCAT -size_t strlcat(char *, const char *, size_t); -#endif - -#if !HAVE_STRLCPY -size_t strlcpy(char *, const char *, size_t); -#endif - -#if !HAVE_STRMODE +#if !HAVE_DECL_STRMODE void strmode(mode_t, char *); #endif -#if !HAVE_STRNDUP +#if !HAVE_DECL_STRNDUP char *strndup(const char *, size_t); #endif -#if !HAVE_STRSEP || defined(__NetBSD__) +#if !HAVE_DECL_STRSEP char *strsep(char **, const char *); #endif @@ -548,37 +550,37 @@ long long strsuftollx(const char *, cons long long, long long, char *, size_t); #endif -#if !HAVE_STRTOLL +#if !HAVE_DECL_STRTOLL long long strtoll(const char *, char **, int); #endif -#if !HAVE_STRTOI +#if !HAVE_DECL_STRTOI intmax_t strtoi(const char * __restrict, char ** __restrict, int, intmax_t, intmax_t, int *); #endif -#if !HAVE_STRTOU +#if !HAVE_DECL_STRTOU uintmax_t strtou(const char * __restrict, char ** __restrict, int, uintmax_t, uintmax_t, int *); #endif -#if !HAVE_USER_FROM_UID +#if !HAVE_DECL_USER_FROM_UID const char *user_from_uid(uid_t, int); #endif -#if !HAVE_GROUP_FROM_GID +#if !HAVE_DECL_GROUP_FROM_GID const char *group_from_gid(gid_t, int); #endif -#if !HAVE_VASPRINTF +#if !HAVE_DECL_VASPRINTF int vasprintf(char **, const char *, va_list); #endif -#if !HAVE_VASNPRINTF +#if !HAVE_DECL_VASNPRINTF int vasnprintf(char **, size_t, const char *, va_list); #endif -#if !HAVE_VSNPRINTF +#if !HAVE_DECL_VSNPRINTF int vsnprintf(char *, size_t, const char *, va_list); #endif Index: src/tools/compat/configure.ac diff -u src/tools/compat/configure.ac:1.85 src/tools/compat/configure.ac:1.86 --- src/tools/compat/configure.ac:1.85 Wed Oct 19 17:54:20 2016 +++ src/tools/compat/configure.ac Fri Jan 6 21:52:04 2017 @@ -1,4 +1,4 @@ -# $NetBSD: configure.ac,v 1.85 2016/10/19 21:54:20 christos Exp $ +# $NetBSD: configure.ac,v 1.86 2017/01/07 02:52:04 christos Exp $ # # Autoconf definition file for libnbcompat. # @@ -82,7 +82,7 @@ AC_CHECK_HEADERS(sys/mtio.h sys/sysmacro getopt.h features.h malloc.h sys/poll.h pthread.h stddef.h rpc/types.h) AC_CHECK_HEADERS(sys/bswap.h machine/bswap.h sys/cdefs.h machine/endian.h \ sys/endian.h sys/featuretest.h err.h inttypes.h libgen.h paths.h \ - stdint.h util.h resolv.h arpa/nameser.h,, + libgen.h stdint.h util.h resolv.h arpa/nameser.h,, [test -f include/$ac_header || touch include/$ac_header]) AC_CHECK_HEADERS(rpc/types.h netconfig.h,, [echo '#include "nbtool_config.h"' >include/$ac_header.new @@ -140,6 +140,33 @@ AC_CHECK_MEMBERS(struct statvfs.f_iosize AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include <time.h>]) # Global variable decls. +AC_CHECK_DECLS([asprintf, vasprintf, vasnprintf, vsnprintf, fgetln, fparseln + getdelim, getline, snprintf],,, [ +#include <stdio.h> +]) + +AC_CHECK_DECLS([atoll, heapsort, mkdtemp, mkstemp, reallocarr, + setenv, strtoi, strtoll, strtou, setprogname, getprogname],,, [ +#include <stdlib.h> +]) + +AC_CHECK_DECLS([basename, dirname],,, [ +#include <libgen.h> +]) + +AC_CHECK_DECLS([raise_default_signal],,, [ +#include <util.h> +]) + +AC_CHECK_DECLS([issetugid, pread, pwrite, strmode],,, [ +#include <unistd.h> +]) + +AC_CHECK_DECLS([isblank],,, [ +#include <ctype.h> +]) + + AC_CHECK_DECLS([optind, optreset],,, [ #include <stdio.h> #include <stdlib.h> @@ -169,7 +196,7 @@ AC_CHECK_DECLS([user_from_uid, uid_from_ AC_CHECK_DECLS([group_from_gid, gid_from_group, pwcache_groupdb],,,[ #include <grp.h> ]) -AC_CHECK_DECLS([strlcpy, strlcat, strndup, strnlen],,,[ +AC_CHECK_DECLS([strlcpy, strlcat, strndup, strnlen, strsep],,,[ #include <string.h> ]) AC_CHECK_DECLS([strsuftoll, mi_vector_hash],,,[#include <stdlib.h>])