PATCH: Re: graphics/rawtherapee: r342622 crashes on HEAD
Rainer Hurling
rhurlin at gwdg.de
Wed Feb 12 06:32:19 UTC 2014
Am 11.02.2014 23:02 (UTC+1) schrieb Matthias Andree:
> Am 11.02.2014 10:46, schrieb Rainer Hurling:
>
>> I just recognized another issue, what I think is not intended.
>>
>> Newest graphics/rawtherapee installs and uses devel/libc++. This wanted
>> behaviour is included in the ports Makefile for OpenMP reasons.
>>
>> As a side effect, other ports with c++ usage also seem to grab
>> devel/libc++, even if devel/libc++ is not mentioned in the ports
>> Makefile. You can try this by rebuilding and reinstalling e.g.
>> graphics/darktable. This leads to
>
> I think that is an artifact of the same library being installed in two
> places. As far as I understood bapt@ (Cc'd), the idea is that the port
> mirrors the c++ library we have in the base system, and both are
> compatible, and particularly, they have the same ABI. Basically we need
> the libc++ headers to make use of libc++'s inline namespace so that
> rawtherapee references libc++'s symbols (in the std::__1:: namespace)
> rather than libstdc++ (in the std:: namespace).
>
> If you are willing to experiment, you should be able to deinstall libc++
> now, and both darktable and rawtherapee should continue to work with the
> base libc++.
Yes, this presumption is right. After 'pkg delete -f libc++-200683
libcxxrt-20131225_1' I am able to use rawtherapee furthermore. So ports
like RawTherapee would also work, when devel/libc++ and devel/libcxxrt
would be deinstalled right after successfull installation of the port.
My problem is more the other side around: Why do ports like e.g.
graphics/darktable pick up the headers from devel/libc++ instead of the
base ones? In darktable there is no devel/libc++ dependency specified.
Installing graphics/darktable, while devel/libc++ is already installed,
creates a dependency.
This will jumble up the dependency list in ports/packages and should not
happen. Only ports with a declared dependency on devel/libc++ should use
this port.
>
>> #pkg info -r libc++-200683
>> libc++-200683:
>> rawtherapee-4.0.12_1
>> darktable-1.2.3_3
>>
>> #ldd /usr/local/bin/darktable | grep c++
>> libc++.so.1 => /usr/local/lib/libc++.so.1 (0x4690e000)
>
More information about the freebsd-ports
mailing list