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