Use zstd to compress debug info in cc libraries
We can save a significant amount of disk space by compressing debug info in `lld` cc builds. This change configures a build flag to instruct lld to compress debug info when building cc libraries. Rather than adding a global config we add this to each target individually to avoid linker failures on windows cross build targets. Test: m Bug: 305277519 Change-Id: I4ab3d47fb0de7e31a39fb671cccde1acee3a2018
This commit is contained in:
parent
fa0dff576b
commit
f52906f194
5 changed files with 28 additions and 5 deletions
|
@ -46,6 +46,10 @@ var (
|
|||
"-Wl,--no-undefined-version",
|
||||
}
|
||||
|
||||
linuxCrossLldflags = append(linuxCrossLdflags,
|
||||
"-Wl,--compress-debug-sections=zstd",
|
||||
)
|
||||
|
||||
// Embed the linker into host bionic binaries. This is needed to support host bionic,
|
||||
// as the linux kernel requires that the ELF interpreter referenced by PT_INTERP be
|
||||
// either an absolute path, or relative from CWD. To work around this, we extract
|
||||
|
@ -60,6 +64,7 @@ var (
|
|||
func init() {
|
||||
exportedVars.ExportStringListStaticVariable("LinuxBionicArm64Cflags", linuxCrossCflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxBionicArm64Ldflags", linuxCrossLdflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxBionicArm64Lldflags", linuxCrossLldflags)
|
||||
}
|
||||
|
||||
// toolchain config for ARM64 Linux CrossHost. Almost everything is the same as the ARM64 Android
|
||||
|
|
|
@ -27,16 +27,24 @@ var (
|
|||
"-march=armv7a",
|
||||
}
|
||||
|
||||
linuxArmLldflags = append(linuxArmLdflags,
|
||||
"-Wl,--compress-debug-sections=zstd",
|
||||
)
|
||||
|
||||
linuxArm64Ldflags = []string{}
|
||||
|
||||
linuxArm64Lldflags = append(linuxArm64Ldflags,
|
||||
"-Wl,--compress-debug-sections=zstd",
|
||||
)
|
||||
)
|
||||
|
||||
func init() {
|
||||
exportedVars.ExportStringListStaticVariable("LinuxArmCflags", linuxArmCflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxArm64Cflags", linuxArm64Cflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxArmLdflags", linuxArmLdflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxArmLldflags", linuxArmLdflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxArmLldflags", linuxArmLldflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxArm64Ldflags", linuxArm64Ldflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxArm64Lldflags", linuxArm64Ldflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxArm64Lldflags", linuxArm64Lldflags)
|
||||
|
||||
exportedVars.ExportStringListStaticVariable("LinuxArmYasmFlags", []string{"-f elf32 -m arm"})
|
||||
exportedVars.ExportStringListStaticVariable("LinuxArm64YasmFlags", []string{"-f elf64 -m aarch64"})
|
||||
|
|
|
@ -203,7 +203,9 @@ var (
|
|||
"-Wl,-mllvm,-regalloc-enable-advisor=release",
|
||||
}
|
||||
|
||||
deviceGlobalLldflags = append(deviceGlobalLdflags, commonGlobalLldflags...)
|
||||
deviceGlobalLldflags = append(append(deviceGlobalLdflags, commonGlobalLldflags...),
|
||||
"-Wl,--compress-debug-sections=zstd",
|
||||
)
|
||||
|
||||
hostGlobalCflags = []string{}
|
||||
|
||||
|
|
|
@ -53,6 +53,10 @@ var (
|
|||
"--gcc-toolchain=${LinuxBionicGccRoot}",
|
||||
}
|
||||
|
||||
linuxBionicLldflags = append(linuxBionicLdflags,
|
||||
"-Wl,--compress-debug-sections=zstd",
|
||||
)
|
||||
|
||||
// Embed the linker into host bionic binaries. This is needed to support host bionic,
|
||||
// as the linux kernel requires that the ELF interpreter referenced by PT_INTERP be
|
||||
// either an absolute path, or relative from CWD. To work around this, we extract
|
||||
|
@ -71,7 +75,7 @@ const (
|
|||
func init() {
|
||||
exportedVars.ExportStringListStaticVariable("LinuxBionicCflags", linuxBionicCflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxBionicLdflags", linuxBionicLdflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxBionicLldflags", linuxBionicLdflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxBionicLldflags", linuxBionicLldflags)
|
||||
|
||||
// Use the device gcc toolchain for now
|
||||
exportedVars.ExportStringStaticVariable("LinuxBionicGccVersion", x86_64GccVersion)
|
||||
|
|
|
@ -59,6 +59,10 @@ var (
|
|||
"--gcc-toolchain=${LinuxGccRoot}",
|
||||
}
|
||||
|
||||
linuxLldflags = append(linuxLdflags,
|
||||
"-Wl,--compress-debug-sections=zstd",
|
||||
)
|
||||
|
||||
linuxGlibcLdflags = []string{
|
||||
"--sysroot ${LinuxGccRoot}/sysroot",
|
||||
}
|
||||
|
@ -138,7 +142,7 @@ func init() {
|
|||
|
||||
exportedVars.ExportStringListStaticVariable("LinuxCflags", linuxCflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxLdflags", linuxLdflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxLldflags", linuxLdflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxLldflags", linuxLldflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxGlibcCflags", linuxGlibcCflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxGlibcLdflags", linuxGlibcLdflags)
|
||||
exportedVars.ExportStringListStaticVariable("LinuxGlibcLldflags", linuxGlibcLdflags)
|
||||
|
|
Loading…
Reference in a new issue