Hi Fernando, and thanks for the quick answer!
2010/11/10, Fernando Lemos <fernando...@gmail.com>: >> * debian/rules: added -lboost_system to LDFLAGS to force a fix link with >> libboost. This fixes a FTBFS with binutils-gold. > > I don't plan to do anything about this for the time being. The reason > for the FTBFS (as reported by others[1]) is that boost::filesystem > uses boost::system in its internal headers (in inline methods invoked > by the boost::filesystem::path constructor, for instance). A good point! I didn't checked boost bugs, as I thought it was a problem in btag only. > boost::filesystem user is not supposed to know in advance that > boost::filesystem requires linkage against boost::system as this is an > implementation detail that could change in the future. Right > 1. It might be possible to change booost::filesystem to make those > methods that rely on boost::system (I think it's just > boost::system::error_code) not inline anymore. This would work fine, > but it might not be viable as C++ templates must be inlined. I don't > see this happening, good luck convincing the Boost team that the way > gold works is the right way. >From what I've understood, the mess with implicit linking, default with previous versions of the linker, is that when the implicitly linked library change, the application can break without knowing it, and we (packagers) don't know that the application has to be linked again. This is at least what we've been told in Ubuntu. And it will be the same for Wheezy (see http://wiki.debian.org/ToolChain/DSOLinking ): this error will become RC and a fix has to be found (in boost or in btag). > 3. CMake ships with a module to find the Boost modules, and that's > what btag uses. That module could be changed to include the system > module if the filesystem module is requested, but I'm not sure the > CMake devs would want that. If this is "fixed" in pkg-config, I guess > it could be "fixed" in CMake too. In another package, I fixed the .pc file to add an implicit linked library to the generated LDFLAGS. Right now, I don't think this is fixed in using pkg-config, as, AFAIK, no .pc files are delivered in the -dev packages of boost in Ubuntu either. Until now, btag is the second package I find with this issue. > That said, I don't want to create problems for derivatives. If the > benefits of having this patch in Debian outweigh the maintenance > burden of keeping track of whatever libraries the inlined methods of > boost::filesystem rely on, please let me know and I'll try to contact > my sponsor to get a "fixed" package uploaded. I perfectly understand that the fix I applied in Ubuntu is not perfect, and I think we can wait until the release of Squeeze to see how to fix it in a clean manner: I'll merge the new packages that you may upload in the meantime. > By the way, I believe a better way to patch the build system would be > adding "system" to the list of modules required in CMakeLists.txt, as > well as adding libboost-system-dev to Build-Depends. That's a nicer fix, yes. Anyway, I'll wait a bit to see what happen. Thanks! Fabrice -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org