Opened 9 months ago

Last modified 5 months ago

#14554 new defect

PLUGINS: ELF loader doesn't handle mixed ARM and Thumb code

Reported by: ccawley2011 Owned by: sev-
Priority: high Component: Ports
Version: Keywords:
Cc: Game:

Description

The Nintendo DS port is compiled as Thumb code, and links with an ARM build of Newlib. However, the ELF loader doesn't properly handle relocations where ARM code in the plugin is called from Thumb code, which results in a crash due to the program counter jumping to an invalid address.

Change History (4)

comment:1 by digitall, 9 months ago

PR 5197 has a workaround to allow v2.7.1 to be released, but this should be fixed before v2.8.0 release:
https://github.com/scummvm/scummvm/pull/5197

comment:2 by sev-, 5 months ago

Priority: blockerhigh

Would be nice to get fixed before 2.8.0 release

comment:3 by sev-, 5 months ago

Owner: set to sev-
Resolution: fixed
Status: newclosed

That has been merged

comment:4 by ccawley2011, 5 months ago

Resolution: fixed
Status: closednew

The workaround isn’t a permanent solution - a proper solution would be to handle the necessary relocations correctly in the ELF loader.

Note: See TracTickets for help on using tickets.