40
40
apt-get update
41
41
apt-get install --no-install-recommends -y -- "${prerequisites[@]}"
42
42
shell : bash
43
- - name : Verify environment is sufficiently minimal for the test
43
+ - name : Verify that we are in an environment with minimal dev tools
44
44
run : |
45
45
set -x
46
46
for pattern in cmake g++ libssl-dev make pkgconf pkg-config; do
@@ -64,14 +64,32 @@ jobs:
64
64
pattern='.*\b(-sys|cc|cmake|pkg-config|vcpkg)\b.*'
65
65
! GREP_COLORS='ms=30;48;5;214' grep --color=always -Ex -C 1000000 -e "$pattern" tree.txt
66
66
continue-on-error : true
67
- - name : Do max-pure build with minimal environment
68
- run : cargo install --debug --locked --no-default-features --features max-pure --path .
69
- - name : Clear target
70
- run : cargo clean
71
- - name : Break GCC's ability to compile C or C++
72
- run : find /usr/lib/gcc \( -name cc1 -o -name cc1plus \) -print -delete
73
- - name : Do max-pure build without being able to compile C or C++
67
+ - name : Wrap cc1 (and cc1plus if present) to record calls
68
+ run : |
69
+ cat >/usr/local/bin/wrapper1 <<'EOF'
70
+ #!/bin/sh
71
+ printf '%s %s\n' "$0" "$*" >>/var/log/wrapper1.log
72
+ exec "$0.orig" "$@"
73
+ EOF
74
+
75
+ cat >/usr/local/bin/wrap1 <<'EOF'
76
+ #!/bin/sh -e
77
+ dir="$(dirname -- "$1")"
78
+ base="$(basename -- "$1")"
79
+ cd -- "$dir"
80
+ mv -- "$base" "$base.orig"
81
+ ln -s -- /usr/local/bin/wrapper1 "$base"
82
+ EOF
83
+
84
+ chmod +x /usr/local/bin/wrap1 /usr/local/bin/wrapper1
85
+
86
+ find /usr/lib/gcc \( -name cc1 -o -name cc1plus \) \
87
+ -print -exec /usr/local/bin/wrap1 {} \;
88
+ - name : Build max-pure with minimal dev tools and log cc1
74
89
run : cargo install --debug --locked --no-default-features --features max-pure --path .
90
+ - name : Show logged C and C++ compilations (should be none)
91
+ run : |
92
+ ! cat /var/log/wrapper1.log
75
93
continue-on-error : true
76
94
77
95
test :
0 commit comments