diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2013-08-21 14:37:10 +0200 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2013-08-21 15:03:21 +0200 |
commit | 7a7b0bd1a4182201a5006c31ab5f1a4ef5849ee6 (patch) | |
tree | 8a94ba006daac18af528abda6aa5a5820657513c | |
parent | a9bf2a6890ee1a491fd6d09ea93b210b2b58b368 (diff) | |
download | pingu-7a7b0bd1a4182201a5006c31ab5f1a4ef5849ee6.tar.bz2 pingu-7a7b0bd1a4182201a5006c31ab5f1a4ef5849ee6.tar.xz |
configure: check for strlcpy
-rwxr-xr-x | configure | 49 | ||||
-rw-r--r-- | pingu_iface.c | 8 |
2 files changed, 55 insertions, 2 deletions
@@ -121,7 +121,52 @@ if $enable_werror; then CFLAGS="$CFLAGS -Werror" fi -config_vars=" +cc=${CC:-gcc} + +cat > $TMPC << EOF +#include <string.h> +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 <<EOF +/* this file is generated by $0 */ +#ifndef CONFIG_H +#define CONFIG_H + +EOF +for var in $config_h_vars; do + eval "value=\$$var" + case "$value" in + [0-9]) echo "#define $var $value" >> 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 |