This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Releases 2.27 and 2.26.1
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Cary Coutant <ccoutant at gmail dot com>
- Cc: Tristan Gingold <gingold at adacore dot com>, Binutils <binutils at sourceware dot org>
- Date: Tue, 21 Jun 2016 09:03:39 -0700
- Subject: Re: Releases 2.27 and 2.26.1
- Authentication-results: sourceware.org; auth=none
- References: <2D5A1F96-A731-4D41-9C77-FFB069F1115F at adacore dot com> <CAMe9rOoHKGG7TK_STc6dPkMEE2TFyd=nRtMBXht68ojydq0R-g at mail dot gmail dot com> <CAJimCsEOcMmZSVR_2qgw-MJa0c2WX5EthjjgRWobCBzyEUnFJQ at mail dot gmail dot com>
On Tue, Jun 21, 2016 at 8:57 AM, Cary Coutant <ccoutant@gmail.com> wrote:
>>> I'd like to create the 2.27 branch soon, and also to build the 2.26.1 release.
>>> If you have any pending patch you'd like to have in one of these releases, please speak quickly!
>>
>> I propose to turn on "-z relro" by default if supported.
>>
>> https://sourceware.org/bugzilla/show_bug.cgi?id=20283
>
> Isn't it kind of late to be considering this for 2.27?
When is it not late?
> And doesn't GCC already pass -z relro by default anyway where it's supported?
>
Not in GCC 6:
[hjl@gnu-6 tmp]$ /usr/gcc-6.1.1-x32/bin/gcc x.o -Wl,-z,relro
[hjl@gnu-6 tmp]$ readelf -l a.out
Elf file type is EXEC (Executable file)
Entry point 0x4003a0
There are 9 program headers, starting at offset 64
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flags Align
PHDR 0x0000000000000040 0x0000000000400040 0x0000000000400040
0x00000000000001f8 0x00000000000001f8 R E 8
INTERP 0x0000000000000238 0x0000000000400238 0x0000000000400238
0x000000000000001c 0x000000000000001c R 1
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000
0x000000000000062c 0x000000000000062c R E 200000
LOAD 0x0000000000000e48 0x0000000000600e48 0x0000000000600e48
0x00000000000001e0 0x00000000000001e8 RW 200000
DYNAMIC 0x0000000000000e60 0x0000000000600e60 0x0000000000600e60
0x0000000000000190 0x0000000000000190 RW 8
NOTE 0x0000000000000254 0x0000000000400254 0x0000000000400254
0x0000000000000044 0x0000000000000044 R 4
GNU_EH_FRAME 0x0000000000000534 0x0000000000400534 0x0000000000400534
0x000000000000002c 0x000000000000002c R 4
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 RW 10
GNU_RELRO 0x0000000000000e48 0x0000000000600e48 0x0000000000600e48
0x00000000000001b8 0x00000000000001b8 R 1
Section to Segment mapping:
Segment Sections...
00
01 .interp
02 .interp .note.ABI-tag .note.gnu.build-id .hash .dynsym
.dynstr .gnu.version .gnu.version_r .rela.dyn .init .text .fini
.rodata .eh_frame_hdr .eh_frame
03 .init_array .fini_array .jcr .dynamic .got .got.plt .data .bss
04 .dynamic
05 .note.ABI-tag .note.gnu.build-id
06 .eh_frame_hdr
07
08 .init_array .fini_array .jcr .dynamic .got
[hjl@gnu-6 tmp]$
However, -z relro has been enabled in Fedora since
commit 6b2ab95e1097b8917d2f8e2a82852b13126c9c61
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Mar 6 15:17:32 2012 +0000
Enable -zrelro be default. (#621983)
--
H.J.