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_FUNCS('getaddrinfo')
52 conf
.CHECK_FUNCS('signalfd eventfd timerfd_create')
54 conf
.CHECK_FUNCS_IN('bind',
57 headers
='sys/types.h sys/socket.h')
59 conf
.CHECK_C_PROTOTYPE('accept',
60 'int accept(int s, struct sockaddr *addr, Psocklen_t addrlen)',
61 define
='HAVE_ACCEPT_PSOCKLEN_T', headers
='sys/types.h sys/socket.h')
63 conf
.CHECK_C_PROTOTYPE('ioctl',
64 'int ioctl(int s, int r, ...)',
65 define
='HAVE_IOCTL_INT', headers
='unistd.h sys/ioctl.h')
67 # Create full path to socket_wrapper
68 srcdir
= os
.path
.realpath(conf
.srcdir
)
69 libsocket_wrapper_so_path
= srcdir
+ '/bin/default/lib/socket_wrapper/libsocket-wrapper.so'
71 conf
.DEFINE('LIBSOCKET_WRAPPER_SO_PATH', libsocket_wrapper_so_path
)
72 conf
.DEFINE('SOCKET_WRAPPER', 1)
75 if not bld
.CONFIG_SET("USING_SYSTEM_SOCKET_WRAPPER"):
76 # We need to do it this way or the library wont work.
77 # Using private_library=True will add symbol version which
79 bld
.SAMBA_LIBRARY('socket_wrapper',
80 source
='socket_wrapper.c',
84 realname
='libsocket-wrapper.so')