Merge "Use create_minidebuginfo tool instead of bash script."
This commit is contained in:
commit
67f8051a86
|
@ -126,15 +126,22 @@ var (
|
||||||
|
|
||||||
_ = pctx.SourcePathVariable("stripPath", "build/soong/scripts/strip.sh")
|
_ = pctx.SourcePathVariable("stripPath", "build/soong/scripts/strip.sh")
|
||||||
_ = pctx.SourcePathVariable("xzCmd", "prebuilts/build-tools/${config.HostPrebuiltTag}/bin/xz")
|
_ = pctx.SourcePathVariable("xzCmd", "prebuilts/build-tools/${config.HostPrebuiltTag}/bin/xz")
|
||||||
|
_ = pctx.SourcePathVariable("createMiniDebugInfo", "prebuilts/build-tools/${config.HostPrebuiltTag}/bin/create_minidebuginfo")
|
||||||
|
|
||||||
// Rule to invoke `strip` (to discard symbols and data from object files).
|
// Rule to invoke `strip` (to discard symbols and data from object files).
|
||||||
strip = pctx.AndroidStaticRule("strip",
|
strip = pctx.AndroidStaticRule("strip",
|
||||||
blueprint.RuleParams{
|
blueprint.RuleParams{
|
||||||
Depfile: "${out}.d",
|
Depfile: "${out}.d",
|
||||||
Deps: blueprint.DepsGCC,
|
Deps: blueprint.DepsGCC,
|
||||||
Command: "XZ=$xzCmd CLANG_BIN=${config.ClangBin} $stripPath ${args} -i ${in} -o ${out} -d ${out}.d",
|
Command: "XZ=$xzCmd CREATE_MINIDEBUGINFO=$createMiniDebugInfo CLANG_BIN=${config.ClangBin} $stripPath ${args} -i ${in} -o ${out} -d ${out}.d",
|
||||||
CommandDeps: []string{"$stripPath", "$xzCmd"},
|
CommandDeps: func() []string {
|
||||||
Pool: darwinStripPool,
|
if runtime.GOOS != "darwin" {
|
||||||
|
return []string{"$stripPath", "$xzCmd", "$createMiniDebugInfo"}
|
||||||
|
} else {
|
||||||
|
return []string{"$stripPath", "$xzCmd"}
|
||||||
|
}
|
||||||
|
}(),
|
||||||
|
Pool: darwinStripPool,
|
||||||
},
|
},
|
||||||
"args", "crossCompile")
|
"args", "crossCompile")
|
||||||
|
|
||||||
|
|
|
@ -151,6 +151,7 @@ func makeVarsProvider(ctx android.MakeVarsContext) {
|
||||||
|
|
||||||
ctx.Strict("SOONG_STRIP_PATH", "${stripPath}")
|
ctx.Strict("SOONG_STRIP_PATH", "${stripPath}")
|
||||||
ctx.Strict("XZ", "${xzCmd}")
|
ctx.Strict("XZ", "${xzCmd}")
|
||||||
|
ctx.Strict("CREATE_MINIDEBUGINFO", "${createMiniDebugInfo}")
|
||||||
|
|
||||||
includeFlags, err := ctx.Eval("${config.CommonGlobalIncludes}")
|
includeFlags, err := ctx.Eval("${config.CommonGlobalIncludes}")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -71,7 +71,7 @@ do_strip_keep_symbol_list() {
|
||||||
"${CLANG_BIN}/llvm-objcopy" -w "${infile}" "${outfile}.tmp" ${KEEP_SYMBOLS}
|
"${CLANG_BIN}/llvm-objcopy" -w "${infile}" "${outfile}.tmp" ${KEEP_SYMBOLS}
|
||||||
}
|
}
|
||||||
|
|
||||||
do_strip_keep_mini_debug_info() {
|
do_strip_keep_mini_debug_info_darwin() {
|
||||||
rm -f "${outfile}.dynsyms" "${outfile}.funcsyms" "${outfile}.keep_symbols" "${outfile}.debug" "${outfile}.mini_debuginfo" "${outfile}.mini_debuginfo.xz"
|
rm -f "${outfile}.dynsyms" "${outfile}.funcsyms" "${outfile}.keep_symbols" "${outfile}.debug" "${outfile}.mini_debuginfo" "${outfile}.mini_debuginfo.xz"
|
||||||
local fail=
|
local fail=
|
||||||
"${CLANG_BIN}/llvm-strip" --strip-all --keep-section=.ARM.attributes --remove-section=.comment "${infile}" -o "${outfile}.tmp" || fail=true
|
"${CLANG_BIN}/llvm-strip" --strip-all --keep-section=.ARM.attributes --remove-section=.comment "${infile}" -o "${outfile}.tmp" || fail=true
|
||||||
|
@ -92,6 +92,32 @@ do_strip_keep_mini_debug_info() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
do_strip_keep_mini_debug_info_linux() {
|
||||||
|
rm -f "${outfile}.mini_debuginfo.xz"
|
||||||
|
local fail=
|
||||||
|
"${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"
|
||||||
|
"${CLANG_BIN}/llvm-objcopy" --add-section .gnu_debugdata="${outfile}.mini_debuginfo.xz" "${outfile}.tmp"
|
||||||
|
rm -f "${outfile}.mini_debuginfo.xz"
|
||||||
|
else
|
||||||
|
cp -f "${infile}" "${outfile}.tmp"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
do_strip_keep_mini_debug_info() {
|
||||||
|
case $(uname) in
|
||||||
|
Linux)
|
||||||
|
do_strip_keep_mini_debug_info_linux
|
||||||
|
;;
|
||||||
|
Darwin)
|
||||||
|
do_strip_keep_mini_debug_info_darwin
|
||||||
|
;;
|
||||||
|
*) echo "unknown OS:" $(uname) >&2 && exit 1;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
do_add_gnu_debuglink() {
|
do_add_gnu_debuglink() {
|
||||||
"${CLANG_BIN}/llvm-objcopy" --add-gnu-debuglink="${infile}" "${outfile}.tmp"
|
"${CLANG_BIN}/llvm-objcopy" --add-gnu-debuglink="${infile}" "${outfile}.tmp"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue