]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add information compilation instructions for support on ARM
authorOndřej Surý <ondrej@sury.org>
Mon, 22 Oct 2018 09:43:29 +0000 (11:43 +0200)
committerOndřej Surý <ondrej@sury.org>
Tue, 23 Oct 2018 07:29:03 +0000 (09:29 +0200)
PLATFORMS.md

index 840af14b34d3c8c4afb00abde1466e837f5ed7e5..1b2ca1f9cd0f695f51008c8372019e611f192944 100644 (file)
@@ -67,3 +67,34 @@ These are platforms on which BIND is known *not* to build or run:
 * Platforms that don't support IPv6 Advanced Socket API (RFC 3542)
 * Platforms that don't support atomic operations (via compiler or library)
 * 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`.
+
+* FPU should be set at VFPv3-D16 as they represent the miminum 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
+```