2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-28 21:17:54 +00:00

Update PLATFORMS.md to explicitly list Thread Local Storage as requirement for BIND 9

This commit is contained in:
Ondřej Surý 2019-12-04 06:30:16 +01:00
parent b1a7ec7481
commit c62748c9e3
2 changed files with 36 additions and 18 deletions

View File

@ -5,16 +5,28 @@ Supported platforms
In general, this version of BIND will build and run on any POSIX-compliant In general, this version of BIND will build and run on any POSIX-compliant
system with a C11-compliant C compiler, BSD-style sockets with system with a C11-compliant C compiler, BSD-style sockets with
RFC-compliant IPv6 support, POSIX-compliant threads, the libuv RFC-compliant IPv6 support, POSIX-compliant threads, the libuv
asynchronous I/O library, and the OpenSSL cryptography library. Atomic asynchronous I/O library, and the OpenSSL cryptography library.
operations support from the compiler is needed, either in the form of
builtin operations, C11 atomics, or the Interlocked family of functions on
Windows.
BIND 9.15 requires fairly recent version of libuv library to run (>= 1.x). The following C11 features are used in BIND 9:
For some of the older systems listed below, you will have to install
updated libuv package from sources such as EPEL, PPA and other native * Atomic operations support from the compiler is needed, either in the
sources for updated packages. The other option is to install libuv from form of builtin operations, C11 atomics, or the Interlocked family of
sources. functions on Windows.
* Thread Local Storage support from the compiler is needed, either in
the form of C11 _Thread_local/thread_local, the __thread GCC
extension, or the __declspec(thread) MSVC extension on Windows.
BIND 9.15 requires a fairly recent version of libuv (at least 1.x). For
some of the older systems listed below, you will have to install an
updated libuv package from sources such as EPEL, PPA, or other native
sources for updated packages. The other option is to build and install
libuv from source.
Certain optional BIND features have additional library dependencies. These
include libxml2 and libjson-c for statistics, libmaxminddb for
geolocation, libfstrm and libprotobuf-c for DNSTAP, and libidn2 for
internationalized domain name conversion.
ISC regularly tests BIND on many operating systems and architectures, but ISC regularly tests BIND on many operating systems and architectures, but
lacks the resources to test all of them. Consequently, ISC is only able to lacks the resources to test all of them. Consequently, ISC is only able to
@ -58,10 +70,10 @@ Server 2012 R2, none of these are tested regularly by ISC.
Community maintained Community maintained
These systems may not all have easily available the required dependencies These systems may not all have the required dependencies for building BIND
for building BIND although it will be possible in many cases to compile easily available, although it will be possible in many cases to compile
those directly from source. The community and interested parties may wish those directly from source. The community and interested parties may wish
to help with maintenance and we welcome patch contributions, although we to help with maintenance, and we welcome patch contributions, although we
cannot guarantee that we will accept them. All contributions will be cannot guarantee that we will accept them. All contributions will be
assessed against the risk of adverse effect on officially supported assessed against the risk of adverse effect on officially supported
platforms. platforms.
@ -84,6 +96,4 @@ These are platforms on which BIND 9.15 is known not to build or run:
* Platforms that don't support atomic operations (via compiler or * Platforms that don't support atomic operations (via compiler or
library) library)
* Linux without NPTL (Native POSIX Thread Library) * Linux without NPTL (Native POSIX Thread Library)
* Platforms where libuv cannot be compiled * Platforms on which libuv cannot be compiled
Platform quirks

View File

@ -13,9 +13,17 @@
In general, this version of BIND will build and run on any POSIX-compliant In general, this version of BIND will build and run on any POSIX-compliant
system with a C11-compliant C compiler, BSD-style sockets with RFC-compliant system with a C11-compliant C compiler, BSD-style sockets with RFC-compliant
IPv6 support, POSIX-compliant threads, the `libuv` asynchronous I/O library, IPv6 support, POSIX-compliant threads, the `libuv` asynchronous I/O library,
and the OpenSSL cryptography library. Atomic operations support from the and the OpenSSL cryptography library.
compiler is needed, either in the form of builtin operations, C11 atomics,
or the `Interlocked` family of functions on Windows. The following C11 features are used in BIND 9:
* Atomic operations support from the compiler is needed, either in the form of
builtin operations, C11 atomics, or the `Interlocked` family of functions on
Windows.
* Thread Local Storage support from the compiler is needed, either in the form
of C11 `_Thread_local`/`thread_local`, the `__thread` GCC extension, or
the `__declspec(thread)` MSVC extension on Windows.
BIND 9.15 requires a fairly recent version of `libuv` (at least 1.x). For BIND 9.15 requires a fairly recent version of `libuv` (at least 1.x). For
some of the older systems listed below, you will have to install an updated some of the older systems listed below, you will have to install an updated