This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH glibc 1/2] aarch64: add STO_AARCH64_VARIANT_PCS and DT_AARCH64_VARIANT_PCS
- From: Szabolcs Nagy <Szabolcs dot Nagy at arm dot com>
- To: "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>
- Cc: nd <nd at arm dot com>
- Date: Thu, 23 May 2019 11:19:44 +0000
- Subject: [PATCH glibc 1/2] aarch64: add STO_AARCH64_VARIANT_PCS and DT_AARCH64_VARIANT_PCS
- References: <3c35b5f5-b13b-5e75-f0ed-2cbf788d83cf@arm.com>
STO_AARCH64_VARIANT_PCS is a non-visibility st_other flag for marking
symbols that reference functions that may follow a variant PCS with
different register usage convention from the base PCS.
DT_AARCH64_VARIANT_PCS is a dynamic tag that marks ELF modules that
have R_*_JUMP_SLOT relocations for symbols marked with
STO_AARCH64_VARIANT_PCS (i.e. have variant PCS calls via a PLT).
2019-05-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
* elf/elf.h (STO_AARCH64_VARIANT_PCS): Define.
(DT_AARCH64_VARIANT_PCS): Define.
diff --git a/elf/elf.h b/elf/elf.h
index bb13c870e2..ee7c779769 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -2864,6 +2864,13 @@ enum
#define R_AARCH64_TLSDESC 1031 /* TLS Descriptor. */
#define R_AARCH64_IRELATIVE 1032 /* STT_GNU_IFUNC relocation. */
+/* AArch64 specific values for the Dyn d_tag field. */
+#define DT_AARCH64_VARIANT_PCS (DT_LOPROC + 5)
+#define DT_AARCH64_NUM 6
+
+/* AArch64 specific values for the st_other field. */
+#define STO_AARCH64_VARIANT_PCS 0x04
+
/* ARM relocs. */
#define R_ARM_NONE 0 /* No reloc */