Why am I seeing this message: 'named' uses 32-bit capabilities (legacy support in use) ?
  • 05 Oct 2018
  • 1 Minute to read
  • Contributors
  • Dark
    Light
  • PDF

Why am I seeing this message: 'named' uses 32-bit capabilities (legacy support in use) ?

  • Dark
    Light
  • PDF

Article Summary

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.

BIND needs the libcap2 header files to be available during the configure step in order to use libcap2
Although you may have the libcap2 package installed, on many linux variants, particularly debian, header files for an application library are delivered separately with the application-dev package, so unless this is also installed, software builds that depend on the header files won't be able to use it. Therefore, you may also need to install libcap2-dev prior to building BIND.

Some linux distributions may make the libcap2 header files available as a package named libcap-dev
You may find that there is no package available named libcap2-dev for your distribution. In that case, we suggest that you check the details of the libcap-dev package instead to see if that provides what you need.