[uclibc-ng-devel,02/32,FDPIC] rtld: Do not protect RELRO segments when we don't use an MMU.

Message ID 20180704155605.1892-3-christophe.lyon@st.com
State New
Headers show
Series
  • FDPIC ABI for ARM
Related show

Commit Message

Christophe Lyon July 4, 2018, 3:55 p.m.
Without MMU, we cannot mark memory regions as read-only.

	* ldso/ldso/dl-elf.c (_dl_protect_relro): Do nothing if
	__ARCH_USE_MMU__ is defined.

Signed-off-by: Christophe Lyon <christophe.lyon@st.com>

Patch

diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
index d264e6a..1768b5b 100644
--- a/ldso/ldso/dl-elf.c
+++ b/ldso/ldso/dl-elf.c
@@ -117,6 +117,7 @@  int _dl_unmap_cache(void)
 void
 _dl_protect_relro (struct elf_resolve *l)
 {
+#ifdef __ARCH_USE_MMU__
 	ElfW(Addr) base = (ElfW(Addr)) DL_RELOC_ADDR(l->loadaddr, l->relro_addr);
 	ElfW(Addr) start = (base & PAGE_ALIGN);
 	ElfW(Addr) end = ((base + l->relro_size) & PAGE_ALIGN);
@@ -126,6 +127,7 @@  _dl_protect_relro (struct elf_resolve *l)
 		_dl_dprintf(2, "%s: cannot apply additional memory protection after relocation", l->libname);
 		_dl_exit(0);
 	}
+#endif
 }
 
 /* This function's behavior must exactly match that