This is the mail archive of the binutils@sourceware.cygnus.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

ELF header machine types (e_machine)


Hi, I am new to this mailing list, so forgive me if I am asking an age-old question.
 
I am an IBM-mainframer with an interest in GNU utilities (we have GCC for OS/390, for example) and Linux. Looking through the binutils-2.9.5.0.16 source code, I noticed that in /include/elf/common.h there are 2 definitions for the IBM System/370 (or S/390). One is EM_S370 (9), presumably used by Amdahl's UTS, a SVR4-variant for System/370-compatible systems, and the other is EM_I370 (0xF00F), presumably for Running Linux On the Mainframe (ROAM).
 
Questions:
1) Shouldn't there be one definition for an architecture? These two are essentially the same. The only different one _might_ be a new EM_S390 / EM_I390 for IBM's System/390 CMOS Microprocessor, while upwardly compatible with older System/370 processors, does have new unique features such as support for IEEE floating point. However, this scheme was done with Intel (EM_386 and EM_486), but appears to have been since abandoned.
2a) Are EM_PPC and EM_CYGNUS_POWERPC different processors? 2b) If not, why the two definitions?
3) Who decides what are "official" machine types? Every document I have found describing the ELF format seems to have a different list of "official" values.
 
If anyone out there can provide any help with these questions, I would be very greatful.
 
-Thanks,
David Uczen
Mainframe Systems Programmer

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]