+#define NT_GNU_PROPERTY_TYPE_0 5 /* Generated by gcc. */
+
+#define NT_GNU_BUILD_ATTRIBUTE_OPEN 0x100
+#define NT_GNU_BUILD_ATTRIBUTE_FUNC 0x101
+
+#define GNU_BUILD_ATTRIBUTE_TYPE_NUMERIC '*'
+#define GNU_BUILD_ATTRIBUTE_TYPE_STRING '$'
+#define GNU_BUILD_ATTRIBUTE_TYPE_BOOL_TRUE '+'
+#define GNU_BUILD_ATTRIBUTE_TYPE_BOOL_FALSE '!'
+
+#define GNU_BUILD_ATTRIBUTE_VERSION 1
+#define GNU_BUILD_ATTRIBUTE_STACK_PROT 2
+#define GNU_BUILD_ATTRIBUTE_RELRO 3
+#define GNU_BUILD_ATTRIBUTE_STACK_SIZE 4
+#define GNU_BUILD_ATTRIBUTE_TOOL 5
+#define GNU_BUILD_ATTRIBUTE_ABI 6
+#define GNU_BUILD_ATTRIBUTE_PIC 7
+#define GNU_BUILD_ATTRIBUTE_SHORT_ENUM 8
+
+#define NOTE_GNU_PROPERTY_SECTION_NAME ".note.gnu.property"
+#define GNU_BUILD_ATTRS_SECTION_NAME ".gnu.build.attributes"
+
+/* Values used in GNU .note.gnu.property notes (NT_GNU_PROPERTY_TYPE_0). */
+#define GNU_PROPERTY_STACK_SIZE 1
+#define GNU_PROPERTY_NO_COPY_ON_PROTECTED 2
+
+/* Processor-specific semantics, lo */
+#define GNU_PROPERTY_LOPROC 0xc0000000
+/* Processor-specific semantics, hi */
+#define GNU_PROPERTY_HIPROC 0xdfffffff
+/* Application-specific semantics, lo */
+#define GNU_PROPERTY_LOUSER 0xe0000000
+/* Application-specific semantics, hi */
+#define GNU_PROPERTY_HIUSER 0xffffffff
+
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_USED 0xc0000000
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED 0xc0000001
+
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_486 (1U << 0)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_586 (1U << 1)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_686 (1U << 2)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE (1U << 3)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE2 (1U << 4)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE3 (1U << 5)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSSE3 (1U << 6)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_1 (1U << 7)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_2 (1U << 8)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX (1U << 9)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX2 (1U << 10)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512F (1U << 11)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512CD (1U << 12)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512ER (1U << 13)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512PF (1U << 14)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512VL (1U << 15)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512DQ (1U << 16)
+#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512BW (1U << 17)
+
+/* A 4-byte unsigned integer property: A bit is set if it is set in all
+ relocatable inputs. */
+#define GNU_PROPERTY_X86_UINT32_AND_LO 0xc0000002
+#define GNU_PROPERTY_X86_UINT32_AND_HI 0xc0007fff
+
+/* A 4-byte unsigned integer property: A bit is set if it is set in any
+ relocatable inputs. */
+#define GNU_PROPERTY_X86_UINT32_OR_LO 0xc0008000
+#define GNU_PROPERTY_X86_UINT32_OR_HI 0xc000ffff
+
+/* A 4-byte unsigned integer property: A bit is set if it is set in any
+ relocatable inputs and the property is present in all relocatable
+ inputs. */
+#define GNU_PROPERTY_X86_UINT32_OR_AND_LO 0xc0010000
+#define GNU_PROPERTY_X86_UINT32_OR_AND_HI 0xc0017fff
+
+#define GNU_PROPERTY_X86_FEATURE_1_AND \
+ (GNU_PROPERTY_X86_UINT32_AND_LO + 0)
+
+#define GNU_PROPERTY_X86_ISA_1_NEEDED \
+ (GNU_PROPERTY_X86_UINT32_OR_LO + 0)
+#define GNU_PROPERTY_X86_FEATURE_2_NEEDED \
+ (GNU_PROPERTY_X86_UINT32_OR_LO + 1)
+
+#define GNU_PROPERTY_X86_ISA_1_USED \
+ (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0)
+#define GNU_PROPERTY_X86_FEATURE_2_USED \
+ (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1)
+
+#define GNU_PROPERTY_X86_FEATURE_1_IBT (1U << 0)
+#define GNU_PROPERTY_X86_FEATURE_1_SHSTK (1U << 1)
+
+#define GNU_PROPERTY_X86_ISA_1_CMOV (1U << 0)
+#define GNU_PROPERTY_X86_ISA_1_SSE (1U << 1)
+#define GNU_PROPERTY_X86_ISA_1_SSE2 (1U << 2)
+#define GNU_PROPERTY_X86_ISA_1_SSE3 (1U << 3)
+#define GNU_PROPERTY_X86_ISA_1_SSSE3 (1U << 4)
+#define GNU_PROPERTY_X86_ISA_1_SSE4_1 (1U << 5)
+#define GNU_PROPERTY_X86_ISA_1_SSE4_2 (1U << 6)
+#define GNU_PROPERTY_X86_ISA_1_AVX (1U << 7)
+#define GNU_PROPERTY_X86_ISA_1_AVX2 (1U << 8)
+#define GNU_PROPERTY_X86_ISA_1_FMA (1U << 9)
+#define GNU_PROPERTY_X86_ISA_1_AVX512F (1U << 10)
+#define GNU_PROPERTY_X86_ISA_1_AVX512CD (1U << 11)
+#define GNU_PROPERTY_X86_ISA_1_AVX512ER (1U << 12)
+#define GNU_PROPERTY_X86_ISA_1_AVX512PF (1U << 13)
+#define GNU_PROPERTY_X86_ISA_1_AVX512VL (1U << 14)
+#define GNU_PROPERTY_X86_ISA_1_AVX512DQ (1U << 15)
+#define GNU_PROPERTY_X86_ISA_1_AVX512BW (1U << 16)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_4FMAPS (1U << 17)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_4VNNIW (1U << 18)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_BITALG (1U << 19)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_IFMA (1U << 20)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_VBMI (1U << 21)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_VBMI2 (1U << 22)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_VNNI (1U << 23)
+#define GNU_PROPERTY_X86_ISA_1_AVX512_BF16 (1U << 24)
+
+#define GNU_PROPERTY_X86_FEATURE_2_X86 (1U << 0)
+#define GNU_PROPERTY_X86_FEATURE_2_X87 (1U << 1)
+#define GNU_PROPERTY_X86_FEATURE_2_MMX (1U << 2)
+#define GNU_PROPERTY_X86_FEATURE_2_XMM (1U << 3)
+#define GNU_PROPERTY_X86_FEATURE_2_YMM (1U << 4)
+#define GNU_PROPERTY_X86_FEATURE_2_ZMM (1U << 5)
+#define GNU_PROPERTY_X86_FEATURE_2_FXSR (1U << 6)
+#define GNU_PROPERTY_X86_FEATURE_2_XSAVE (1U << 7)
+#define GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT (1U << 8)
+#define GNU_PROPERTY_X86_FEATURE_2_XSAVEC (1U << 9)
+
+/* AArch64 specific GNU PROPERTY. */
+#define GNU_PROPERTY_AARCH64_FEATURE_1_AND 0xc0000000
+
+#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0)
+#define GNU_PROPERTY_AARCH64_FEATURE_1_PAC (1U << 1)