Make PIC/PIE levels compatible for LTO (Soong).
The build system currently uses -fPIC for position independent
libraries, and -fpie for position independent executables. However,
these levels are incompatible and conflict when an executable includes
a static lib with the -fPIC flag - such as when building with
LTO. This CL changes the flag for executables to the compatible -fPIE
instead, which is equivalent for all architectures except PowerPC.
Bug: 30227045
Test: ENABLE_CFI=true m -j40 checkbuild # builds and boots
Change-Id: I95b585b553bc00bc1d4f52f4271c5e30e1007d9b
diff --git a/cc/binary.go b/cc/binary.go
index b4610ed..cd440ea 100644
--- a/cc/binary.go
+++ b/cc/binary.go
@@ -214,7 +214,7 @@
// all code is position independent, and then those warnings get promoted to
// errors.
if !ctx.Windows() {
- flags.CFlags = append(flags.CFlags, "-fpie")
+ flags.CFlags = append(flags.CFlags, "-fPIE")
}
if ctx.toolchain().Bionic() {