8
8
# Give a pipeline a non-zero exit code if one of its constituents fails
9
9
set -o pipefail
10
10
11
- function llvm_linux_target_triple() {
12
- case " $1 " in
13
- 9.0.1) echo " x86_64-linux-gnu-ubuntu-16.04" ;;
14
- * ) echo " x86_64-linux-gnu-ubuntu-18.04" ;;
15
- esac
16
- }
17
-
18
- function llvm_macos_target_triple() {
19
- case " $1 " in
20
- 9.0.1) echo " x86_64-apple-darwin" ;;
21
- * ) echo " arm64-apple-darwin22.0" ;;
22
- esac
23
- }
24
-
25
- function llvm_version_triple() {
26
- case " $1 " in
27
- 9.0) echo " 9.0.1" ;;
28
- # By default, take the .0 patch release
29
- * ) echo " $1 .0" ;;
30
- esac
31
- }
32
-
33
- function llvm_base_url() {
34
- local llvm_version_triple=$1
35
- echo " https://github.com/llvm/llvm-project/releases/download/llvmorg-$llvm_version_triple "
36
- }
37
-
38
- function llvm_download() {
39
- local base_url=$1
40
- local arch=$2
41
-
42
- export LLVM=clang+llvm-${LLVM_VERSION_TRIPLE} -$arch
43
- export LLVM_DIRECTORY=" $HOME /.llvm/${LLVM} "
44
-
45
- if [ -d " ${LLVM_DIRECTORY} " ]; then
46
- echo " Using cached LLVM download for ${LLVM} ..."
47
- else
48
- wget --no-verbose $base_url /${LLVM} .tar.xz
49
- mkdir -p " ${LLVM_DIRECTORY} "
50
- tar xf ${LLVM} .tar.xz -C " ${LLVM_DIRECTORY} " --strip-components=1
51
- fi
52
-
53
- export LIBCLANG_PATH=" ${LLVM_DIRECTORY} /lib"
54
- export LLVM_CONFIG_PATH=" ${LLVM_DIRECTORY} /bin/llvm-config"
55
- }
56
-
57
- # Download and set up a sane LLVM version
58
11
set_llvm_env () {
59
- export LLVM_VERSION_TRIPLE=` llvm_version_triple ${LLVM_VERSION} `
60
- local base_url=` llvm_base_url ${LLVM_VERSION_TRIPLE} `
61
-
62
- if [ " $GITHUB_ACTIONS_OS " == " ubuntu-latest" ]; then
63
- llvm_download $base_url ` llvm_linux_target_triple ${LLVM_VERSION_TRIPLE} `
64
- export LD_LIBRARY_PATH=" ${LLVM_DIRECTORY} /lib" :${LD_LIBRARY_PATH:- }
65
- else
66
- llvm_download $base_url ` llvm_macos_target_triple ${LLVM_VERSION_TRIPLE} `
67
- export DYLD_LIBRARY_PATH=" ${LLVM_DIRECTORY} /lib" :${DYLD_LIBRARY_PATH:- }
68
- fi
12
+ # FIXME: set any env vars that might be required
69
13
}
70
14
71
15
assert_no_diff () {
@@ -74,8 +18,6 @@ assert_no_diff() {
74
18
git diff-index --quiet HEAD
75
19
}
76
20
77
- set_llvm_env
78
-
79
21
get_cargo_args () {
80
22
local args=" "
81
23
if [ ! -z " $RUST_TARGET " ]; then
@@ -100,6 +42,8 @@ get_cargo_args() {
100
42
echo $args
101
43
}
102
44
45
+ set_llvm_env
46
+
103
47
if [ ! -z " $RUST_CROSS_COMPILER " ]; then
104
48
export RUSTFLAGS=" -C linker=${RUST_CROSS_COMPILER} -gcc"
105
49
fi
@@ -128,7 +72,7 @@ if [ "$BINDGEN_RUST_FOR_LINUX_TEST" == "1" ]; then
128
72
129
73
# Put LLVM binaries in the path for `LLVM=1`. The LLVM `bin` directory should
130
74
# go first since there are others in the Ubuntu image.
131
- export PATH=" ${LLVM_DIRECTORY } /bin:${PATH} "
75
+ export PATH=" ${LLVM_PATH } /bin:${PATH} "
132
76
133
77
# Kernel build dependency: `bindgen-cli`, which is under test.
134
78
#
0 commit comments