From mboxrd@z Thu Jan 1 00:00:00 1970 From: linas@linas.org To: uczen@mint.net (David and Jannette Uczen) Cc: linas@linas.org, ian@zembu.com, binutils@sourceware.cygnus.com, cas30@oes.amdahl.com, LINUX-VM@VM.MARIST.EDU Subject: Re: IBM S/370 and binutils Date: Sat, 30 Oct 1999 11:45:00 -0000 Message-id: <199910301913.OAA15239@shadygrove.linas.org> References: <003401bf2275$bc5d1c80$4181e3d8@duczen--lap.hannaford.com> X-SW-Source: 1999-10/msg00180.html Hi David, It's been rumoured that David and Jannette Uczen said: > > You should be able to get an ABI from Amdahl Corporation, through UTS > Technical Support. I have contacted a Chris A. Swartout > (cas30@oes.amdahl.com), who verified that the value of EM_S370 (9) is used > for IBM System/370 Processors. This value still exists in the binutils > source (/binutils/include/elf/common.h). > I have had the value officially registered with SCO (registry@sco.com). A > new ABI is going to be published soon. > I myself am trying to get ABI information, but haven't heard back yet. You apologized for a long overview in your last note, so let me do the same here. Be aware that there are multiple ABI specs. The one kept by SCO outlines the structure of the ELF file format that is common to *all* ELF-based architectures. You can download this spec as a PDF file from the SCO website; my webpage gives the pointer to it. The binutils contain a back-end that knows how to manipulate this geenric file format. Seperately, there are processor-specific ABI's that define things like the stack layout, the static linkage and register conventions, the dynamic linkage mechanisms, and occasionally even the system call interfaces. I beleive SCO maintains the Intel ABI, Sun maintains the PowerPC ABI, and SGI the MIPS ABI. It is this later document, that hopefully Amdahl maintains for the IBM processors (isn't it a curious accident of fate that processor ABI's seem to be maintained by competitors?). In the gnu scheme of things, stack layout, register conventions are handled by the compiler gcc. Dynamic linking is handled mostly by the binutils ld loader, with assist from gcc. The system call interfaces are a shared responsibility between the C Library glibc and the kernel (Linux or UTS in Amdahl's case). As you can see, ABI conformance has prevasive effects, and full, 100% conformance can be a rather overwhelming task, especially when subtlties with glibc and the OS kernel enter the picture. --linas