Patch from Lars Kellogg-Stedman:

I'm building BusyBox using a development kit for MontaVista Hardhat Linux
(PPC) -- which, at least in this instance, is based around kernel 2.2.14.
I've had to massage a few files in networking/libiproute/ to make it
compile.  Specifically:

  (1) Added a #include <sys/uio.h> for the iovec structure in
      libnetlink.c,

  (2) Put ifdefs in ll_types.c and ll_proto.c around various
      constants (ETH_P_xxx and ARPHRD_xxx) that weren't defined,

  (3) Make do_changename() in iplink.c require a kernel >=
      2.4.0 -- the ifr structure in my environment doesn't
      have the ifr_name attribute.  I've assumed this is
      a kernel dependency -- let me know if I ought to be
      checking something else.

      In the absence of the correct kernel, do_changename()
      always returns 0.

Attached is a patch against the current CVS that will make these changes.

-- Lars
diff --git a/networking/libiproute/ll_proto.c b/networking/libiproute/ll_proto.c
index d7b1ded..cfdb34e 100644
--- a/networking/libiproute/ll_proto.c
+++ b/networking/libiproute/ll_proto.c
@@ -51,10 +51,18 @@
 __PF(AARP,aarp)      
 __PF(IPX,ipx)       
 __PF(IPV6,ipv6)      
+#ifdef ETH_P_PPP_DISC
 __PF(PPP_DISC,ppp_disc)      
+#endif
+#ifdef ETH_P_PPP_SES
 __PF(PPP_SES,ppp_ses)      
+#endif
+#ifdef ETH_P_ATMMPOA
 __PF(ATMMPOA,atmmpoa)      
+#endif
+#ifdef ETH_P_ATMFATE
 __PF(ATMFATE,atmfate)      
+#endif
 
 __PF(802_3,802_3)     
 __PF(AX25,ax25)      
@@ -70,7 +78,9 @@
 __PF(MOBITEX,mobitex)   
 __PF(CONTROL,control)   
 __PF(IRDA,irda)      
+#ifdef ETH_P_ECONET
 __PF(ECONET,econet)      
+#endif
 
 { 0x8100, "802.1Q" },
 { ETH_P_IP, "ipv4" },