Boost logo

Boost :

From: Bhat, Aniket (Aniket.Bhat_at_[hidden])
Date: 2008-08-15 11:06:47


FYI,

I ran across a problem with the boost inline assembly code in
boost_1_35_0/boost/detail/sp_counted_base_gcc_sparc.hpp. This file has
inline assembly which uses the "cas" instruction.

    __asm__ __volatile__( "cas %0, %2, %1"
                        : "+m" (*dest_), "+r" (swap_)
                        : "r" (compare_)
                        : "memory" );

Sparcv8 and pre-v8 architectures seem to be using the "swap" instruction
instead. The native sparcv8 assembler therefore complains on trying to
parse this:

gcc.compile.c++
/home/cmchan/boost_libs/boost/bin.v2/libs/date_time/build/gcc-4.0.2/debu
g/threading-multi/greg_month.o
/var/tmp//ccMoGlpR.s: Assembler messages:
/var/tmp//ccMoGlpR.s:1936: Error: Architecture mismatch on "cas".
/var/tmp//ccMoGlpR.s:1936: (Requires v9|v9a|v9b; requested architecture
is v8.)

The file mentioned above is new in boost_1_35_0 and is included from
boost_1_35_0/boost/detail/sp_counted_base.hpp:

#elif defined(__GNUC__) && ( defined( __sparcv8 ) || defined( __sparcv9
) )

Simply removing the pre-processing for __sparcv8 fixes the issue. I am
not sure if this is really a tool-chain issue or the problem with the
header boost_1_35_0/boost/detail/sp_counted_base.hpp

Thanks,
Aniket.

<DIV><FONT size="1">

E-mail confidentiality.
--------------------------------
This e-mail contains confidential and / or privileged information belonging to Spirent Communications plc, its affiliates and / or subsidiaries. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution and / or the taking of any action based upon reliance on the contents of this transmission is strictly forbidden. If you have received this message in error please notify the sender by return e-mail and delete it from your system. If you require assistance, please contact our IT department at helpdesk_at_spirent.com.

Spirent Communications plc
Northwood Park, Gatwick Road, Crawley, West Sussex, RH10 9XN, United Kingdom.
Tel No. +44 (0) 1293 767676
Fax No. +44 (0) 1293 767677

Registered in England Number 470893
Registered at Northwood Park, Gatwick Road, Crawley, West Sussex, RH10 9XN, United Kingdom.

Or if within the US,

Spirent Communications,
26750 Agoura Road, Calabasas, CA, 91302, USA.
Tel No. 1-818-676- 2300

</FONT></DIV>


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