Revert "Revert "Build header-abi-dumper with clang-r339409b""
This reverts commit 9dc36fb00706412b85d4a77c0b60cc14e6112e03.
Bug: 111579848
Test: prebuilts/clang-tools/build-prebuilts.sh
Test: out/soong/dist/bin/header-abi-dumper --help
Change-Id: I6a671c6611e9448344403907b7773395b200e2c8
diff --git a/build-prebuilts.sh b/build-prebuilts.sh
index a8849cd..1bdc070 100755
--- a/build-prebuilts.sh
+++ b/build-prebuilts.sh
@@ -14,6 +14,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+export LLVM_BUILD_HOST_TOOLS=true
+export LLVM_PREBUILTS_VERSION=clang-r339409b
+export LLVM_RELEASE_VERSION=8.0.2
+
if [ -z "${OUT_DIR}" ]; then
echo "error: Must set OUT_DIR"
exit 1
@@ -74,9 +78,33 @@
cp -R "${SOONG_HOST_OUT}/lib"* "${SOONG_OUT}/dist/"
# Copy clang headers
-cp -R "external/clang/lib/Headers" "${SOONG_OUT}/dist/clang-headers"
-cp "prebuilts/clang/host/${OS}-x86/clang-3289846/lib64/clang/3.8/include/arm_neon.h" "${SOONG_OUT}/dist/clang-headers"
-rm "${SOONG_OUT}/dist/clang-headers/CMakeLists.txt"
+cp -R "prebuilts/clang/host/${OS}-x86/${LLVM_PREBUILTS_VERSION}/lib64/clang/${LLVM_RELEASE_VERSION}/include" "${SOONG_OUT}/dist/clang-headers"
+
+# Normalize library file names. All library file names must match their soname.
+function extract_soname () {
+ local file="$1"
+
+ case "${OS}" in
+ linux)
+ readelf -d "${file}" | \
+ grep '(SONAME)\s*Library soname: \[.*\]$' -o | \
+ sed 's/(SONAME)\s*Library soname: \[\(.*\)\]$/\1/g'
+ ;;
+ darwin)
+ local install_path="$(otool -D "${file}" | sed -n 2p)"
+ if [ -n "${install_path}" ]; then
+ basename "${install_path}"
+ fi
+ ;;
+ esac
+}
+
+for file in "${SOONG_OUT}/dist/lib"*"/"*; do
+ soname="$(extract_soname "${file}")"
+ if [ -n "${soname}" -a "$(basename "${file}")" != "${soname}" ]; then
+ mv "${file}" "$(dirname "${file}")/${soname}"
+ fi
+done
# Package binaries and shared libs
(