Skip to content

Change to mimalloc in tests broke cross-compile for target x86_64-pc-windows-gnu #7033

Open
@John-Nagle

Description

@John-Nagle

Describe the bug

Compile fails compiling mimalloc. See below.

To Reproduce
Steps to reproduce the behavior:

  1. git clone https://github.com/emilk/egui.git
  2. cd egui
  3. cargo test -j 1 --target x86_64-pc-windows-gnu

Expected behavior

Tests compile and run.
Screenshots

Desktop (please complete the following information):

  • OS: Ubuntu 22.04 LTS
  • Rust: rustc 1.84.0 (9fc6b4312 2025-01-07)

Additional context

Testing latest commit on master, commit 7216d0e

  >  cargo test -j 1 --target x86_64-pc-windows-gnu
...
  Compiling egui_kittest v0.31.1 (/home/john/projects/egui/crates/egui_kittest)
   Compiling libmimalloc-sys v0.1.42
   Compiling aho-corasick v1.1.3
   Compiling regex-syntax v0.8.5
   Compiling regex-automata v0.4.8
warning: [email protected]: In file included from c_src/mimalloc/include/mimalloc/types.h:28,
warning: [email protected]:                  from c_src/mimalloc/include/mimalloc/internal.h:17,
warning: [email protected]:                  from c_src/mimalloc/src/static.c:17:
warning: [email protected]: c_src/mimalloc/include/mimalloc/atomic.h: In function 'mi_lock_try_acquire':
warning: [email protected]: c_src/mimalloc/include/mimalloc/atomic.h:442:10: warning: implicit declaration of function 'TryAcquireSRWLockExclusive' [-Wimplicit-function-declaration]
warning: [email protected]:   442 |   return TryAcquireSRWLockExclusive(lock);
warning: [email protected]:       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
warning: [email protected]: c_src/mimalloc/include/mimalloc/atomic.h: In function 'mi_lock_acquire':
warning: [email protected]: c_src/mimalloc/include/mimalloc/atomic.h:445:3: warning: implicit declaration of function 'AcquireSRWLockExclusive' [-Wimplicit-function-declaration]
warning: [email protected]:   445 |   AcquireSRWLockExclusive(lock);
warning: [email protected]:       |   ^~~~~~~~~~~~~~~~~~~~~~~
warning: [email protected]: c_src/mimalloc/include/mimalloc/atomic.h: In function 'mi_lock_release':
warning: [email protected]: c_src/mimalloc/include/mimalloc/atomic.h:448:3: warning: implicit declaration of function 'ReleaseSRWLockExclusive' [-Wimplicit-function-declaration]
warning: [email protected]:   448 |   ReleaseSRWLockExclusive(lock);
warning: [email protected]:       |   ^~~~~~~~~~~~~~~~~~~~~~~
warning: [email protected]: c_src/mimalloc/include/mimalloc/atomic.h: In function 'mi_lock_init':
warning: [email protected]: c_src/mimalloc/include/mimalloc/atomic.h:451:3: warning: implicit declaration of function 'InitializeSRWLock'; did you mean 'InitializeSid'? [-Wimplicit-function-declaration]
warning: [email protected]:   451 |   InitializeSRWLock(lock);
warning: [email protected]:       |   ^~~~~~~~~~~~~~~~~
warning: [email protected]:       |   InitializeSid
warning: [email protected]: In file included from c_src/mimalloc/src/prim/prim.c:12,
warning: [email protected]:                  from c_src/mimalloc/src/static.c:38:
warning: [email protected]: c_src/mimalloc/src/prim/windows/prim.c: In function 'win_is_out_of_memory_error':
warning: [email protected]: c_src/mimalloc/src/prim/windows/prim.c:231:10: error: 'ERROR_COMMITMENT_MINIMUM' undeclared (first use in this function); did you mean 'ERROR_COMMITMENT_LIMIT'?
warning: [email protected]:   231 |     case ERROR_COMMITMENT_MINIMUM:
warning: [email protected]:       |          ^~~~~~~~~~~~~~~~~~~~~~~~
warning: [email protected]:       |          ERROR_COMMITMENT_LIMIT
warning: [email protected]: c_src/mimalloc/src/prim/windows/prim.c:231:10: note: each undeclared identifier is reported only once for each function it appears in
warning: [email protected]: In file included from c_src/mimalloc/src/prim/prim.c:12,
warning: [email protected]:                  from c_src/mimalloc/src/static.c:38:
warning: [email protected]: c_src/mimalloc/src/prim/windows/prim.c: At top level:
warning: [email protected]: c_src/mimalloc/src/prim/windows/prim.c:689: warning: ignoring '#pragma comment ' [-Wunknown-pragmas]
warning: [email protected]:   689 |     #pragma comment(linker, "/INCLUDE:_tls_used")
warning: [email protected]:       | 
warning: [email protected]: c_src/mimalloc/src/prim/windows/prim.c:690: warning: ignoring '#pragma comment ' [-Wunknown-pragmas]
warning: [email protected]:   690 |     #pragma comment(linker, "/INCLUDE:_mi_tls_callback_pre")
warning: [email protected]:       | 
warning: [email protected]: c_src/mimalloc/src/prim/windows/prim.c:691: warning: ignoring '#pragma comment ' [-Wunknown-pragmas]
warning: [email protected]:   691 |     #pragma comment(linker, "/INCLUDE:_mi_tls_callback_post")
warning: [email protected]:       | 
warning: [email protected]: c_src/mimalloc/src/prim/windows/prim.c:692: warning: ignoring '#pragma const_seg ' [-Wunknown-pragmas]
warning: [email protected]:   692 |     #pragma const_seg(".CRT$XLB")
warning: [email protected]:       | 
warning: [email protected]: c_src/mimalloc/src/prim/windows/prim.c:695: warning: ignoring '#pragma const_seg ' [-Wunknown-pragmas]
warning: [email protected]:   695 |     #pragma const_seg()
warning: [email protected]:       | 
warning: [email protected]: c_src/mimalloc/src/prim/windows/prim.c:696: warning: ignoring '#pragma const_seg ' [-Wunknown-pragmas]
warning: [email protected]:   696 |     #pragma const_seg(".CRT$XLY")
warning: [email protected]:       | 
warning: [email protected]: c_src/mimalloc/src/prim/windows/prim.c:699: warning: ignoring '#pragma const_seg ' [-Wunknown-pragmas]
warning: [email protected]:   699 |     #pragma const_seg()
warning: [email protected]:       | 
warning: [email protected]: In file included from c_src/mimalloc/src/static.c:37:
warning: [email protected]: c_src/mimalloc/src/stats.c:221:13: warning: 'mi_stat_total_print' defined but not used [-Wunused-function]
warning: [email protected]:   221 | static void mi_stat_total_print(const mi_stat_count_t* stat, const char* msg, int64_t unit, mi_output_fun* out, void* arg) {
warning: [email protected]:       |             ^~~~~~~~~~~~~~~~~~~
error: failed to run custom build command for `libmimalloc-sys v0.1.42`

Caused by:
  process didn't exit successfully: `/home/john/projects/egui/target/debug/build/libmimalloc-sys-7e908047d1d35d4d/build-script-build` (exit status: 1)
  --- stdout
  OPT_LEVEL = Some(2)
  OUT_DIR = Some(/home/john/projects/egui/target/x86_64-pc-windows-gnu/debug/build/libmimalloc-sys-e091e8d90fac8144/out)
  TARGET = Some(x86_64-pc-windows-gnu)
  HOST = Some(x86_64-unknown-linux-gnu)
  cargo:rerun-if-env-changed=CC_x86_64-pc-windows-gnu
  CC_x86_64-pc-windows-gnu = None
  cargo:rerun-if-env-changed=CC_x86_64_pc_windows_gnu
  CC_x86_64_pc_windows_gnu = None
  cargo:rerun-if-env-changed=TARGET_CC
  TARGET_CC = None
  cargo:rerun-if-env-changed=CC
  CC = None
  cargo:rerun-if-env-changed=CROSS_COMPILE
  CROSS_COMPILE = None
  RUSTC_LINKER = None
  cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT
  RUSTC_WRAPPER = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some(true)
  CARGO_CFG_TARGET_FEATURE = Some(cmpxchg16b,fxsr,sse,sse2,sse3)
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None
  cargo:rerun-if-env-changed=TARGET_CFLAGS
  TARGET_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64_pc_windows_gnu
  CFLAGS_x86_64_pc_windows_gnu = None
  cargo:rerun-if-env-changed=CFLAGS_x86_64-pc-windows-gnu
  CFLAGS_x86_64-pc-windows-gnu = None
  CARGO_ENCODED_RUSTFLAGS = Some()
  cargo:warning=In file included from c_src/mimalloc/include/mimalloc/types.h:28,
  cargo:warning=                 from c_src/mimalloc/include/mimalloc/internal.h:17,
  cargo:warning=                 from c_src/mimalloc/src/static.c:17:
  cargo:warning=c_src/mimalloc/include/mimalloc/atomic.h: In function 'mi_lock_try_acquire':
  cargo:warning=c_src/mimalloc/include/mimalloc/atomic.h:442:10: warning: implicit declaration of function 'TryAcquireSRWLockExclusive' [-Wimplicit-function-declaration]
  cargo:warning=  442 |   return TryAcquireSRWLockExclusive(lock);
  cargo:warning=      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=c_src/mimalloc/include/mimalloc/atomic.h: In function 'mi_lock_acquire':
  cargo:warning=c_src/mimalloc/include/mimalloc/atomic.h:445:3: warning: implicit declaration of function 'AcquireSRWLockExclusive' [-Wimplicit-function-declaration]
  cargo:warning=  445 |   AcquireSRWLockExclusive(lock);
  cargo:warning=      |   ^~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=c_src/mimalloc/include/mimalloc/atomic.h: In function 'mi_lock_release':
  cargo:warning=c_src/mimalloc/include/mimalloc/atomic.h:448:3: warning: implicit declaration of function 'ReleaseSRWLockExclusive' [-Wimplicit-function-declaration]
  cargo:warning=  448 |   ReleaseSRWLockExclusive(lock);
  cargo:warning=      |   ^~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=c_src/mimalloc/include/mimalloc/atomic.h: In function 'mi_lock_init':
  cargo:warning=c_src/mimalloc/include/mimalloc/atomic.h:451:3: warning: implicit declaration of function 'InitializeSRWLock'; did you mean 'InitializeSid'? [-Wimplicit-function-declaration]
  cargo:warning=  451 |   InitializeSRWLock(lock);
  cargo:warning=      |   ^~~~~~~~~~~~~~~~~
  cargo:warning=      |   InitializeSid
  cargo:warning=In file included from c_src/mimalloc/src/prim/prim.c:12,
  cargo:warning=                 from c_src/mimalloc/src/static.c:38:
  cargo:warning=c_src/mimalloc/src/prim/windows/prim.c: In function 'win_is_out_of_memory_error':
  cargo:warning=c_src/mimalloc/src/prim/windows/prim.c:231:10: error: 'ERROR_COMMITMENT_MINIMUM' undeclared (first use in this function); did you mean 'ERROR_COMMITMENT_LIMIT'?
  cargo:warning=  231 |     case ERROR_COMMITMENT_MINIMUM:
  cargo:warning=      |          ^~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=      |          ERROR_COMMITMENT_LIMIT
  cargo:warning=c_src/mimalloc/src/prim/windows/prim.c:231:10: note: each undeclared identifier is reported only once for each function it appears in
  cargo:warning=In file included from c_src/mimalloc/src/prim/prim.c:12,
  cargo:warning=                 from c_src/mimalloc/src/static.c:38:
  cargo:warning=c_src/mimalloc/src/prim/windows/prim.c: At top level:
  cargo:warning=c_src/mimalloc/src/prim/windows/prim.c:689: warning: ignoring '#pragma comment ' [-Wunknown-pragmas]
  cargo:warning=  689 |     #pragma comment(linker, "/INCLUDE:_tls_used")
  cargo:warning=      | 
  cargo:warning=c_src/mimalloc/src/prim/windows/prim.c:690: warning: ignoring '#pragma comment ' [-Wunknown-pragmas]
  cargo:warning=  690 |     #pragma comment(linker, "/INCLUDE:_mi_tls_callback_pre")
  cargo:warning=      | 
  cargo:warning=c_src/mimalloc/src/prim/windows/prim.c:691: warning: ignoring '#pragma comment ' [-Wunknown-pragmas]
  cargo:warning=  691 |     #pragma comment(linker, "/INCLUDE:_mi_tls_callback_post")
  cargo:warning=      | 
  cargo:warning=c_src/mimalloc/src/prim/windows/prim.c:692: warning: ignoring '#pragma const_seg ' [-Wunknown-pragmas]
  cargo:warning=  692 |     #pragma const_seg(".CRT$XLB")
  cargo:warning=      | 
  cargo:warning=c_src/mimalloc/src/prim/windows/prim.c:695: warning: ignoring '#pragma const_seg ' [-Wunknown-pragmas]
  cargo:warning=  695 |     #pragma const_seg()
  cargo:warning=      | 
  cargo:warning=c_src/mimalloc/src/prim/windows/prim.c:696: warning: ignoring '#pragma const_seg ' [-Wunknown-pragmas]
  cargo:warning=  696 |     #pragma const_seg(".CRT$XLY")
  cargo:warning=      | 
  cargo:warning=c_src/mimalloc/src/prim/windows/prim.c:699: warning: ignoring '#pragma const_seg ' [-Wunknown-pragmas]
  cargo:warning=  699 |     #pragma const_seg()
  cargo:warning=      | 
  cargo:warning=In file included from c_src/mimalloc/src/static.c:37:
  cargo:warning=c_src/mimalloc/src/stats.c:221:13: warning: 'mi_stat_total_print' defined but not used [-Wunused-function]
  cargo:warning=  221 | static void mi_stat_total_print(const mi_stat_count_t* stat, const char* msg, int64_t unit, mi_output_fun* out, void* arg) {
  cargo:warning=      |             ^~~~~~~~~~~~~~~~~~~

  --- stderr


  error occurred in cc-rs: command did not execute successfully (status code exit status: 1): LC_ALL="C" "x86_64-w64-mingw32-gcc" "-O2" "-ffunction-sections" "-fdata-sections" "-gdwarf-2" "-fno-omit-frame-pointer" "-m64" "-I" "c_src/mimalloc/include" "-I" "c_src/mimalloc/src" "-Wall" "-Wextra" "-DMI_DEBUG=0" "-o" "/home/john/projects/egui/target/x86_64-pc-windows-gnu/debug/build/libmimalloc-sys-e091e8d90fac8144/out/5a07bf3761bb5df8-static.o" "-c" "c_src/mimalloc/src/static.c"

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions