mame/3rdparty/bx/src
Pino Toscano de1d577492
Various GNU/Hurd fixes (#13792)
* 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
2025-06-09 10:35:50 +02:00
..
allocator.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
amalgamated.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
bounds.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
bx.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
commandline.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
crtnone.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
debug.cpp Fix compile error in 3rdparty/bx with newer Emscripten versions (#12098) 2024-03-13 11:41:25 -07:00
dtoa.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
easing.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
file.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
filepath.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
hash.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
math.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
mutex.cpp Various GNU/Hurd fixes (#13792) 2025-06-09 10:35:50 +02:00
os.cpp Various GNU/Hurd fixes (#13792) 2025-06-09 10:35:50 +02:00
process.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
semaphore.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
settings.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
sort.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
string.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
thread.cpp Various GNU/Hurd fixes (#13792) 2025-06-09 10:35:50 +02:00
timer.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00
url.cpp Revert "Updated bgfx, bx and bimg to current upstream versions. (#11493)" 2023-09-08 05:14:35 +10:00