Modify

Opened 2 years ago

Closed 17 months ago

Last modified 17 months ago

#11246 closed Bugs (fixed)

boost.coroutine 1.58 fails to build for mingw because of undefined symbols

Reported by: anonymous Owned by: olli
Milestone: To Be Determined Component: context
Version: Boost 1.58.0 Severity: Problem
Keywords: Cc:

Description

Hello,

I'm trying to cross-compile boost 1.58 from linux for mingw from tarball for archlinux (aur.archlinux.org/packages/mingw-w64-boost/).

I'm stuck when linking boost.coroutine because I've got undefined references to symbols in boost.context (make_fcontext, jump_fcontext):

gcc.link.dll bin.v2/libs/coroutine/build/gcc-mingw-mingw64/release/binary-format-pe/target-os-windows/threadapi-win32/threading-multi/libboost_coroutine-mt.dll.a
bin.v2/libs/coroutine/build/gcc-mingw-mingw64/release/binary-format-pe/target-os-windows/threadapi-win32/threading-multi/detail/coroutine_context.o:coroutine_context.cpp:(.text+0x4a): undefined reference to `_imp__make_fcontext'
bin.v2/libs/coroutine/build/gcc-mingw-mingw64/release/binary-format-pe/target-os-windows/threadapi-win32/threading-multi/detail/coroutine_context.o:coroutine_context.cpp:(.text+0xc7): undefined reference to `_imp__jump_fcontext'

It looks exactly like this issue github.com/boostorg/context/pull/12 that was fixed for AIX.

Prior to the build I applied the fedora patch used to successfully build previous versions of boost for mingw: pkgs.fedoraproject.org/cgit/mingw-boost.git/tree/boost-mingw.patch, but maybe it needs updating. Also I wonder why it wasn't submited or accepted upstream.

Regards, xan

Attachments (0)

Change History (5)

comment:1 Changed 2 years ago by anonymous

  • Component changed from context to Building Boost
  • Summary changed from boost.coroutine 1.58 fails to build for mingw because of undefined symbols in boost.context to boost.coroutine 1.58 fails to build for mingw because of undefined symbols

comment:2 Changed 2 years ago by anonymous

  • Component changed from Building Boost to coroutine

comment:3 Changed 2 years ago by stellarpower@…

I have the same here, Boost 1.58, using mingw32 4.9.1 on Windows x86 (toolchain provided by Qt 5.4 package)

gcc.link.dll bin.v2\libs\context\build\gcc-mingw-4.9.1\release\threading-multi\libboost_context-mgw49-mt-1_58.dll.a
Warning: corrupt .drectve at end of def file
Warning: corrupt .drectve at end of def file
gcc.link.dll bin.v2\libs\coroutine\build\gcc-mingw-4.9.1\release\libboost_coroutine-mgw49-1_58.dll.a
bin.v2\libs\coroutine\build\gcc-mingw-4.9.1\release\detail\coroutine_context.o:coroutine_context.cpp:(.text+0x4a): undefined reference to `_imp__make_fcontext'
bin.v2\libs\coroutine\build\gcc-mingw-4.9.1\release\detail\coroutine_context.o:coroutine_context.cpp:(.text+0xc7): undefined reference to `_imp__jump_fcontext'
c:/qt5/Tools/mingw491_32/bin/../lib/gcc/i686-w64-mingw32/4.9.1/../../../../i686-w64-mingw32/bin/ld.exe: bin.v2\libs\coroutine\build\gcc-mingw-4.9.1\release\detail\coroutine_context.o: bad reloc address 0x20 in section `.eh_frame'
collect2.exe: error: ld returned 1 exit status

    "g++"   "-Wl,--out-implib,bin.v2\libs\coroutine\build\gcc-mingw-4.9.1\release\libboost_coroutine-mgw49-1_58.dll.a" -o "bin.v2\libs\coroutine\build\gcc-mingw-4.9.1\release\libboost_coroutine-mgw49-1_58.dll"  -shared -Wl,--start-group "bin.v2\libs\coroutine\build\gcc-mingw-4.9.1\release\detail\coroutine_context.o" "bin.v2\libs\coroutine\build\gcc-mingw-4.9.1\release\exceptions.o" "bin.v2\libs\coroutine\build\gcc-mingw-4.9.1\release\windows\stack_traits.o" "bin.v2\libs\context\build\gcc-mingw-4.9.1\release\threading-multi\libboost_context-mgw49-mt-1_58.dll.a" "bin.v2\libs\thread\build\gcc-mingw-4.9.1\release\threading-multi\libboost_thread-mgw49-mt-1_58.dll.a" "bin.v2\libs\chrono\build\gcc-mingw-4.9.1\release\threading-multi\libboost_chrono-mgw49-mt-1_58.dll.a" "bin.v2\libs\system\build\gcc-mingw-4.9.1\release\threading-multi\libboost_system-mgw49-mt-1_58.dll.a" "bin.v2\libs\system\build\gcc-mingw-4.9.1\release\libboost_system-mgw49-1_58.dll.a"  -Wl,-Bstatic  -Wl,-Bdynamic  -Wl,--end-group -march=i686 -m32 

...failed

I haven't used any patches, just following the build instructions on the 'Getting Started' page.

comment:4 Changed 17 months ago by olli

  • Resolution set to fixed
  • Status changed from new to closed

comment:5 Changed 17 months ago by olli

  • Component changed from coroutine to context

Add Comment

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain olli.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.