| #define NT_GNU_PROPERTY_TYPE_0 5 |
| |
| #define GNU_PROPERTY_STACK_SIZE 1 |
| #define GNU_PROPERTY_X86_ISA_1_USED 0xc0010002 |
| #define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0008002 |
| #define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002 |
| |
| #if __SIZEOF_PTRDIFF_T__ == 8 |
| # define ALIGN 3 |
| #elif __SIZEOF_PTRDIFF_T__ == 4 |
| # define ALIGN 2 |
| #endif |
| |
| .text |
| .globl _start |
| _start: |
| ret |
| |
| .section ".note.gnu.property", "a" |
| .p2align ALIGN |
| |
| .long 1f - 0f /* name length */ |
| .long 5f - 2f /* data length */ |
| .long NT_GNU_PROPERTY_TYPE_0 /* note type */ |
| 0: .asciz "GNU" /* vendor name */ |
| 1: |
| .p2align ALIGN |
| 2: .long GNU_PROPERTY_STACK_SIZE /* pr_type. */ |
| .long 4f - 3f /* pr_datasz. */ |
| 3: |
| .dc.a 0x800 /* Stack size. */ |
| 4: |
| .p2align ALIGN |
| .long GNU_PROPERTY_X86_ISA_1_USED |
| .long 4 |
| .byte 0x01,0x10,0x00,0x00 |
| .p2align ALIGN |
| .long GNU_PROPERTY_X86_ISA_1_NEEDED |
| .long 4 |
| .byte 0x01,0x10,0x00,0x00 |
| .p2align ALIGN |
| .long GNU_PROPERTY_X86_FEATURE_1_AND |
| .long 4 |
| .byte 0x01,0x00,0x00,0x00 |
| .p2align ALIGN |
| 5: |