State of multilib development update

Ralf Corsepius rc040203 at freenet.de
Fri Oct 27 09:07:04 UTC 2006


On Fri, 2006-10-27 at 10:38 +0200, Hans de Goede wrote:
> Hi all,

> "gcc -o hello helloworld.c", creates an x86_64 elf file on my x86_64
> system as expected however, "setarch i386 gcc -o hello helloworld.c"
> also creates an x86_64 elf file instead of an i386 one, to get an i386
> one I must do: "gcc -m32 -o hello helloworld.c".
> 
> This is unfortunate, 
GCC's -m<flags> are the actual origin of multilibs (NOTE: multilibs ==
building for architecture variants; not multiarch'ing == running
different architectures in the same run-time environment !).

> because even though rpmbuild adds -m32 to the
> *FLAGS environment variables things still don't for many packages,
> because they for example often ignore LDFLAGS,
It is controversial if -m<flags> should be part of CFLAGS or LDFLAGS
etc.

Some people consider it to be a mistake, because -m<flags> can comprise
effects on various components of a toolchain, not only the compiler
(E.g. there exist targets from whom -m<flags> set CPP defines).

>  thus not specifying -m32
> when linking, causing things to fail.
Adding -m<flags> directly to CC, CXX etc. is an alternative approach.

Ralf





More information about the fedora-devel-list mailing list