Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 486e42c3 authored by Peter Collingbourne's avatar Peter Collingbourne
Browse files

Enable safe ICF with LLD.

Support for safe ICF was added to LLD in LLVM r337429. This reduces
the size of sailfish system.img by 7.6MB.

The address-significance tables created by Clang to support LLD's
implementation of safe ICF are incompatible with ld -r. Therefore we
need to pass -fno-addrsig to the compiler to prevent it from creating
an address-significance table when building a cc_object.

Change-Id: I83e28741e6b3cdf09566447d2658ce48594f2074
parent 1e30905f
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -86,7 +86,6 @@ var ClangUnknownCflags = sorted([]string{
// Ldflags that should be filtered out when linking with clang lld
var ClangUnknownLldflags = sorted([]string{
	"-fuse-ld=gold",
	"-Wl,--icf=safe",
	"-Wl,--fix-cortex-a8",
	"-Wl,--no-fix-cortex-a8",
	"-Wl,-m,aarch64_elf64_le_vec",
+4 −0
Original line number Diff line number Diff line
@@ -39,6 +39,10 @@ func ObjectFactory() android.Module {
		baseLinker: NewBaseLinker(nil),
	}
	module.compiler = NewBaseCompiler()

	// Clang's address-significance tables are incompatible with ld -r.
	module.compiler.appendCflags([]string{"-fno-addrsig"})

	module.stl = &stl{}
	return module.Init()
}