#define NT_GNU_PROPERTY_TYPE_0 5 #define GNU_PROPERTY_STACK_SIZE 1 #define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000 #define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0000001 #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: