Files
SDL/docs/README-platforms.md
Simon McVittie 76352f2931 Document SDL's policy on setuid/setgid executables
Stated briefly, the policy is: don't.

Resolves: https://github.com/libsdl-org/SDL/issues/14717
Signed-off-by: Simon McVittie <smcv@debian.org>
2025-12-28 10:14:57 -08:00

2.4 KiB

Platforms

Supported Platforms

SDL3 has been known to work on the following platforms at some point:

Note that the SDL maintainers do not test on all these platforms; if a less-common system breaks, please let us know and send patches if you can.

If you'd like to port SDL to a new platform, feel free to get in touch! A guide to porting SDL2 was written a while ago, and most of it still applies to SDL3.

Unsupported Platforms

If your favorite system is listed below, we aren't working on it. However, if you send reasonable patches and are willing to support the port in the long term, we are happy to take a look!

All of these still work with SDL2, which is an incompatible API, but an option if you need to support these platforms still.

  • QNX
  • Google Stadia
  • NaCL
  • OS/2
  • WinPhone
  • WinRT/UWP

General notes for Unix platforms

Some aspects of SDL functionality are common to all Unix-based platforms.

Privileged processes (setuid, setgid, setcap)

SDL is not designed to be used in programs with elevated privileges, such as setuid (chmod u+s) or setgid (chmod g+s) executables, or executables with file-based capabilities (setcap cap_sys_nice+ep or similar). It does not make any attempt to avoid trusting environment variables or other aspects of the inherited execution environment. Programs running with elevated privileges in an attacker-controlled execution environment should not call SDL functions.