aboutsummaryrefslogtreecommitdiffstats
path: root/build-root/config.site
blob: c8996c589742c7810d60b4a07b92de578203ea22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# Copyright (c) 2015 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


######################################################################
# glibc
######################################################################

# glibc needs this for cross compiling 
libc_cv_forced_unwind=yes
libc_cv_c_cleanup=yes
libc_cv_ssp=no
# fixes gentoo build; not sure why?
libc_cv_uname_release=""
libc_cv_uname_version=""
ac_cv_header_cpuid_h=yes
######################################################################
# bash
######################################################################

# Bash configure.in uses this to work around an autoconf 2.53 bug
ac_cv_func_setvbuf_reversed=no
ac_cv_rl_version=5.1
bash_cv_termcap_lib=libncurses

# These mostly come from debian bash-2.05b changes
# They are needed to make a functioning bash.  Without these
# settings gdbserver exiting would cause the invoking bash to
# exit also.
bash_cv_have_mbstate_t=yes
bash_cv_dup2_broken=no
bash_cv_pgrp_pipe=no
bash_cv_sys_siglist=yes
bash_cv_under_sys_siglist=yes
bash_cv_opendir_not_robust=no
bash_cv_printf_declared=yes
bash_cv_ulimit_maxfds=yes
bash_cv_getenv_redef=yes
bash_cv_getcwd_calls_popen=no
bash_cv_func_strcoll_broken=no
bash_cv_must_reinstall_sighandlers=no
bash_cv_type_quad_t=yes
bash_cv_func_sigsetjmp=present
bash_cv_job_control_missing=present
bash_cv_sys_named_pipes=present
bash_cv_type_rlimit=long
bash_cv_printf_a_format=yes
bash_cv_unusable_rtsigs=no

######################################################################
# Apache
######################################################################
ac_cv_func_setpgrp_void=yes
apr_cv_process_shared_works=yes
apr_cv_tcp_nodelay_with_cork=yes
ap_void_ptr_lt_long=no

case ${host_cpu} in
x86_64 | alpha)
  ac_cv_sizeof_ssize_t=8
  ac_cv_sizeof_size_t=8
  ac_cv_sizeof_pid_t=4
  ;;
*)
  ac_cv_sizeof_ssize_t=4
  ac_cv_sizeof_size_t=4
  ac_cv_sizeof_pid_t=4
  ;;
esac

######################################################################
# gdb
######################################################################
gdb_cv_func_ptrace_args=int,int,long,long

######################################################################
# dpkg
######################################################################
dpkg_cv_va_copy=yes

######################################################################
# coreutils
######################################################################
ac_cv_search_clock_gettime=no
gl_cv_fs_space=yes

######################################################################
# tcpdump
######################################################################
ac_cv_linux_vers=2
ac_cv_func_pcap_findalldevs=no

######################################################################
# flex
######################################################################
ac_cv_func_malloc_0_nonnull=yes
ac_cv_func_realloc_0_nonnull=yes

