On Fri, 02 Apr 2010 08:12:10 PDT, Kim Woodle <kwoo...@aya.yale.edu> wrote: > I'm trying to build an application which would use the boost date_time > library. When the application is linked to libboost_date_time.so it crashes > at start-up with the following trace: > > t...@1 (l...@1) program terminated by signal SEGV (no mapping at the fault > address) > 0xfffffd7fff1eb43b: memcpy+0x187b: movdqu 0xffffffffffffffe0(%rdx),%xmm2 > (dbx) where > current thread: t...@1 > =>[1] memcpy(0x416170, 0x439458, 0x43a018, 0x416d30, 0x53253a4d253a3c65, > 0x400000), at 0xfffffd7fff1eb43b > [2] std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::__clone(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ff8877e03 > [3] std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::reserve(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ff8870f4e > [4] std::__copy<const > char*,std::back_insert_iterator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >,long>(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ff78cddfa > [5] std::_Init_timeinfo(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at > 0xfffffd7ff78cb1a3 > [6] std::_Locale_impl::make_classic_locale(0x0, 0x0, 0x0, 0x0, 0x0, > 0x0), at 0xfffffd7ff78cea86 > [7] std::locale::_S_initialize(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at > 0xfffffd7ff78cfa6a > [8] __SLIP.INIT_A(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ff78ba81c
> [9] _init(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7ff78dfe55 > [10] call_init(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff3d3228 > [11] setup(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff3d20eb > [12] _setup(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff3e1e99 > [13] _rt_boot(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff3c4bd6 > [14] 0xfffffd7fffdff880(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at > 0xfffffd7fffdff880 > > This trace is from boost 1.35 from blastwave. The same occurs using boost > 1.42_0 from boost.org. > The app name is url > ldd ./dist/Debug/SunStudioExpress-Solaris-x86/url > libxml2.so.2 => /lib/64/libxml2.so.2 > libxslt.so.1 => /usr/lib/64/libxslt.so.1 > libboost_date_time.so => /usr/local/lib/libboost_date_time.so > libktrade.so => /usr/local/ktrade/lib/libktrade.so > libmysqlclient.so.16 => > /usr/mysql/5.1/lib/amd64/mysql/libmysqlclient.so.16 > libmysqlcppconn.so.1 => > /usr/mysql/5.1/lib/amd64/mysql/libmysqlcppconn.so.1 > libCstd.so.1 => /opt/SunStudioExpress/lib/amd64/libCstd.so.1 > libCrun.so.1 => /opt/SunStudioExpress/lib/amd64/libCrun.so.1 > libm.so.2 => /lib/64/libm.so.2 > libc.so.1 => /lib/64/libc.so.1 > libpthread.so.1 => /lib/64/libpthread.so.1 > libz.so.1 => /lib/64/libz.so.1 > libsocket.so.1 => /lib/64/libsocket.so.1 > libnsl.so.1 => /lib/64/libnsl.so.1 > librt.so.1 => /lib/64/librt.so.1 > libstlport.so.1 => /opt/sunstudio12.1/lib/stlport4/amd64/libstlport.so.1 > libgslcblas.so.0 => /usr/local/lib/libgslcblas.so.0 > libgsl.so.0 => /usr/local/lib/libgsl.so.0 > libthread.so.1 => /lib/64/libthread.so.1 > libgen.so.1 => /lib/64/libgen.so.1 > libresolv.so.2 => /lib/64/libresolv.so.2 > libmp.so.2 => /lib/64/libmp.so.2 > libmd.so.1 => /lib/64/libmd.so.1 > libscf.so.1 => /lib/64/libscf.so.1 > libCrun.so.1 => /usr/lib/64/libCrun.so.1 > libgcc_s.so.1 => /usr/sfw/lib/64/libgcc_s.so.1 > libuutil.so.1 => /lib/64/libuutil.so.1 > libsmbios.so.1 => /usr/lib/64/libsmbios.so.1 > Thanks in advance for any insight. Boost is normally built using -library=stlport4 because the default STL implementation is not sufficient. stlport4 is ABI incompatible with the default STL so any C++ code you link must also have been built with stlport4. The resulting binaries should never have libCstd as a dependency. You may also want to rebuild Boost with -staticlib=stlport4 so it won't have a runtime dependency on Sun Studio. Instead of using Blastwave, I would suggest looking at SFEboost in spec-files-extra which does this correctly and currently provides Boost 1.42.0. -Albert _______________________________________________ opensolaris-code mailing list opensolaris-code@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/opensolaris-code