Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Feb 2014 07:32:09 +0100
From:      Rainer Hurling <rhurlin@gwdg.de>
To:        Matthias Andree <matthias.andree@gmx.de>, freebsd-ports@freebsd.org
Cc:        Koop Mast <kwm@freebsd.org>, Baptiste Daroussin <bapt@FreeBSD.org>
Subject:   Re: PATCH: Re: graphics/rawtherapee: r342622 crashes on HEAD
Message-ID:  <52FB1569.7070702@gwdg.de>
In-Reply-To: <52FA9DE5.9080503@gmx.de>
References:  <706bd12f0dfa77b042ec36685b08c572.squirrel@mx.waitman.net>	<20140209223228.GR80056@ithaqua.etoilebsd.net>	<bfdcc4891e05f898e12591cb17be5527.squirrel@mx.waitman.net>	<20140209223830.GS80056@ithaqua.etoilebsd.net>	<53abb5a25f86f9c10fabcabb83e4157d.squirrel@mx.waitman.net>	<20140210104037.7dcaf6b0@X220.alogt.com>	<52F895F3.6070606@FreeBSD.org> <20140211010834.384f8a34@X220.alogt.com> <52F95186.9010503@FreeBSD.org> <52F9E549.4070205@gwdg.de> <52F9E8DB.6070301@gmx.de> <52F9F16E.6040809@gwdg.de> <52FA9DE5.9080503@gmx.de>

next in thread | previous in thread | raw e-mail | index | archive | help


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)
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52FB1569.7070702>