Add randomized padding around shared library mappings.

Improve ASLR by increasing the randomly sized gaps between shared
library mappings, and keep them mapped PROT_NONE.

Bug: 158113540
Test: look at /proc/$$/maps
Change-Id: Ie72c84047fb624fe2ac8b7744b2a2d0d255ea974
diff --git a/linker/linker_soinfo.cpp b/linker/linker_soinfo.cpp
index 4f67003..088c17d 100644
--- a/linker/linker_soinfo.cpp
+++ b/linker/linker_soinfo.cpp
@@ -900,6 +900,24 @@
   g_soinfo_handles_map[handle_] = this;
 }
 
+void soinfo::set_map_start(ElfW(Addr) map_start) {
+  CHECK(has_min_version(6));
+  map_start_ = map_start;
+}
+ElfW(Addr) soinfo::get_map_start() const {
+  CHECK(has_min_version(6));
+  return map_start_;
+}
+
+void soinfo::set_map_size(size_t map_size) {
+  CHECK(has_min_version(6));
+  map_size_ = map_size;
+}
+size_t soinfo::get_map_size() const {
+  CHECK(has_min_version(6));
+  return map_size_;
+}
+
 // TODO(dimitry): Move SymbolName methods to a separate file.
 
 uint32_t calculate_elf_hash(const char* name) {