Subject: bug#8912: cross-compile code for LD setup does not use the right system macro

From: Mike Frysinger <[email-masked]>
Date: Tue, 16 Jan 2024 01:32:12 +0000 (UTC)

On Tue, 21 Jun 2011 14:12:02 +0200, Eric PAIRE wrote:
> While compiling on 64-bit Linux a package that will be executed on a 32-bit Linux ([--build=x86_64-unknown-linux-gnu] --host=i686-pc-linux-gnu), I am facing an issue with the value of the LD macro generated in libtool, as the libtool part of configure does not add the '-m elf_i386' option for LD to generate a 32-bit object/program.

can you share an example project/configure/config.log showing the problem ?

> Actually, the problem is that libtool.m4 checks for the build system type with $host, whereas it should be $build. I have understood that $build is the system on which the program is generated (64-bit in my case) and $host the system on which the program created (32-bit in my case) is meant to run. So the right macro should test build system, and not host.

this is incorrect.  $build controls where things are compiling.
$host controls where the things will run.  please see:
https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.72/html_node/Specifying-Target-Triplets.html
-mike