~vcs-imports/quagga/master

Viewing all changes in revision 3417.

  • Committer: Paul Jakma
  • Author(s): Xiami
  • Date: 2018-02-04 20:27:58 UTC
  • Revision ID: git-v1:fed50218deeaef4d996d25c45b1aa56fe5e337c4
lib: Avoid re-definition of IPPROTO_IP with some versions of Linux

* Starting from linux-4.11 [commit
  bcb41c6bced1ee778d23c53a6b4807fb08cf5540], linux/mroute.h includes
  linux/in.h , that makes gcc roar a lot of things like "error:
  redeclaration of enumerator 'IPPROTO_IP'" when compiling quagga-1.2.2

  lib/zebra.h includes sys/capability.h first, then includes
  netinet/in.h . In sys/capability.h, it includes linux/xattr.h, and
  that includes linux/libc-compat.h . Since at that time netinet/in.h is
  not included yet, _NETINET_IN_H is not defined, causing libc-compat.h
  set __UAPI_DEF_IN_IPPROTO to 1. Then, a include of netinet/in.h
  defines IPPROTO_IP. Later a include of linux/mroute.h includes
  linux/in.h. Because __UAPI_DEF_IN_IPPROTO is set to non zero,
  IPPROTO_IP is redeclared.

* lib/zebra.h: Move the privs/capabilities include block to after the
  network block.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: