cloudflare / cloudflare/boring

[boring-sys] Failed to cross-compile from Linux to Windows

Open
#71 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
522
Forks
171
PR merge metrics
No merged PRs in 30d

Description

Hello. Trying to build an app with `boring-sys` for Windows using `x86_64-pc-windows-gnu` target from Manjaro (based on Archlinux).
I have mingw packages installed (mingw-w64-gcc, mingw-w64-binutils, mingw-w64-crt, mingw-w64-headers, mingw-w64-winpthreads). Tried with rust stable (rustc 1.60.0) and nightly. Result is the same.

I don't know what I can do here from my side in order to successfully build the app. Could you please suggest my next steps?

```log
cargo build --release --target x86_64-pc-windows-gnu
Compiling boring-sys v2.0.0
error: failed to run custom build command for `boring-sys v2.0.0`

Caused by:
process didn't exit successfully: `/mnt/Build/cargo/release/build/boring-sys-ae341c073d555390/build-script-build` (exit status: 101)
--- stdout
CMAKE_TOOLCHAIN_FILE_x86_64-pc-windows-gnu = None
CMAKE_TOOLCHAIN_FILE_x86_64_pc_windows_gnu = None
TARGET_CMAKE_TOOLCHAIN_FILE = None
CMAKE_TOOLCHAIN_FILE = None
CMAKE_GENERATOR_x86_64-pc-windows-gnu = None
CMAKE_GENERATOR_x86_64_pc_windows_gnu = None
TARGET_CMAKE_GENERATOR = None
CMAKE_GENERATOR = None
CMAKE_PREFIX_PATH_x86_64-pc-windows-gnu = None
CMAKE_PREFIX_PATH_x86_64_pc_windows_gnu = None
TARGET_CMAKE_PREFIX_PATH = None
CMAKE_PREFIX_PATH = None
CMAKE_x86_64-pc-windows-gnu = None
CMAKE_x86_64_pc_windows_gnu = None
TARGET_CMAKE = None
CMAKE = None
running: "cmake" "/home/dev/.cargo/registry/src/github.com-1ecc6299db9ec823/boring-sys-2.0.0/deps/boringssl" "-DCMAKE_SYSTEM_NAME=Windows" "-DCMAKE_RC_COMPILER=/bin/x86_64-w64-mingw32-windres" "-DCMAKE_INSTALL_PREFIX=/mnt/Build/cargo/x86_64-pc-windows-gnu/release/build/boring-sys-339cd2bb124cb955/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_C_COMPILER=/bin/x86_64-w64-mingw32-gcc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_CXX_COMPILER=/bin/x86_64-w64-mingw32-g++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_ASM_COMPILER=/bin/x86_64-w64-mingw32-gcc" "-DCMAKE_BUILD_TYPE=Release"
-- Configuring incomplete, errors occurred!
See also "/mnt/Build/cargo/x86_64-pc-windows-gnu/release/build/boring-sys-339cd2bb124cb955/out/build/CMakeFiles/CMakeOutput.log".

--- stderr
CMake Error at CMakeLists.txt:65 (elseif):
given arguments:

"STREQUAL" "x86_64"

Unknown arguments specified

thread 'main' panicked at '
command did not execute successfully, got: exit status: 1

build script failed, must exit now', /home/dev/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.48/src/lib.rs:975:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```

Attaching CMakeOutput.log as well:

[CMakeOutput.log](https://github.com/cloudflare/boring/files/8811276/CMakeOutput.log)

Line 65 of CMakeList (from the error above) this one:
```
62: if(OPENSSL_NO_ASM)
63: add_definitions(-DOPENSSL_NO_ASM)
64: set(ARCH "generic")
65: elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
66: set(ARCH "x86_64")
67: elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "amd64")
68: set(ARCH "x86_64")
69: elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "AMD64")
70: # cmake reports AMD64 on Windows, but we might be building for 32-bit.
71: if(CMAKE_SIZEOF_VOID_P EQUAL 8)
72: set(ARCH "x86_64")
73: else()
74: set(ARCH "x86")
75: endif()
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.