For both multilib and non-multilib profiles binutils provides
tools with native ABI prefix only. For example on amd64 there
is only 'x86_64-pc-linux-gnu-nm' and 'nm'.

On abi_x86_32 tools are usually configured with --host=i686-pc-linux-gnu.
Configure tries i686-pc-linux-gnu-nm, then falls back to 'nm'.

The change overrides NM to 'x86_64-pc-linux-gnu-nm' for
multilib setup similar to other environment variables.

Reported-by: Kent Fredric
Signed-off-by: Sergei Trofimovich <>
 eclass/multilib.eclass | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/eclass/multilib.eclass b/eclass/multilib.eclass
index bbaab709b4f..25e90dea44c 100644
--- a/eclass/multilib.eclass
+++ b/eclass/multilib.eclass
@@ -484,11 +484,13 @@ multilib_toolchain_setup() {
                # Set the CHOST native first so that we pick up the native
                # toolchain and not a cross-compiler by accident #202811.
                export CHOST=$(get_abi_CHOST ${DEFAULT_ABI})
+               export AR="$(tc-getAR)" # Avoid 'ar', use '${CHOST}-ar'
                export CC="$(tc-getCC) $(get_abi_CFLAGS)"
                export CXX="$(tc-getCXX) $(get_abi_CFLAGS)"
                export F77="$(tc-getF77) $(get_abi_CFLAGS)"
                export FC="$(tc-getFC) $(get_abi_CFLAGS)"
                export LD="$(tc-getLD) $(get_abi_LDFLAGS)"
+               export NM="$(tc-getNM)" # Avoid 'nm', use '${CHOST}-nm'
                export CHOST=$(get_abi_CHOST $1)
                export PKG_CONFIG_LIBDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig
                export PKG_CONFIG_PATH=${EPREFIX}/usr/share/pkgconfig

Reply via email to