Commit graph

222 commits

Author SHA1 Message Date
Le Philousophe
8ed733994f VITA: Fix build 2024-09-17 08:29:05 +02:00
sluicebox
c4822373b6 WIN32: Fix Win32Plugin by updating for Common::Path 2024-08-19 12:04:26 -07:00
Donovan Watteau
42b2760f43 BACKENDS: Fix -Wformat warning 2024-08-11 16:33:53 +02:00
Le Philousophe
09729ac9de PLUGINS: Use override keyword
This silences a clang warning
2024-06-30 18:39:06 +02:00
Le Philousophe
c9d701884b PLUGINS: Reset pointer after deletion
This avoids error on double unload.
2024-06-30 18:39:06 +02:00
Donovan Watteau
81c0503008 MACOSX: Fix macOS builds with plugins (as used for OSX PPC releases) 2024-06-16 09:12:16 +02:00
Le Philousophe
2a7241a97c PLUGINS: Implement NONE relocations
ARM emit them in some cases and add it to MIPS for completeness

Fixes: #14905
2024-02-24 20:48:21 +01:00
Vladimir Serbinenko
0b10743566
KOLIBRI: Replace kos32sys.h
kos32sys.h is no longer available. Just declare DLL-related functions ourselves
like other programs do.
2024-01-20 23:52:50 +01:00
Cameron Cawley
288e1aaa3f COMMON: Remove use of fmin/fmax/fminf/fmaxf 2024-01-08 13:07:05 +01:00
Le Philousophe
f156e3a0c2 VITA: Hopefully really fix the build 2023-12-29 08:35:08 +01:00
Le Philousophe
2fdd7ce9d0 VITA: Add missing function for plugins 2023-12-28 18:18:31 +01:00
Le Philousophe
b3fbce7782 BACKENDS: Migrate plugins to Path API 2023-12-24 13:19:25 +01:00
Cameron Cawley
3a6566c1f0 DS: Hack to work around ARM/Thumb relocation issues in the SCUMM engine 2023-11-05 22:01:40 +01:00
Le Philousophe
fa450e060e PSP2: Add missing function for plugins 2023-08-29 12:45:30 +02:00
Kaloyan Chehlarski
3a31521b27 RISCOS: Add log2f to function to link 2023-08-22 13:30:34 +03:00
sluicebox
dc0ba4e14a WIN32: Re-enable Win32PluginProvider
In 2006, Win32PluginProvider was removed from Windows builds:
df5be19409

Instead, SdlPluginProvider became the provider used in Window builds.
Currently, no code uses Win32PluginProvider.

The two classes are small and effectively do the same thing, but
Win32PluginProvider has the advantage of using our Windows string
conversion functions for paths, just like the rest of backend code.
We've seen problems before where SDL handles encoding differently:
0ab9653556
2023-08-06 14:16:16 +02:00
Cameron Cawley
a12c007e92 RISCOS: Don't force the use of dynamic areas on RISC OS 5 2023-02-28 22:46:03 +00:00
Le Philousophe
57e759e05d RISCOS: Use dynamic areas for data and application space for plugins
We only use application space in 26-bits (legacy) mode.
2023-02-07 22:13:32 +00:00
Vladimir Serbinenko
4bcd4671ab KOLIBRI: Add kolibrios backend 2023-02-05 22:55:40 +01:00
Vladimir Serbinenko
bfd7f91d5c COMMON: Fix 3DS compilation with newer toolchain that emits PREL31 relocs 2022-12-13 13:41:18 +01:00
Le Philousophe
2a84d3e988 VITA: Add plugins support 2022-08-07 18:15:09 +02:00
Cameron Cawley
05a5e44729 RISCOS: Add log10f and strcoll to functions to link 2022-06-19 00:34:58 +01:00
Le Philousophe
a591c8b6bf RISCOS: Add expf to functions to link 2022-06-18 16:10:22 +02:00
Le Philousophe
b065158898 RISCOS: Don't build SDLPluginProvider: it doesn't work for us
And it fails to build with VFP because libdl is not compiled with VFP
2022-06-18 16:10:22 +02:00
Cameron Cawley
038579d0d9 PLUGINS: Improve warnings when allocation fails 2022-06-17 20:38:37 +01:00
Cameron Cawley
b862b55822 RISCOS: Ensure that functions used by plugins can be found in the main executable 2022-06-17 21:31:04 +02:00
Cameron Cawley
f9e64f2293 RISCOS: Use OS_SynchroniseCodeAreas to flush the cache 2022-06-17 21:31:04 +02:00
Le Philousophe
02808a019a RISCOS: Add an ELF plugin provider
This will allow do dynamically load plugins and not be limited by
24-bits relocations
2022-06-17 21:31:04 +02:00
Le Philousophe
87f515a6e0 PLUGINS: Force export of __dso_handle
Some toolchains (RiscOS) may not export it in certain conditions.
This list does not enforce the symbol to be here so it shouldn't fail
build on platforms without this symbol.
2022-06-17 21:31:04 +02:00
Le Philousophe
f60d229c78 PLUGINS: Implement R_ARM_PC24 relocations
These relocations are used in RiscOS even when using long calls.
As it's a relative relocation, nothing is to be done.
2022-06-17 21:31:04 +02:00
Donovan Watteau
4672ba71dd PLUGINS: Let macOS use its resource bundle as a valid plugin directory 2022-05-22 23:42:45 +01:00
Francisco Javier Trujillo Mata
9aa4485137 PSP: Update executable start position 2022-05-02 17:11:10 -05:00
Cameron Cawley
57abc6b86f PSP: Remove .MIPS.abiflags* sections from plugins 2022-04-29 13:29:25 -05:00
Le Philousophe
675695c708 PSP: Fix build failures with latest PSP toolchain
The new PSP toolchain automatically links system libraries which wasn't
the case before. The ordering of libraries builtin in GCC and our spec
file collided. This fixes the order.
PSP SDK includes time.h so it needs an exemption.
A warning was emitted about a if without curly braces which are needed.
2021-12-31 09:50:53 +01:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh
b11c5ace90 BACKENDS: JANITORIAL: Remove 'virtual' when override is specified 2021-11-14 14:31:41 +02:00
Cameron Cawley
d540054c0a DS: Remove .ARM.exidx* and .ARM.extab* sections from plugins
Thanks to @lephilousophe for helping out with this.
2021-08-27 17:45:37 +01:00
sluicebox
006b91f45b WIN32: Fix #includes in plugin provider 2021-07-07 01:20:25 -05:00
sluicebox
7deb79efab WIN32: Make Win32Plugin UNICODE compatible 2021-06-29 12:38:01 -05:00
Orgad Shaneh
a05e54f00c JANITORIAL: Remove trailing whitespaces 2021-05-04 11:46:30 +03:00
Cameron Cawley
a900337952 DS: Fix default search paths 2021-02-04 01:59:14 +01:00
Alexander Reim
901032db9f WII: Update linkscript and fix for linker false error message 2020-10-19 11:21:22 +02:00
Cameron Cawley
5c255b3aa9 WIN32: Add override and final keywords 2020-10-16 18:32:08 +01:00
Cameron Cawley
70aebaca5b WII: Add override and final keywords 2020-10-16 17:46:43 +01:00
Bastien Bouclet
55db1210eb 3DS: Set a Virtual Memory Address when linking the plugins
Setting the base address for the plugin elf files high in memory forces
the linker to generate veneers to turn relative jumps to the main binary
into absolute jumps. This removes the need to allocate the plugins near
the the main binary in the program address space. This also removes the
need to handle the R_ARM_CALL and R_ARM_JUMP24 relocation types.

Fixes #11555.
2020-08-27 21:14:07 +02:00
Eugene Sandulenko
aa563f0c81 ALL: Remove PS2 port 2020-08-01 15:15:49 +02:00
Bastien Bouclet
4825e9f967 3DS: Upgrade to libctru v2.0.0 2020-07-19 17:41:05 +02:00
Bastien Bouclet
f17a7a96da BASE: Fix being unable to run games when using dynamic plugins
When the plugin-engine mapping is not cached in the configuration file,
we were not scanning all the plugins to establish the mapping.

This is a regression from commit: e2d91258b7

This commit reverts the offending commit and implements a proper fix for
the case where there are no dynamic plugins.

Fixes #11300.
2020-01-04 17:49:32 +01:00
Cameron Cawley
e2d91258b7 PLUGINS: Fix crash when no plugins are available 2019-12-02 11:04:57 +02:00
Bastien Bouclet
34e835a20c 3DS: Implement dynamic plugins
Allows a full build to run on old generation devices
2019-12-01 17:19:50 +01:00