8 if conf
.CHECK_BUNDLED_SYSTEM('socket_wrapper', minversion
=VERSION
, set_target
=False):
9 conf
.DEFINE('USING_SYSTEM_SOCKET_WRAPPER', 1)
10 libsocket_wrapper_so_path
= 'libsocket_wrapper.so'
12 # check HAVE_GCC_THREAD_LOCAL_STORAGE
20 'HAVE_GCC_THREAD_LOCAL_STORAGE',
22 msg
='Checking for thread local storage')
24 # check HAVE_DESTRUCTOR_ATTRIBUTE
26 void test_destructor_attribute(void) __attribute__ ((destructor));
28 void test_destructor_attribute(void)
37 'HAVE_DESTRUCTOR_ATTRIBUTE',
39 msg
='Checking for library destructor support')
41 conf
.CHECK_HEADERS('sys/signalfd.h')
42 conf
.CHECK_HEADERS('sys/eventfd.h')
43 conf
.CHECK_HEADERS('sys/timerfd.h')
44 conf
.CHECK_HEADERS('gnu/lib-names.h')
46 conf
.CHECK_STRUCTURE_MEMBER('struct msghdr',
48 headers
='sys/types.h sys/socket.h',
49 define
='HAVE_STRUCT_MSGHDR_MSG_CONTROL')
51 conf
.CHECK_STRUCTURE_MEMBER('struct in_pktinfo',
53 headers
='sys/types.h sys/socket.h netinet/in.h',
54 define
='HAVE_STRUCT_IN_PKTINFO')
56 conf
.CHECK_STRUCTURE_MEMBER('struct in6_pktinfo',
58 headers
='sys/types.h sys/socket.h netinet/in.h',
59 define
='HAVE_STRUCT_IN6_PKTINFO')
61 conf
.CHECK_FUNCS('getaddrinfo')
62 conf
.CHECK_FUNCS('signalfd eventfd timerfd_create')
63 conf
.CHECK_FUNCS('bindresvport')
65 conf
.CHECK_FUNCS_IN('bind',
68 headers
='sys/types.h sys/socket.h')
70 conf
.CHECK_C_PROTOTYPE('accept',
71 'int accept(int s, struct sockaddr *addr, Psocklen_t addrlen)',
72 define
='HAVE_ACCEPT_PSOCKLEN_T', headers
='sys/types.h sys/socket.h')
74 conf
.CHECK_C_PROTOTYPE('ioctl',
75 'int ioctl(int s, int r, ...)',
76 define
='HAVE_IOCTL_INT', headers
='unistd.h sys/ioctl.h')
78 # Create full path to socket_wrapper
79 srcdir
= os
.path
.realpath(conf
.srcdir
)
80 libsocket_wrapper_so_path
= srcdir
+ '/bin/default/lib/socket_wrapper/libsocket-wrapper.so'
82 conf
.DEFINE('LIBSOCKET_WRAPPER_SO_PATH', libsocket_wrapper_so_path
)
83 conf
.DEFINE('SOCKET_WRAPPER', 1)
86 if not bld
.CONFIG_SET("USING_SYSTEM_SOCKET_WRAPPER"):
87 # We need to do it this way or the library wont work.
88 # Using private_library=True will add symbol version which
90 bld
.SAMBA_LIBRARY('socket_wrapper',
91 source
='socket_wrapper.c',
95 realname
='libsocket-wrapper.so')