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 52
Game Output:
Celeste 64 v.1.1.1
Fuji: v.0.7.2
Foster: v0.1.18
Platform: Arch Linux (X64)
Framework: .NET 8.0.25
SDL: v2.30.0
OpenGL: 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