HEADS-UP: PIE enabled by default on main

John Kennedy warlock at phouka.net
Fri Feb 26 00:23:16 UTC 2021


On Fri, Feb 26, 2021 at 10:10:28AM +1100, Greg 'groggy' Lehey wrote:
> On Thursday, 25 February 2021 at 15:58:07 -0500, Ed Maste wrote:
> > As of 9a227a2fd642 (main-n245052) base system binaries are now built
> > as position-independent executable (PIE) by default, for 64-bit
> > architectures. ...
> >
> > If you track -CURRENT and normally build WITHOUT_CLEAN you'll need to
> > do one initial clean build -- either run `make cleanworld` or set
> > WITH_CLEAN=yes.
> 
> This details worries me.  How compatible are PIE executables with
> non-PIE executables?  Can I run PIE executables on older systems?  Can
> I run older executables on a PIE system?

  Assuming we're basically talking about WITH_PIE=YES in /etc/src.conf, I've 
been doing this since 2020/08/04 (12.1 -> 12.2 -> 13/14).  I don't think
I've associated any problems with PIE.  I've certainly got lots of non-PIE
ports linked against base libraries (but ELF 64-bit LSB shared object, vs
ELF 64-bit LSB pie executable).  The E in PIE is executable.

  Not sure if Ed Maste just wants to make sure that all the executables
are rebuilt as PIE (vs hit-and-miss) or there is a sneaker corner-case that
he knows about.

  I can't say that I've had an opportunity to try the scenario I think you're
looking at.  My "older" crossovers are +/- a __FreeBSD_version bump.



More information about the freebsd-current mailing list