From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/6860 Path: news.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: -march Date: Sat, 17 Jan 2015 17:20:47 -0500 Message-ID: <20150117222047.GZ4574@brightrain.aerifal.cx> References: Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1421533306 30575 80.91.229.3 (17 Jan 2015 22:21:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 17 Jan 2015 22:21:46 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-6873-gllmg-musl=m.gmane.org@lists.openwall.com Sat Jan 17 23:21:45 2015 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1YCbkX-0003V1-DP for gllmg-musl@m.gmane.org; Sat, 17 Jan 2015 23:21:45 +0100 Original-Received: (qmail 23553 invoked by uid 550); 17 Jan 2015 22:21:01 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 22468 invoked from network); 17 Jan 2015 22:21:00 -0000 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Original-Sender: Rich Felker Xref: news.gmane.org gmane.linux.lib.musl.general:6860 Archived-At: 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-$ARCH.so.1? it appears on my debian vm to always be > ld-musl-i386.so.1 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 libc.so/ld-musl (or any binaries static-linked with it) on a pre-686-class x86, but it's still compatible with exactly the same application binaries. > 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