aboutsummaryrefslogtreecommitdiffstats
path: root/linker/linker_phdr.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-12-02 16:16:29 -0800
committerElliott Hughes <enh@google.com>2014-12-02 16:16:29 -0800
commitb514026eb22d408da0d7090bf57b342d4ceb4097 (patch)
tree4867be5bd8f963d17ab26d1fad16b9d23e026d4b /linker/linker_phdr.cpp
parent6995c1dcb5a9ad77a54d950fc24f5aba00909b69 (diff)
downloadandroid_bionic-b514026eb22d408da0d7090bf57b342d4ceb4097.tar.gz
android_bionic-b514026eb22d408da0d7090bf57b342d4ceb4097.tar.bz2
android_bionic-b514026eb22d408da0d7090bf57b342d4ceb4097.zip
Kill <machine/exec.h>.
Bug: 18546535 Change-Id: I479e003deab21e31eb5caa5393067ed1dc558387
Diffstat (limited to 'linker/linker_phdr.cpp')
-rw-r--r--linker/linker_phdr.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/linker/linker_phdr.cpp b/linker/linker_phdr.cpp
index 61ae5ab28..ffd4de28a 100644
--- a/linker/linker_phdr.cpp
+++ b/linker/linker_phdr.cpp
@@ -29,7 +29,6 @@
#include "linker_phdr.h"
#include <errno.h>
-#include <machine/exec.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -38,6 +37,20 @@
#include "linker.h"
#include "linker_debug.h"
+static int GetTargetElfMachine() {
+#if defined(__arm__)
+ return EM_ARM;
+#elif defined(__aarch64__)
+ return EM_AARCH64;
+#elif defined(__i386__)
+ return EM_386;
+#elif defined(__mips__)
+ return EM_MIPS;
+#elif defined(__x86_64__)
+ return EM_X86_64;
+#endif
+}
+
/**
TECHNICAL NOTE ON ELF LOADING.
@@ -200,7 +213,7 @@ bool ElfReader::VerifyElfHeader() {
return false;
}
- if (header_.e_machine != ELF_TARG_MACH) {
+ if (header_.e_machine != GetTargetElfMachine()) {
DL_ERR("\"%s\" has unexpected e_machine: %d", name_, header_.e_machine);
return false;
}