[LTP] [PATCH] include: undefine _LINUX_TYPES_H if including sys/capability.h

Li Wang liwang@redhat.com
Tue Oct 15 12:15:34 CEST 2019


In some of the libcap-devel(1.96~2.16) versions, it defines the _LINUX_TYPES_H
macro to make ltp-lib cann't include linux/types.h essentially.

    # cat -n /usr/include/sys/capability.h
    ...
    25  /*
    26   * Make sure we can be included from userland by preventing
    27   * capability.h from including other kernel headers
    28   */
    29  #define _LINUX_TYPES_H

To get rid of this compiling errors on rhel6(libcap-devel-2.16) series platform,
here undefine _LINUX_TYPES_H if included that sys/capability.h.

  == Error log ==
  In file included from ../include/tst_netlink.h:26,
                 from tst_crypto.c:13:
  /usr/include/linux/netlink.h:45: error: expected specifier-qualifier-list before ‘__u16’
  /usr/include/linux/netlink.h:135: error: expected specifier-qualifier-list before ‘__u16’
  tst_crypto.c: In function ‘tst_crypto_recv_ack’:
  tst_crypto.c:46: error: ‘struct nlmsghdr’ has no member named ‘nlmsg_seq’
  tst_crypto.c:47: error: ‘struct nlmsghdr’ has no member named ‘nlmsg_type’
  tst_crypto.c:47: error: ‘struct nlmsghdr’ has no member named ‘nlmsg_seq’
  tst_crypto.c:55: error: ‘struct nlmsghdr’ has no member named ‘nlmsg_type’
  tst_crypto.c:58: error: ‘struct nlmsghdr’ has no member named ‘nlmsg_type’
  tst_crypto.c:58: error: ‘struct nlmsghdr’ has no member named ‘nlmsg_seq’
  tst_crypto.c: In function ‘tst_crypto_add_alg’:
  ...
  make: *** [tst_crypto.o] Error 1

Reported-by: Ping Fang <pifang@redhat.com>
Signed-off-by: Li Wang <liwang@redhat.com>
Cc: Ping Fang <pifang@redhat.com>
Cc: Richard Palethorpe <rpalethorpe@suse.com>
---
 include/lapi/capability.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/lapi/capability.h b/include/lapi/capability.h
index dac233d84..3c2ee7937 100644
--- a/include/lapi/capability.h
+++ b/include/lapi/capability.h
@@ -10,6 +10,7 @@
 
 #ifdef HAVE_SYS_CAPABILITY_H
 # include <sys/capability.h>
+# undef _LINUX_TYPES_H
 #endif
 
 #ifndef CAP_NET_RAW
-- 
2.20.1



More information about the ltp mailing list