Subject: Re: [Boost-bugs] [Boost C++ Libraries] #4849: MinGW-64: detail/interlocked.hpp chooses wrong prototypes for InterlockedCompareExchange et al
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-09-09 09:05:17
#4849: MinGW-64: detail/interlocked.hpp chooses wrong prototypes for
InterlockedCompareExchange et al
-------------------------------------+-------------------------------------
Reporter: Jim Bell <jim@â¦> | Owner: anthonyw
Type: Bugs | Status: closed
Milestone: Boost 1.46.0 | Component: thread
Version: Boost Development | Severity: Problem
Trunk | Keywords: mingw64
Resolution: fixed | InterlockedCompareExchange once.hpp
| thread.cpp
-------------------------------------+-------------------------------------
Comment (by mattyclarkson@â¦):
Just hit this same issue building 1.54.0 with MinGW-builds-x64-4.8.1
-posix-seh on Windows 7 x64:
{{{
C:\Users\Matt\Documents\git\tool-
chain\third_party\source\http\boost_1_54_0>b2 t
oolset=gcc variant=release link=shared threading=multi runtime-link=shared
--pre
fix=C:\boost-1.54.0 --with-thread -d+2
Building the Boost C++ Libraries.
Component configuration:
- atomic : not building
- chrono : not building
- context : not building
- coroutine : not building
- date_time : not building
- exception : not building
- filesystem : not building
- graph : not building
- graph_parallel : not building
- iostreams : not building
- locale : not building
- log : not building
- math : not building
- mpi : not building
- program_options : not building
- python : not building
- random : not building
- regex : not building
- serialization : not building
- signals : not building
- system : not building
- test : not building
- thread : building
- timer : not building
- wave : not building
gcc.link.dll bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\li
bboost_thread-mgw48-mt-1_54.dll.a
"g++" "-Wl,--out-implib,bin.v2\libs\thread\build\gcc-
mingw-4.8.1\release\t
hreading-multi\libboost_thread-mgw48-mt-1_54.dll.a" -o
"bin.v2\libs\thread\build
\gcc-mingw-4.8.1\release\threading-multi\libboost_thread-mgw48-mt-
1_54.dll" -sh
ared -Wl,--start-group "bin.v2\libs\thread\build\gcc-
mingw-4.8.1\release\threadi
ng-multi\win32\thread.o" "bin.v2\libs\thread\build\gcc-
mingw-4.8.1\release\threa
ding-multi\win32\tss_dll.o" "bin.v2\libs\thread\build\gcc-
mingw-4.8.1\release\th
reading-multi\win32\tss_pe.o" "bin.v2\libs\thread\build\gcc-
mingw-4.8.1\release\
threading-multi\future.o" "bin.v2\libs\chrono\build\gcc-
mingw-4.8.1\release\thre
ading-multi\libboost_chrono-mgw48-mt-1_54.dll.a"
"bin.v2\libs\system\build\gcc-m
ingw-4.8.1\release\threading-multi\libboost_system-mgw48-mt-1_54.dll.a"
-Wl,-Bs
tatic -Wl,-Bdynamic -Wl,--end-group -mthreads
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x387): undefined reference to
`InterlockedCompareExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x3a4): undefined reference to
`InterlockedCompareExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x400): undefined reference to `InterlockedExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x47e): undefined reference to `InterlockedIncrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x494): undefined reference to
`InterlockedCompareExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x781): undefined reference to `InterlockedIncrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x79c): undefined reference to
`InterlockedCompareExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x9a0): undefined reference to
`InterlockedCompareExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x9bd): undefined reference to
`InterlockedCompareExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0xa19): undefined reference to `InterlockedExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0xa9f): undefined reference to `InterlockedIncrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0xab5): undefined reference to
`InterlockedCompareExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0xee2): undefined reference to `InterlockedIncrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0xefd): undefined reference to
`InterlockedCompareExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1026): undefined reference to `InterlockedIncrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x10d9): undefined reference to `InterlockedIncrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1159): undefined reference to `InterlockedDecrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x11e8): undefined reference to `InterlockedIncrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1227): undefined reference to `InterlockedDecrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1293): undefined reference to `InterlockedDecrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1310): undefined reference to `InterlockedDecrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x13a9): undefined reference to `InterlockedDecrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1445): undefined reference to `InterlockedDecrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1a3d): undefined reference to
`InterlockedCompareExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1a5a): undefined reference to
`InterlockedCompareExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1ab6): undefined reference to `InterlockedExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1b21): undefined reference to `InterlockedIncrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1b37): undefined reference to
`InterlockedCompareExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1df1): undefined reference to `InterlockedIncrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1e0c): undefined reference to
`InterlockedCompareExchange'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x3212): undefined reference to `InterlockedDecrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x3328): undefined reference to `InterlockedDecrement'
bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\win32\thread.o:
thread.cpp:(.text+0x1130): undefined reference to `InterlockedIncrement'
c:/users/matt/documents/git/tool-chain/third_party/mingw-
builds/4.8.1/x64/posix/
seh/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw
32/bin/ld.exe: bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\
win32\thread.o: bad reloc address 0x8 in section `.data'
collect2.exe: error: ld returned 1 exit status
...removing bin.v2\libs\thread\build\gcc-mingw-4.8.1\release\threading-
multi\lib
boost_thread-mgw48-mt-1_54.dll.a
...skipped <pstage\lib>libboost_thread-mgw48-mt-1_54.dll.a for lack of
<pbin.v2\
libs\thread\build\gcc-mingw-4.8.1\release\threading-multi>libboost_thread-
mgw48-
mt-1_54.dll.a...
...skipped <pstage\lib>libboost_thread-mgw48-mt-1_54.dll for lack of
<pbin.v2\li
bs\thread\build\gcc-mingw-4.8.1\release\threading-multi>libboost_thread-
mgw48-mt
-1_54.dll...
...failed updating 2 targets...
}}}
I'm trying to figure out why the macros are not set to the correct
symbols, if anyone has any pointers for me, I welcome a hint :)
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/4849#comment:18> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:14 UTC