On Thu Jul 23, 2015 at 10:29:43PM +0300, Vadim Zhukov wrote: > 2015-07-23 22:27 GMT+03:00 Vadim Zhukov <[email protected]>: > > 2015-07-23 22:20 GMT+03:00 Rafael Sadowski <[email protected]>: > >> On Thu Jul 23, 2015 at 10:12:51PM +0300, Vadim Zhukov wrote: > >>> Hello all. > >>> > >>> Not sure who cares about libraw now, so sending this to ports@. > >>> > >>> The problem is that libraw explicitly adds -lstdc++ to the Libs > >>> section in pkg-config files. As a result, when some software that > >>> links to -lestdc++ tries to link -lraw or -lraw_r, it could get > >>> -lstdc++ earlier that -lestdc++ in linker command line, > >>> effectively making ld.so pick up symbols from -lstdc++ whenever > >>> possible. And that's really bad. I see two options: > >>> > >>> 1. Make affected ports (depending on libraw) filter out -lstdc++. > >>> CMake-based one, libkdcraw, don't care about pkg-config --libs > >>> and thus isn't affected already. > >>> > >>> 2. Patch out libraw pkg-config templates. This is what the current > >>> patch does. Not sure if this patch could be considered for upstream, > >>> as there could be platforms where explicit -lstdc++ is needed; I'm > >>> not an expert here. > >>> > >>> Personally I'd go with (2), this will make incoming nomacs port > >>> easier. Thoughts? Okays? > >>> > >> > >> Do you test your patch with nomacs? I built nomacs with the same patch > >> last day but nomacs is still linking with bas stdc++. > > > > $ objdump -p ../fake-amd64/usr/local/bin/nomacs | fgrep NEEDED > > NEEDED libQtGui.so.10.1 > > NEEDED libQtNetwork.so.10.0 > > NEEDED libQtCore.so.9.0 > > NEEDED libexiv2.so.7.0 > > NEEDED libraw.so.0.0 > > NEEDED liblcms2.so.1.0 > > NEEDED libopencv_imgproc.so.1.0 > > NEEDED libtiff.so.39.2 > > NEEDED libz.so.5.0 > > NEEDED libwebp.so.2.1 > > NEEDED libquazip.so.1.0 > > NEEDED libm.so.9.0 > > NEEDED libopencv_core.so.1.0 > > NEEDED libestdc++.so.17.0 > > NEEDED libc.so.80.0 > > NEEDED libX11.so.16.1 > > NEEDED libpthread.so.19.0 > > > > So... Look in the CMakeCache.txt in WRKBUILD of nomacs for "stdc++" > > and where it's coming from. > > And, if talking about "real" linking AKA ldd, you'll see that > libstdc++ now gets loaded _after_ libestdc++. This is safe. >
Yes, I have talked about ldd(1) and (as always ;)) you are right. Now I understand and I'm for the patch (2).
