--- a/ip/Makefile
+++ b/ip/Makefile
-@@ -15,6 +15,13 @@ RTMONOBJ=rtmon.o
+@@ -16,6 +16,13 @@ RTMONOBJ=rtmon.o
include ../config.mk
ALLOBJ=$(IPOBJ) $(RTMONOBJ)
SCRIPTS=ifcfg rtpr routel routef
TARGETS=ip rtmon
-@@ -44,7 +51,7 @@ else
+@@ -45,7 +52,7 @@ else
ip: static-syms.o
static-syms.o: static-syms.h
sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \
--- a/ip/ip.c
+++ b/ip/ip.c
-@@ -49,10 +49,16 @@ static void usage(void)
+@@ -48,10 +48,16 @@ static void usage(void)
fprintf(stderr,
"Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }\n"
" ip [ -force ] -batch filename\n"
" OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |\n"
" -h[uman-readable] | -iec |\n"
" -f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link } |\n"
-@@ -74,32 +80,44 @@ static const struct cmd {
+@@ -73,32 +79,44 @@ static const struct cmd {
int (*func)(int argc, char **argv);
} cmds[] = {
{ "address", do_ipaddr },
{ "help", do_help },
--- a/lib/utils.c
+++ b/lib/utils.c
-@@ -817,6 +817,7 @@ const char *rt_addr_n2a_r(int af, int le
+@@ -885,6 +885,7 @@ const char *rt_addr_n2a_r(int af, int le
return inet_ntop(af, addr, buf, buflen);
case AF_MPLS:
return mpls_ntop(af, addr, buf, buflen);
case AF_IPX:
return ipx_ntop(af, addr, buf, buflen);
case AF_DECnet:
-@@ -826,6 +827,7 @@ const char *rt_addr_n2a_r(int af, int le
+@@ -894,6 +895,7 @@ const char *rt_addr_n2a_r(int af, int le
memcpy(dna.a_addr, addr, 2);
return dnet_ntop(af, &dna, buf, buflen);
}
default:
--- a/lib/Makefile
+++ b/lib/Makefile
-@@ -2,6 +2,10 @@ include ../config.mk
+@@ -3,6 +3,10 @@ include ../config.mk
CFLAGS += $(FPIC)