File tree 3 files changed +49
-8
lines changed
src/test/run-make/static-pie
3 files changed +49
-8
lines changed Original file line number Diff line number Diff line change 7
7
# How to manually run this
8
8
# $ ./x.py test --target x86_64-unknown-linux-[musl,gnu] src/test/run-make/static-pie
9
9
10
- all :
11
- $(RUSTC ) --target $(TARGET ) -C target-feature=+crt-static test-aslr.rs
12
- # Check that no dynamic interpreter is set
13
- ! readelf -l $(call RUN_BINFILE,test-aslr) | $(CGREP ) INTERP
14
- # Check that we have a dynamic executable
15
- readelf -l $(call RUN_BINFILE,test-aslr) | $(CGREP ) DYNAMIC
16
- # Check for address space layout randomization
17
- $(call RUN,test-aslr) --test-aslr
10
+ all : test-clang test-gcc
11
+
12
+ test-% :
13
+ if ./check_$* _version.sh; then\
14
+ ${RUSTC} -Clinker=$* -Clinker-flavor=gcc --target ${TARGET} -C target-feature=+crt-static test-aslr.rs; \
15
+ ! readelf -l $(call RUN_BINFILE,test-aslr) | $(CGREP ) INTERP; \
16
+ readelf -l $(call RUN_BINFILE,test-aslr) | $(CGREP ) DYNAMIC; \
17
+ $(call RUN,test-aslr) --test-aslr; \
18
+ fi
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ set -euo pipefail
4
+
5
+ if command -v clang > /dev/null
6
+ then
7
+ CLANG_VERSION=$( echo __clang_major__ | clang -E -x c - | grep -v -e ' ^#' )
8
+ echo " clang version $CLANG_VERSION detected"
9
+ if (( $CLANG_VERSION >= 9 ))
10
+ then
11
+ echo " clang supports -static-pie"
12
+ exit 0
13
+ else
14
+ echo " clang too old to support -static-pie, skipping test"
15
+ exit 1
16
+ fi
17
+ else
18
+ echo " No clang version detected"
19
+ exit 2
20
+ fi
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ set -euo pipefail
4
+
5
+ if command -v gcc > /dev/null
6
+ then
7
+ GCC_VERSION=$( echo __GNUC__ | gcc -E -x c - | grep -v -e ' ^#' )
8
+ echo " gcc version $GCC_VERSION detected"
9
+ if (( $GCC_VERSION >= 8 ))
10
+ then
11
+ echo " gcc supports -static-pie"
12
+ exit 0
13
+ else
14
+ echo " gcc too old to support -static-pie, skipping test"
15
+ exit 1
16
+ fi
17
+ else
18
+ echo " No gcc version detected"
19
+ exit 2
20
+ fi
You can’t perform that action at this time.
0 commit comments