Now last LTS kernel is 3.2 one might want to build recent version of iproute2 package. This is quite common in embedded world where old kernels/glibc is quite common and updating them could be problematic or even impossible.
There are two problems at the moment preventing recent version of iproute2 build against old headers: 1) missing __kernel_long_t/__kernel_ulong_t 2) AF_VSOCK/PF_VSOCK defines There is also quite outdated copy of netinet/tcp.h header persent in include/ that no longer required to build ss(8) tool with even old configurations such as 3.2 and glibc-2.13 on Debian 7 (Wheezy). We probably can get rid of it. Since compatibility issues are quite common kind of problems I propose to add new directory include/compat/ to keep both kernel and libc hierarchy separately and use include_next preprocessor directive to include old headers before/after we tweak it's contents for compat. As usal reviews, comments and suggestions are welcome. Thanks, Serhii Serhey Popovych (3): ip: Fix compilation with kernel headers < 3.4 ss: Fix build with old libc headers without AF_VSOCK ip: Get rid of custom netinet/tcp.h Makefile | 5 +- include/compat/kernel/linux/sysinfo.h | 14 ++ include/compat/libc/bits/socket.h | 15 +++ include/netinet/tcp.h | 231 --------------------------------- 4 files changed, 33 insertions(+), 232 deletions(-) create mode 100644 include/compat/kernel/linux/sysinfo.h create mode 100644 include/compat/libc/bits/socket.h delete mode 100644 include/netinet/tcp.h -- 1.7.10.4