Commit Diff


commit - 3527b7a58a5f228a73f73ba74bc4ff86f7305a60
commit + 7e262563948fcaeea143e6c7c23b6a300010eec5
blob - aab93b5c85a33ae0744219bb1d86e622f3cb86ca
blob + dd07cf9294b912c3921cf5015d1743680f48bdeb
--- compat/err.c
+++ compat/err.c
@@ -18,9 +18,7 @@
 #include <stdio.h>
 #include <stdarg.h>
 
-/* cheat: if we don't have getprogname in libc, we will link against
- * compat/getprogname.c anyway. */
-const char *getprogname(void);
+#include "../config.h"
 
 static void vwarn_impl(const char*, va_list);
 static void vwarnx_impl(const char*, va_list);
blob - 674b8e229e34a3c2dc2320b9faaccefebdf5c12b
blob + f502b4bc4bc6697e20e25947377cdfb79565f549
--- compat/explicit_bzero.c
+++ compat/explicit_bzero.c
@@ -5,6 +5,8 @@
 
 #include <string.h>
 
+#include "../config.h"
+
 void
 explicit_bzero(void *buf, size_t len)
 {
blob - f16226871ec9600344765767613eea8043231e3c
blob + ee178b750ad97e0ed4ef9418d57e61f0004f5147
--- compat/getprogname.c
+++ compat/getprogname.c
@@ -14,6 +14,8 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include "../config.h"
+
 const char *
 getprogname(void)
 {
blob - 1baffbbaa4387388b3f32b5f07513299d95046f7
blob + 70ad5822b55e7d2e24d2c9e4a26edf595c85172e
--- compat/recallocarray.c
+++ compat/recallocarray.c
@@ -20,6 +20,8 @@
 #include <string.h>
 #include <unistd.h>
 
+#include "../config.h"
+
 /*
  * This is sqrt(SIZE_MAX+1), as s1*s2 <= SIZE_MAX
  * if both s1 < MUL_NO_OVERFLOW and s2 < MUL_NO_OVERFLOW
@@ -34,10 +36,6 @@
  */
 #define getpagesize()	(1UL << 12)
 
-/* cheat: provide a prototype for explicit_bzero: if libc doesn't
- * provide it, we will link to compat/explicit_bzero.c anyway. */
-void explicit_bzero(void*, size_t);
-
 void *
 recallocarray(void *ptr, size_t oldnmemb, size_t newnmemb, size_t size)
 {
blob - 1c19062bf839da6e099ffca1dddcdb4070a44edf
blob + b4e969e826539cfc4b3b6735233ec108702d0448
--- compat/strlcat.c
+++ compat/strlcat.c
@@ -17,6 +17,8 @@
 #include <sys/types.h>
 #include <string.h>
 
+#include "../config.h"
+
 /*
  * Appends src to string dst of size dsize (unlike strncat, dsize is the
  * full size of dst, not space left).  At most dsize-1 characters
blob - 177ff7269492ec85c2196e31edc425107a958e4b
blob + 75636a0709bbd56677e394293267537de2b2ad4b
--- compat/strlcpy.c
+++ compat/strlcpy.c
@@ -17,6 +17,8 @@
 #include <sys/types.h>
 #include <string.h>
 
+#include "../config.h"
+
 /*
  * Copy string src to buffer dst of size dsize.  At most dsize-1
  * chars will be copied.  Always NUL terminates (unless dsize == 0).
blob - 6e6cb76d5950925c04b80333361c04697644d7c4
blob + 09c4fbe23ef43c478fc75463fe60b2b23968ace1
--- compat/strtonum.c
+++ compat/strtonum.c
@@ -14,12 +14,13 @@
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
-#include "config.h"
 
 #include <errno.h>
 #include <limits.h>
 #include <stdlib.h>
 
+#include "../config.h"
+
 #define	INVALID		1
 #define	TOOSMALL	2
 #define	TOOLARGE	3
blob - d76f3efb11248fbf53f5863121e132a4d9817f92
blob + 69586f03601ae01e8eca89204a45704964b26e7f
--- compat/vasprintf.c
+++ compat/vasprintf.c
@@ -25,6 +25,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 
+#include "../config.h"
+
 int
 vasprintf(char **ret, const char *format, va_list ap)
 {
blob - 97c5dd8f1b7c41324e28fbeeffb4f07858431dd5
blob + 359143f73ec0e8d783e0617afef4a68e81f928da
--- configure
+++ configure
@@ -271,6 +271,14 @@ cat <<__HEREDOC__
 #define HAVE_VASPRINTF		${HAVE_VASPRINTF}
 
 __HEREDOC__
+
+[ ${HAVE_VASPRINTF} -eq 0 ] && echo "#include <stdarg.h>"
+
+[ ${HAVE_EXPLICIT_BZERO} -eq 0 -o \
+  ${HAVE_RECALLOCARRAY} -eq 0 -o \
+  ${HAVE_STRLCAT} -eq 0 -o \
+  ${HAVE_STRLCPY} -eq 0 -o \
+  ${HAVE_STRTONUM} -eq 0 ] && echo "#include <stddef.h>"
 
 if [ ${HAVE_ERR} -eq 0 ]; then
 	echo "extern	void	 err(int, const char*, ...);"