Remove the "If only executable code is distributed..." paragraph from
the license text. Everything now uses a normal MIT license.
The only code from Khronos that's included in libglvnd is the EGL/GL
header and XML files, which do not contain that paragraph.
Fixes https://gitlab.freedesktop.org/glvnd/libglvnd/-/issues/221
Moved the UnionExtensionStrings and IntersectionExtensionStrings functions from
EGL to utils_misc.c.
Changed libGLX to use the common UnionExtensionStrings and IsTokenInString
functions instead of its own versions of them.
Moved ParseClientVersionString to libglx.c near where it's used, and deleted
libglxstring.c and libglxstring.h.
This commit adds static and dynamic TSD stubs generation support for ARMv7.
Testing coverage includes all ARM / Thumb mode combinations between
libglvnd and a vendor implementation.
In AllocExecPages and OpenTempFile, it will first try creating a temp file by
calling open(2) with the O_TMPFILE flag. If that doesn't work, then it'll fall
back to using mkstemp.
AllocExecPages will now try to create a temp file and map it twice, once
writable and once executable. This will allow it to work on systems that don't
allow the same page to be writable and executable.
Issue #37
Added two new functions, AllocExecPages and FreeExecPages, for allocating
executable memory for generating stub functions.
It uses a single mmap right now, but it's set up to return two pointers, so it
will be able to return separate writable and executable mappings. That will let
it work on systems that don't allow pages to be both writable and executable.
The new functions are in utils_misc.c, since it will be needed in both libGLX
and libGLXdispatch.