summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2009-07-27 00:50:55 -0700
committerAli Saidi <saidi@eecs.umich.edu>2009-07-27 00:50:55 -0700
commit0a18bc0d6cdcbf68f9bf01ae98ce0f678c62f16f (patch)
treef069a25a873934bb5541cf1674e13a94cc1c692a
parent6c463135561796a3d26709d0498f300717ceba83 (diff)
downloadgem5-0a18bc0d6cdcbf68f9bf01ae98ce0f678c62f16f.tar.xz
ARM: Detect OABI binaries and complain that they're no-longer supported.
-rw-r--r--src/base/loader/elf_object.cc4
-rw-r--r--src/base/loader/object_file.hh3
-rw-r--r--src/sim/process.cc4
3 files changed, 8 insertions, 3 deletions
diff --git a/src/base/loader/elf_object.cc b/src/base/loader/elf_object.cc
index 16fc698dd..15ad88f76 100644
--- a/src/base/loader/elf_object.cc
+++ b/src/base/loader/elf_object.cc
@@ -107,7 +107,6 @@ ElfObject::tryFile(const string &fname, int fd, size_t len, uint8_t *data)
{
case ELFOSABI_LINUX:
- case ELFOSABI_ARM:
opSys = ObjectFile::Linux;
break;
case ELFOSABI_SOLARIS:
@@ -116,6 +115,9 @@ ElfObject::tryFile(const string &fname, int fd, size_t len, uint8_t *data)
case ELFOSABI_TRU64:
opSys = ObjectFile::Tru64;
break;
+ case ELFOSABI_ARM:
+ opSys = ObjectFile::LinuxArmOABI;
+ break;
default:
opSys = ObjectFile::UnknownOpSys;
}
diff --git a/src/base/loader/object_file.hh b/src/base/loader/object_file.hh
index 73df5caf6..e511451b7 100644
--- a/src/base/loader/object_file.hh
+++ b/src/base/loader/object_file.hh
@@ -59,7 +59,8 @@ class ObjectFile
UnknownOpSys,
Tru64,
Linux,
- Solaris
+ Solaris,
+ LinuxArmOABI
};
protected:
diff --git a/src/sim/process.cc b/src/sim/process.cc
index c12101069..55bd2f209 100644
--- a/src/sim/process.cc
+++ b/src/sim/process.cc
@@ -748,7 +748,9 @@ LiveProcess::create(LiveProcessParams * params)
case ObjectFile::Linux:
process = new ArmLinuxProcess(params, objFile);
break;
-
+ case ObjectFile::LinuxArmOABI:
+ fatal("M5 does not support ARM OABI binaries. Please recompile with an"
+ " EABI compiler.");
default:
fatal("Unknown/unsupported operating system.");
}