boost icon indicating copy to clipboard operation
boost copied to clipboard

1.88.0 build failure on mingw64

Open hramrach opened this issue 6 months ago • 3 comments

[  591s] /usr/lib64/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld: bin.v2/libs/stacktrace/build/gc
c-mingw/release/x86_64/debug-symbols-on/target-os-windows/threadapi-win32/visibility-hidden/from_exception.o: in functio
n `current_cxx_exception_index':
[  591s] /home/abuild/rpmbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/libs/stacktrace/build/../src/from_exception
.cpp:54:(.text+0x9f): undefined reference to `__current_exception'
[  591s] /usr/lib64/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld: bin.v2/libs/stacktrace/build/gc
c-mingw/release/x86_64/debug-symbols-on/target-os-windows/threadapi-win32/visibility-hidden/from_exception.o: in functio
n `is_processing_rethrow':
[  591s] /home/abuild/rpmbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/libs/stacktrace/build/../src/from_exception
.cpp:73:(.text+0x28d): undefined reference to `__current_exception'
[  591s] collect2: error: ld returned 1 exit status
[  593s]     "x86_64-w64-mingw32-g++" "-DBOOST_USE_WINDOWS_H=1" -x assembler-with-cpp -m64 -O3 -finline-functions -Wno-i
nline -Wall -g -fvisibility=hidden  -DBOOST_ALL_NO_LIB=1 -DBOOST_COBALT_USE_STD_PMR=1 -DBOOST_CONTEXT_DYN_LINK=1 -DBOOST
_CONTEXT_NO_LIB=1 -DBOOST_CONTEXT_SOURCE -DBOOST_DISABLE_ASSERTS -DNDEBUG -D_WIN32_WINNT=0x0601 -I"." -I"/home/abuild/rp
mbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/libs/assert/include" -I"/home/abuild/rpmbuild/BUILD/mingw64-boost-1
.88.0-build/boost_1_88_0/libs/context/include" -I"/home/abuild/rpmbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/li
bs/core/include" -I"/home/abuild/rpmbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/libs/integer/include" -I"/home/a
build/rpmbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/libs/mp11/include" -I"/home/abuild/rpmbuild/BUILD/mingw64-b
oost-1.88.0-build/boost_1_88_0/libs/pool/include" -I"/home/abuild/rpmbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0
/libs/predef/include" -I"/home/abuild/rpmbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/libs/smart_ptr/include" -I"
/home/abuild/rpmbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/libs/throw_exception/include" -I"/home/abuild/rpmbui
ld/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/libs/winapi/include" -c -o "bin.v2/libs/context/build/gcc-mingw/release
/x86_64/debug-symbols-on/target-os-windows/threadapi-win32/threading-multi/visibility-hidden/asm/make_x86_64_sysv_elf_ga
s.o" "/home/abuild/rpmbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/libs/context/src/asm/make_x86_64_sysv_elf_gas.
S"
[  593s] 
[  593s] make_x86_64_sysv_elf_gas.S: Assembler messages:
[  593s] make_x86_64_sysv_elf_gas.S:47: Error: unknown pseudo-op: `.hidden'
[  593s] make_x86_64_sysv_elf_gas.S:48: Warning: .type pseudo-op used outside of .def/.endef: ignored.
[  593s] make_x86_64_sysv_elf_gas.S:48: Error: junk at end of line, first unrecognized character is `m'
[  593s] /home/abuild/rpmbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/libs/context/src/asm/make_x86_64_sysv_elf_gas.S:158: Warning: .size pseudo-op used outside of .def/.endef: ignored.
[  593s] /home/abuild/rpmbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/libs/context/src/asm/make_x86_64_sysv_elf_gas.S:158: Error: junk at end of line, first unrecognized character is `m'
[  593s] /home/abuild/rpmbuild/BUILD/mingw64-boost-1.88.0-build/boost_1_88_0/libs/context/src/asm/make_x86_64_sysv_elf_gas.S:161: Error: junk at end of line, first unrecognized character is `-'
[  593s] ...failed gcc.compile.asm bin.v2/libs/context/build/gcc-mingw/release/x86_64/debug-symbols-on/target-os-windows/threadapi-win32/threading-multi/visibility-hidden/asm/make_x86_64_sysv_elf_gas.o...
[  593s] gcc.compile.asm bin.v2/libs/context/build/gcc-mingw/release/x86_64/debug-symbols-on/target-os-windows/threadapi-win32/threading-multi/visibility-hidden/asm/jump_x86_64_sysv_elf_gas.o
[  593s] 

hramrach avatar May 09 '25 19:05 hramrach

full build log https://build.opensuse.org/build/home:michals:mingw/15.6/x86_64/mingw64-boost/_log

hramrach avatar May 09 '25 19:05 hramrach

current_Exception can be found in

nm /usr/x86_64-w64-mingw32/sys-root/mingw/lib/libucrtbase.a | grep __current_e 0000000000000000 T __current_exception_context 0000000000000000 I __imp___current_exception_context 0000000000000000 T __current_exception 0000000000000000 I __imp___current_exception

and a few other libraries there.

hramrach avatar May 09 '25 19:05 hramrach

Apparently with target-os=windows the additional properties binary-format=pe abi=ms have to be specified.

It's not clear why the stacktrace does not build. Sounds like some missing library but it's not clear if gcc missed adding it or boost build system missed it. In any case changing the stacktrace with boost.stacktrace.basic=on boost.stacktrace.from_exception=off something gets built.

hramrach avatar May 09 '25 20:05 hramrach