Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!dimacs.rutgers.edu!rutgers!cbmvax!amix!ford From: ford@amix.commodore.com (Mike "Ford" Ditto) Newsgroups: comp.unix.amiga Subject: Re: A3000UX applications Message-ID: <2210@amix.commodore.com> Date: 14 May 91 01:38:15 GMT References: <2674@root44.co.uk> Organization: Commodore-Amiga Unix Development Lines: 65 Now that the flame fest has died down for a while, I'll try to explain the issue of ABI compatibility and Amiga Unix. Amiga Unix is advertised as being ABI compatible. That is, we "guarantee" that you can take an ABI compatible binary program and run it on an Amiga Unix system. We also provide software development tools that are intended to create ABI compatible binary programs, and we actively persue and resolve any complaints or claims of ABI incompatibility regarding any part of our system. We have not and will not intentionally cause Amiga Unix to be incompatible with the m68k ABI. At the present time, however, it is somewhat difficult to determine exactly what is the "official" ABI. For example, several changes have been made by Motorola since the "blue book" m68k ABI manual was published by AT&T/Unix Press. There are other issues and proposed changes still being resolved that will almost certainly change the ABI further. Because of this fact, we have not yet conducted an exhaustive study verifying compatibility between Amiga Unix and any particular revision of the m68k ABI. We intend to persue the ABI issue with Motorola, USL, and other parties interested in the m68k ABI. When the "final" m68k ABI exists, Amiga Unix will be compatible with it. Hopefully this will be in time for our version 2.0. es1@cunixb.cc.columbia.edu (Ethan Solomita) writes: > There is some other problem because AMIX is ABI compliant. ajc@root.co.uk (Tony Cleverley) writes: > I think you are wrong as far as I can see the AMIGA 3000 UX is not compliant, > for example: > > The current ABI defines the structure sigaction (see sys/signal.h) > to be: > > struct sigaction { > void (*sa_handler)(); > sigset_t sa_mask; > int sa_flags; > } > > yet the AMIGA defines it as: > > struct sigaction { > int sa_flags; > void (*sa_handler)(); > sigset_t sa_mask; > int sa_resv[2]; > } This particular header file in Amiga Unix comes directly from the group in Motorola which maintains the official ABI specification. It turns out that there was a mistake and that this structure is in fact incorrect. This is a significant incompatilibity and essentially means that Amiga Unix version 1.1 is not able to run most ABI programs. It, along with any other known ABI incompatibilities, will be fixed in a future version of Amiga Unix. -=] Ford [=- "The heart and the mind on (In Real Life: Mike Ditto) a parallel course, never ford@amix.commodore.com the two shall meet." uunet!cbmvax!ditto -- Indigo Girls ford@kenobi.commodore.com