Hi everybody,

With the 10.0 release becoming more and more tangible, I tried to switch one 
laptop to 10.0-BETA3 and see how it would go.

I fumbled into a problem that I have a hard time to resolve: I would like to 
build graphics/darktable with gcc (lang/gcc46 to be precise, through the 
USE_GCC system) to benefit from openmp support. 

Here's the problem : graphics/darktable, mostly C, uses graphics/exiv2 which is 
written in C++, but built with clang++/libc++. So when I try to build 
graphics/darktable, I get errors of unresolved symbols from exiv2 library:

libdarktable.so: undefined reference to 
`Exiv2::XmpProperties::registerNs(std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&)'
libdarktable.so: undefined reference to 
`Exiv2::XmpParser::encode(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >&, Exiv2::XmpData const&, unsigned short, unsigned int)'
libdarktable.so: undefined reference to
`Exiv2::ExifData::operator[](std::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&)'
[...]

I suppose this comes from symbol naming conventions between clang++/libc++ and 
g++/libstdc++ (wasn't C++ ABI supposed to be standard? I guess not). If I build 
exiv2 with g++, I can build darktable, but I feel this way of doing things will 
be a PITA in the future.

Does anybody knowledgeable with gcc know how to manage those issues?

-- 
Matthieu Volat <ma...@alkumuna.eu>

Attachment: signature.asc
Description: PGP signature

Reply via email to