You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have checked the Issues page to see if my problem has already been reported
I have confirmed that this bug does not occur in the original game running on original Xbox 360 hardware
DLC
Additional Episode "Sonic Boss Attack"
Additional Episode "Shadow Boss Attack"
Additional Episode "Silver Boss Attack"
Additional Episode "Team Attack Amigo"
Additional Mission Pack "Sonic/Very Hard"
Additional Mission Pack "Shadow/Very Hard"
Additional Mission Pack "Silver/Very Hard"
Mods
No response
Codes
No response
Describe the Bug
I tried building Marathon Recomp on my rather aged Intel Macbook Air with Archlinux from 2015. While admittedly rather outdated and with somewhat restricted Vulkan support (which is completely absent in Windows), I though there would still be a solid chance that it would work. However, an unexpected issue arose. It appears everything compiled successfully, but the executable linking step failed (clang++: error: linker command failed with exit code 1 (use -v to see invocation)). This looks like a software issue, although it did successfully build on my main PC which is also running Archlinux.
Steps to Reproduce
Compile the project
It will probably build but uh it doesnt on my side
Expected Behavior
I expected it to build successfully or complain about Vulkan support. One of those two.
Footage
No response
Specifications
CPU: Intel(R) Core(TM) i5-5250U (4) @ 2.70 GHz
GPU: Intel HD Graphics 6000 @ 0.95 GHz [Integrated]
GPU Driver: Intel i915
OS: Archlinux
Version: Rolling release (fully up-to-date)
Additional Context
Like I said, the hardware is rather old and the Vulkan support is missing some features, but most Vulkan apps work. There's the difference that my main PC, which successfully build MarathonRecomp with a similar Arch installation, uses a more modern AMD Ryzen 5 5000 series processor, but I feel like the probability of this circumstance having an effect is negligible.
Activity
IceBaronTwinAcc commentedon May 17, 2026
Full output:
[1/1] Linking CXX executable MarathonRecomp/MarathonRecomp
FAILED: [code=1] MarathonRecomp/MarathonRecomp
: && /usr/bin/clang++ -fPIC -O3 -DNDEBUG -flto=thin -fuse-ld=lld -Xlinker --dependency-file=MarathonRecomp/CMakeFiles/MarathonRecomp.dir/link.d MarathonRecomp/CMakeFiles/MarathonRecomp.dir/app.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/exports.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/main.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/misc_impl.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/preload_executable.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/sdl_listener.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/stdafx.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/version.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/kernel/imports.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/kernel/xdm.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/kernel/heap.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/kernel/memory.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/kernel/xam.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/kernel/io/file_system.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/locale/achievement_locale.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/locale/config_locale.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/locale/locale.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/os/linux/logger_linux.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/os/linux/media_linux.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/os/linux/process_linux.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/os/linux/user_linux.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/os/linux/version_linux.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/cpu/guest_thread.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/gpu/video.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/gpu/imgui/imgui_common.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/gpu/imgui/imgui_font_builder.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/gpu/imgui/imgui_snapshot.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/apu/audio.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/apu/xma_decoder.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/apu/embedded_player.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/apu/driver/sdl2_driver.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/hid/hid.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/hid/driver/sdl_hid.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/aspect_ratio_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/audio_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/camera_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/fps_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/frontend_listener.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/input_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/loading_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/MainMenuTask_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/misc_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/pause_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/player_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/SaveDataTask_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/text_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/TitleTask_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/patches/video_patches.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/ui/achievement_menu.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/ui/achievement_overlay.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/ui/black_bar.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/ui/button_window.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/ui/common_menu.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/ui/fader.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/ui/game_window.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/ui/imgui_utils.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/ui/installer_wizard.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/ui/message_window.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/ui/options_menu.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/install/installer.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/install/iso_file_system.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/install/update_checker.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/install/xcontent_file_system.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/install/hashes/game.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/install/hashes/episode_sonic.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/install/hashes/episode_shadow.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/install/hashes/episode_silver.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/install/hashes/episode_amigo.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/install/hashes/mission_sonic.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/install/hashes/mission_shadow.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/install/hashes/mission_silver.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/user/achievement_data.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/user/achievement_manager.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/user/config.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/user/registry.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/user/paths.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/utils/bit_stream.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/utils/ring_buffer.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/mod/mod_loader.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir//thirdparty/imgui/backends/imgui_impl_sdl2.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir//thirdparty/imgui/imgui.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir//thirdparty/imgui/imgui_demo.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir//thirdparty/imgui/imgui_draw.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir//thirdparty/imgui/imgui_tables.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir//thirdparty/imgui/imgui_widgets.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir//thirdparty/implot/implot.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir//thirdparty/implot/implot_demo.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir//thirdparty/implot/implot_items.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir//tools/XenosRecomp/thirdparty/smol-v/source/smolv.cpp.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/bc_diff/button_bc_diff.bin.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/font/im_font_atlas.bin.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/font/im_font_atlas.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/common/button_window.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/common/controller.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/common/sonicnext-dev.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/common/kbm.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/common/main_menu1.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/common/main_menu7.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/common/main_menu8.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/common/main_menu9.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/common/arrow.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/common/window.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/common/select_arrow.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/installer/install_001.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/installer/install_002.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/installer/install_003.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/installer/install_004.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/installer/install_005.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/installer/install_006.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/installer/install_007.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/installer/install_008.dds.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/images/game_icon.bmp.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/music/installer.ogg.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/sounds/window_open.ogg.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/sounds/window_close.ogg.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/sounds/cursor.ogg.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/sounds/deside.ogg.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/sounds/move.ogg.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/sounds/main_deside.ogg.c.o MarathonRecomp/CMakeFiles/MarathonRecomp.dir/res/sounds/cannot_deside.ogg.c.o -o MarathonRecomp/MarathonRecomp tools/XenonRecomp/thirdparty/fmt/libfmt.a tools/XenosRecomp/thirdparty/zstd/build/cmake/lib/libzstd.a thirdparty/msdf-atlas-gen/libmsdf-atlas-gen.a thirdparty/nativefiledialog-extended/src/libnfd.a thirdparty/o1heap/libo1heap.a tools/XenonRecomp/XenonUtils/libXenonUtils.a thirdparty/SDL/libSDL2.a thirdparty/SDL_mixer/libSDL2_mixer.a MarathonRecompLib/libMarathonRecompLib.a tools/XenonRecomp/thirdparty/xxHash/cmake_unofficial/libxxhash.a thirdparty/plume/libplume.a /usr/lib/libSM.so /usr/lib/libICE.so /usr/lib/libX11.so /usr/lib/libXext.so -lglib-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 thirdparty/msdf-atlas-gen/msdfgen/libmsdfgen-ext.a thirdparty/msdf-atlas-gen/msdfgen/libmsdfgen-core.a vcpkg_installed/x64-linux/lib/libfreetype.a vcpkg_installed/x64-linux/lib/libbz2.a vcpkg_installed/x64-linux/lib/libpng16.a vcpkg_installed/x64-linux/lib/libbz2.a vcpkg_installed/x64-linux/lib/libpng16.a vcpkg_installed/x64-linux/lib/libz.a vcpkg_installed/x64-linux/lib/libbrotlidec.a vcpkg_installed/x64-linux/lib/libbrotlicommon.a /usr/lib/libgtk-3.so /usr/lib/libgdk-3.so /usr/lib/libpangocairo-1.0.so /usr/lib/libcairo-gobject.so /usr/lib/libgdk_pixbuf-2.0.so /usr/lib/libatk-1.0.so /usr/lib/libpango-1.0.so /usr/lib/libcairo.so /usr/lib/libharfbuzz.so /usr/lib/libgio-2.0.so /usr/lib/libgobject-2.0.so /usr/lib/libglib-2.0.so vcpkg_installed/x64-linux/lib/libz.a tools/XenonRecomp/thirdparty/disasm/libdisasm.a thirdparty/SDL/libSDL2.a -lm -pthread vcpkg_installed/x64-linux/lib/libcurl.a vcpkg_installed/x64-linux/lib/libssl.a vcpkg_installed/x64-linux/lib/libcrypto.a -ldl vcpkg_installed/x64-linux/lib/libz.a external/ffmpeg-5089f00/lib/libavformat.a external/ffmpeg-5089f00/lib/libavcodec.a external/ffmpeg-5089f00/lib/libswscale.a external/ffmpeg-5089f00/lib/libavutil.a external/ffmpeg-5089f00/lib/libavfilter.a external/ffmpeg-5089f00/lib/libswresample.a -lgio-2.0 -lgobject-2.0 && :
ld.lld: error: undefined symbol: __imp__XexLoadImage(PPCContext&, unsigned char*)
referenced by ppc_recomp.104.cpp
MarathonRecompLib/MarathonRecomp.lto.libMarathonRecompLib.a(ppc_recomp.104.cpp.o at 45808794).o:(__imp__sub_82741638)
referenced by ppc_recomp.103.cpp
MarathonRecompLib/MarathonRecomp.lto.libMarathonRecompLib.a(ppc_recomp.103.cpp.o at 45441666).o:(__imp__sub_82738660)
referenced by ppc_recomp.65.cpp
MarathonRecompLib/MarathonRecomp.lto.libMarathonRecompLib.a(ppc_recomp.65.cpp.o at 31356530).o:(__imp___xstart)
referenced 2 more times
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
squidbus commentedon Oct 18, 2026
I haven't been able to reproduce this, is this still happening?
IceBaronTwinAcc commentedon Oct 18, 2026
Oh gee, this was a while ago. I'm unsure if I still have macbook that this issue came up on...
squidbus commentedon Oct 18, 2026
You’re free to close this then, I’m just checking in on old issues like this to see what we can mark resolved.
IceBaronTwinAcc commentedon Oct 18, 2026
Aye, it's probably gone at this point anyway