From 4ad44e713be043891578945e0f6f05f3cb5086ed Mon Sep 17 00:00:00 2001 From: Yi Kong Date: Thu, 1 Apr 2021 17:45:42 +0800 Subject: [PATCH] Move toc.sh to use LLVM binutils Test: build Change-Id: Ib965b6ea3fba6ae007135ac7e167cc50f0f6e3de --- cc/builder.go | 12 ++++-------- scripts/toc.sh | 30 +++++++++++++++--------------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/cc/builder.go b/cc/builder.go index 4771b8932..8c9743ff4 100644 --- a/cc/builder.go +++ b/cc/builder.go @@ -182,11 +182,11 @@ var ( blueprint.RuleParams{ Depfile: "${out}.d", Deps: blueprint.DepsGCC, - Command: "CROSS_COMPILE=$crossCompile $tocPath $format -i ${in} -o ${out} -d ${out}.d", + Command: "CLANG_BIN=$clangBin $tocPath $format -i ${in} -o ${out} -d ${out}.d", CommandDeps: []string{"$tocPath"}, Restat: true, }, - "crossCompile", "format") + "clangBin", "format") // Rule for invoking clang-tidy (a clang-based linter). clangTidy, clangTidyRE = pctx.RemoteStaticRules("clangTidy", @@ -918,16 +918,12 @@ func transformSharedObjectToToc(ctx android.ModuleContext, inputFile android.Pat outputFile android.WritablePath, flags builderFlags) { var format string - var crossCompile string if ctx.Darwin() { format = "--macho" - crossCompile = "${config.MacToolPath}" } else if ctx.Windows() { format = "--pe" - crossCompile = gccCmd(flags.toolchain, "") } else { format = "--elf" - crossCompile = gccCmd(flags.toolchain, "") } ctx.Build(pctx, android.BuildParams{ @@ -936,8 +932,8 @@ func transformSharedObjectToToc(ctx android.ModuleContext, inputFile android.Pat Output: outputFile, Input: inputFile, Args: map[string]string{ - "crossCompile": crossCompile, - "format": format, + "clangBin": "${config.ClangBin}", + "format": format, }, }) } diff --git a/scripts/toc.sh b/scripts/toc.sh index 8b1d25fb9..af8bece94 100755 --- a/scripts/toc.sh +++ b/scripts/toc.sh @@ -17,7 +17,7 @@ # Script to handle generating a .toc file from a .so file # Inputs: # Environment: -# CROSS_COMPILE: prefix added to readelf tool +# CLANG_BIN: path to the clang bin directory # Arguments: # -i ${file}: input file (required) # -o ${file}: output file (required) @@ -35,34 +35,34 @@ EOF } do_elf() { - ("${CROSS_COMPILE}readelf" -d "${infile}" | grep SONAME || echo "No SONAME for ${infile}") > "${outfile}.tmp" - "${CROSS_COMPILE}readelf" --dyn-syms "${infile}" | awk '{$2=""; $3=""; print}' >> "${outfile}.tmp" + ("${CLANG_BIN}/llvm-readelf" -d "${infile}" | grep SONAME || echo "No SONAME for ${infile}") > "${outfile}.tmp" + "${CLANG_BIN}/llvm-readelf" --dyn-syms "${infile}" | awk '{$2=""; $3=""; print}' >> "${outfile}.tmp" cat < "${depsfile}" ${outfile}: \\ - ${CROSS_COMPILE}readelf \\ + ${CLANG_BIN}/llvm-readelf \\ EOF } do_macho() { - "${CROSS_COMPILE}/otool" -l "${infile}" | grep LC_ID_DYLIB -A 5 > "${outfile}.tmp" - "${CROSS_COMPILE}/nm" -gP "${infile}" | cut -f1-2 -d" " | (grep -v 'U$' >> "${outfile}.tmp" || true) + "${CLANG_BIN}/llvm-objdump" -p "${infile}" | grep LC_ID_DYLIB -A 5 > "${outfile}.tmp" + "${CLANG_BIN}/llvm-nm" -gP "${infile}" | cut -f1-2 -d" " | (grep -v 'U$' >> "${outfile}.tmp" || true) cat < "${depsfile}" ${outfile}: \\ - ${CROSS_COMPILE}/otool \\ - ${CROSS_COMPILE}/nm \\ + ${CLANG_BIN}/llvm-objdump \\ + ${CLANG_BIN}/llvm-nm \\ EOF } do_pe() { - "${CROSS_COMPILE}objdump" -x "${infile}" | grep "^Name" | cut -f3 -d" " > "${outfile}.tmp" - "${CROSS_COMPILE}nm" -g -f p "${infile}" | cut -f1-2 -d" " >> "${outfile}.tmp" + "${CLANG_BIN}/llvm-objdump" -x "${infile}" | grep "^Name" | cut -f3 -d" " > "${outfile}.tmp" + "${CLANG_BIN}/llvm-nm" -g -f p "${infile}" | cut -f1-2 -d" " >> "${outfile}.tmp" cat < "${depsfile}" ${outfile}: \\ - ${CROSS_COMPILE}objdump \\ - ${CROSS_COMPILE}nm \\ + ${CLANG_BIN}/llvm-objdump \\ + ${CLANG_BIN}/llvm-nm \\ EOF } @@ -98,8 +98,8 @@ if [ -z "${depsfile:-}" ]; then usage fi -if [ -z "${CROSS_COMPILE:-}" ]; then - echo "CROSS_COMPILE environment variable must be set" +if [ -z "${CLANG_BIN:-}" ]; then + echo "CLANG_BIN environment variable must be set" usage fi @@ -107,7 +107,7 @@ rm -f "${outfile}.tmp" cat < "${depsfile}" ${outfile}: \\ - ${CROSS_COMPILE}readelf \\ + ${CLANG_BIN}/llvm-readelf \\ EOF if [ -n "${elf:-}" ]; then