MPS issue job004148

TitleMMQA relies on deprecated API mps_tramp
Statusclosed
Prioritynice
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionMost of the MMQA test cases call easy_tramp, which calls the deprecated function mps_tramp (and has various other obsolete features such as a test against MMQA_PROD_epcore and some SEH (Structured Exception Handling) code on Windows.

It would be better not to call through a trampoline, since the manual tells client programs not to do so, and we would like the option to remove mps_tramp at some point.
Analysiseasy_tramp also installs the MMQA assertion handler, so whatever we replace it with will have to do that too.

Note also that job004149 (marker not being at a cold enough address on the stack) is a common problem on all platforms, so it would be nice to handle this at the same time. Perhaps easy_tramp should pass a stack pointer to the callee.
How foundinspection
EvidenceNone
Created byGareth Rees
Created on2019-01-09 14:26:15
Last modified byGareth Rees
Last modified on2019-01-09 16:17:17
History2019-01-09 GDR Created.

Fixes

Change Effect Date User Description
195917 closed 2019-01-09 16:17:17 Gareth Rees Avoid using deprecated function mps_tramp.
Use mps_root_create_thread in preference to mps_root_create_reg.
New test harness run_test passes pointer to cold end of stack, since this is needed by many tests.