2023-05-05 13:32:20 -05:00
|
|
|
# Check for GNU Property Note
|
|
|
|
|
|
|
|
include ../tools.mk
|
|
|
|
|
|
|
|
# How to run this
|
|
|
|
# python3 x.py test --target x86_64-unknown-linux-gnu tests/run-make/branch-protection-check-IBT/
|
|
|
|
|
|
|
|
# only-x86_64
|
|
|
|
|
2024-06-22 19:16:51 -05:00
|
|
|
# ignore-test
|
|
|
|
# FIXME(jieyouxu): This test never runs because the `ifeq` check on line 17
|
|
|
|
# compares `x86` to `x86_64`, which always evaluates to false.
|
|
|
|
# When the test does run, the compilation does not include `.note.gnu.property`.
|
|
|
|
# See https://github.com/rust-lang/rust/pull/126720 for more information.
|
|
|
|
|
2023-05-05 13:32:20 -05:00
|
|
|
all:
|
|
|
|
ifeq ($(filter x86,$(LLVM_COMPONENTS)),x86_64)
|
|
|
|
$(RUSTC) --target x86_64-unknown-linux-gnu -Z cf-protection=branch -L$(TMPDIR) -C link-args='-nostartfiles' -C save-temps ./main.rs -o $(TMPDIR)/rsmain
|
|
|
|
readelf -nW $(TMPDIR)/rsmain | $(CGREP) -e ".note.gnu.property"
|
|
|
|
endif
|
|
|
|
|