Bug 250802
| Summary: | Missing libboost_thread.so symlink | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Braden McDaniel <braden> | ||||
| Component: | boost | Assignee: | Benjamin Kosnik <bkoz> | ||||
| Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | urgent | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | rawhide | CC: | mnewsome, mtasaka | ||||
| Target Milestone: | --- | Keywords: | Patch | ||||
| Target Release: | --- | ||||||
| Hardware: | All | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2007-08-21 15:57:40 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
It looks like the libboost-thread.so symlink is missing. er, libboost_thread.so, that is. It looks like libboost_thread.so is renamed to libboost_thread-mt.so (perhaps due to multithread support??) like libqt.so -> libqt-mt.so, so perhaps you have to specify $BOOST_LIB_SUFFIX as -mt. A example is: https://www.redhat.com/archives/fedora-extras-commits/2007-August/msg00918.html That would work for openvrml; since, fortunately, openvrml provides a mechansim to apply a suffix to the library name. However, it should not be necessary. The presence or absence of "-mt" in the symlink name really has nothing to do with the presence of thread support (for the purposes of the Fedora package). It seems every shared library *except* libboost_thread has two symlinks in the boost-devel package: one with "-mt" and one without. These symlinks point to the same binary--which was built with threading support. So the absence of a libboost_thread.so symlink is both an aberration within the package as well as a change from the previous boost release package. It looks like I was mistaken; the non-"-mt" version is not a symlink. Rather, it looks like versions of the libraries both with and without threading support are getting built. Is this deliberate? It seems inappropriate. It is certainly a departure from the boost 1.33.1 package. Created attachment 161145 [details]
Patch to build only the multithreaded variant of the boost libraries
It's not yet clear to me if building the non-thread-safe variant of the
libraries is deliberate and perceived as desirable. But assuming it's not,
here's a patch that builds only the thread-safe variant. Additionally, this
patch omits the -mt suffix from the library names.
And just for fun, it applies _smp_mflags, too.
There has been a deliberate change of behavior with the boost-1.34.1.x packages, that is different than the previous boost packages. If you need a boost library linked into a multi-threaded app (ie, if the compile line uses -pthread), you have to use the -mt versions. Thus, you should set BOOST_LIB_SUFFIX, as above. For the boost threads lib, there is no "single thread" variant, so there is no libboost_thread.so at all, only libboost_thread-mt.so. -benjamin |
Description of problem: I can no longer build openvrml since boost was upgraded in devel. There appears to be some problem using libboost_thread. Version-Release number of selected component (if applicable): 1.34.1-2 Additional info: The following configure test is failing: LIBS="-lboost_thread$BOOST_LIB_SUFFIX $LIBS" AC_LANG_PUSH([C++]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <boost/thread.hpp>]], [[boost::thread t]])], [ov_cv_boost_thread=yes]) AC_LANG_POP BOOST_LIB_SUFFIX is empty. Unfortunately, I don't know how to see config.log from koji builds (or if that's even possible).