From f4e1c379a96021497acad5fe2ded09fcdb791f58 Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Thu, 14 Feb 2019 18:32:15 +0100 Subject: Correct program loader to open ELF file in binary mode on Windows. Signed-off-by: Pavel Pisa --- qtmips_machine/programloader.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 #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))) -- cgit v1.2.3