Opened 12 years ago
Closed 12 years ago
#4778 closed Bugs (fixed)
Wave fails to link on win32 & possibly others
Reported by: | Owned by: | Hartmut Kaiser | |
---|---|---|---|
Milestone: | Boost 1.45.0 | Component: | wave |
Version: | Boost Development Trunk | Severity: | Showstopper |
Keywords: | thread BOOST_THREAD_USE_LIB link | Cc: |
Description
On platforms where imported symbols are named differently than exported symbols (notably Win32 for gcc & msvc), the wave static library builds incorrectly.
Note the trunk regression test matrix (live as of 2010/10/23): with the attached patch, the MinGW-32 testwave test passes where the (un-patched) RW_Mingw45 one fails.
The patch simply builds the static wave library with BOOST_THREAD_USE_LIB=1, as you can see.
It's reasonable to think that BOOST_THREAD_USE_LIB isn't sufficiently documented, and should default to true.
Attachments (1)
Change History (5)
by , 12 years ago
Attachment: | wave_link_jam_fix.patch added |
---|
comment:1 by , 12 years ago
comment:2 by , 12 years ago
From the trunk wave regression page (as of 2010/10/23 -- right now), testwave (not testwave_dll):
The MinGW-32 jc-bell.com test has the patch applied. It passes. (I applied it.)
The RW_Mingw45 tests don't have the patch applied. They fail.
The test changes the build for the static library, which is required to pass the test.
The testwave_dll test appears to be disabled all platforms except msvc8 and higher, which makes sense. I think it should be enabled for all Windows platforms, since it seems appropriate for MinGW.
comment:3 by , 12 years ago
The mgw44 jc-bell.com test from a week ago (Sat, 16 Oct 2010) is old. And failed. Patch wasn't applied. The "MinGW-32 jc-bell.com" test is three columns left of RW_Mingw45.
comment:4 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Reverted my patch. Regression test works.
The attached patch changes the wrong test case, I believe. The Wave tests are generated twice, once for dynamically linked Boost libraries and once for the statically linked ones. While the patch changes the test tests based on the dynamic libraries. Also, without having this patch applied the MingW-32 test pass just fine. What do I miss here?