iproute2: Build tc and netlink/util libs

For http://b/issue?id=2576057

Change-Id: Ic0a5edbdf6496a1a267634147c3c3eea3b3604ac
Signed-off-by: San Mehat <san@google.com>
diff --git a/lib/Android.mk b/lib/Android.mk
new file mode 100644
index 0000000..daca9cd
--- /dev/null
+++ b/lib/Android.mk
@@ -0,0 +1,63 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := utils.c rt_names.c ll_types.c ll_proto.c ll_addr.c inet_proto.c
+LOCAL_MODULE := libiprouteutil
+LOCAL_SYSTEM_SHARED_LIBRARIES := libc
+LOCAL_C_INCLUDES := $(KERNEL_HEADERS) external/iproute2/include
+LOCAL_CFLAGS := -O2 -g -W -Wall \
+	-DHAVE_UNISTD_H \
+	-DHAVE_ERRNO_H \
+	-DHAVE_NETINET_IN_H \
+	-DHAVE_SYS_IOCTL_H \
+	-DHAVE_SYS_MMAN_H \
+	-DHAVE_SYS_MOUNT_H \
+	-DHAVE_SYS_PRCTL_H \
+	-DHAVE_SYS_RESOURCE_H \
+	-DHAVE_SYS_SELECT_H \
+	-DHAVE_SYS_STAT_H \
+	-DHAVE_SYS_TYPES_H \
+	-DHAVE_STDLIB_H \
+	-DHAVE_STRDUP \
+	-DHAVE_MMAP \
+	-DHAVE_UTIME_H \
+	-DHAVE_GETPAGESIZE \
+	-DHAVE_LSEEK64 \
+	-DHAVE_LSEEK64_PROTOTYPE \
+	-DHAVE_EXT2_IOCTLS \
+	-DHAVE_LINUX_FD_H \
+	-DHAVE_TYPE_SSIZE_T
+LOCAL_PRELINK_MODULE := false
+include $(BUILD_SHARED_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := ll_map.c libnetlink.c
+LOCAL_MODULE := libnetlink
+LOCAL_SYSTEM_SHARED_LIBRARIES := libc
+LOCAL_C_INCLUDES := $(KERNEL_HEADERS) external/iproute2/include
+LOCAL_CFLAGS := -O2 -g -W -Wall \
+	-DHAVE_UNISTD_H \
+	-DHAVE_ERRNO_H \
+	-DHAVE_NETINET_IN_H \
+	-DHAVE_SYS_IOCTL_H \
+	-DHAVE_SYS_MMAN_H \
+	-DHAVE_SYS_MOUNT_H \
+	-DHAVE_SYS_PRCTL_H \
+	-DHAVE_SYS_RESOURCE_H \
+	-DHAVE_SYS_SELECT_H \
+	-DHAVE_SYS_STAT_H \
+	-DHAVE_SYS_TYPES_H \
+	-DHAVE_STDLIB_H \
+	-DHAVE_STRDUP \
+	-DHAVE_MMAP \
+	-DHAVE_UTIME_H \
+	-DHAVE_GETPAGESIZE \
+	-DHAVE_LSEEK64 \
+	-DHAVE_LSEEK64_PROTOTYPE \
+	-DHAVE_EXT2_IOCTLS \
+	-DHAVE_LINUX_FD_H \
+	-DHAVE_TYPE_SSIZE_T
+
+LOCAL_PRELINK_MODULE := false
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/lib/utils.c b/lib/utils.c
index d80f79b..1ad7616 100644
--- a/lib/utils.c
+++ b/lib/utils.c
@@ -302,6 +302,7 @@
 		return 0;
 	}
 
+#ifndef ANDROID
 	if (family == AF_DECnet) {
 		struct dn_naddr dna;
 		addr->family = AF_DECnet;
@@ -312,6 +313,7 @@
 		addr->bitlen = -1;
 		return 0;
 	}
+#endif
 
 	addr->family = AF_INET;
 	if (family != AF_UNSPEC && family != AF_INET)
@@ -524,6 +526,7 @@
 	case AF_INET:
 	case AF_INET6:
 		return inet_ntop(af, addr, buf, buflen);
+#ifndef ANDROID
 	case AF_IPX:
 		return ipx_ntop(af, addr, buf, buflen);
 	case AF_DECnet:
@@ -532,6 +535,7 @@
 		memcpy(dna.a_addr, addr, 2);
 		return dnet_ntop(af, &dna, buf, buflen);
 	}
+#endif
 	default:
 		return "???";
 	}
@@ -702,6 +706,7 @@
 
 int cmdlineno;
 
+#ifndef ANDROID
 /* Like glibc getline but handle continuation lines and comments */
 ssize_t getcmdline(char **linep, size_t *lenp, FILE *in)
 {
@@ -746,6 +751,7 @@
 	}
 	return cc;
 }
+#endif
 
 /* split command line into argument vector */
 int makeargs(char *line, char *argv[], int maxargs)