[Linux x86-64] gpSP core fails to load - can't be launched because the executable stack flag is set on Linux with SELinux security policies
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Is there an existing issue for this?
- This is a bug in RetroArch frontend
- I have searched the existing issues
Description
When opening the gpSP core, the core fails to load and the -v log shows the following error:
gpsp_libretro.so: cannot enable executable stack as shared object requires: Invalid argument
This happens in version ab3b175848 in EndeavourOS and b2ceb50 in Ubuntu. The earlier Flatpak version 864ad02177 from Jan 10 2025 loads the core correctly. The current nightly build of gpSP is the same across all 3 systems and appears to be a problem with Retroarch itself.
Expected behavior
The gpSP core should load and play GBA games normally
Steps to reproduce the bug
Start the latest version of Retroarch with the -v switch
install the gpSP core
Attempt to start the gpSP core either through starting a GBA game or the Load Core menu (doesn't matter which)
The core will fail to load and place the above error message in the log
Version/Commit
1.20.0 ab3b175848
Bisect Results
864ad02177
Present in the nightly version
I don't know
Platform & operating system
Linux x86-64
Affected Cores
gpSP 1.0.0-b0d5d27
Environment information
Installed via Pacman/AUR (Endeavour) and APT (Ubuntu)
Relevant log output
[retroplex@RetroPlex ~]$ retroarch -v
[INFO] [Config]: Looking for config in: "/home/retroplex/.config/retroarch/retroarch.cfg".
[INFO] RetroArch 1.20.0 (Git ab3b175848)
[INFO] === Build =======================================
[INFO] CPU Model Name: AMD Ryzen 5 PRO 3400G with Radeon Vega Graphics
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 AES AVX AVX2
[INFO] Version: 1.20.0
[INFO] Git: ab3b175848
[INFO] Built: Apr 21 2025
[INFO] =================================================
[INFO] [Input]: Found input driver: "x".
[INFO] Cannot resolve save file path.
[INFO] Cannot resolve save state file path.
[INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
[INFO] [Core]: Version of libretro API: 1, Compiled against API: 1
[INFO] [Core]: Geometry: 320x240, Aspect: 1.333, FPS: 60.00, Sample rate: 48000.00 Hz.
[INFO] [Video]: Set video size to: fullscreen.
[INFO] [Video]: Starting threaded video driver..
[INFO] [Wayland]: Registered interface wl_compositor at version 6
[INFO] [Wayland]: Registered interface zxdg_decoration_manager_v1 at version 1
[INFO] [Wayland]: Registered interface wp_viewporter at version 1
[INFO] [Wayland]: Registered interface wp_fractional_scale_manager_v1 at version 1
[INFO] [Wayland]: Registered interface wl_shm at version 1
[INFO] [Wayland]: Registered interface wl_seat at version 9
[INFO] [Wayland]: Registered interface zwp_pointer_constraints_v1 at version 1
[INFO] [Wayland]: Registered interface zwp_relative_pointer_manager_v1 at version 1
[INFO] [Wayland]: Registered interface wl_data_device_manager at version 3
[INFO] [Wayland]: Registered interface wp_cursor_shape_manager_v1 at version 1
[INFO] [Wayland]: Registered interface zwp_idle_inhibit_manager_v1 at version 1
[INFO] [Wayland]: Registered interface wp_content_type_manager_v1 at version 1
[INFO] [Wayland]: Registered interface xdg_wm_base at version 6
[INFO] [Wayland]: Registered interface wl_output at version 4
[INFO] [Wayland]: Compositor doesn't support the wp_single_pixel_buffer_manager_v1 protocol!
[INFO] [Vulkan]: Vulkan dynamic library loaded.
[INFO] [Vulkan]: Found vulkan context: "vk_wayland".
[INFO] [Vulkan]: Detecting screen resolution: 1920x1080.
[INFO] [Vulkan]: Found GPU at index 0: "AMD Radeon Vega 11 Graphics (RADV RAVEN)".
[INFO] [Vulkan]: Using GPU index 0.
[INFO] [Vulkan]: Using semaphores for WSI acquire.
[INFO] [Vulkan]: Using GPU: "AMD Radeon Vega 11 Graphics (RADV RAVEN)".
[INFO] [Vulkan]: Queue family 0 supports 1 sub-queues.
[INFO] [Vulkan]: Got 3 swapchain images.
[INFO] [Wayland] Failed to specify monitor for fullscreen, letting compositor decide
[INFO] [Vulkan]: Using resolution 1920x1080.
[INFO] [Vulkan]: Using RGB565 format.
[INFO] [Vulkan]: Loading stock shader.
[INFO] [udev]: Pad #0 (/dev/input/event15) supports force feedback.
[INFO] [udev]: Pad #0 (/dev/input/event15) supports 16 force feedback effects.
[INFO] [Autoconf]: Xbox 360 Controller configured in port 1.
[INFO] [Joypad]: Found joypad driver: "udev".
[INFO] [Video]: Found display server: "null".
[INFO] [Audio]: Set audio input rate to: 48000.00 Hz.
[INFO] [PulseAudio]: Requested 24576 bytes buffer, got 18432.
[INFO] [Audio]: Started synchronous audio driver.
[INFO] [ALSA] Using ALSA version 1.2.14
[INFO] [Microphone]: Initialized microphone driver.
[INFO] [Display]: Found display driver: "vulkan".
[INFO] [Playlist]: Loading history file: "/home/retroplex/.config/retroarch/content_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/retroplex/.config/retroarch/content_music_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/retroplex/.config/retroarch/content_video_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/retroplex/.config/retroarch/content_image_history.lpl".
[INFO] [Playlist]: Loading favorites file: "/home/retroplex/.config/retroarch/content_favorites.lpl".
[ERROR] Failed to open libretro core: "/home/retroplex/.config/retroarch/cores/gpsp_libretro.so"
[ERROR] Error(s): /home/retroplex/.config/retroarch/cores/gpsp_libretro.so: cannot enable executable stack as shared object requires: Invalid argument
[INFO] [Config]: Saved new config to "/home/retroplex/.config/retroarch/retroarch.cfg".
[INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 00 seconds.
[INFO] [Core]: Unloading core..
[INFO] [Core]: Unloading core symbols..
[INFO] Threaded video stats: Frames pushed: 3649, Frames dropped: 0.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the failure on Linux x86-64 with RetroArch's -v switch, installing the gpSP core and attempting to launch a GBA game or the core from Load Core. Trace the core-loading path from the gpsp_libretro.so error about the executable stack and compare the bisected commit with the earlier working version. Done means gpSP loads and GBA games start under the reported Linux security policies.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, linux
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100