-
Notifications
You must be signed in to change notification settings - Fork 148
/
Copy pathlinux_build_x86_64_cxx_wrapper
executable file
·85 lines (73 loc) · 1.9 KB
/
linux_build_x86_64_cxx_wrapper
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
#!/bin/bash
# This compiler wrapper removes e.g. -mno-sse4.2 if both -mno-sse4.2 and -msse4.2 are specified
set -e
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
#echo "ORIG_ARGS: $@" >> "$DIR/x86_64_cxx_wrapper.log"
args=()
containsElement () {
local e match="$1"
shift
for e; do [[ "$e" == "$match" ]] && return 0; done
return 1
}
removeElement () {
new_args=()
for v in "${args[@]}"; do
if [[ $v != "$1" ]]; then
new_args+=($v)
fi
done
args=("${new_args[@]}")
}
for var in "$@"
do
ADD=1
if [[ $var == "-mno-sse4.1" ]]; then
ADD=0
if ! containsElement "-msse4.1" "${args[@]}" && ! containsElement "-msse4.2" "${args[@]}"; then
args+=("$var")
fi
fi
if [[ $var == "-mno-sse4.2" ]]; then
ADD=0
if ! containsElement "-msse4.2" "${args[@]}"; then
args+=("$var")
fi
fi
if [[ $var == "-mno-sse4a" ]]; then
ADD=0
if ! containsElement "-msse4a" "${args[@]}" && ! containsElement "-msse4.2" "${args[@]}" && ! containsElement "-msse4.1" "${args[@]}"; then
args+=("$var")
fi
fi
if [[ $var == "-mno-sse3" ]]; then
ADD=0
if ! containsElement "-msse3" "${args[@]}" && ! containsElement "-mssse3" "${args[@]}" && ! containsElement "-msse4a" "${args[@]}" && ! containsElement "-msse4.2" "${args[@]}" && ! containsElement "-msse4.1" "${args[@]}"; then
args+=("$var")
fi
fi
if [[ $var == "-msse4.1" ]]; then
removeElement "-mno-sse4.1"
removeElement "-mno-sse4a"
fi
if [[ $var == "-msse4.2" ]]; then
removeElement "-mno-sse4.2"
removeElement "-mno-sse4.1"
removeElement "-mno-sse4a"
fi
if [[ $var == "-msse4a" ]]; then
removeElement "-mno-sse4a"
fi
if [[ $var == "-msse3" ]]; then
removeElement "-mno-sse3"
fi
if [[ $var == "-mssse3" ]]; then
removeElement "-mno-sse3"
fi
if [[ $ADD == 1 ]]; then
args+=("$var")
fi
done
CXX=$(cat "$DIR/cxx_path")
#echo "ARGS: ${args[@]}" >> "$DIR/x86_64_cxx_wrapper.log"
exec $CXX ${args[@]}