|
Boost Users : |
From: Peter Dimov (pdimov_at_[hidden])
Date: 2005-12-12 14:20:23
Ben Hutchings wrote:
> David M Garza wrote:
>
>> gdb's stack trace says:
>>
>> #0 0x400f8e1 in boost::detail::atomic_increment (pw=0x40006cc4)
>> at sp_counted_base_gcc_ia64.hpp:38
>>
>>
> Since gdb is printing the pointers as 32-bit values, and pw is not
> 64-bit-aligned, it appears that your compiler is using the ILP32
> convention (32-bit int, long and pointer types). I assumed the LP64
> convention (64-bit long and pointer types, 32-bit int) when writing
> the assembly-language code in sp_counted_base_gcc_ia64.hpp because I
> wasn't aware that other conventions were in use on IA64. If the C++
> code is compiled with an ILP32 convention then the assembly-language
> code will be completely broken. I may be able to adjust the code to
> work to detect the model at compile time and use 32-bit memory
> accesses if appropriate.
Another option is to just switch to 'int' and 32-bit accesses (as we did for
PPC64 IIRC.)
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net