MPS issue job001146

TitleMPS does not implement a stack scanner for OS X / PowerPC
Statusclosed
Priorityessential
Assigned userDavid Jones
OrganizationRavenbrook
DescriptionA stack scanner (see code/ss*) is required for many clients and
in particular many of the mmqa tests.
AnalysisThe trick is scanning any roots in registers.

We only need to push the saved registers onto the stack prior
to scanning the stack.

[MORT] documents the ABI in use on Mac OS X. Includes stack
layout and register usage conventions.

It is possible that the same, or very similar, code could
be used for lippgc.

Testing:

Hmm. Finding an indicator for this problem is worryingly
difficult. Now that I have a stack scanner that does nothing but
returns ResOK many things seem to pass when really they ought not to.
Currently, perl test/test/qa run test/function/42.c fails.
as does 6.c

I tested with test/function/6.c which fails before the changes
and succeeds after it.

REFERENCES

[MORT] "Introduction to Mach-O Runtime Architecture",
http://developer.apple.com/documentati...ools/Conceptual/MachORuntime/index.html
http://developer.apple.com/documentati...onceptual/MachORuntime/MachORuntime.pdf
How foundmanual_test
EvidenceSee job001145
Observed in1.105.0
Created byDavid Jones
Created on2005-03-01 10:34:56
Last modified byGareth Rees
Last modified on2013-03-19 11:38:04
History2005-03-01 DRJ Created.
2005-03-02 DRJ Written up and closed.

Fixes

Change Effect Date User Description
178908 closed 2012-08-12 23:27:35 Richard Brooksby Removing obsolete platforms:
LII3EG Linux on i386 with EGCS
LIPPGC Linux on POWER with GCC
S7PPMW Mac System 7 on PowerPC with Metrowerks Codewarrior
SOS8CX Solaris on SPARC 8 with cxref
SOS8GC Solaris on SPARC 8 with GCC
SOS8GP Solaris on SPARC 8 with GCC and gprof
SOS9SC Solaris on SPARC 9 with SunPro C
XCPPGC Mac OS X on PowerPC with GCC
147224 closed 2005-03-02 09:56:51 David Jones MPS: Working stack scanner for xcppgc
147094 open 2005-03-01 15:09:19 David Jones MPS: stack scanner for xcppgc. Does not work.