Re: Difference between --target=i386 and i686

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2020-02-21 18:38, J.W. Jagersma wrote:
> On 2020-02-19 00:16, Jim Wilson wrote:
>> On Wed, Feb 12, 2020 at 9:10 AM J.W. Jagersma <jwjagersma@xxxxxxxxx> wrote:
>>> i686-gcc -march=i386: cmov (!)
>>
>> Did you check to see where the cmov instruction is coming from?  The
>> compiler won't generate it with -march=i386, but there may be a
>> precompiled library like libgcc or libstdc++ that contains the cmov
>> instruction because they were compiled for i686.  In order to get the
>> right effect with -march=i386, you would need to build multiple copies
>> of the libraries, one of them with -march=i386.  We call this
>> multilibs.  This is normally done with -m32/-m64 so a single compiler
>> can generate both 32-bit and 64-bit code, but it is not normally done
>> with i386 and i686.  You would have to change the default
>> configuration to build multilibs based on -march.
> 
> Say I wanted to do build multilibs for x86, where would I start? I've
> been looking through the configure/make files but I don't see how it's
> done.

Nevermind that, I found it in the documentation here:
https://gcc.gnu.org/onlinedocs/gccint/Target-Fragment.html



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux