Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RISCOS: Implement plugin provider #4001

Merged
merged 7 commits into from Jun 17, 2022

Conversation

lephilousophe
Copy link
Member

@lephilousophe lephilousophe commented Jun 15, 2022

This PR adds the ability for RiscOS to use plugin-based split builds.
This will let us overcome the size limitations we hit on the buildbot and provide a unique distribution with all engines bundled.

Some small changes are needed on the configure script to allow for RiscOS specifics: comma in file name and plugins directory different from other SDL ports.

These relocations are used in RiscOS even when using long calls.
As it's a relative relocation, nothing is to be done.
That's how RiscOS files store their type
RiscOS uses SDL backend but needs a different PLUGIN_DIRECTORY
@lephilousophe lephilousophe requested a review from ccawley2011 Jun 15, 2022
Copy link
Member

@ccawley2011 ccawley2011 left a comment

Looks good, just have a couple of additional comments.

backends/module.mk Show resolved Hide resolved
configure Show resolved Hide resolved
@ccawley2011
Copy link
Member

@ccawley2011 ccawley2011 commented Jun 15, 2022

I also noticed that __dso_handle needs to be added to backends/plugins/elf/plugin.syms on RISC OS, as otherwise certain combinations of compiler flags can result in this getting stripped from plugins and causing crashes as a result.

@lephilousophe
Copy link
Member Author

@lephilousophe lephilousophe commented Jun 16, 2022

Well, I added the __dso_handle symbol in the file as it doesn't hurt when the symbol is not present.
This is what has been done on Dreamcast port anyway.

sev-
sev- approved these changes Jun 16, 2022
Copy link
Member

@sev- sev- left a comment

Looks good.

backends/plugins/riscos/plugin.ld Show resolved Hide resolved
lephilousophe and others added 4 commits Jun 17, 2022
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.
This will allow do dynamically load plugins and not be limited by
24-bits relocations
@lephilousophe
Copy link
Member Author

@lephilousophe lephilousophe commented Jun 17, 2022

Merging.
I will backport tomorrow and setup the buildbot.

@lephilousophe lephilousophe merged commit b862b55 into scummvm:master Jun 17, 2022
8 checks passed
@lephilousophe lephilousophe deleted the riscos-plugins branch Jun 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants