Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Aug 2016 10:14:33 -0500
From:      Pedro Giffuni <pfg@FreeBSD.org>
To:        Warner Losh <imp@bsdimp.com>
Cc:        Konstantin Belousov <kostikbel@gmail.com>, "freebsd-toolchain@FreeBSD.org" <freebsd-toolchain@freebsd.org>
Subject:   Re: Time to enable partial relro
Message-ID:  <ae0c18a7-3d9a-708d-bfde-4ce9d6162b76@FreeBSD.org>
In-Reply-To: <CANCZdfrJmYcJHXcXaq0qEiy4qif06SX1LNjUi0g=HG=yp8v4TA@mail.gmail.com>
References:  <b75890eb-d8bd-759e-002f-ab0c16db0975@FreeBSD.org> <20160826105618.GS83214@kib.kiev.ua> <a9e93c24-9c30-29e4-b949-faa1a7928606@FreeBSD.org> <CANCZdfrJmYcJHXcXaq0qEiy4qif06SX1LNjUi0g=HG=yp8v4TA@mail.gmail.com>

index | next in thread | previous in thread | raw e-mail

Hello;

On 08/26/16 10:06, Warner Losh wrote:
> On Fri, Aug 26, 2016 at 9:00 AM, Pedro Giffuni <pfg@freebsd.org> wrote:
>>
>>
>> On 08/26/16 05:56, Konstantin Belousov wrote:
>>>
>>> On Thu, Aug 25, 2016 at 05:50:31PM -0500, Pedro Giffuni wrote:
>>>>
>>>> Hello;
>>>>
>>>> GNU RELRO support was committed in r230784 (2012-01-30) but we never
>>>> enabled it by default.
>>>>
>>>> There was some discussion about it on
>>>> https://reviews.freebsd.org/D3001
>>>>
>>>> By now, all Linux distributions, NetBSD and DragonFly support it and
>>>> it is the default for most systems in binutils 2.27.
>>>>
>>>> This doesn't affect performance, I ran it through an exp-run last
>>>> year, no other OS has had issues etc ... seems safe and can be
>>>> disabled if needed when linking.
>>>
>>> Exp-run does not test anything interesting about relro. If all testing
>>> that was done is basically just an exp-run, then there was no useful
>>> runtime testing done.
>>>
>>
>> The exp-run does cover Java and other VM-type thingies that bootstrap.
>> For upstream binutils this is now the default (at least for linux,
>> they never ask us if we want to follow). So the change has been tested
>> extensively but perhaps not on cases that are relevant to us.
>>
>> Note that the "fix" for any port is ultimately trivial:
>> LDFLAGS+= "-z norelro"
>>
>>>>
>>>> I think it's time to enable it be default in our base binutils. If
>>>> there are no objections, I will just commit the attached patch over
>>>> the weekend.
>>>
>>>
>>> There are objections, the change must be runtime tested on large and
>>> representative set of real-world applications before turning the knob.
>>>
>>
>> You are not giving any hint on what would be a "representative set of
>> real-world applications". Given that you committed the initial support your
>> objection stands very high and is a blocker. :(
>>
>> As I see it committing it now would give ample time to test this in current
>> before it hits any release. If you want more extensive testing merging it in
>> -stable right after the 11-Release is guaranteed to help
>> weed out any remaining update ports may need.
>
> I'd say a minimum is 'buildworld' + a test boot on at least Intel (i386 and
> amd64), armv6 and mips (both 32-bit and 64-bit) before we proceed. How
> many of those have we done?
>

I have been running it my desktop (amd64) for a year now. I can test 
i386 in a VM but I doubt it will affect anything. The issue, and it's 
probably kib's worry are some rarely used but important ports. Stuff 
like erlang, or virtualbox maybe, but as I wrote, the fix (if needed)
is trivial by adding a flag to the link command.

FWIW, but it is largely irrelevant to us, RELRO is the default on
OpenBSD and there is no way out of it there.

Pedro.


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ae0c18a7-3d9a-708d-bfde-4ce9d6162b76>