On hurd, the generic <netinet/if_ether.h> is installed instead of the hurd specific one. This is due to this file being located in sysdeps/mach/hurd/net/if_ether.h instead of sysdeps/mach/hurd/netinet/if_ether.h.
Created attachment 4499 [details] Patch to fix the problem
It's a long story :) Notice this: http://sourceware.org/ml/libc-alpha/2009-01/msg00018.html and this: http://sourceware.org/ml/libc-alpha/2009-01/ Which never got any action. sysdeps/gnu/netinet/if_ether.h would probably need a couple of fixes to better match Linux' behavior: - include net/ethernet.h and net/if_arp.h only #ifdef __USE_BSD - include net/if_ether.
Created attachment 4506 [details] Factorize ethernet,if_arp,if_ether,if_ppp,route.h Here is an updated patch, to be applied by git apply to get renamings right.