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>
