Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix x86-mingw32 builds #506

Closed
wants to merge 1 commit into from
Closed

Conversation

stanhu
Copy link
Contributor

@stanhu stanhu commented Jan 29, 2025

#364 upgraded the x86-mingw32 LLVM version to v17.0.6
(https://github.com/mstorsjo/llvm-mingw/releases/tag/20231128) but the version and include directories were not incremented. Previously the x86-mingw32 builds never ran, so this issue was not found until #493.

oxidize-rb#364 upgraded the x86-mingw32
LLVM version to v17.0.6
(https://github.com/mstorsjo/llvm-mingw/releases/tag/20231128) but the
version and include directories were not incremented. Previously the
x86-mingw32 builds never ran, so this issue was not found until
oxidize-rb#493.
@stanhu
Copy link
Contributor Author

stanhu commented Jan 29, 2025

It turns out building with clang 17 and linking against clang-dev 10 doeesn't work:

error: linking with `i686-w64-mingw32-gcc` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/tmp/rb-sys-dock/bundle/ruby/3.4.0/bin:/usr/local/rbenv/versions/3.4.1/bin:/usr/local/cargo/bin:/usr/local/rbenv/shims:/usr/local/rbenv/bin:/usr/local/rbenv/libexec:/usr/local/rbenv/plugins/ruby-build/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" VSLANG="1033" "i686-w64-mingw32-gcc" "-Wl,/tmp/rustcHJDDPt/list.def" "-fno-use-linker-plugin" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-Wl,--large-address-aware" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/rsbegin.o" "/tmp/rustcHJDDPt/symbols.o" "/home/stanhu/github/rb-sys/oxi-test/tmp/rb-sys-dock/x86-mingw32/target/i686-pc-windows-gnu/release/deps/oxi_test.oxi_test.85c1558c876a26ad-cgu.0.rcgu.o" "/home/stanhu/github/rb-sys/oxi-test/tmp/rb-sys-dock/x86-mingw32/target/i686-pc-windows-gnu/release/deps/oxi_test.2y8s9yia9zf32e0fojpy5i45x.rcgu.o" "-Wl,-Bdynamic" "-lshell32" "-lws2_32" "-liphlpapi" "-limagehlp" "-lshlwapi" "-lbcrypt" "-lmsvcrt-ruby340" "-Wl,-Bstatic" "/home/stanhu/github/rb-sys/oxi-test/tmp/rb-sys-dock/x86-mingw32/target/i686-pc-windows-gnu/release/deps/librb_sys-f201d85c96b4a091.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libstd-f5d9e5bf1aed6daf.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libpanic_unwind-66792f0018434b9f.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libobject-f3ac6be116be2611.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libmemchr-f35d078f86d969f2.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libaddr2line-d64f5c6327f6b2ed.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libgimli-4a79de99990281b7.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libwindows_targets-e994a823273d5abd.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/librustc_demangle-0d1131710146be5f.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libstd_detect-88781714edb884a8.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libhashbrown-4b68ee8418e85e7f.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/librustc_std_workspace_alloc-b36f30015f98aae9.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libminiz_oxide-b6355fedb3a62b2f.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libadler-0068a9eedd118fe7.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libunwind-f0170ec06f06f78d.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libcfg_if-11fe5e932ab7295b.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/liblibc-0c45d1ccaddcb3aa.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/liballoc-8a6d13be16b00628.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/librustc_std_workspace_core-9c8955b5ae4cd581.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libcore-107ffb602ac1c71b.rlib" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libcompiler_builtins-edc25a9f1b69ed12.rlib" "-Wl,-Bdynamic" "-lmsvcrt-ruby340" "-lkernel32" "-lkernel32" "-ladvapi32" "-lntdll" "-luserenv" "-lws2_32" "-ldbghelp" "-lgcc_eh" "-l:libpthread.a" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-lmingwex" "-luser32" "-lkernel32" "-Wl,--nxcompat" "-L" "/usr/local/rake-compiler/ruby/i686-w64-mingw32/ruby-3.4.1/lib" "-L" "/usr/local/rake-compiler/ruby/i686-w64-mingw32/ruby-3.4.1/lib" "-L" "/usr/local/rake-compiler/ruby/i686-w64-mingw32/ruby-3.4.1/lib" "-o" "/home/stanhu/github/rb-sys/oxi-test/tmp/rb-sys-dock/x86-mingw32/target/i686-pc-windows-gnu/release/deps/oxi_test.dll" "-Wl,--gc-sections" "-shared" "-Wl,--out-implib=/home/stanhu/github/rb-sys/oxi-test/tmp/rb-sys-dock/x86-mingw32/target/i686-pc-windows-gnu/release/deps/liboxi_test.dll.a" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs" "-pipe" "-Wl,--enable-auto-image-base,--enable-auto-import" "-l:libssp.a" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-static-libgcc" "-Wl,-rpath,msvcrt-ruby340" "/usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/rsend.o"
  = note: Warning: corrupt .drectve at end of def file
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libstd-f5d9e5bf1aed6daf.rlib(std-f5d9e5bf1aed6daf.std.a5e54224cc2c78a7-cgu.0.rcgu.o): in function `ZN5alloc11collections5btree3mem7replace17h16ae7df87ca03486E':
          /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869\library/core\src\ptr/mod.rs:(.text+0x2be): undefined reference to `_Unwind_Resume'
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libstd-f5d9e5bf1aed6daf.rlib(std-f5d9e5bf1aed6daf.std.a5e54224cc2c78a7-cgu.0.rcgu.o): in function `ZN80_$LT$std..io..Write..write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17he0c9635d915cbc6aE':
          /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869\library/std\src\io/mod.rs:1876: undefined reference to `_Unwind_Resume'
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libstd-f5d9e5bf1aed6daf.rlib(std-f5d9e5bf1aed6daf.std.a5e54224cc2c78a7-cgu.0.rcgu.o): in function `ZN80_$LT$std..io..Write..write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h135635a9993274ceE':
          /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869\library/std\src\io/mod.rs:1876: undefined reference to `_Unwind_Resume'
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libstd-f5d9e5bf1aed6daf.rlib(std-f5d9e5bf1aed6daf.std.a5e54224cc2c78a7-cgu.0.rcgu.o): in function `ZN80_$LT$std..io..Write..write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h586e786c693735cfE':
          /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869\library/std\src\io/mod.rs:1876: undefined reference to `_Unwind_Resume'
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libstd-f5d9e5bf1aed6daf.rlib(std-f5d9e5bf1aed6daf.std.a5e54224cc2c78a7-cgu.0.rcgu.o): in function `ZN4core3ops8function6FnOnce9call_once17hdfd5b66e78f3752eE':
          /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869\library/core\src\ops/function.rs:(.text+0x147d): undefined reference to `_Unwind_Resume'
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libstd-f5d9e5bf1aed6daf.rlib(std-f5d9e5bf1aed6daf.std.a5e54224cc2c78a7-cgu.0.rcgu.o):/rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869\library/alloc\src/sync.rs:(.text+0x16fa): more undefined references to `_Unwind_Resume' follow
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libpanic_unwind-66792f0018434b9f.rlib(panic_unwind-66792f0018434b9f.panic_unwind.f307335e90346be7-cgu.0.rcgu.o): in function `ZN12panic_unwind3imp5panic17h4f430f4e2a5d3043E':
          /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869\library/panic_unwind\src/gcc.rs:72: undefined reference to `_Unwind_RaiseException'
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libpanic_unwind-66792f0018434b9f.rlib(panic_unwind-66792f0018434b9f.panic_unwind.f307335e90346be7-cgu.0.rcgu.o): in function `ZN5alloc5boxed12Box$LT$T$GT$3new17h64e78381f84610f5E':
          /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869\library/alloc\src/boxed.rs:(.text+0x19c): undefined reference to `_Unwind_Resume'
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libobject-f3ac6be116be2611.rlib(object-f3ac6be116be2611.object.4174ddb4d3331103-cgu.0.rcgu.o):object.4174ddb4d33:(.text+0x88f): undefined reference to `_Unwind_Resume'
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libobject-f3ac6be116be2611.rlib(object-f3ac6be116be2611.object.4174ddb4d3331103-cgu.0.rcgu.o):object.4174ddb4d33:(.text+0x2cd7): undefined reference to `_Unwind_Resume'
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libobject-f3ac6be116be2611.rlib(object-f3ac6be116be2611.object.4174ddb4d3331103-cgu.0.rcgu.o):object.4174ddb4d33:(.text+0x3b2f): undefined reference to `_Unwind_Resume'
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libaddr2line-d64f5c6327f6b2ed.rlib(addr2line-d64f5c6327f6b2ed.addr2line.f82c602b7eee1ef2-cgu.0.rcgu.o):addr2line.f82c602b:(.text+0x2a): undefined reference to `_Unwind_Resume'
          /usr/bin/i686-w64-mingw32-ld: /usr/local/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/i686-pc-windows-gnu/lib/libaddr2line-d64f5c6327f6b2ed.rlib(addr2line-d64f5c6327f6b2ed.addr2line.f82c602b7eee1ef2-cgu.0.rcgu.o):addr2line.f82c602b:(.text+0x38a): more undefined references to `_Unwind_Resume' follow

@stanhu
Copy link
Contributor Author

stanhu commented Jan 29, 2025

Even if i downgrade to the system clang 10, I still see these errors. Seems related to rust-lang/rust#76020, which is apparently fixed in later versions of Ubuntu.

@stanhu
Copy link
Contributor Author

stanhu commented Jan 29, 2025

rust-lang/rust#12859 also appears related.

@stanhu
Copy link
Contributor Author

stanhu commented Jan 29, 2025

I'm going to close this because it seems the amount of effort required to get x86-mingw32 working is high for not much benefit. Let's go with #507.

@stanhu stanhu closed this Jan 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant