Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Sat, 17 Jan 2015 18:31:31 -0500
From: stephen Turner <>
Subject: Re: -march

On Sat, Jan 17, 2015 at 5:20 PM, Rich Felker <> wrote:

> On Sat, Jan 17, 2015 at 05:10:40PM -0500, stephen Turner wrote:
> > So i have been allowing musl to auto detect/compile and it seems to have
> > always selected i386 by default. I wanted to build it for 686 and noticed
> > the --target= didnt seem to do it on my system I specified -march to
> cflags
> > and it still shows i386 for the link. The link is supposed to change
> > correct? IE ld-musl-$ it appears on my debian vm to always be
> > is it instead pulling the $ARCH var from somewhere off
> my
> > debian system instead of what it was compiled for?
> >
> > as far as the actual code in the libs, it could have been built in i686
> > form both times but i did not try to check it by any means other than
> > glancing at the link. I know the -march=i686 was passed during the
> compile
> > process though. while watching the compile output stream by.
> If you want a different -march, just put it in the CFLAGS you pass to
> configure and it will be honored. This does not change $ARCH or the
> name of the dynamic linker, because either way musl is providing the
> exact same ABI, which we call "i386". If you build musl with
> -march=i686, you won't be able to use the (or any
> binaries static-linked with it) on a pre-686-class x86, but it's still
> compatible with exactly the same application binaries.
Out of curiosity, with musl is there a noticeable benefit to compiling i686
instead of i486? If not then i may just stick to 486 which is the oldest
supported by newer kernels.

> > Im not sure exactly what is going on at the moment, im assuming i may not
> > be doing something right?  A readelf output said the machine is intel
> 80386
> > (In the event thats pointing to my processor im running a quad 64 bit
> amd)
> >
> > thanks for any help and insight.
> On some archs, extended headers encode the minimum cpu model needed to
> use the binary. This is not done on x86 as far as I know. If the cpu
> is too old to support some instructions in the binary, you'll just get
> SIGILL at runtime.
> Rich


Content of type "text/html" skipped

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.