Skip to content

[emscripten] Build hangs during linking on UCRT64 #19908

@montyalamiri

Description

@montyalamiri

Description / Steps to reproduce the issue

Description

I am trying to build the examples for FTXUI with mingw-w64-ucrt-x86_64-emscripten . Using CMake, the build hangs at the point that linking is performed on the first executable. This issue does not occur when using the official installation of Emscripten on UCRT64, or when using mingw-w64-clang-x86_64-emscripten on CLANG64.

Steps to reproduce:

  1. Install Emscripten on UCRT64: pacman -S mingw-w64-ucrt-x86_64-emscripten
  2. git clone https://github.com/ArthurSonzogni/FTXUI.git
  3. cd ftxui
  4. mkdir build
  5. cd build
  6. emcmake cmake .. -DFTXUI_BUILD_EXAMPLES=ON
  7. cmake --build .

Expected behavior

The build completes without any issues.

Actual behavior

The build hangs while linking the first executable.

[  0%] Building CXX object CMakeFiles/screen.dir/src/ftxui/screen/box.cpp.o
[  0%] Building CXX object CMakeFiles/screen.dir/src/ftxui/screen/color.cpp.o
[  1%] Building CXX object CMakeFiles/screen.dir/src/ftxui/screen/color_info.cpp.o
[  1%] Building CXX object CMakeFiles/screen.dir/src/ftxui/screen/screen.cpp.o
[  2%] Building CXX object CMakeFiles/screen.dir/src/ftxui/screen/string.cpp.o
[  2%] Building CXX object CMakeFiles/screen.dir/src/ftxui/screen/terminal.cpp.o
[  3%] Linking CXX static library libftxui-screen.a
[  3%] Built target screen
[  4%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/automerge.cpp.o
[  4%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/blink.cpp.o
[  4%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/bold.cpp.o
[  5%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/hyperlink.cpp.o
[  5%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/border.cpp.o
[  6%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/box_helper.cpp.o
[  6%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/canvas.cpp.o
[  7%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/clear_under.cpp.o
[  7%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/color.cpp.o
[  7%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/composite_decorator.cpp.o
[  8%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/dbox.cpp.o
[  8%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/dim.cpp.o
[  9%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/flex.cpp.o
[  9%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/flexbox.cpp.o
[ 10%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/flexbox_config.cpp.o
[ 10%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/flexbox_helper.cpp.o
[ 10%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/focus.cpp.o
[ 11%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/frame.cpp.o
[ 11%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/gauge.cpp.o
[ 12%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/graph.cpp.o
[ 12%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/gridbox.cpp.o
[ 13%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/hbox.cpp.o
[ 13%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/inverted.cpp.o
[ 13%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/linear_gradient.cpp.o
[ 14%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/node.cpp.o
[ 14%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/node_decorator.cpp.o
[ 15%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/paragraph.cpp.o
[ 15%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/reflect.cpp.o
[ 16%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/scroll_indicator.cpp.o
[ 16%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/separator.cpp.o
[ 16%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/size.cpp.o
[ 17%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/spinner.cpp.o
[ 17%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/strikethrough.cpp.o
[ 18%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/table.cpp.o
[ 18%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/text.cpp.o
[ 19%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/underlined.cpp.o
[ 19%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/underlined_double.cpp.o
[ 19%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/util.cpp.o
[ 20%] Building CXX object CMakeFiles/dom.dir/src/ftxui/dom/vbox.cpp.o
[ 20%] Linking CXX static library libftxui-dom.a
[ 20%] Built target dom
[ 20%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/animation.cpp.o
[ 20%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/button.cpp.o
[ 21%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/catch_event.cpp.o
[ 21%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/checkbox.cpp.o
[ 22%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/collapsible.cpp.o
[ 22%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/component.cpp.o
[ 22%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/component_options.cpp.o
[ 23%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/container.cpp.o
[ 23%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/dropdown.cpp.o
[ 24%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/event.cpp.o
[ 24%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/hoverable.cpp.o
[ 25%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/input.cpp.o
[ 25%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/loop.cpp.o
[ 25%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/maybe.cpp.o
[ 26%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/menu.cpp.o
[ 26%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/modal.cpp.o
[ 27%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/radiobox.cpp.o
[ 27%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/renderer.cpp.o
[ 28%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/resizable_split.cpp.o
[ 28%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/screen_interactive.cpp.o
[ 28%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/slider.cpp.o
[ 29%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/terminal_input_parser.cpp.o
[ 29%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/util.cpp.o
[ 30%] Building CXX object CMakeFiles/component.dir/src/ftxui/component/window.cpp.o
[ 30%] Linking CXX static library libftxui-component.a
[ 30%] Built target component
[ 30%] Building CXX object examples/component/CMakeFiles/ftxui_example_button.dir/button.cpp.o
[ 31%] Linking CXX executable ftxui_example_button.js
em++: warning: -pthread + ALLOW_MEMORY_GROWTH may run non-wasm code slowly, see https://github.com/WebAssembly/design/issues/1271 [-Wpthreads-mem-growth]

The build hangs at this point.

Verification

Windows Version

MINGW64_NT-10.0-19044

MINGW environments affected

  • MINGW64
  • MINGW32
  • UCRT64
  • CLANG64
  • CLANG32
  • CLANGARM64

Are you willing to submit a PR?

I would not know where to start for this one.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions