diff options
author | Ed Maste <emaste@FreeBSD.org> | 2019-02-15 22:22:38 +0000 |
---|---|---|
committer | Ed Maste <emaste@FreeBSD.org> | 2019-02-15 22:22:38 +0000 |
commit | bcf99d2d99910404f734b910c5214854e0fe626d (patch) | |
tree | a3403fbbbcf38f01ce5d3bdf75c704803286c5df /lib/clang | |
parent | ca62461bc6525f4d25d276714b4b0a2947e183a0 (diff) | |
download | src-bcf99d2d99910404f734b910c5214854e0fe626d.tar.gz src-bcf99d2d99910404f734b910c5214854e0fe626d.zip |
Add WITH_PIE knob to build Position Independent Executables
Building binaries as PIE allows the executable itself to be loaded at a
random address when ASLR is enabled (not just its shared libraries).
With this change PIE objects have a .pieo extension and INTERNALLIB
libraries libXXX_pie.a.
MK_PIE is disabled for some kerberos5 tools, Clang, and Subversion, as
they explicitly reference .a libraries in their Makefiles. These can
be addressed on an individual basis later. MK_PIE is also disabled for
rtld-elf because it is already position-independent using bespoke
Makefile rules.
Currently only dynamically linked binaries will be built as PIE.
Discussed with: dim
Reviewed by: kib
MFC after: 1 month
Relnotes: Yes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D18423
Notes
Notes:
svn path=/head/; revision=344179
Diffstat (limited to 'lib/clang')
-rw-r--r-- | lib/clang/Makefile.inc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/clang/Makefile.inc b/lib/clang/Makefile.inc index a0b4eea76882..3d49ea44c991 100644 --- a/lib/clang/Makefile.inc +++ b/lib/clang/Makefile.inc @@ -2,6 +2,8 @@ .include <bsd.compiler.mk> +MK_PIE:= no # Explicit libXXX.a references + .if ${COMPILER_TYPE} == "clang" DEBUG_FILES_CFLAGS= -gline-tables-only .else |