summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/tools/lld/ELF/Driver.cpp
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2017-01-24 10:21:53 +0000
committerkettenis <kettenis@openbsd.org>2017-01-24 10:21:53 +0000
commit4afd38a29bfb29e9fc7a751cc29ccd0021242eac (patch)
treeff6db946b83afbbd797832bf9943d65315ff9e62 /gnu/llvm/tools/lld/ELF/Driver.cpp
parentAvoid allocating space for commons with ld -r. Already pushed upstream. (diff)
downloadwireguard-openbsd-4afd38a29bfb29e9fc7a751cc29ccd0021242eac.tar.xz
wireguard-openbsd-4afd38a29bfb29e9fc7a751cc29ccd0021242eac.zip
PIE-by-default. Probably not suitable for upsttreaming in its current form.
Diffstat (limited to 'gnu/llvm/tools/lld/ELF/Driver.cpp')
-rw-r--r--gnu/llvm/tools/lld/ELF/Driver.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/gnu/llvm/tools/lld/ELF/Driver.cpp b/gnu/llvm/tools/lld/ELF/Driver.cpp
index e8d865e8b81..e9425007530 100644
--- a/gnu/llvm/tools/lld/ELF/Driver.cpp
+++ b/gnu/llvm/tools/lld/ELF/Driver.cpp
@@ -493,7 +493,12 @@ void LinkerDriver::readConfigs(opt::InputArgList &Args) {
Config->NoUndefinedVersion = Args.hasArg(OPT_no_undefined_version);
Config->Nostdlib = Args.hasArg(OPT_nostdlib);
Config->OMagic = Args.hasArg(OPT_omagic);
+#ifdef __OpenBSD__
+ Config->Pie = getArg(Args, OPT_pie, OPT_nopie,
+ !Args.hasArg(OPT_shared) && !Args.hasArg(OPT_relocatable));
+#else
Config->Pie = getArg(Args, OPT_pie, OPT_nopie, false);
+#endif
Config->PrintGcSections = Args.hasArg(OPT_print_gc_sections);
Config->Relocatable = Args.hasArg(OPT_relocatable);
Config->DefineCommon = getArg(Args, OPT_define_common, OPT_no_define_common,