summaryrefslogtreecommitdiffstats
path: root/tests/run-make/relro-levels/Makefile
blob: e0402f59f12dde3d48740b78ba4d570545b6a000 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# ignore-cross-compile
include ../tools.mk

# only-linux
#
# This tests the different -Zrelro-level values, and makes sure that they work properly.

all:
	# Ensure that binaries built with the full relro level links them with both
	# RELRO and BIND_NOW for doing eager symbol resolving.
	$(RUSTC) -Zrelro-level=full hello.rs
	readelf -l $(TMPDIR)/hello | grep -q GNU_RELRO
	readelf -d $(TMPDIR)/hello | grep -q BIND_NOW

	$(RUSTC) -Zrelro-level=partial hello.rs
	readelf -l $(TMPDIR)/hello | grep -q GNU_RELRO

	# Ensure that we're *not* built with RELRO when setting it to off.  We do
	# not want to check for BIND_NOW however, as the linker might have that
	# enabled by default.
	$(RUSTC) -Zrelro-level=off hello.rs
	! readelf -l $(TMPDIR)/hello | grep -q GNU_RELRO