Why am I seeing this message: 'named' uses 32-bit capabilities (legacy support in use) ?
When building BIND to run in a 64-bit environment, the following message may be logged by the kernel when starting BIND:
warning:`named' uses 32-bit capabilities (legacy support in use)
This does not mean that BIND has not been built as a 64-bit binary. You can confirm that the binary is a 64-bit executable using the file command, for example:
$ file /dns/sbin/named /dns/sbin/named: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
This warning can be safely ignored, although most administrators will want to resolve the underlying problem being highlighted - which is either that named is not using libcap at all, or that it is using the 32-bit libcap library. It is the libcap2 package that provides full 64-bit support. BIND needs to be built with libcap2 to resolve the warning.
Therefore you should:
- Install libcap2
- In the BIND source code directory, remove the results of the previous configure step:
$ make clean
- Run configure again, with your usual options and settings, and then also check that BIND has detected capability.h and will build using libcap by searching config.h for HAVE_LIBCAP 1. (Note that capability.h is provided by both libcap and libcap2.)
$ grep LIBCAP config.h #define HAVE_LIBCAP 1
- Then complete the build and install of BIND.