On Fri, Feb 21, 2020 at 01:50:39PM -0600, Josh Poimboeuf wrote: > On Mon, Feb 10, 2020 at 11:36:29AM -0500, Arvind Sankar wrote: > > On Mon, Feb 10, 2020 at 07:54:58AM -0800, Arjan van de Ven wrote: > > > > > > > > I'll leave it to others to figure out the exact details. But afaict it > > > > should be possible to have fine-grained-randomization and preserve the > > > > workaround in the end. > > > > > > > > > > the most obvious "solution" is to compile with an alignment of 4 bytes (so tight packing) > > > and then in the randomizer preserve the offset within 32 bytes, no matter what it is > > > > > > that would get you an average padding of 16 bytes which is a bit more than now but not too insane > > > (queue Kees' argument that tiny bits of padding are actually good) > > > > > > > With the patchset for adding the mbranches-within-32B-boundaries option, > > the section alignment gets forced to 32. With function-sections that > > means function alignment has to be 32 too. > > We should be careful about enabling -mbranches-within-32B-boundaries. > It will hurt AMD, and presumably future Intel CPUs which don't need it. > > -- > Josh > And past Intel CPUs too :) As I understand it only appears from Skylake onwards.