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

Reply via email to