[PATCH v3] Check for -z,defs, -z,relro, -fPIC, -fPIE before using them

Mark Wielaard mark@klomp.org
Sat Aug 19 08:11:00 GMT 2017


On Fri, Aug 18, 2017 at 12:41:11PM +0200, Ulf Hermann wrote:
> Those flags are not available on all platforms, and omitting them when
> not available will not cause any harm. In particular:
> 
> -z,defs disallows undefined symbols in object files. This option is
> unsupported if the target binary format enforces the same condition
> already. Furthermore it is only a compile time sanity check. When it is
> omitted, the same binary is produced.
> 
> -z,relro instructs the loader to mark sections read-only after loading
> the library, where possible. This is a hardening mechanism. If it is
> unavailable, the functionality of the code is not affected in any way.
> 
> -fPIC instructs the compiler to produce position independent code. While
> this is preferable to relocatable code, relocatable code also works and
> may even be faster. Relocatable code might just be loaded into memory
> multiple times for different processes.
> 
> -fPIE is the same thing as -fPIC for executables rather than shared
> libraries.

I am not a fan, because I have my doubts supporting systems which don't
even support these are really worth the trouble. And I am slightly afraid
the configure checks might silently fail while we really don't want that.
But the patch is clean and makes the compile flags consistent. Applied.

Thanks,

Mark



More information about the Elfutils-devel mailing list