Peter Smith | e12334a | 2019-06-05 09:31:45 | [diff] [blame] | 1 | # REQUIRES: x86 |
| 2 | # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o |
| 3 | # RUN: ld.lld -r %t.o -o %t2.o |
| 4 | # RUN: llvm-readelf -n %t2.o | FileCheck -match-full-lines %s |
| 5 | |
| 6 | ## Test that .note.gnu.property is passed through -r, and that we can handle |
| 7 | ## more than one FEATURE_AND in the same object file. This is logically the |
| 8 | ## same as if the features were combined in a single FEATURE_AND as the rule |
| 9 | ## states that the bit in the output pr_data field if it is set in all |
| 10 | .text |
| 11 | ret |
| 12 | |
| 13 | .section ".note.gnu.property", "a" |
| 14 | .p2align 3 |
| 15 | .long 4 |
| 16 | .long 0x10 |
| 17 | .long 0x5 |
| 18 | .asciz "GNU" |
| 19 | |
| 20 | .long 0xc0000002 // GNU_PROPERTY_X86_FEATURE_1_AND |
| 21 | .long 4 |
| 22 | .long 1 // GNU_PROPERTY_X86_FEATURE_1_IBT |
| 23 | .long 0 |
| 24 | |
| 25 | .long 4 |
| 26 | .long 0x10 |
| 27 | .long 0x5 |
| 28 | .asciz "GNU" |
| 29 | .long 0xc0000002 // GNU_PROPERTY_X86_FEATURE_1_AND |
| 30 | .long 4 |
| 31 | .long 2 // GNU_PROPERTY_X86_FEATURE_1_SHSTK |
| 32 | .long 0 |
| 33 | |
| 34 | # CHECK: Owner Data size Description |
| 35 | # CHECK-NEXT: GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0 (property note) |
| 36 | # CHECK-NEXT: Properties: x86 feature: IBT, SHSTK |