diff --git a/PLATFORMS.md b/PLATFORMS.md index 840af14b34..1b2ca1f9cd 100644 --- a/PLATFORMS.md +++ b/PLATFORMS.md @@ -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 +```