weld
weld copied to clipboard
Windows support
Found this library after someone at work mentioned they're a huge fan of Pandas. How difficult is Windows support likely to be?
Windows support seems to be far away.
Have tried making it work and still failed. Logging here my attempts perhaps someone can pick it up:
- install Visual Studio 2015 with C++ support for LLVM
- build LLVM for
llvm-config
since it doesn't come by default in Windows binaries; this is needed byllvm-sys
- download LLVM binaries for
clang++.exe
- install MinGW for
make
,ld
,ar
- using
stable-x86_64-pc-windows-msvc
inrustup
- manually 'install'
pthread
with this guide - avoid double-defined
timespec
with#define HAVE_STRUCT_TIMESPEC
before any#include <pthread.h>
in/weld_rt/cpp
-
Makefile
broken for Windows:- run with previously downloaded
clang++
- no
-fPIC
since it's not recognized - use
-std=c++14
for theauto
issues
- run with previously downloaded
- path in
build.rs
seems broken for windows(?):D:\windows\like\path/weld_rt/cpp
-
cargo build
needs (?) to be run throughVS2015 x64 Native Tools
Current error when running with verbose:
Running `rustc --crate-name weld weld/lib.rs --crate-type cdylib --crate-type rlib --emit=dep-info,link -C opt-level=3 -C metadata=27e93382c9b8ee43 --out-dir D:\Workspace\weld\target\release\deps -L dependency=D:\Workspace\weld\target\release\deps --extern chrono=D:\Workspace\weld\target\release\deps\libchrono-a2baa92d0707e2bf.rlib --extern clap=D:\Workspace\weld\target\release\deps\libclap-1e52388b3f51d844.rlib --extern code_builder=D:\Workspace\weld\target\release\deps\libcode_builder-821196dd26a38c97.rlib --extern csv=D:\Workspace\weld\target\release\deps\libcsv-443f41e5f09809da.rlib --extern env_logger=D:\Workspace\weld\target\release\deps\libenv_logger-de75febf290fa1ae.rlib --extern fnv=D:\Workspace\weld\target\release\deps\libfnv-2a0af43baec9d0e7.rlib --extern lazy_static=D:\Workspace\weld\target\release\deps\liblazy_static-7c013a2d69184289.rlib --extern libc=D:\Workspace\weld\target\release\deps\liblibc-9129d6d4a27529a3.rlib --extern llvm_sys=D:\Workspace\weld\target\release\deps\libllvm_sys-6ac4b3f90d242631.rlib --extern log=D:\Workspace\weld\target\release\deps\liblog-8a4ec87aa0d54517.rlib --extern regex=D:\Workspace\weld\target\release\deps\libregex-7768ba1a9f896fb5.rlib --extern rustyline=D:\Workspace\weld\target\release\deps\librustyline-1d6010ea027c55a4.rlib --extern time=D:\Workspace\weld\target\release\deps\libtime-5897f05f751787c5.rlib -L native=D:\Workspace\weld/weld_rt/cpp -l dylib=stdc++ -l static=weldrt -L native=D:\Tools\LLVM-built\lib -L native=D:\Workspace\weld\target\release\build\llvm-sys-649a3ee014c1b33a\out`
error: linking with `C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.exe` failed: exit code: 1181
|
= note: "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld0-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld1-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld10-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld11-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld12-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld13-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld14-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld15-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld2-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld3-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld4-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld5-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld6-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld7-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld8-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "D:\\Workspace\\weld\\target\\release\\deps\\weld.weld9-83ccacaa57f1671ef52a4580a67f9d2e.rs.rcgu.o" "/OUT:D:\\Workspace\\weld\\target\\release\\deps\\weld.dll" "/DEF:C:\\Users\\Dimebag\\AppData\\Local\\Temp\\rustc.MAToAolukTs0\\lib.def" "D:\\Workspace\\weld\\target\\release\\deps\\weld.crate.allocator.rcgu.o" "/OPT:REF,ICF" "/DEBUG" "/NATVIS:C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/LIBPATH:D:\\Workspace\\weld\\target\\release\\deps" "/LIBPATH:D:\\Workspace\\weld/weld_rt/cpp" "/LIBPATH:D:\\Tools\\LLVM-built\\lib" "/LIBPATH:D:\\Workspace\\weld\\target\\release\\build\\llvm-sys-649a3ee014c1b33a\\out" "/LIBPATH:C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "weldrt.lib" "stdc++.lib" "D:\\Workspace\\weld\\target\\release\\deps\\libllvm_sys-6ac4b3f90d242631.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libcode_builder-821196dd26a38c97.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libfnv-2a0af43baec9d0e7.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libchrono-a2baa92d0707e2bf.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libnum_integer-9ac6670ef3e52ee2.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libnum_traits-44b65ab179b9185f.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libtime-5897f05f751787c5.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libwinapi-a1379860788f5839.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libenv_logger-de75febf290fa1ae.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libregex-7dd06a51f75e4a51.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libutf8_ranges-de5c7c09befdb3f8.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libregex_syntax-c2a7a0ecf882d0c0.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libucd_util-d3be9cfa2a3c4740.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libthread_local-b1d37edc6e6e512c.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\liblazy_static-a3d75c41ee644319.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libunreachable-255bb46d4067fa1d.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libvoid-a43357dd853afc9a.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libaho_corasick-ff59e6b1674197ef.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libmemchr-1dc99cb78e7cac0f.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libregex-7768ba1a9f896fb5.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libutf8_ranges-023a22b053927b20.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libregex_syntax-fb621d183de6d3b7.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libthread_local-b74ae56006af2673.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libthread_id-533be5d1d26236d8.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libkernel32-f6d9b211cc77f1ad.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libwinapi-762da079ca58f8b8.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libaho_corasick-1628e44406412720.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libmemchr-a6bfee3af76e163c.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\liblibc-9129d6d4a27529a3.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\liblog-8a4ec87aa0d54517.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\liblog-bc93f8442b2d974b.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\libcfg_if-ed64651c5ddf2ba7.rlib" "D:\\Workspace\\weld\\target\\release\\deps\\liblazy_static-7c013a2d69184289.rlib" "C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-a2acd5f5dca269de.rlib" "C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-af367b4bf1f63fec.rlib" "C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-a1c17caf251336a7.rlib" "C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-88975955845d914b.rlib" "C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc_system-3bfe42d2b50eccc6.rlib" "C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-7c8c2618a28cd3f2.rlib" "C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-bb4237926b8207c3.rlib" "C:\\Users\\Dimebag\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-19c7c2c4d55ff072.rlib" "advapi32.lib" "gdi32.lib" "kernel32.lib" "msimg32.lib" "opengl32.lib" "setupapi.lib" "user32.lib" "winspool.lib" "kernel32.lib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "shell32.lib" "msvcrt.lib" "/DLL" "/IMPLIB:D:\\Workspace\\weld\\target\\release\\deps\\weld.dll.lib"
= note: LINK : fatal error LNK1181: cannot open input file 'weldrt.lib'
error: aborting due to previous error
error: Could not compile `weld`.
Caused by:
process didn't exit successfully: `rustc --crate-name weld weld/lib.rs --crate-type cdylib --crate-type rlib --emit=dep-info,link -C opt-level=3 -C metadata=27e93382c9b8ee43 --out-dir D:\Workspace\weld\target\release\deps -L dependency=D:\Workspace\weld\target\release\deps --extern chrono=D:\Workspace\weld\target\release\deps\libchrono-a2baa92d0707e2bf.rlib --extern clap=D:\Workspace\weld\target\release\deps\libclap-1e52388b3f51d844.rlib --extern code_builder=D:\Workspace\weld\target\release\deps\libcode_builder-821196dd26a38c97.rlib --extern csv=D:\Workspace\weld\target\release\deps\libcsv-443f41e5f09809da.rlib --extern env_logger=D:\Workspace\weld\target\release\deps\libenv_logger-de75febf290fa1ae.rlib --extern fnv=D:\Workspace\weld\target\release\deps\libfnv-2a0af43baec9d0e7.rlib --extern lazy_static=D:\Workspace\weld\target\release\deps\liblazy_static-7c013a2d69184289.rlib --extern libc=D:\Workspace\weld\target\release\deps\liblibc-9129d6d4a27529a3.rlib --extern llvm_sys=D:\Workspace\weld\target\release\deps\libllvm_sys-6ac4b3f90d242631.rlib --extern log=D:\Workspace\weld\target\release\deps\liblog-8a4ec87aa0d54517.rlib --extern regex=D:\Workspace\weld\target\release\deps\libregex-7768ba1a9f896fb5.rlib --extern rustyline=D:\Workspace\weld\target\release\deps\librustyline-1d6010ea027c55a4.rlib --extern time=D:\Workspace\weld\target\release\deps\libtime-5897f05f751787c5.rlib -L native=D:\Workspace\weld/weld_rt/cpp -l dylib=stdc++ -l static=weldrt -L native=D:\Tools\LLVM-built\lib -L native=D:\Workspace\weld\target\release\build\llvm-sys-649a3ee014c1b33a\out` (exit code: 101)
Bump would love to try it on windows :)
A lot of those previous issues (toolchain setup etc) could be addressed with cross (https://github.com/rust-embedded/cross) I believe
Hello, any updates on this issue?
This is interesting, let me necro bump it