ref: 004e537d30f54fb6beb4d325458ee3b529a7219e
parent: ebbbd27d4be4b830016a66d5c895364bf60a7f5d
author: cancel <cancel@cancel.fm>
date: Fri Nov 30 15:12:58 EST 2018
Fix bad LLD codegen from PIE flags in build tool
--- a/tool
+++ b/tool
@@ -161,7 +161,15 @@
add cc_flags -fuse-ld=lld
fi
if [[ $protections_enabled = 1 ]]; then
- add cc_flags -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fpie -Wl,-pie
+ add cc_flags -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fpie
+ if [[ $lld_detected = 1 ]]; then
+ # LLD seems to need this or it fails at linking. If we also pass -Wl,-pie
+ # then the built binary will crash before reaching main().
+ add cc_flags -Wl,-z,notext
+ else
+ # This is the one that works everywhere else.. hmm
+ add cc_flags -Wl,-pie
+ fi
fi
case "$1" in
debug)