Please confirm the following
What were you doing?
Environment
- OS: Arch Linux (x86_64)
- Fuji Version: v0.7.2
- Celeste 64: v1.1.1
- .NET Framework: 8.0.25
- glibc: 2.41+ (latest Arch)
- Graphics: AMD Radeon Graphics (Mesa 26.0.3)
Issue Description
Cannot launch Celeste 64 with Fuji mod loader. The application crashes immediately on startup with a System.DllNotFoundException when trying to load /tmp/mm-exhelper.so.*.
Error Details
/tmp/mm-exhelper.so.*: cannot enable executable stack as shared object requires: Invalid argument
This appears to be a compatibility issue with:
- glibc 2.41+ changes in
dlopen/dlmopen behavior /tmp directory mounted with noexec or kernel security restrictions- MonoMod.Core's native exception helper requiring executable stack
Steps to Reproduce
- Install Fuji stable on Arch Linux and attempt to launch Celeste 64, application crashes immediately
- Install Fuji dev and situation is the same
haven't try beta yet
Your logs
Celeste 64 v.1.1.1
Fuji: v.0.7.2
Error Log (03/24/2026 18:48:57)
Call Stack:
System.DllNotFoundException: Unable to load shared library '/tmp/mm-exhelper.so.V9f9Os' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable: /opt/fuji//tmp/mm-exhelper.so.V9f9Os: cannot open shared object file: No such file or directory/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.25//tmp/mm-exhelper.so.V9f9Os: cannot open shared object file: No such file or directory/tmp/mm-exhelper.so.V9f9Os: cannot enable executable stack as shared object requires: Invalid argument at System.Runtime.InteropServices.NativeLibrary.LoadLibraryByName(String libraryName, Assembly assembly, Nullable`1 searchPath, Boolean throwOnError) at MonoMod.Utils.DynDll.NativeLibraryBackend.OpenLibrary(String name, Assembly assembly) at MonoMod.Utils.DynDll.OpenLibrary(String name) at MonoMod.Core.Platforms.Systems.PosixExceptionHelper.CreateHelper(IArchitecture arch, String filename) at MonoMod.Core.Platforms.Systems.LinuxSystem.CreateNativeExceptionHelper() at MonoMod.Core.Platforms.Systems.LinuxSystem.get_NativeExceptionHelper() at MonoMod.Core.Platforms.Runtimes.CoreBaseRuntime.get_NativeExceptionHelper() at MonoMod.Core.Platforms.Runtimes.CoreBaseRuntime.EHManagedToNative(IntPtr target, IDisposable& handle) at MonoMod.Core.Platforms.Runtimes.Core21Runtime.InstallJitHook(IntPtr jit) at MonoMod.Core.Platforms.Runtimes.CoreBaseRuntime.MonoMod.Core.Utils.IInitialize.Initialize() at MonoMod.Core.Platforms.PlatformTriple.InitIfNeeded(Object obj) at MonoMod.Core.Platforms.PlatformTriple..ctor(IArchitecture architecture, ISystem system, IRuntime runtime) at MonoMod.Core.Platforms.PlatformTriple.CreateCurrent() at MonoMod.Utils.Helpers.InitializeValueWithLock[T,TParam](T& location, Object lock, init, TParam obj) at MonoMod.Core.Platforms.PlatformTriple.get_Current() at MonoMod.Core.DetourFactory.CreateDefaultFactory() at MonoMod.Utils.Helpers.InitializeValue[T,TParam](T& location, init, TParam obj) at MonoMod.RuntimeDetour.DetourContext.GetDefaultFactory() at MonoMod.RuntimeDetour.ILHook..ctor(MethodBase source, Manipulator manip, DetourConfig config, Boolean applyByDefault) at MonoMod.RuntimeDetour.ILHook..ctor(MethodBase source, Manipulator manip, DetourConfig config) at MonoMod.RuntimeDetour.ILHook..ctor(MethodBase source, Manipulator manip) at Celeste64.Mod.Patches.Keyboard.<>c.<Load>b__3_1(MethodInfo m) in /home/rger/.cache/paru/clone/celeste64-fuji-git/src/celeste64-fuji/Source/Mod/Patches/Keyboard.cs:line 25 at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext() at System.Collections.Generic.List`1.AddRange(IEnumerable`1 collection) at Celeste64.Mod.Patches.Keyboard.Load() in /home/rger/.cache/paru/clone/celeste64-fuji-git/src/celeste64-fuji/Source/Mod/Patches/Keyboard.cs:line 22 at Celeste64.Mod.Patches.Patches.Load() in /home/rger/.cache/paru/clone/celeste64-fuji-git/src/celeste64-fuji/Source/Mod/Patches/Patches.cs:line 7 at Celeste64.Game.Startup() in /home/rger/.cache/paru/clone/celeste64-fuji-git/src/celeste64-fuji/Source/Game.cs:line 287 at Foster.Framework.App.Run(String applicationName, Int32 width, Int32 height, Boolean fullscreen, Renderers renderer) at Foster.Framework.App.Run[T](String applicationName, Int32 width, Int32 height, Boolean fullscreen, Renderers renderer) at Celeste64.Launcher.Program.Main(String[] args) in /home/rger/.cache/paru/clone/celeste64-fuji-git/src/celeste64-fuji/Celeste64.Launcher/Program.cs:line 52Game Output:Celeste 64 v.1.1.1Fuji: v.0.7.2Foster: v0.1.18Platform: Arch Linux (X64)Framework: .NET 8.0.25SDL: v2.30.0OpenGL: v4.6 (Core Profile) Mesa 26.0.3-arch1.1, AMD Radeon Graphics (radeonsi, renoir, ACO, DRM 3.64, 6.19.8-arch1-1)
Please confirm the following
What were you doing?
Environment
Issue Description
Cannot launch Celeste 64 with Fuji mod loader. The application crashes immediately on startup with a
System.DllNotFoundExceptionwhen trying to load/tmp/mm-exhelper.so.*.Error Details
This appears to be a compatibility issue with:
dlopen/dlmopenbehavior/tmpdirectory mounted withnoexecor kernel security restrictionsSteps to Reproduce
haven't try beta yet
Your logs