This is the mail archive of the
mailing list for the elfutils project.
Re: [PATCH v3] Check for -z,defs, -z,relro, -fPIC, -fPIE before using them
- From: Mark Wielaard <mark at klomp dot org>
- To: Ulf Hermann <ulf dot hermann at qt dot io>
- Cc: elfutils-devel at sourceware dot org
- Date: Fri, 18 Aug 2017 22:29:28 +0200
- Subject: Re: [PATCH v3] Check for -z,defs, -z,relro, -fPIC, -fPIE before using them
- Authentication-results: sourceware.org; auth=none
- References: <email@example.com>
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
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.