[C++-sig] Re: FYI: Boost.Python & Linux Intel C++ 8.0

Raoul Gough RaoulGough at yahoo.co.uk
Wed Jan 21 03:25:34 CET 2004


David Abrahams <dave at boost-consulting.com> writes:

> "Ralf W. Grosse-Kunstleve" <rwgk at yahoo.com> writes:
[snip]
>> - To use the native Python define LD_PRELOAD (thanks to Raoul Gough
>>   for discovering this). E.g.:
>>
>>     LD_PRELOAD="/some/path/libirc.so:/opt/intel_cc_80/lib/libunwind.so.5"
>>     export LD_PRELOAD
>
> Just use Boost.Build and it should work.
> We're adding -cxxlib-gcc to the command line.  Works for me.
>
>> All Boost.Python tests (libs/python/test) compile.
>> If compiled with -O0 all run successfully.
>> If compiled with -O2 seven end with a segmentation fault.
>
> Maybe LD_PRELOAD isn't really the right approach?  I got the
> -cxxlib-gcc option from the Intel support people.

Hmmm... From
http://www.intel.com/software/products/compilers/clin/docs/ug/lin1106.htm

  "The -cxxlib-gcc option lets you to build your applications using
  the C++ libraries and header files included with the gcc
  compiler. [...] When you compile and link your application using the
  -cxxlib-gcc option, the resulting C++ object files, libraries, and
  executables can interoperate with C++ object files, libraries, and
  executables generated by gcc 3.2."

IIRC, the only problem that the LD_PRELOAD setting fixes had to do
with exception handling (that's the libunwind.so.5).  Presumably the
gcc-compatibility feature also fixes the same problem, and maybe
others.  On the other hand, what if you actually want to use the
Intel-provided standard library (whatever it is)? I wonder if it fixes
the segfaults at -O2 that Ralf mentioned?

Since Python is straight C code, I wouldn't think that full C++ ABI
compatibility would be necessary, but maybe there's more to it than
I'm aware of. Would be interested to know what's really going on
with the crashes...

-- 
Raoul Gough.
export LESS='-X'





More information about the Cplusplus-sig mailing list