[Rpm-maint] [patch] rpm is not a cross-tool
Ralf Corsepius
rc040203 at freenet.de
Mon Aug 6 16:15:54 UTC 2007
On Mon, 2007-08-06 at 10:42 -0500, Mark Hatle wrote:
> The easiest way to check this. (Conceptually.. tailor to suit)
>
> On a non-linux host, such as solairs, configure to run on a linux host.
If you run
configure --host=<linux>
on a solaris machine, with the patch applied, it is supposed to build
linux executables with linux settings.
> If you following the paths through configure, you'll see it checks and
> hardcodes values based on the settings.
Right, based on $host.
> I'm not an autoconf expert so
> I'll leave which variables are the right ones to you..
>
> but the key is
> that when you configure, picking the "solaris" CFLAGS, and other
> configurations is obviously wrong when targeting linux.
CFLAGS is the autoconf variable to take the cflags of the compiler being
used. In case of cross-compilation, the compiler to be used will be a
cross compiler (typically with gcc: $host-gcc).
I.e. CFLAGS inside of the Makefile are supposed to carry the cross
compiler's flags, as well as all settings to be generated should be
"host" flags.
> A little less extreme. Configuring on an x86_32 linux host, to run RPM
> on "arm" linux machine.
I am familiar with cross-compilation, believe me
(http://www.rtems.org ;) ).
> Again, there is another set of things that
> check the host system and may configure values incorrectly.. This has
> been a constant source of problems to me...
Well, it shouldn't.
--build=<...> --host=<...> is well documented in autoconf and is widely
in use in plenty of packages around.
Ralf
More information about the Rpm-maint
mailing list