From 0266ae5f884d72da58f33a072e865ba131234a5e Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Mon, 10 Feb 2014 17:46:57 -0800 Subject: Switch over to linux uapi under the covers. Remove the linker's reliance on BSD cruft and use the glibc-style ElfW macro. (Other code too, but the linker contains the majority of the code that needs to work for Elf32 and Elf64.) All platforms need dl_iterate_phdr_static, so it doesn't make sense to have that part of the per-architecture configuration. Bug: 12476126 Change-Id: I1d7f918f1303a392794a6cd8b3512ff56bd6e487 --- libc/bionic/libc_init_static.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libc/bionic/libc_init_static.cpp') diff --git a/libc/bionic/libc_init_static.cpp b/libc/bionic/libc_init_static.cpp index 1825167..e45422e 100644 --- a/libc/bionic/libc_init_static.cpp +++ b/libc/bionic/libc_init_static.cpp @@ -68,16 +68,16 @@ static void call_array(void(**list)()) { } static void apply_gnu_relro() { - Elf_Phdr* phdr_start = reinterpret_cast(getauxval(AT_PHDR)); + ElfW(Phdr)* phdr_start = reinterpret_cast(getauxval(AT_PHDR)); unsigned long int phdr_ct = getauxval(AT_PHNUM); - for (Elf_Phdr* phdr = phdr_start; phdr < (phdr_start + phdr_ct); phdr++) { + for (ElfW(Phdr)* phdr = phdr_start; phdr < (phdr_start + phdr_ct); phdr++) { if (phdr->p_type != PT_GNU_RELRO) { continue; } - Elf_Addr seg_page_start = PAGE_START(phdr->p_vaddr); - Elf_Addr seg_page_end = PAGE_END(phdr->p_vaddr + phdr->p_memsz); + ElfW(Addr) seg_page_start = PAGE_START(phdr->p_vaddr); + ElfW(Addr) seg_page_end = PAGE_END(phdr->p_vaddr + phdr->p_memsz); // Check return value here? What do we do if we fail? mprotect(reinterpret_cast(seg_page_start), seg_page_end - seg_page_start, PROT_READ); -- cgit v1.1