Boost logo

Boost :

Subject: [boost] Default x86 instruction set
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2013-05-04 18:02:33


Hi,

I noticed that by default x86 32 bit builds are targeted for i386 (at least
gcc toolset and its derivatives explicitly specify -march=i386 in the command
line). Is there a reason to target for such an ancient instruction set by
default?

Frankly, I'm not sure that the current Boost code would even run on a real
80386, since there are at least quite a few places with atomic operations,
which I think were not present on that CPU. Also, I would like to use cpuid
safely in my library, and this operation appeared only in some i486 and all
Pentiums, so I would basically target my code for Pentium at the very least.

But perhaps we could raise the default to Pentium Pro (i686)? Most Linux
distributions already switched to this target for 32 bit builds because of
availability of cmov instructions. Windows and OS X, I think, don't support
older architectures either.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk