xref: /aosp_15_r20/external/perfetto/tools/repackage_llvm_demangler.sh (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1*6dbdd20aSAndroid Build Coastguard Worker#!/bin/bash
2*6dbdd20aSAndroid Build Coastguard Worker# Copyright (C) 2022 The Android Open Source Project
3*6dbdd20aSAndroid Build Coastguard Worker#
4*6dbdd20aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
5*6dbdd20aSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
6*6dbdd20aSAndroid Build Coastguard Worker# You may obtain a copy of the License at
7*6dbdd20aSAndroid Build Coastguard Worker#
8*6dbdd20aSAndroid Build Coastguard Worker#      http://www.apache.org/licenses/LICENSE-2.0
9*6dbdd20aSAndroid Build Coastguard Worker#
10*6dbdd20aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
11*6dbdd20aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
12*6dbdd20aSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*6dbdd20aSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
14*6dbdd20aSAndroid Build Coastguard Worker# limitations under the License.
15*6dbdd20aSAndroid Build Coastguard Worker
16*6dbdd20aSAndroid Build Coastguard Workerset -eu
17*6dbdd20aSAndroid Build Coastguard Worker
18*6dbdd20aSAndroid Build Coastguard Worker# For perfetto maintainers. Pulls out demangling-related sources out of
19*6dbdd20aSAndroid Build Coastguard Worker# llvm-project and repackages them as a single tar archive. This works around
20*6dbdd20aSAndroid Build Coastguard Worker# the fact that gitiles, when generating an on-demand archive, uses a current
21*6dbdd20aSAndroid Build Coastguard Worker# timestamp, so the hash of the archive is different every time you fetch.
22*6dbdd20aSAndroid Build Coastguard Worker
23*6dbdd20aSAndroid Build Coastguard Worker# Usage example:
24*6dbdd20aSAndroid Build Coastguard Worker#   sh tools/repackage_llvm_demangler.sh 3b4c59c156919902c785ce3cbae0eee2ee53064d
25*6dbdd20aSAndroid Build Coastguard Worker#
26*6dbdd20aSAndroid Build Coastguard Worker# Then upload the tar with "gsutil cp -n -a public-read ... gs://perfetto/...",
27*6dbdd20aSAndroid Build Coastguard Worker# and update install-build-deps.
28*6dbdd20aSAndroid Build Coastguard Worker
29*6dbdd20aSAndroid Build Coastguard WorkerGIT_REF=$1
30*6dbdd20aSAndroid Build Coastguard Worker
31*6dbdd20aSAndroid Build Coastguard WorkerWORK_DIR=$(mktemp -d)
32*6dbdd20aSAndroid Build Coastguard Workerpushd . && cd "${WORK_DIR}"
33*6dbdd20aSAndroid Build Coastguard Worker
34*6dbdd20aSAndroid Build Coastguard WorkerCC_DIR="llvm-project/llvm/lib/Demangle"
35*6dbdd20aSAndroid Build Coastguard WorkerH_DIR="llvm-project/llvm/include/llvm/Demangle"
36*6dbdd20aSAndroid Build Coastguard Worker
37*6dbdd20aSAndroid Build Coastguard WorkerCC_TGZ="Demangle_lib.tgz"
38*6dbdd20aSAndroid Build Coastguard WorkerH_TGZ="Demangle_include.tgz"
39*6dbdd20aSAndroid Build Coastguard Worker
40*6dbdd20aSAndroid Build Coastguard Workercurl -f -L -# "https://llvm.googlesource.com/llvm-project/+archive/${GIT_REF}/llvm/lib/Demangle.tar.gz" -o "${CC_TGZ}"
41*6dbdd20aSAndroid Build Coastguard Workercurl -f -L -# "https://llvm.googlesource.com/llvm-project/+archive/${GIT_REF}/llvm/include/llvm/Demangle.tar.gz" -o "${H_TGZ}"
42*6dbdd20aSAndroid Build Coastguard Worker
43*6dbdd20aSAndroid Build Coastguard Workermkdir -p "${CC_DIR}"
44*6dbdd20aSAndroid Build Coastguard Workermkdir -p "${H_DIR}"
45*6dbdd20aSAndroid Build Coastguard Worker
46*6dbdd20aSAndroid Build Coastguard Workertar xf "${CC_TGZ}" -C "${CC_DIR}"
47*6dbdd20aSAndroid Build Coastguard Workertar xf "${H_TGZ}" -C "${H_DIR}"
48*6dbdd20aSAndroid Build Coastguard Worker
49*6dbdd20aSAndroid Build Coastguard WorkerTAR_NAME="llvm-project-${GIT_REF}.tgz"
50*6dbdd20aSAndroid Build Coastguard Workertar czf "${TAR_NAME}" --sort=name --owner=root:0 --group=root:0 --mtime='UTC 2019-01-01' llvm-project
51*6dbdd20aSAndroid Build Coastguard Worker
52*6dbdd20aSAndroid Build Coastguard WorkerTAR_SHA=$(sha256sum "${TAR_NAME}")
53*6dbdd20aSAndroid Build Coastguard Worker
54*6dbdd20aSAndroid Build Coastguard Workerecho "output file: ${WORK_DIR}/${TAR_NAME}"
55*6dbdd20aSAndroid Build Coastguard Workerecho "contents sha256: ${TAR_SHA}"
56*6dbdd20aSAndroid Build Coastguard Worker
57*6dbdd20aSAndroid Build Coastguard Workerpopd
58