about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-07-19 05:39:14 +0000
committerbors <bors@rust-lang.org>2017-07-19 05:39:14 +0000
commit4e56bbeb19c48edf6a211448a6fb5b67b29eceec (patch)
tree274e665d416a6c8f93ffe0a1b0dbbfd9ec96a5f9 /src/rustllvm/RustWrapper.cpp
parent88e2c396a4062d59ca6be3a74ac432bd1f878942 (diff)
parent2161fb25ca9986c11212e447d88da592bcf736ce (diff)
downloadrust-4e56bbeb19c48edf6a211448a6fb5b67b29eceec.tar.gz
rust-4e56bbeb19c48edf6a211448a6fb5b67b29eceec.zip
Auto merge of #43170 - kyrias:full-relro, r=alexcrichton
Add support for full RELRO

This commit adds support for full RELRO, and enables it for the
platforms I know have support for it.

Full RELRO makes the PLT+GOT data read-only on startup, preventing it
from being overwritten.

http://tk-blog.blogspot.com/2009/02/relro-not-so-well-known-memory.html

Fixes rust-lang/rust#29877.

---

I'm not entirely certain if this is the best way to do it, but I figured mimicking the way it's done for PIE seemed like a good start at least.  I'm not sure whether we want to have it enabled by default globally and then disabling it explicitly for targets that don't support it though.  I'm also not sure whether the `full_relro` function should call `bug!()` or something like it for linkers that don't support it rather than no-opping.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions