![]() * bx: Small platform detection/usage improvements * Use BX_PLATFORM_POSIX where needed The semaphone implementation already uses BX_PLATFORM_POSIX to include <pthread.h> on all the POSIX platforms; do the same also in other places for consistency. This is done also for <sched.h>, which is a POSIX API, and sched_yield() from it is already guarded by BX_PLATFORM_POSIX. * Drop support for GNU libc older than 2.12 glibc 2.12 was released on 2010, and at this point any supported Linux distro has that version or way greather than that. From bkaradzic/bx@b59b7debd3 * bx: fix <pthread/pthread.h> include on Hurd <pthread/pthread.h> does not exist, the standard <pthread.h> does exist so switch to it. * osd/modules/file: use dirent::d_type on any GNU libc platform This BSD extension is provided by GNU libc, so enable its usage with that C library. * osd/modules/file: use <pty.h> on any GNU libc platform openpty() is implemented by GNU libc for all the OSes, so include <pty.h> when using that C library. * osd/modules/file: cast dirent::d_name to const char* before using it According to POSIX [1], the type of dirent::d_name is loosely defined as "char d_name[]", as array with an undefined size. In particular, few ways are seen in the wild: (a) "char d_name[size]", i.e. as proper array with a full size (b) "char d_name[1]"/"char d_name[0]", i.e. as C flexible arrays Regardless of its type, dirent::d_name is used as if it was a classic const char *, i.e. as pointer to a null-terminated string. util::string_format() uses C++ templates to collect all the arguments, and thus it will use the actual type of dirent::d_name. In case of (a) there is no issue, however for (b) the result is that only the first character is used. To ensure that dirent::d_name is fully used, explicitly cast it to const char * before passing it to util::string_format(), so the whole string is used. [1] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/dirent.h.html |
||
---|---|---|
.. | ||
asio | ||
asmjit | ||
benchmark | ||
bgfx | ||
bimg | ||
bx | ||
catch | ||
compat | ||
dxsdk | ||
expat | ||
flac | ||
genie | ||
glm | ||
libjpeg | ||
linenoise | ||
lsqlite3 | ||
lua | ||
lua-linenoise | ||
lua-zlib | ||
luafilesystem | ||
lzma | ||
minimp3 | ||
nanosvg | ||
portaudio | ||
portmidi | ||
pugixml | ||
rapidjson | ||
softfloat | ||
softfloat3 | ||
sol2/sol | ||
sqlite3 | ||
tap-windows6 | ||
utf8proc | ||
wdlfft | ||
ymfm | ||
zlib | ||
zstd | ||
README.md |
3rdparty
asio - Boost Software License
asmjit - zlib license
benchmark - Apache License, Version 2.0 (used only for testing, not part of distribution)
bgfx - The BSD 2-Clause License
bimg - The BSD 2-Clause License
catch - Boost Software License
compat - Wine headers missing in MinGW The GNU Lesser General Public License, version 2.1 (LGPL-2.1)
note that this one contain headers only and that real library/dll is dynamically loaded so use in commercial project is allowed, will be removed when becomes part of MinGW distribution
dxsdk - DirectX SDK EULA
expat - The MIT License (MIT)
flac - The BSD 3-Clause License (codecs), The GNU General Public License, version 2
genie - The BSD 3-Clause License
glm - The MIT License (MIT)
libjpeg - Custom BSD-like
linenoise - The BSD 2-Clause License
lsqlite3 - The MIT License (MIT)
lua - The MIT License (MIT)
lua-linenoise - The MIT License (MIT)
lua-zlib - The MIT License (MIT)
luafilesystem - The MIT License (MIT)
lzma - Custom public domain license
minimp3 - Creative Commons Zero v1.0 Universal
nanosvg - zlib license
portaudio - The MIT License (MIT) explanation at their site
portmidi - The MIT License (MIT)
pugixml - The MIT License (MIT)
rapidjson - The MIT License (MIT), The BSD 3-Clause License (msinttypes), JSON license (JSON_checker)
softfloat - "Softfloat 2b" U.C. Berkeley modified license MIT compatible
softfloat3 - The BSD 3-Clause License
sol2 - The MIT License (MIT)
sqlite3 - Custom public domain license
tap-windows6.h - Dual-licensed The GNU General Public License, version 2 and The MIT License (MIT)
utf8proc - The MIT License (MIT)
wdlfft - zlib license
zlib - zlib license
zstd - Dual-licensed The BSD 3-Clause License and The GNU General Public License, version 2