summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/elfdefinitions.h44
-rwxr-xr-xcommon/native-elf-format4
2 files changed, 43 insertions, 5 deletions
diff --git a/common/elfdefinitions.h b/common/elfdefinitions.h
index 810da8d4951a..2646833fb6c1 100644
--- a/common/elfdefinitions.h
+++ b/common/elfdefinitions.h
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: elfdefinitions.h 3515 2017-01-24 22:04:22Z emaste $
+ * $Id: elfdefinitions.h 3769 2019-06-29 15:15:02Z emaste $
*/
/*
@@ -72,7 +72,39 @@ _ELF_DEFINE_DF(DF_TEXTREL, 0x4, \
_ELF_DEFINE_DF(DF_BIND_NOW, 0x8, \
"process relocation entries at load time") \
_ELF_DEFINE_DF(DF_STATIC_TLS, 0x10, \
- "uses static thread-local storage")
+ "uses static thread-local storage") \
+_ELF_DEFINE_DF(DF_1_BIND_NOW, 0x1, \
+ "process relocation entries at load time") \
+_ELF_DEFINE_DF(DF_1_GLOBAL, 0x2, \
+ "unused") \
+_ELF_DEFINE_DF(DF_1_GROUP, 0x4, \
+ "object is a member of a group") \
+_ELF_DEFINE_DF(DF_1_NODELETE, 0x8, \
+ "object cannot be deleted from a process") \
+_ELF_DEFINE_DF(DF_1_LOADFLTR, 0x10, \
+ "immediate load filtees") \
+_ELF_DEFINE_DF(DF_1_INITFIRST, 0x20, \
+ "initialize object first") \
+_ELF_DEFINE_DF(DF_1_NOOPEN, 0x40, \
+ "disallow dlopen()") \
+_ELF_DEFINE_DF(DF_1_ORIGIN, 0x80, \
+ "object being loaded may refer to $ORIGIN") \
+_ELF_DEFINE_DF(DF_1_DIRECT, 0x100, \
+ "direct bindings enabled") \
+_ELF_DEFINE_DF(DF_1_INTERPOSE, 0x400, \
+ "object is interposer") \
+_ELF_DEFINE_DF(DF_1_NODEFLIB, 0x800, \
+ "ignore default library search path") \
+_ELF_DEFINE_DF(DF_1_NODUMP, 0x1000, \
+ "disallow dldump()") \
+_ELF_DEFINE_DF(DF_1_CONFALT, 0x2000, \
+ "object is a configuration alternative") \
+_ELF_DEFINE_DF(DF_1_ENDFILTEE, 0x4000, \
+ "filtee terminates filter search") \
+_ELF_DEFINE_DF(DF_1_DISPRELDNE, 0x8000, \
+ "displacement relocation done") \
+_ELF_DEFINE_DF(DF_1_DISPRELPND, 0x10000, \
+ "displacement relocation pending")
#undef _ELF_DEFINE_DF
#define _ELF_DEFINE_DF(N, V, DESCR) N = V ,
enum {
@@ -2448,7 +2480,10 @@ _ELF_DEFINE_NT(NT_PSTATUS, 10, "Linux process status") \
_ELF_DEFINE_NT(NT_FPREGS, 12, "Linux floating point regset") \
_ELF_DEFINE_NT(NT_PSINFO, 13, "Linux process information") \
_ELF_DEFINE_NT(NT_LWPSTATUS, 16, "Linux lwpstatus_t type") \
-_ELF_DEFINE_NT(NT_LWPSINFO, 17, "Linux lwpinfo_t type")
+_ELF_DEFINE_NT(NT_LWPSINFO, 17, "Linux lwpinfo_t type") \
+_ELF_DEFINE_NT(NT_FREEBSD_NOINIT_TAG, 2, "FreeBSD no .init tag") \
+_ELF_DEFINE_NT(NT_FREEBSD_ARCH_TAG, 3, "FreeBSD arch tag") \
+_ELF_DEFINE_NT(NT_FREEBSD_FEATURE_CTL, 4, "FreeBSD feature control")
#undef _ELF_DEFINE_NT
#define _ELF_DEFINE_NT(N, V, DESCR) N = V ,
@@ -2806,7 +2841,8 @@ typedef struct {
#define ELF64_R_SYM(I) ((I) >> 32)
#define ELF64_R_TYPE(I) ((I) & 0xFFFFFFFFUL)
-#define ELF64_R_INFO(S,T) (((S) << 32) + ((T) & 0xFFFFFFFFUL))
+#define ELF64_R_INFO(S,T) \
+ (((Elf64_Xword) (S) << 32) + ((T) & 0xFFFFFFFFUL))
/*
* Symbol versioning structures.
diff --git a/common/native-elf-format b/common/native-elf-format
index f29bcb16716b..cef29e75111e 100755
--- a/common/native-elf-format
+++ b/common/native-elf-format
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $Id: native-elf-format 3650 2018-11-25 12:06:28Z jkoshy $
+# $Id: native-elf-format 3735 2019-04-25 19:44:47Z jkoshy $
#
# Find the native ELF format for a host platform by compiling a
# test object and examining the resulting object.
@@ -37,6 +37,8 @@ $1 ~ "Machine:" {
elfarch = "EM_MIPS";
} else if (match($0, ".*[xX]86[-_]64")) {
elfarch = "EM_X86_64";
+ } else if (match($0, "PowerPC64")) {
+ elfarch = "EM_PPC64";
} else {
elfarch = "unknown";
}