From 271f029be73d1e9a336604411706618a22c9b5ae Mon Sep 17 00:00:00 2001 From: cepetr Date: Tue, 1 Apr 2025 09:06:10 +0200 Subject: [PATCH] fix(core): fix emulator build on macOS [no changelog] --- core/SConscript.bootloader_emu | 7 +++++-- core/embed/gfx/bitblt/gfx_bitblt_rgb565.c | 2 ++ .../projects/bootloader/workflow/wf_bootloader.c | 12 ++++++------ core/site_scons/tools.py | 4 ++-- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/core/SConscript.bootloader_emu b/core/SConscript.bootloader_emu index 9e079b14de..dc385ff0b2 100644 --- a/core/SConscript.bootloader_emu +++ b/core/SConscript.bootloader_emu @@ -258,9 +258,12 @@ rust = tools.add_rust_lib( build_dir=str(Dir('.').abspath), ) +env.Append(LINKFLAGS=['-lm']) -env.Append(LINKFLAGS='-lm') -env.Append(LINKFLAGS='-Wl,' + ('-dead_strip' if env['PLATFORM'] == 'darwin' else '--gc-sections')) +if env['PLATFORM'] == 'darwin': + env.Append(LINKFLAGS=['-Wl,-dead_strip']) +else: + env.Append(LINKFLAGS=['-Wl,--gc-sections']) # # Program objects diff --git a/core/embed/gfx/bitblt/gfx_bitblt_rgb565.c b/core/embed/gfx/bitblt/gfx_bitblt_rgb565.c index 50d0808f02..feea2c1670 100644 --- a/core/embed/gfx/bitblt/gfx_bitblt_rgb565.c +++ b/core/embed/gfx/bitblt/gfx_bitblt_rgb565.c @@ -19,7 +19,9 @@ // Turning off the stack protector for this file improves // the performance of drawing operations when called frequently. +#ifndef TREZOR_EMULATOR #pragma GCC optimize("no-stack-protector") +#endif #include diff --git a/core/embed/projects/bootloader/workflow/wf_bootloader.c b/core/embed/projects/bootloader/workflow/wf_bootloader.c index 68da5ecb6f..0ecddc86f8 100644 --- a/core/embed/projects/bootloader/workflow/wf_bootloader.c +++ b/core/embed/projects/bootloader/workflow/wf_bootloader.c @@ -42,7 +42,7 @@ workflow_result_t workflow_bootloader(const vendor_header *const vhdr, while (true) { switch (screen) { - case SCREEN_INTRO: + case SCREEN_INTRO: { intro_result_t ui_result = ui_screen_intro(vhdr, hdr, firmware_present); if (ui_result == INTRO_MENU) { screen = SCREEN_MENU; @@ -50,8 +50,8 @@ workflow_result_t workflow_bootloader(const vendor_header *const vhdr, if (ui_result == INTRO_HOST) { screen = SCREEN_WAIT_FOR_HOST; } - break; - case SCREEN_MENU: + } break; + case SCREEN_MENU: { menu_result_t menu_result = ui_screen_menu(firmware_present); if (menu_result == MENU_EXIT) { // exit menu screen = SCREEN_INTRO; @@ -78,8 +78,8 @@ workflow_result_t workflow_bootloader(const vendor_header *const vhdr, } return WF_ERROR_FATAL; } - break; - case SCREEN_WAIT_FOR_HOST: + } break; + case SCREEN_WAIT_FOR_HOST: { workflow_result_t res = workflow_host_control(vhdr, hdr, ui_screen_connect); switch (res) { @@ -89,7 +89,7 @@ workflow_result_t workflow_bootloader(const vendor_header *const vhdr, default: return res; } - break; + } break; default: return WF_ERROR_FATAL; break; diff --git a/core/site_scons/tools.py b/core/site_scons/tools.py index 7d4198c73e..529b5dad3f 100644 --- a/core/site_scons/tools.py +++ b/core/site_scons/tools.py @@ -182,7 +182,7 @@ def add_rust_lib(*, env, build, profile, features, all_paths, build_dir): action=cargo_build(), ) - env.Append(LINKFLAGS=f"-L{RUST_LIBDIR}") - env.Append(LINKFLAGS=f"-l{RUST_LIB}") + env.Append(LINKFLAGS=[f"-L{RUST_LIBDIR}"]) + env.Append(LINKFLAGS=[f"-l{RUST_LIB}"]) return rust