PLATFORMS 3.28 KB
Newer Older
1 2 3
Supported platforms

In general, this version of BIND will build and run on any POSIX-compliant
Tinderbox User's avatar
Tinderbox User committed
4 5 6 7 8
system with a C99-compliant C compiler, BSD-style sockets with
RFC-compliant IPv6 support, POSIX-compliant threads, 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.
9 10 11 12 13 14 15

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
offer support on a "best effort" basis for some.

Regularly tested platforms

16
As of Feb 2019, BIND 9.15 is fully supported and regularly tested on the
17
following systems:
18

19
  * Debian 8, 9, 10
20
  * Ubuntu 16.04, 18.04
21 22 23 24
  * Fedora 28, 29
  * Red Hat Enterprise Linux / CentOS 6, 7
  * FreeBSD 11.x
  * OpenBSD 6.2, 6.3
25 26 27 28 29 30

The amd64, i386, armhf and arm64 CPU architectures are all fully
supported.

Best effort

31 32 33 34 35
The following are platforms on which BIND is known to build and run. ISC
makes every effort to fix bugs on these platforms, but may be unable to do
so quickly due to lack of hardware, less familiarity on the part of
engineering staff, and other constraints. With the exception of Windows
Server 2012 R2, none of these are tested regularly by ISC.
36 37

  * Windows Server 2012 R2, 2016 / x64
38
  * Windows 10 / x64
39
  * macOS 10.12+
40 41 42
  * Solaris 11
  * FreeBSD 10.x, 12.0+
  * OpenBSD 6.4+
43
  * NetBSD
44
  * Other Linux distributions still supported by their vendors, such as:
45 46
      + Ubuntu 14.04, 18.10+
      + Gentoo
47
      + Arch Linux
48
      + Alpine Linux
49
  * OpenWRT/LEDE 17.01+
50 51 52 53
  * Other CPU architectures (mips, mipsel, sparc, ...)

Unsupported platforms

54
These are platforms on which BIND 9.15 is known not to build or run:
55 56 57

  * Platforms without at least OpenSSL 1.0.2
  * Windows 10 / x86
58
  * Windows Server 2012 and older
59
  * Solaris 10 and older
60
  * Platforms that don't support IPv6 Advanced Socket API (RFC 3542)
Tinderbox User's avatar
Tinderbox User committed
61 62
  * Platforms that don't support atomic operations (via compiler or
    library)
Tinderbox User's avatar
Tinderbox User committed
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
  * Linux without NPTL (Native POSIX Thread Library)

Platform quirks

ARM

If the compilation ends with following error:

Error: selected processor does not support `yield' in ARM mode

You will need to set -march compiler option to native, so the compiler
recognizes yield assembler instruction. The proper way to set -march=
native would be to put it into CFLAGS, e.g. run ./configure like this:
CFLAGS="-march=native -Os -g" ./configure plus your usual options.

If that doesn't work, you can enforce the minimum CPU and FPU (taken from
Debian armhf documentation):

  * The lowest worthwhile CPU implementation is Armv7-A, therefore the
    recommended build option is -march=armv7-a.

84
  * FPU should be set at VFPv3-D16 as they represent the minimum
Tinderbox User's avatar
Tinderbox User committed
85 86 87 88 89 90
    specification of the processors to support here, therefore the
    recommended build option is -mfpu=vfpv3-d16.

The configure command should look like this:

CFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -Os -g" ./configure
Tinderbox User's avatar
Tinderbox User committed
91 92 93 94 95 96 97 98

NetBSD 6 i386

The i386 build of NetBSD requires the libatomic library, available from
the gcc5-libs package. Because this library is in a non-standard path, its
location must be specified in the configure command line:

LDFLAGS="-L/usr/pkg/gcc5/i486--netbsdelf/lib/ -Wl,-R/usr/pkg/gcc5/i486--netbsdelf/lib/" ./configure