Merge changes Ia85d8dc0,I4ab3d47f,Ieeaa6554,I0b3c1f08 into main
* changes: Use zstd to compress debug info in rust libraries Use zstd to compress debug info in cc libraries Compress debug info in clang builds with zstd Decompress debug sections when creating debug info
This commit is contained in:
commit
b60cd11bc7
7 changed files with 43 additions and 7 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"})
|
||||
|
|
|
@ -133,6 +133,9 @@ var (
|
|||
// Using simple template names reduces the size of debug builds.
|
||||
"-gsimple-template-names",
|
||||
|
||||
// Use zstd to compress debug data.
|
||||
"-gz=zstd",
|
||||
|
||||
// Make paths in deps files relative.
|
||||
"-no-canonical-prefixes",
|
||||
}
|
||||
|
@ -200,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)
|
||||
|
|
|
@ -65,6 +65,7 @@ var (
|
|||
"-lpthread",
|
||||
"-lm",
|
||||
"-lgcc_s",
|
||||
"-Wl,--compress-debug-sections=zstd",
|
||||
}
|
||||
|
||||
deviceGlobalRustFlags = []string{
|
||||
|
@ -86,6 +87,7 @@ var (
|
|||
"-Wl,--use-android-relr-tags",
|
||||
"-Wl,--no-undefined",
|
||||
"-B${cc_config.ClangBin}",
|
||||
"-Wl,--compress-debug-sections=zstd",
|
||||
}
|
||||
)
|
||||
|
||||
|
|
|
@ -98,9 +98,17 @@ do_strip_keep_mini_debug_info_linux() {
|
|||
"${CLANG_BIN}/llvm-strip" --strip-all --keep-section=.ARM.attributes --remove-section=.comment "${infile}" -o "${outfile}.tmp" || fail=true
|
||||
|
||||
if [ -z $fail ]; then
|
||||
"${CREATE_MINIDEBUGINFO}" "${infile}" "${outfile}.mini_debuginfo.xz"
|
||||
# create_minidebuginfo has issues with compressed debug sections. Just
|
||||
# decompress them for now using objcopy which understands compressed
|
||||
# debug sections.
|
||||
# b/306150780 tracks supporting this directly in create_minidebuginfo
|
||||
decompressed="${infile}.decompressed"
|
||||
"${CLANG_BIN}/llvm-objcopy" --decompress-debug-sections \
|
||||
"${infile}" "${decompressed}"
|
||||
|
||||
"${CREATE_MINIDEBUGINFO}" "${decompressed}" "${outfile}.mini_debuginfo.xz"
|
||||
"${CLANG_BIN}/llvm-objcopy" --add-section .gnu_debugdata="${outfile}.mini_debuginfo.xz" "${outfile}.tmp"
|
||||
rm -f "${outfile}.mini_debuginfo.xz"
|
||||
rm -f "${outfile}.mini_debuginfo.xz" "${decompressed}"
|
||||
else
|
||||
cp -f "${infile}" "${outfile}.tmp"
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue