mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-29 13:38:26 +00:00
Fix the build on NetBSD due to the differences in pthread implementation.
Signed-off-by: Ondřej Surý <ondrej@sury.org>
This commit is contained in:
parent
259a4947e6
commit
f6c4ed94e4
9
configure
vendored
9
configure
vendored
@ -20332,7 +20332,7 @@ else
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
;; #(
|
;; #(
|
||||||
*-freebsd*|*-openbsd*) :
|
*-freebsd*|*-openbsd*|*-netbsd*) :
|
||||||
|
|
||||||
LDFLAGS="${LDFLAGS} -Wl,-E"
|
LDFLAGS="${LDFLAGS} -Wl,-E"
|
||||||
SO_CFLAGS="-fpic"
|
SO_CFLAGS="-fpic"
|
||||||
@ -20348,13 +20348,6 @@ else
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
;; #(
|
;; #(
|
||||||
*-netbsd*) :
|
|
||||||
|
|
||||||
SO_CFLAGS="-fpic"
|
|
||||||
SO_LDFLAGS="-Bshareable -x"
|
|
||||||
SO_LD="ld"
|
|
||||||
SO_STRIP="sed -e s/-Wl,//g"
|
|
||||||
;; #(
|
|
||||||
*-solaris*) :
|
*-solaris*) :
|
||||||
|
|
||||||
SO_CFLAGS="-KPIC"
|
SO_CFLAGS="-KPIC"
|
||||||
|
@ -2697,7 +2697,7 @@ AS_IF([test "$with_dlopen" = "yes"],
|
|||||||
SO_LD="${CC}"
|
SO_LD="${CC}"
|
||||||
])
|
])
|
||||||
],
|
],
|
||||||
[*-freebsd*|*-openbsd*],[
|
[*-freebsd*|*-openbsd*|*-netbsd*],[
|
||||||
LDFLAGS="${LDFLAGS} -Wl,-E"
|
LDFLAGS="${LDFLAGS} -Wl,-E"
|
||||||
SO_CFLAGS="-fpic"
|
SO_CFLAGS="-fpic"
|
||||||
AS_IF([test "$use_libtool" = "yes"],[
|
AS_IF([test "$use_libtool" = "yes"],[
|
||||||
@ -2708,12 +2708,6 @@ AS_IF([test "$with_dlopen" = "yes"],
|
|||||||
SO_LD="${CC}"
|
SO_LD="${CC}"
|
||||||
])
|
])
|
||||||
],
|
],
|
||||||
[*-netbsd*],[
|
|
||||||
SO_CFLAGS="-fpic"
|
|
||||||
SO_LDFLAGS="-Bshareable -x"
|
|
||||||
SO_LD="ld"
|
|
||||||
SO_STRIP="sed -e s/-Wl,//g"
|
|
||||||
],
|
|
||||||
[*-solaris*],[
|
[*-solaris*],[
|
||||||
SO_CFLAGS="-KPIC"
|
SO_CFLAGS="-KPIC"
|
||||||
SO_LDFLAGS="-G -z text"
|
SO_LDFLAGS="-G -z text"
|
||||||
|
@ -71,6 +71,10 @@ isc_thread_create(isc_threadfunc_t func, isc_threadarg_t arg,
|
|||||||
return (ISC_R_SUCCESS);
|
return (ISC_R_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __NetBSD__
|
||||||
|
#define pthread_setconcurrency(a) (void) a/* nothing */
|
||||||
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
isc_thread_setconcurrency(unsigned int level) {
|
isc_thread_setconcurrency(unsigned int level) {
|
||||||
(void)pthread_setconcurrency(level);
|
(void)pthread_setconcurrency(level);
|
||||||
@ -83,7 +87,11 @@ isc_thread_setname(isc_thread_t thread, const char *name) {
|
|||||||
* macOS has pthread_setname_np but only works on the
|
* macOS has pthread_setname_np but only works on the
|
||||||
* current thread so it's not used here
|
* current thread so it's not used here
|
||||||
*/
|
*/
|
||||||
|
#if defined(__NetBSD__)
|
||||||
|
(void)pthread_setname_np(thread, name, NULL);
|
||||||
|
#else
|
||||||
(void)pthread_setname_np(thread, name);
|
(void)pthread_setname_np(thread, name);
|
||||||
|
#endif
|
||||||
#elif defined(HAVE_PTHREAD_SET_NAME_NP)
|
#elif defined(HAVE_PTHREAD_SET_NAME_NP)
|
||||||
(void)pthread_set_name_np(thread, name);
|
(void)pthread_set_name_np(thread, name);
|
||||||
#else
|
#else
|
||||||
@ -115,6 +123,20 @@ isc_thread_setaffinity(int cpu) {
|
|||||||
return (ISC_R_FAILURE);
|
return (ISC_R_FAILURE);
|
||||||
}
|
}
|
||||||
#elif defined(HAVE_PTHREAD_SETAFFINITY_NP)
|
#elif defined(HAVE_PTHREAD_SETAFFINITY_NP)
|
||||||
|
#if defined(__NetBSD__)
|
||||||
|
cpuset_t *cset;
|
||||||
|
cset = cpuset_create();
|
||||||
|
if (cset == NULL)
|
||||||
|
return (ISC_R_FAILURE);
|
||||||
|
cpuset_set(cpu, cset);
|
||||||
|
if (pthread_setaffinity_np(pthread_self(),
|
||||||
|
cpuset_size(cset), cset) != 0)
|
||||||
|
{
|
||||||
|
cpuset_destroy(cset);
|
||||||
|
return (ISC_R_FAILURE);
|
||||||
|
}
|
||||||
|
cpuset_destroy(cset);
|
||||||
|
#else /* linux? */
|
||||||
cpu_set_t set;
|
cpu_set_t set;
|
||||||
CPU_ZERO(&set);
|
CPU_ZERO(&set);
|
||||||
CPU_SET(cpu, &set);
|
CPU_SET(cpu, &set);
|
||||||
@ -123,6 +145,7 @@ isc_thread_setaffinity(int cpu) {
|
|||||||
{
|
{
|
||||||
return (ISC_R_FAILURE);
|
return (ISC_R_FAILURE);
|
||||||
}
|
}
|
||||||
|
#endif /* __NetBSD__ */
|
||||||
#elif defined(HAVE_PROCESSOR_BIND)
|
#elif defined(HAVE_PROCESSOR_BIND)
|
||||||
if (processor_bind(P_LWPID, P_MYID, cpu, NULL) != 0) {
|
if (processor_bind(P_LWPID, P_MYID, cpu, NULL) != 0) {
|
||||||
return (ISC_R_FAILURE);
|
return (ISC_R_FAILURE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user