Re: [Boost-bugs] [Boost C++ Libraries] #4849: MinGW-64: detail/interlocked.hpp chooses wrong prototypes for InterlockedCompareExchange et al

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