From 7a7b0bd1a4182201a5006c31ab5f1a4ef5849ee6 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Wed, 21 Aug 2013 14:37:10 +0200 Subject: configure: check for strlcpy --- configure | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- pingu_iface.c | 8 ++++++++ 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/configure b/configure index b0ea1cb..f78da45 100755 --- a/configure +++ b/configure @@ -121,7 +121,52 @@ if $enable_werror; then CFLAGS="$CFLAGS -Werror" fi -config_vars=" +cc=${CC:-gcc} + +cat > $TMPC << EOF +#include +int main(void) { + char src[4] = "asdf"; + char dst[4]; + return strlcpy(dst, src, sizeof(dst)); +} +EOF + +echo -n "Checking for strlcpy: " +if compile_prog "" ""; then + HAVE_STRLCPY=1 + echo yes +else + echo no +fi + +# generate config.h +config_h_vars=" +PACKAGE +HAVE_STRLCPY +" + +cat >config.h <> config.h;; + "") echo "/* $var is unset */" >> config.h;; + *) echo "#define $var \"$value\"" >> config.h;; + esac +done +echo "" >> config.h +echo '#endif /* CONFIG_H */' >> config.h + +CFLAGS="$CFLAGS -DHAVE_CONFIG_H" + +# generate config.mk +config_mk_vars=" prefix exec_prefix bindir @@ -137,7 +182,7 @@ LDFLAGS " echo "# this file is generated by $0" >config.mk -for var in $config_vars; do +for var in $config_mk_vars; do eval "value=\$$var" if [ -n "$value" ]; then echo "$var = $value" >> config.mk diff --git a/pingu_iface.c b/pingu_iface.c index ec35628..815b1e9 100644 --- a/pingu_iface.c +++ b/pingu_iface.c @@ -20,6 +20,14 @@ #include "pingu_netlink.h" #include "sockaddr_util.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifndef HAVE_STRLCPY +#define strlcpy(dst, src, dstsize) snprintf(dst, dstsize, "%s", src) +#endif + static struct list_head iface_list = LIST_INITIALIZER(iface_list); #define PINGU_ROUTE_TABLE_MIN 1 -- cgit v1.2.3