From c62748c9e31ea464b34f295dbd960073f6416fa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Wed, 4 Dec 2019 06:30:16 +0100 Subject: [PATCH] Update PLATFORMS.md to explicitly list Thread Local Storage as requirement for BIND 9 --- PLATFORMS | 40 +++++++++++++++++++++++++--------------- PLATFORMS.md | 14 +++++++++++--- 2 files changed, 36 insertions(+), 18 deletions(-) diff --git a/PLATFORMS b/PLATFORMS index 56b45c9357..6dfdad4d81 100644 --- a/PLATFORMS +++ b/PLATFORMS @@ -5,16 +5,28 @@ Supported platforms 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 IPv6 support, POSIX-compliant threads, the libuv -asynchronous I/O library, and the OpenSSL cryptography library. 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. +asynchronous I/O library, and the OpenSSL cryptography library. -BIND 9.15 requires fairly recent version of libuv library to run (>= 1.x). -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 -sources for updated packages. The other option is to install libuv from -sources. +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 +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 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 -These systems may not all have easily available the required dependencies -for building BIND although it will be possible in many cases to compile +These systems may not all have the required dependencies for building BIND +easily available, although it will be possible in many cases to compile 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 assessed against the risk of adverse effect on officially supported 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 library) * Linux without NPTL (Native POSIX Thread Library) - * Platforms where libuv cannot be compiled - -Platform quirks + * Platforms on which libuv cannot be compiled diff --git a/PLATFORMS.md b/PLATFORMS.md index 52041d07a7..cb94bc63d9 100644 --- a/PLATFORMS.md +++ b/PLATFORMS.md @@ -13,9 +13,17 @@ 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 IPv6 support, POSIX-compliant threads, the `libuv` asynchronous I/O library, -and the OpenSSL cryptography library. 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. +and the OpenSSL cryptography library. + +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 some of the older systems listed below, you will have to install an updated