See attached, generated as follows:

% echo "global _start\n_start: hlt" > test.asm
% nasm -f elf64 test.asm
% ld -static test.o
% build/X86_SE/m5.debug configs/example/se.py -c a.out
M5 Simulator System

Copyright (c) 2001-2008
The Regents of The University of Michigan
All Rights Reserved


M5 compiled Nov 17 2008 12:39:07
M5 revision 5751:54cb03a1a577549cd113bdc2dcaae9b10016aae2
M5 commit date Mon Nov 17 11:22:16 2008 -0800
M5 started Nov 20 2008 20:22:58
M5 executing on phenom
command line: build/X86_SE/m5.debug configs/example/se.py -c a.out
Global frequency set at 1000000000000 ticks per second
fatal: Unknown/unsupported operating system.
 @ cycle 0
[create:build/X86_SE/sim/process.cc, line 704]
Memory Usage: 583452 KBytes



On Thu, Nov 20, 2008 at 8:14 PM, Ali Saidi <[EMAIL PROTECTED]> wrote:
> Could someone send me a binary that doesn't get recognized? I
> implemented the .note-ABI-tag code to figure out the OS/Arch when it
> wasn't set on the binary and that section in the file should still
> exist. I want to figure out what is going on there.
>
> Thanks,
> Ali
>
> On Nov 20, 2008, at 10:48 PM, Steve Reinhardt wrote:
>
>> changeset db1653549204 in /z/repo/m5
>> details: http://repo.m5sim.org/m5?cmd=changeset;node=db1653549204
>> description:
>>       Assume files w/o obvious OS are Linux (with warning)
>>       instead of giving a fatal error.
>>
>> diffstat:
>>
>> 1 file changed, 3 insertions(+)
>> src/sim/process.cc |    3 +++
>>
>> diffs (85 lines):
>>
>> diff -r 32ec0a0e41b2 -r db1653549204 src/sim/process.cc
>> --- a/src/sim/process.cc      Mon Nov 17 12:41:50 2008 -0800
>> +++ b/src/sim/process.cc      Thu Nov 20 19:08:46 2008 -0800
>> @@ -655,18 +655,22 @@
>>              "executable as a static binary and try again.\n");
>>
>> #if THE_ISA == ALPHA_ISA
>> +    if (objFile->getArch() != ObjectFile::Alpha)
>> +        fatal("Object file architecture does not match compiled ISA
>> (Alpha).");
>> +
>>     if (objFile->hasTLS())
>>         fatal("Object file has a TLS section and single threaded TLS
>> is not\n"
>>               "       currently supported for Alpha! Please
>> recompile your "
>>               "executable with \n       a non-TLS toolchain.\n");
>>
>> -    if (objFile->getArch() != ObjectFile::Alpha)
>> -        fatal("Object file architecture does not match compiled ISA
>> (Alpha).");
>>     switch (objFile->getOpSys()) {
>>       case ObjectFile::Tru64:
>>         process = new AlphaTru64Process(params, objFile);
>>         break;
>>
>> +      case ObjectFile::UnknownOpSys:
>> +        warn("Unknown operating system; assuming Linux.");
>> +        // fall through
>>       case ObjectFile::Linux:
>>         process = new AlphaLinuxProcess(params, objFile);
>>         break;
>> @@ -675,9 +679,13 @@
>>         fatal("Unknown/unsupported operating system.");
>>     }
>> #elif THE_ISA == SPARC_ISA
>> -    if (objFile->getArch() != ObjectFile::SPARC64 && objFile-
>> >getArch() != ObjectFile::SPARC32)
>> +    if (objFile->getArch() != ObjectFile::SPARC64 &&
>> +        objFile->getArch() != ObjectFile::SPARC32)
>>         fatal("Object file architecture does not match compiled ISA
>> (SPARC).");
>>     switch (objFile->getOpSys()) {
>> +      case ObjectFile::UnknownOpSys:
>> +        warn("Unknown operating system; assuming Linux.");
>> +        // fall through
>>       case ObjectFile::Linux:
>>         if (objFile->getArch() == ObjectFile::SPARC64) {
>>             process = new Sparc64LinuxProcess(params, objFile);
>> @@ -690,6 +698,7 @@
>>       case ObjectFile::Solaris:
>>         process = new SparcSolarisProcess(params, objFile);
>>         break;
>> +
>>       default:
>>         fatal("Unknown/unsupported operating system.");
>>     }
>> @@ -697,9 +706,13 @@
>>     if (objFile->getArch() != ObjectFile::X86)
>>         fatal("Object file architecture does not match compiled ISA
>> (x86).");
>>     switch (objFile->getOpSys()) {
>> +      case ObjectFile::UnknownOpSys:
>> +        warn("Unknown operating system; assuming Linux.");
>> +        // fall through
>>       case ObjectFile::Linux:
>>         process = new X86LinuxProcess(params, objFile);
>>         break;
>> +
>>       default:
>>         fatal("Unknown/unsupported operating system.");
>>     }
>> @@ -707,6 +720,9 @@
>>     if (objFile->getArch() != ObjectFile::Mips)
>>         fatal("Object file architecture does not match compiled ISA
>> (MIPS).");
>>     switch (objFile->getOpSys()) {
>> +      case ObjectFile::UnknownOpSys:
>> +        warn("Unknown operating system; assuming Linux.");
>> +        // fall through
>>       case ObjectFile::Linux:
>>         process = new MipsLinuxProcess(params, objFile);
>>         break;
>> @@ -718,6 +734,9 @@
>>     if (objFile->getArch() != ObjectFile::Arm)
>>         fatal("Object file architecture does not match compiled ISA
>> (ARM).");
>>     switch (objFile->getOpSys()) {
>> +      case ObjectFile::UnknownOpSys:
>> +        warn("Unknown operating system; assuming Linux.");
>> +        // fall through
>>       case ObjectFile::Linux:
>>         process = new ArmLinuxProcess(params, objFile);
>>         break;
>> _______________________________________________
>> m5-dev mailing list
>> [email protected]
>> http://m5sim.org/mailman/listinfo/m5-dev
>>
>
> _______________________________________________
> m5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/m5-dev
>

Attachment: a.out
Description: Binary data

_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to