aboutsummaryrefslogtreecommitdiff
path: root/pull-from-vixl.sh
blob: 4db0d6496be0bd5fabf837911529f51ae762533b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/bash

# Copyright 2017, VIXL authors
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
#   * Redistributions of source code must retain the above copyright notice,
#     this list of conditions and the following disclaimer.
#   * Redistributions in binary form must reproduce the above copyright notice,
#     this list of conditions and the following disclaimer in the documentation
#     and/or other materials provided with the distribution.
#   * Neither the name of ARM Limited nor the names of its contributors may be
#     used to endorse or promote products derived from this software without
#     specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


# Pull simulator trace references outputs from the Linaro VIXL repository.
#
# This script copies the reference trace outputs from VIXL's git repository
# into the root directory of this repository.
#
# Any changes to the outputs should be made in the VIXL repository, and
# then imported using this script.

linaro_vixl_git=https://git.linaro.org/arm/vixl.git
linaro_vixl_traces_dir=vixl/test/aarch64/traces

# Check for outstanding staged or working tree changes.
git diff-index --quiet HEAD
git_changes=$?

# Check for untracked files.
test -z "$(git ls-files --others)"
untracked_files=$?

# Ensure the user knows what's about to happen.
echo
echo "This script will delete all header files in the current directory and"
echo "fetch the latest trace header files from the Linaro VIXL repository."
if [ $git_changes -ne 0 ]; then
  echo
  echo "NB. You have staged or working tree changes."
fi
if [ $untracked_files -ne 0 ]; then
  echo
  echo "NB. You have untracked files in the target directory."
fi
echo

# Check that the user wants to do this.
while true; do
  read -p "Continue? (y/n) " yn
  case $yn in
    [Yy]* ) break;;
    [Nn]* ) exit;;
    * ) ;;
  esac
done

# Delete existing trace header files.
rm -f *.h

# Check out VIXL from Linaro repository.
git clone $linaro_vixl_git

# Check for a traces directory.
if [ ! -d $linaro_vixl_traces_dir ]; then
  echo "Can't find traces directory in VIXL checkout. Has it been moved?"
  exit 1
fi

# Move trace files from repository to the current directory.
mv $linaro_vixl_traces_dir/*.h .

# Delete repository.
rm -rf vixl

# Rename trace files to match V8's expectation.
ls -1 *.h | grep -oP "sim\-.+\-trace\-" | xargs -i mv {}aarch64.h {}arm64.h