purpleprotocol / mimalloc_rust

A Rust wrapper over Microsoft's MiMalloc memory allocator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Windows CI build fails to find symbols

octavonce opened this issue · comments

When building on windows on travis, we encounter the following CMake error:

6.03s$ cargo test --verbose --all --no-default-features
error: failed to run custom build command for `libmimalloc-sys v0.1.9 (C:\Users\travis\build\purpleprotocol\mimalloc_rust\libmimalloc-sys)`
Caused by:
  process didn't exit successfully: `C:\Users\travis\build\purpleprotocol\mimalloc_rust\target\debug\build\libmimalloc-sys-6f38501cdf9522e9\build-script-build` (exit code: 101)
--- stdout
running: "cmake" "C:\\Users\\travis\\build\\purpleprotocol\\mimalloc_rust\\libmimalloc-sys\\c_src/mimalloc" "-G" "MinGW Makefiles" "-DMI_OVERRIDE=OFF" "-DMI_SECURE=OFF" "-DMI_SECURE_FULL=OFF" "-DMI_BUILD_TESTS=OFF" "-DMI_SECURE=ON" "-Dmi_defines=MI_DEBUG=0" "-DCMAKE_INSTALL_PREFIX=C:\\Users\\travis\\build\\purpleprotocol\\mimalloc_rust\\target\\debug\\build\\libmimalloc-sys-2bc6052030153204\\out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -m64" "-DCMAKE_BUILD_TYPE=Debug"
-- The C compiler identification is GNU 8.1.0
-- The CXX compiler identification is GNU 8.1.0
-- Check for working C compiler: C:/ProgramData/chocolatey/bin/gcc.exe
-- Check for working C compiler: C:/ProgramData/chocolatey/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/ProgramData/chocolatey/bin/g++.exe
-- Check for working CXX compiler: C:/ProgramData/chocolatey/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Set full secure build (MI_SECURE=ON)
-- 
-- Library base name: mimalloc-secure-debug
-- Build type       : debug
-- Install directory: C:/Users/travis/build/purpleprotocol/mimalloc_rust/target/debug/build/libmimalloc-sys-2bc6052030153204/out/lib/mimalloc-1.6
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/travis/build/purpleprotocol/mimalloc_rust/target/debug/build/libmimalloc-sys-2bc6052030153204/out/build
running: "cmake" "--build" "." "--target" "mimalloc-static" "--config" "Debug" "--"
Scanning dependencies of target mimalloc-static
[ 14%] Building C object CMakeFiles/mimalloc-static.dir/src/stats.c.obj
[  7%] Building C object CMakeFiles/mimalloc-static.dir/src/random.c.obj
[ 21%] Building C object CMakeFiles/mimalloc-static.dir/src/arena.c.obj
[ 28%] Building C object CMakeFiles/mimalloc-static.dir/src/os.c.obj
[ 35%] Building C object CMakeFiles/mimalloc-static.dir/src/region.c.obj
--- stderr
CMake Warning:
  Manually-specified variables were not used by the project:
    MI_SECURE_FULL
C:\Users\travis\build\purpleprotocol\mimalloc_rust\libmimalloc-sys\c_src\mimalloc\src\os.c: In function 'mi_os_alloc_huge_os_pagesx':
C:\Users\travis\build\purpleprotocol\mimalloc_rust\libmimalloc-sys\c_src\mimalloc\src\os.c:822:70: warning: unused parameter 'numa_node' [-Wunused-parameter]
 static void* mi_os_alloc_huge_os_pagesx(void* addr, size_t size, int numa_node)
                                                                  ~~~~^~~~~~~~~
C:\Users\travis\build\purpleprotocol\mimalloc_rust\libmimalloc-sys\c_src\mimalloc\src\os.c: In function 'mi_os_numa_nodex':
C:\Users\travis\build\purpleprotocol\mimalloc_rust\libmimalloc-sys\c_src\mimalloc\src\os.c:1012:3: error: unknown type name 'PROCESSOR_NUMBER'; did you mean 'PROCESSOR_ARM820'?
   PROCESSOR_NUMBER pnum;
   ^~~~~~~~~~~~~~~~
   PROCESSOR_ARM820
C:\Users\travis\build\purpleprotocol\mimalloc_rust\libmimalloc-sys\c_src\mimalloc\src\os.c:1014:3: warning: implicit declaration of function 'GetCurrentProcessorNumberEx'; did you mean 'GetCurrentProcessorNumber'? [-Wimplicit-function-declaration]
   GetCurrentProcessorNumberEx(&pnum);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   GetCurrentProcessorNumber
C:\Users\travis\build\purpleprotocol\mimalloc_rust\libmimalloc-sys\c_src\mimalloc\src\os.c:1015:3: warning: implicit declaration of function 'GetNumaProcessorNodeEx'; did you mean 'GetNumaProcessorNode'? [-Wimplicit-function-declaration]
   GetNumaProcessorNodeEx(&pnum,&numa_node);
   ^~~~~~~~~~~~~~~~~~~~~~
   GetNumaProcessorNode
mingw32-make[3]: *** [CMakeFiles\mimalloc-static.dir\build.make:91: CMakeFiles/mimalloc-static.dir/src/os.c.obj] Error 1
mingw32-make[3]: *** Waiting for unfinished jobs....
mingw32-make[2]: *** [CMakeFiles\Makefile2:106: CMakeFiles/mimalloc-static.dir/all] Error 2
mingw32-make[1]: *** [CMakeFiles\Makefile2:113: CMakeFiles/mimalloc-static.dir/rule] Error 2
mingw32-make: *** [Makefile:176: mimalloc-static] Error 2
thread 'main' panicked at '
command did not execute successfully, got: exit code: 2
build script failed, must exit now', C:\Users\travis\.cargo\registry\src\github.com-1ecc6299db9ec823\cmake-0.1.42\src\lib.rs:861:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
       Fresh cc v1.0.50
       Fresh cmake v0.1.42
   Compiling libmimalloc-sys v0.1.9 (C:\Users\travis\build\purpleprotocol\mimalloc_rust\libmimalloc-sys)
       Fresh libc v0.2.66
     Running `rustc --edition=2018 --crate-name build_script_build libmimalloc-sys\build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=64261834cf05fe2b -C extra-filename=-64261834cf05fe2b --out-dir C:\Users\travis\build\purpleprotocol\mimalloc_rust\target\debug\build\libmimalloc-sys-64261834cf05fe2b -C incremental=C:\Users\travis\build\purpleprotocol\mimalloc_rust\target\debug\incremental -L dependency=C:\Users\travis\build\purpleprotocol\mimalloc_rust\target\debug\deps --extern cmake=C:\Users\travis\build\purpleprotocol\mimalloc_rust\target\debug\deps\libcmake-9f851eb2bc3b77c0.rlib`
     Running `C:\Users\travis\build\purpleprotocol\mimalloc_rust\target\debug\build\libmimalloc-sys-64261834cf05fe2b\build-script-build`
The command "cargo test --verbose --all --no-default-features" exited with 101.

This seems to be a failure to find numa symbols normally imported in Windows.h. This is a travis issue?

You are building with gcc, mimalloc expect msvc on windows I guess.

The rust toolchain is 'stable-x86_64-pc-windows-gnu' instead of x86_64-pc-windows-msvc for some reason on travis.