Page MenuHomeFreeBSD

D42225.id128835.diff
No OneTemporary

D42225.id128835.diff

diff --git a/sys/arm64/include/asm.h b/sys/arm64/include/asm.h
--- a/sys/arm64/include/asm.h
+++ b/sys/arm64/include/asm.h
@@ -142,6 +142,42 @@
#define BTI_J
#endif
+#if defined(__ARM_FEATURE_BTI_DEFAULT)
+#if defined(__ARM_FEATURE_PAC_DEFAULT)
+/* BTI, PAC */
+#define GNU_PROPERTY_AARCH64_FEATURE_1_VAL \
+ (GNU_PROPERTY_AARCH64_FEATURE_1_BTI | GNU_PROPERTY_AARCH64_FEATURE_1_PAC)
+#else
+/* BTI, no PAC */
+#define GNU_PROPERTY_AARCH64_FEATURE_1_VAL \
+ (GNU_PROPERTY_AARCH64_FEATURE_1_BTI)
+#endif
+#elif defined(__ARM_FEATURE_PAC_DEFAULT)
+/* No BTI, PAC */
+#define GNU_PROPERTY_AARCH64_FEATURE_1_VAL \
+ (GNU_PROPERTY_AARCH64_FEATURE_1_PAC)
+#else
+/* No BTI, no PAC */
+#define GNU_PROPERTY_AARCH64_FEATURE_1_VAL 0
+#endif
+
+#if defined(__ARM_FEATURE_BTI_DEFAULT) || defined(__ARM_FEATURE_PAC_DEFAULT)
+#define GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(x) \
+ .section .note.gnu.property, "a"; \
+ .balign 8; \
+ .4byte 0x4; /* sizeof(vendor) */ \
+ .4byte 0x10; /* sizeof(note data) */ \
+ .4byte (NT_GNU_PROPERTY_TYPE_0); \
+ .asciz "GNU"; /* vendor */ \
+ /* note data: */ \
+ .4byte (GNU_PROPERTY_AARCH64_FEATURE_1_AND); \
+ .4byte 0x4; /* sizeof(property) */ \
+ .4byte (x); /* property */ \
+ .4byte 0
+#else
+#define GNU_PROPERTY_AARCH64_FEATURE_1_NOTE(x)
+#endif
+
#endif /* _MACHINE_ASM_H_ */
#endif /* !__arm__ */

File Metadata

Mime Type
text/plain
Expires
Sun, Feb 8, 7:45 PM (11 h, 54 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28490861
Default Alt Text
D42225.id128835.diff (1 KB)

Event Timeline