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

Commit f52906f1 authored by Eric Rahm's avatar Eric Rahm
Browse files

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
parent fa0dff57
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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
+10 −2
Original line number Diff line number Diff line
@@ -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"})
+3 −1
Original line number Diff line number Diff line
@@ -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{}

+5 −1
Original line number Diff line number Diff line
@@ -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)
+5 −1
Original line number Diff line number Diff line
@@ -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)