Build on Solaris 11 fixed.
This commit is contained in:
13
auto/clang
13
auto/clang
@@ -87,6 +87,19 @@ nxt_feature_test="int main() {
|
|||||||
. auto/feature
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
nxt_feature="GCC __builtin_clz()"
|
||||||
|
nxt_feature_name=NXT_HAVE_BUILTIN_CLZ
|
||||||
|
nxt_feature_run=
|
||||||
|
nxt_feature_incs=
|
||||||
|
nxt_feature_libs=
|
||||||
|
nxt_feature_test="int main() {
|
||||||
|
if (__builtin_clz(1) == 31)
|
||||||
|
return 0;
|
||||||
|
return 1;
|
||||||
|
}"
|
||||||
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
nxt_feature="GCC __attribute__ visibility"
|
nxt_feature="GCC __attribute__ visibility"
|
||||||
nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_VISIBILITY
|
nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_VISIBILITY
|
||||||
nxt_feature_run=
|
nxt_feature_run=
|
||||||
|
|||||||
@@ -16,7 +16,8 @@
|
|||||||
#if (NXT_DEBUG)
|
#if (NXT_DEBUG)
|
||||||
|
|
||||||
#define nxt_go_debug(fmt, ARGS...) \
|
#define nxt_go_debug(fmt, ARGS...) \
|
||||||
fprintf(stdout, "go debug[%p]: " fmt "\n", (void *) pthread_self(), ##ARGS)
|
fprintf(stdout, "go debug[%p]: " fmt "\n", \
|
||||||
|
(void *) (intptr_t) pthread_self(), ##ARGS)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
|||||||
@@ -210,9 +210,6 @@ nxt_bswap32(val) \
|
|||||||
#define nxt_is_power_of_two(value) \
|
#define nxt_is_power_of_two(value) \
|
||||||
((((value) - 1) & (value)) == 0)
|
((((value) - 1) & (value)) == 0)
|
||||||
|
|
||||||
#define nxt_lg2(value) \
|
|
||||||
(31 - __builtin_clz(value))
|
|
||||||
|
|
||||||
|
|
||||||
#define \
|
#define \
|
||||||
nxt_align_size(d, a) \
|
nxt_align_size(d, a) \
|
||||||
|
|||||||
@@ -863,7 +863,7 @@ nxt_conf_json_object_hash_alloc(void *data, size_t size)
|
|||||||
static void
|
static void
|
||||||
nxt_conf_json_object_hash_free(void *data, void *p)
|
nxt_conf_json_object_hash_free(void *data, void *p)
|
||||||
{
|
{
|
||||||
return nxt_mp_free(data, p);
|
nxt_mp_free(data, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ typedef struct {
|
|||||||
nxt_work_handler_t accept;
|
nxt_work_handler_t accept;
|
||||||
|
|
||||||
nxt_listen_socket_t *listen;
|
nxt_listen_socket_t *listen;
|
||||||
nxt_conn_t *next; /* STUB */;
|
nxt_conn_t *next; /* STUB */
|
||||||
nxt_work_queue_t *work_queue;
|
nxt_work_queue_t *work_queue;
|
||||||
|
|
||||||
nxt_timer_t timer;
|
nxt_timer_t timer;
|
||||||
|
|||||||
37
src/nxt_mp.c
37
src/nxt_mp.c
@@ -113,7 +113,7 @@ struct nxt_mp_s {
|
|||||||
nxt_queue_t free_pages;
|
nxt_queue_t free_pages;
|
||||||
nxt_queue_t nget_pages;
|
nxt_queue_t nget_pages;
|
||||||
nxt_queue_t get_pages;
|
nxt_queue_t get_pages;
|
||||||
nxt_queue_t chunk_pages[0];
|
nxt_queue_t chunk_pages[];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -151,6 +151,41 @@ static const char *nxt_mp_chunk_free(nxt_mp_t *mp, nxt_mp_block_t *cluster,
|
|||||||
u_char *p);
|
u_char *p);
|
||||||
|
|
||||||
|
|
||||||
|
#if (NXT_HAVE_BUILTIN_CLZ)
|
||||||
|
|
||||||
|
#define nxt_lg2(value) \
|
||||||
|
(31 - __builtin_clz(value))
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
static const int nxt_lg2_tab64[64] = {
|
||||||
|
63, 0, 58, 1, 59, 47, 53, 2,
|
||||||
|
60, 39, 48, 27, 54, 33, 42, 3,
|
||||||
|
61, 51, 37, 40, 49, 18, 28, 20,
|
||||||
|
55, 30, 34, 11, 43, 14, 22, 4,
|
||||||
|
62, 57, 46, 52, 38, 26, 32, 41,
|
||||||
|
50, 36, 17, 19, 29, 10, 13, 21,
|
||||||
|
56, 45, 25, 31, 35, 16, 9, 12,
|
||||||
|
44, 24, 15, 8, 23, 7, 6, 5
|
||||||
|
};
|
||||||
|
|
||||||
|
static const uint64_t nxt_lg2_magic = 0x07EDD5E59A4E28C2ULL;
|
||||||
|
|
||||||
|
static int
|
||||||
|
nxt_lg2(uint64_t v)
|
||||||
|
{
|
||||||
|
v |= v >> 1;
|
||||||
|
v |= v >> 2;
|
||||||
|
v |= v >> 4;
|
||||||
|
v |= v >> 8;
|
||||||
|
v |= v >> 16;
|
||||||
|
v |= v >> 32;
|
||||||
|
return nxt_lg2_tab64[ ((v - (v >> 1)) * nxt_lg2_magic) >> 58 ];
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
nxt_mp_t *
|
nxt_mp_t *
|
||||||
nxt_mp_create(size_t cluster_size, size_t page_alignment, size_t page_size,
|
nxt_mp_create(size_t cluster_size, size_t page_alignment, size_t page_size,
|
||||||
size_t min_chunk_size)
|
size_t min_chunk_size)
|
||||||
|
|||||||
@@ -63,7 +63,9 @@
|
|||||||
|
|
||||||
#if (NXT_SOLARIS)
|
#if (NXT_SOLARIS)
|
||||||
|
|
||||||
|
#ifndef _FILE_OFFSET_BITS
|
||||||
#define _FILE_OFFSET_BITS 64 /* Must be before <sys/types.h>. */
|
#define _FILE_OFFSET_BITS 64 /* Must be before <sys/types.h>. */
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef _REENTRANT /* May be set by "-mt" options. */
|
#ifndef _REENTRANT /* May be set by "-mt" options. */
|
||||||
#define _REENTRANT /* Thread safe errno. */
|
#define _REENTRANT /* Thread safe errno. */
|
||||||
|
|||||||
Reference in New Issue
Block a user