Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2008-04-02 17:26:09


Joe Gottman reports in:

http://svn.boost.org/trac/boost/ticket/1758

that 1.35.0 fails to build with gcc 3.4 on SPARC Solaris. The problem is
that there is no way to autodetect whether the V9 instruction set has been
selected in 32 bit mode, because GCC only defines __sparcv8 for
compatibility reasons.

Since most (all?) SPARCs where Boost runs are UltraSPARCs, which do support
V9, we can fix this by making the V9 instruction set default.

I see in gcc.jam the following lines:

cpu-flags gcc OPTIONS : sparc : c3 : -mcpu=c3 : default ;
cpu-flags gcc OPTIONS : sparc : v7 : -mcpu=v7 ;
cpu-flags gcc OPTIONS : sparc : cypress : -mcpu=cypress ;
cpu-flags gcc OPTIONS : sparc : v8 : -mcpu=v8 ;
cpu-flags gcc OPTIONS : sparc : supersparc : -mcpu=supersparc ;
cpu-flags gcc OPTIONS : sparc : sparclite : -mcpu=sparclite ;
cpu-flags gcc OPTIONS : sparc : hypersparc : -mcpu=hypersparc ;
cpu-flags gcc OPTIONS : sparc : sparclite86x : -mcpu=sparclite86x ;
cpu-flags gcc OPTIONS : sparc : f930 : -mcpu=f930 ;
cpu-flags gcc OPTIONS : sparc : f934 : -mcpu=f934 ;
cpu-flags gcc OPTIONS : sparc : sparclet : -mcpu=sparclet ;
cpu-flags gcc OPTIONS : sparc : tsc701 : -mcpu=tsc701 ;
cpu-flags gcc OPTIONS : sparc : v9 : -mcpu=v9 ;
cpu-flags gcc OPTIONS : sparc : ultrasparc : -mcpu=ultrasparc ;
cpu-flags gcc OPTIONS : sparc : ultrasparc3 : -mcpu=ultrasparc3 ;

The default instruction set seems to be "c3", which results in -mcpu=c3.
What is -mcpu=c3? It's not documented anywhere.

Can we move the "default" to the v9 line?


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