From mboxrd@z Thu Jan 1 00:00:00 1970 From: "David and Jannette Uczen" To: Subject: ELF header machine types (e_machine) Date: Thu, 14 Oct 1999 18:38:00 -0000 Message-id: <000f01bf16ad$d1148740$9181e3d8@duczen--lap.hannaford.com> X-SW-Source: 1999-10/msg00072.html 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