W^X Transition (4 of 6): Page Permission Purity




GOT and PLT get their own
pages and become non-writeable
(and we teach ld.so how to cope)

dtors/ctors move in with the
GOT, thus become non-writeable

Now the data segment has no
objects with X permission!

We made a few things
non-writeable (for free)

This is enough for any cpu that
supports a per-page X bit
    sparc    sparc64  alpha
    sparc64  m88k     hppa
    amd64    (ia64)

No page has both W and X bits!