aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qtmips_machine/programloader.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/qtmips_machine/programloader.cpp b/qtmips_machine/programloader.cpp
index 7722774..750fd00 100644
--- a/qtmips_machine/programloader.cpp
+++ b/qtmips_machine/programloader.cpp
@@ -41,6 +41,10 @@
#include <cstring>
#include "qtmipsexception.h"
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
using namespace machine;
ProgramLoader::ProgramLoader(const char *file) {
@@ -49,7 +53,7 @@ ProgramLoader::ProgramLoader(const char *file) {
if (elf_version(EV_CURRENT) == EV_NONE)
throw QTMIPS_EXCEPTION(Input, "Elf library initialization failed", elf_errmsg(-1));
// Open source file
- if ((this->fd = open(file, O_RDONLY, 0)) < 0)
+ if ((this->fd = open(file, O_RDONLY | O_BINARY, 0)) < 0)
throw QTMIPS_EXCEPTION(Input, QString("Can't open input elf file for reading (") + QString(file) + QString(")"), std::strerror(errno));
// Initialize elf
if (!(this->elf = elf_begin(this->fd, ELF_C_READ, NULL)))