This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: RFC: ELF: Add a "-z readonly" option to ld
- From: "Ian Lance Taylor via binutils" <binutils at sourceware dot org>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: Binutils <binutils at sourceware dot org>
- Date: Tue, 7 Nov 2017 16:51:04 -0800
- Subject: Re: RFC: ELF: Add a "-z readonly" option to ld
- Authentication-results: sourceware.org; auth=none
- References: <20171108002522.GA24595@gmail.com>
- Reply-to: Ian Lance Taylor <iant at google dot com>
On Tue, Nov 7, 2017 at 4:25 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
> We currently put read-only sections in read-execute segment:
>
> Elf file type is DYN (Shared object file)
> Entry point 0x3b0
> There are 7 program headers, starting at offset 52
>
> Program Headers:
> Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
> LOAD 0x000000 0x00000000 0x00000000 0x00524 0x00524 R E 0x200000
> LOAD 0x000ef4 0x00200ef4 0x00200ef4 0x0012c 0x00130 RW 0x200000
> DYNAMIC 0x000f00 0x00200f00 0x00200f00 0x000e0 0x000e0 RW 0x4
> NOTE 0x000114 0x00000114 0x00000114 0x00024 0x00024 R 0x4
> GNU_EH_FRAME 0x00048c 0x0000048c 0x0000048c 0x00024 0x00024 R 0x4
> GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10
> GNU_RELRO 0x000ef4 0x00200ef4 0x00200ef4 0x0010c 0x0010c R 0x1
>
> Section to Segment mapping:
> Segment Sections...
> 00 .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .plt.got .text .fini .rodata .eh_frame_hdr .eh_frame
> 01 .init_array .fini_array .data.rel.ro .dynamic .got .got.plt .bss
> 02 .dynamic
> 03 .note.gnu.build-id
> 04 .eh_frame_hdr
> 05
> 06 .init_array .fini_array .data.rel.ro .dynamic .got
>
> This patch adds a "-z readonly" option to ELF linker to place read-only
> in separate read-only segments:
Sounds like gold's --rosegment option. Perhaps GNU ld could use the
same option name?
Ian