multilib.eclass: populate AR, NM, RANLIB, OBJDUMP, STRIP, bug #724558
authorSergei Trofimovich <slyfox@gentoo.org>
Fri, 22 May 2020 22:36:50 +0000 (23:36 +0100)
committerSergei Trofimovich <slyfox@gentoo.org>
Sat, 23 May 2020 08:17:14 +0000 (09:17 +0100)
For both multilib and non-multilib profiles binutils provides
tools with native CHOST 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 and friends to 'x86_64-pc-linux-gnu-nm' for
multilib setup similar to other environment variables.

Reported-by: Kent Fredric
Closes: https://bugs.gentoo.org/724558
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
eclass/multilib.eclass

index bbaab709b4fad0ee18a22b87109cb7c6db363cf5..acfb78deab1f73254e8fd2c34c36a6b31c6e1964 100644 (file)
@@ -484,11 +484,16 @@ 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 OBJDUMP="$(tc-getOBJDUMP)" # Avoid 'objdump', use '${CHOST}-objdump'
+               export RANLIB="$(tc-getRANLIB)" # Avoid 'ranlib', use '${CHOST}-ranlib'
+               export STRIP="$(tc-getSTRIP)" # Avoid 'strip', use '${CHOST}-strip'
                export CHOST=$(get_abi_CHOST $1)
                export PKG_CONFIG_LIBDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig
                export PKG_CONFIG_PATH=${EPREFIX}/usr/share/pkgconfig