Atari's mintelf platform has ELF support but its libc does not provide
__cxa_atexit / __cxa_finalize, so -fuse-cxa-atexit cannot be used out of
the box. Add a minimal shim (plus a __dso_handle definition for the main
executable) so plugins can register and finalize their function-local
static destructors per DSO on unload.
Note: earlier version ran __cxa_finalize from the host via
findSymbol("__dso_handle"). That works as long as exactly one
__dso_handle ends up in the plugin's symtab (the plugin's own).
When the main binary also defines __dso_handle (so the host's
function-local statics can link with -fuse-cxa-atexit), it breaks: the
plugin link uses --just-symbols=<main binary> and imports that as a
second __dso_handle, and findSymbol can then return the host-imported
one instead of the plugin's own. The two addresses differ, so
__cxa_finalize matches nothing.
The plugin-side helper avoids the ambiguity on every target by using
whichever __dso_handle the plugin's own code already resolved against --
the same one embedded in its __cxa_atexit calls. (PSP2's plugin runtime
has always called __cxa_finalize from inside the plugin for the same
reason; see backends/plugins/psp2/plugin.cpp.)
Historically, we should the version build date wherever we display
the current ScummVM version.
However, this leads to issues with toolchains that care about reproducible
builds and thus set "fake" timestamps, e.g.
https://github.com/flathub/org.scummvm.ScummVM/pull/60#issuecomment-4150167445
Since we can derive the approximate release date based on our
new versioning scheme, it makes sense to hide the build date
from release builds and only use it for development builds
to keep track of "old" and "new" builds.
Is not intended for usage by users, hence not documented.
Also, make sure we cleanup its internally used settings,
it talsk to ConfMan via "dumper_force_resize" key
Integrate the existing CoreMIDI implementation used in the MacOS
backend into the iOS7 backend. The CoreMIDI framework is available
from iOS 4.2 and tvOS 15.0.
This allows ScummVM to detect external MIDI devices connected to
the device running ScummVM and to be selected as MIDI music output
device.
A new USE_HTTP define is created to indicate that an HTTP backend is
available (using either libcurl or emscripten platform).
USE_CLOUD now only builds cloud providers storage support, while
USE_SDL_NET determines if a local web server is built.
USE_LIBCURL is now only used when the feature really depends on libcurl
(that is lobby support for Scumm HE).
Tremolo was an ARM-optimised fork of Tremor, bringing "better ogg
performance" on WinCE.
But the WinCE port is no more, and there are no other users of this
library.
The previous "not...any engine" message was appropriate in the past (circa
1a938956ec), but with changes over time it began appearing even for
other error conditions (e.g. some game data files missing); thus it was
sometimes incorrect.
metaEngine could have been issued createInstance but not deleteInstance
if an engine failed to instantiate (e.g. if user cancels start of a
not-fully-supported game).