git: c2e0dea93f71 - stable/14 - rtld: Add MD_OBJ_ENTRY to extend Struct_Obj_Entry
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 15 Jul 2024 12:38:11 UTC
The branch stable/14 has been updated by andrew:
URL: https://cgit.FreeBSD.org/src/commit/?id=c2e0dea93f71c29c353875a865857d69ad26f8d7
commit c2e0dea93f71c29c353875a865857d69ad26f8d7
Author: Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2024-05-07 15:49:53 +0000
Commit: Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2024-07-15 12:24:58 +0000
rtld: Add MD_OBJ_ENTRY to extend Struct_Obj_Entry
Add a macro the architectures can use to add per-arch fields to
Struct_Obj_Entry.
Reviewed by: kib
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D45116
(cherry picked from commit 06db20ffeca9898e5802d63f3b06caaa37c3a4ed)
---
libexec/rtld-elf/aarch64/rtld_machdep.h | 2 ++
libexec/rtld-elf/amd64/rtld_machdep.h | 2 ++
libexec/rtld-elf/arm/rtld_machdep.h | 2 ++
libexec/rtld-elf/i386/rtld_machdep.h | 2 ++
libexec/rtld-elf/powerpc/rtld_machdep.h | 2 ++
libexec/rtld-elf/powerpc64/rtld_machdep.h | 2 ++
libexec/rtld-elf/riscv/rtld_machdep.h | 2 ++
libexec/rtld-elf/rtld.h | 2 ++
8 files changed, 16 insertions(+)
diff --git a/libexec/rtld-elf/aarch64/rtld_machdep.h b/libexec/rtld-elf/aarch64/rtld_machdep.h
index b1c5e21cb505..7f7c3db865bb 100644
--- a/libexec/rtld-elf/aarch64/rtld_machdep.h
+++ b/libexec/rtld-elf/aarch64/rtld_machdep.h
@@ -37,6 +37,8 @@
struct Struct_Obj_Entry;
+#define MD_OBJ_ENTRY
+
/* Return the address of the .dynamic section in the dynamic linker. */
#define rtld_dynamic(obj) \
({ \
diff --git a/libexec/rtld-elf/amd64/rtld_machdep.h b/libexec/rtld-elf/amd64/rtld_machdep.h
index 68e51c4894f4..dc8cd59d74c0 100644
--- a/libexec/rtld-elf/amd64/rtld_machdep.h
+++ b/libexec/rtld-elf/amd64/rtld_machdep.h
@@ -35,6 +35,8 @@
struct Struct_Obj_Entry;
+#define MD_OBJ_ENTRY
+
/* Return the address of the .dynamic section in the dynamic linker. */
Elf_Dyn *rtld_dynamic_addr(void);
#define rtld_dynamic(obj) rtld_dynamic_addr()
diff --git a/libexec/rtld-elf/arm/rtld_machdep.h b/libexec/rtld-elf/arm/rtld_machdep.h
index 6a08aa5eb02c..14d482c9591d 100644
--- a/libexec/rtld-elf/arm/rtld_machdep.h
+++ b/libexec/rtld-elf/arm/rtld_machdep.h
@@ -36,6 +36,8 @@
struct Struct_Obj_Entry;
+#define MD_OBJ_ENTRY
+
/* Return the address of the .dynamic section in the dynamic linker. */
#define rtld_dynamic(obj) (&_DYNAMIC)
diff --git a/libexec/rtld-elf/i386/rtld_machdep.h b/libexec/rtld-elf/i386/rtld_machdep.h
index 6afb5e069cb5..15b23d187ed2 100644
--- a/libexec/rtld-elf/i386/rtld_machdep.h
+++ b/libexec/rtld-elf/i386/rtld_machdep.h
@@ -35,6 +35,8 @@
struct Struct_Obj_Entry;
+#define MD_OBJ_ENTRY
+
/* Return the address of the .dynamic section in the dynamic linker. */
#define rtld_dynamic(obj) \
((const Elf_Dyn *)((obj)->relocbase + (Elf_Addr)&_DYNAMIC))
diff --git a/libexec/rtld-elf/powerpc/rtld_machdep.h b/libexec/rtld-elf/powerpc/rtld_machdep.h
index 7b106b7e38d7..8bdd2e0aaaeb 100644
--- a/libexec/rtld-elf/powerpc/rtld_machdep.h
+++ b/libexec/rtld-elf/powerpc/rtld_machdep.h
@@ -35,6 +35,8 @@
struct Struct_Obj_Entry;
+#define MD_OBJ_ENTRY
+
/* Return the address of the .dynamic section in the dynamic linker. */
#define rtld_dynamic(obj) (&_DYNAMIC)
diff --git a/libexec/rtld-elf/powerpc64/rtld_machdep.h b/libexec/rtld-elf/powerpc64/rtld_machdep.h
index 7e6f13940daf..cb948b9cb689 100644
--- a/libexec/rtld-elf/powerpc64/rtld_machdep.h
+++ b/libexec/rtld-elf/powerpc64/rtld_machdep.h
@@ -35,6 +35,8 @@
struct Struct_Obj_Entry;
+#define MD_OBJ_ENTRY
+
/* Return the address of the .dynamic section in the dynamic linker. */
#define rtld_dynamic(obj) (&_DYNAMIC)
diff --git a/libexec/rtld-elf/riscv/rtld_machdep.h b/libexec/rtld-elf/riscv/rtld_machdep.h
index 023245fbe6a4..381eba530c2d 100644
--- a/libexec/rtld-elf/riscv/rtld_machdep.h
+++ b/libexec/rtld-elf/riscv/rtld_machdep.h
@@ -42,6 +42,8 @@
struct Struct_Obj_Entry;
+#define MD_OBJ_ENTRY
+
uint64_t set_gp(struct Struct_Obj_Entry *obj);
/* Return the address of the .dynamic section in the dynamic linker. */
diff --git a/libexec/rtld-elf/rtld.h b/libexec/rtld-elf/rtld.h
index 6311b3e6cc7f..a4f2c35cc03f 100644
--- a/libexec/rtld-elf/rtld.h
+++ b/libexec/rtld-elf/rtld.h
@@ -277,6 +277,8 @@ typedef struct Struct_Obj_Entry {
bool unholdfree : 1; /* unmap upon last unhold */
bool doomed : 1; /* Object cannot be referenced */
+ MD_OBJ_ENTRY;
+
struct link_map linkmap; /* For GDB and dlinfo() */
Objlist dldags; /* Object belongs to these dlopened DAGs (%) */
Objlist dagmembers; /* DAG has these members (%) */