| # 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 |
| |
| # 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. |
| |
| 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 |
| |