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>])

Reply via email to