diff --git a/SConstruct b/SConstruct index 2fedae36fdba9ffc1a555d016506b22e89fd5de0..f507316a6e78afdeeebfa2908a63872f02501205 100644 --- a/SConstruct +++ b/SConstruct @@ -8,7 +8,7 @@ env=Environment() # default build options env.Replace(CFLAGS=" -fPIC ") -env.Replace(CXXFLAGS=" -std=c++0x -fPIC ") +env.Replace(CXXFLAGS=" -std=c++11 -fPIC ") env.Replace(LINKFLAGS=" -fPIC ") # parse arguments diff --git a/src/elfwrite.cpp b/src/elfwrite.cpp index 945ab3cb84a8284a070ada10d579129c4b81b42f..cbdf7fa6eda5c04ff18c63b8f40f6920ded5b4be 100644 --- a/src/elfwrite.cpp +++ b/src/elfwrite.cpp @@ -602,9 +602,10 @@ bool ElfWriterImpl<T_Elf_Ehdr,T_Elf_Phdr,T_Elf_Addr,T_Elf_Shdr>::CreateNewPhdrs_ { if(phdr.p_type==PT_LOAD) { - auto do_relro=[this,phdr,&relro_phdrs](const virtual_offset_t start, const virtual_offset_t end) + //auto do_relro=[&this,phdr,&relro_phdrs](const virtual_offset_t start, const virtual_offset_t end) + auto do_relro=[&](virtual_offset_t start, virtual_offset_t end) { - if(!pagemap[start].is_relro) + if(! (pagemap.at(start)).is_relro) return; cout<<"Creating relro for "<<hex<<start<<"-"<<end<<endl; @@ -625,11 +626,11 @@ bool ElfWriterImpl<T_Elf_Ehdr,T_Elf_Phdr,T_Elf_Addr,T_Elf_Shdr>::CreateNewPhdrs_ virtual_offset_t prev_i=phdr.p_vaddr, i=0; for(i=phdr.p_vaddr; i<phdr.p_vaddr+phdr.p_memsz;i+=PAGE_SIZE) { - if(prev_relro != pagemap[i].is_relro) + if(prev_relro != pagemap.at(i).is_relro) { do_relro(prev_i, i-1); prev_i=i; - prev_relro=pagemap[i].is_relro; + prev_relro=pagemap.at(i).is_relro; } }