summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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,