######################################################################
# tar
######################################################################
tar_gl_cv_func_mknod_works=yes
>, value_int64_pointer, value_int_pointer, value_binary_data, IPC_PATH_MAX_LEN) from .message import Frame from .constants import * import zmq from zmq.error import ZMQError, _check_rc, _check_version from zmq.utils.strtypes import unicode def new_pointer_from_opt(option, length=0): from zmq.sugar.constants import ( int64_sockopts, bytes_sockopts, ) if option in int64_sockopts: return new_int64_pointer() elif option in bytes_sockopts: return new_binary_data(length) else: # default return new_int_pointer() def value_from_opt_pointer(option, opt_pointer, length=0): from zmq.sugar.constants import ( int64_sockopts, bytes_sockopts, ) if option in int64_sockopts: return int(opt_pointer[0]) elif option in bytes_sockopts: return ffi.buffer(opt_pointer, length)[:] else: return int(opt_pointer[0]) def initialize_opt_pointer(option, value, length=0): from zmq.sugar.constants import ( int64_sockopts, bytes_sockopts, ) if option in int64_sockopts: return value_int64_pointer(value) elif option in bytes_sockopts: return value_binary_data(value, length) else: return value_int_pointer(value) class Socket(object): context = None socket_type = None _zmq_socket = None _closed = None _ref = None _shadow = False def __init__(self, context=None, socket_type=None, shadow=None): self.context = context if shadow is not None: self._zmq_socket = ffi.cast("void *", shadow) self._shadow = True else: self._shadow = False self._zmq_socket = C.zmq_socket(context._zmq_ctx, socket_type) if self._zmq_socket == ffi.NULL: raise ZMQError() self._closed = False if context: self._ref = context._add_socket(self) @property def underlying(self): """The address of the underlying libzmq socket""" return int(ffi.cast('size_t', self._zmq_socket)) @property def closed(self): return self._closed def close(self, linger=None): rc = 0 if not self._closed and hasattr(self, '_zmq_socket'): if self._zmq_socket is not None: rc = C.zmq_close(self._zmq_socket) self._closed = True if self.context: self.context._rm_socket(self._ref) return rc def bind(self, address): if isinstance(address, unicode): address = address.encode('utf8') rc = C.zmq_bind(self._zmq_socket, address) if rc < 0: if IPC_PATH_MAX_LEN and C.zmq_errno() == errno_mod.ENAMETOOLONG: # py3compat: address is bytes, but msg wants str if str is unicode: address = address.decode('utf-8', 'replace') path = address.split('://', 1)[-1] msg = ('ipc path "{0}" is longer than {1} ' 'characters (sizeof(sockaddr_un.sun_path)).' .format(path, IPC_PATH_MAX_LEN)) raise ZMQError(C.zmq_errno(), msg=msg) else: _check_rc(rc) def unbind(self, address): _check_version((3,2), "unbind") if isinstance(address, unicode): address = address.encode('utf8') rc = C.zmq_unbind(self._zmq_socket, address) _check_rc(rc) def connect(self, address): if isinstance(address, unicode): address = address.encode('utf8') rc = C.zmq_connect(self._zmq_socket, address) _check_rc(rc) def disconnect(self, address): _check_version((3,2), "disconnect") if isinstance(address, unicode): address = address.encode('utf8') rc = C.zmq_disconnect(self._zmq_socket, address) _check_rc(rc) def set(self, option, value): length = None if isinstance(value, unicode): raise TypeError("unicode not allowed, use bytes") if isinstance(value, bytes): if option not in zmq.constants.bytes_sockopts: raise TypeError("not a bytes sockopt: %s" % option) length = len(value) c_data = initialize_opt_pointer(option, value, length) c_value_pointer = c_data[0] c_sizet = c_data[1] rc = C.zmq_setsockopt(self._zmq_socket, option, ffi.cast('void*', c_value_pointer), c_sizet) _check_rc(rc) def get(self, option): c_data = new_pointer_from_opt(option, length=255) c_value_pointer = c_data[0] c_sizet_pointer = c_data[1] rc = C.zmq_getsockopt(self._zmq_socket, option, c_value_pointer, c_sizet_pointer) _check_rc(rc) sz = c_sizet_pointer[0] v = value_from_opt_pointer(option, c_value_pointer, sz) if option != zmq.IDENTITY and option in zmq.constants.bytes_sockopts and v.endswith(b'\0'): v = v[:-1] return v def send(self, message, flags=0, copy=False, track=False): if isinstance(message, unicode): raise TypeError("Message must be in bytes, not an unicode Object") if isinstance(message, Frame): message = message.bytes zmq_msg = ffi.new('zmq_msg_t*') c_message = ffi.new('char[]', message) rc = C.zmq_msg_init_size(zmq_msg, len(message)) C.memcpy(C.zmq_msg_data(zmq_msg), c_message, len(message)) rc = C.zmq_msg_send(zmq_msg, self._zmq_socket, flags) C.zmq_msg_close(zmq_msg) _check_rc(rc) if track: return zmq.MessageTracker() def recv(self, flags=0, copy=True, track=False): zmq_msg = ffi.new('zmq_msg_t*') C.zmq_msg_init(zmq_msg) rc = C.zmq_msg_recv(zmq_msg, self._zmq_socket, flags) if rc < 0: C.zmq_msg_close(zmq_msg) _check_rc(rc) _buffer = ffi.buffer(C.zmq_msg_data(zmq_msg), C.zmq_msg_size(zmq_msg)) value = _buffer[:] C.zmq_msg_close(zmq_msg) frame = Frame(value, track=track) frame.more = self.getsockopt(RCVMORE) if copy: return frame.bytes else: return frame def monitor(self, addr, events=-1): """s.monitor(addr, flags) Start publishing socket events on inproc. See libzmq docs for zmq_monitor for details. Note: requires libzmq >= 3.2 Parameters ---------- addr : str The inproc url used for monitoring. Passing None as the addr will cause an existing socket monitor to be deregistered. events : int [default: zmq.EVENT_ALL] The zmq event bitmask for which events will be sent to the monitor. """ _check_version((3,2), "monitor") if events < 0: events = zmq.EVENT_ALL if addr is None: addr = ffi.NULL rc = C.zmq_socket_monitor(self._zmq_socket, addr, events) __all__ = ['Socket', 'IPC_PATH_MAX_LEN']