Date: Sat, 16 Mar 2019 12:01:04 -0400 (EDT) From: Mouse <mo...@rodents-montreal.org> Message-ID: <201903161601.maa05...@stone.rodents-montreal.org>
| True as far as it goes. But if there is no Ultrix ABI for SPARC, there | is nothing to map. I think you are deliberately missing the point. the ultric compat layer does stuff like alter structure contents for some calls, alter ioctl numbers, (etc etc) - all of that can be tested by an application that knows what to expect on any architecture at all. I didn't look, but there are also potentially different signal numbers, different errno values, ... lots like that which can be different from system to system and which ccould easily, if we provided one extra small hook, be tested anywhere. Sure, there will be some things we cannot test that way, like correct operation of whatever magic instruction a vax, alpha, pmax, etc uses to invoke a system call, and which registers contain the args ad get the result, etc - but that part is only a small part of the compat code. | It sounds as though you are proposing to, to pick a concrete example | for convenience of language, design a SPARC ABI which is in some ways | similar to the Ultrix ABI for VAX, then use that to test COMPAT_ULTRIX | on SPARC. Not quite that, but that's not all that far away. | This would, perhaps, help find some of the more egregious bugs. It isn't the egrariousness of the bug that distinguishes what can be dound and what not (and clearly testing on a smilar architecture, if possible, so we get correct endianness, char signedness, etc, would help) but a lot of the internal bugs (like the issues of locking etc) can be tested that way - they're not really part of the ABI, they're just necessary underneath to implement the functionality. And those are the parts that keep on changing that people are referring to as an issue. No-one is going to alter the way that an ultrix vax binary invokes a system call - if that worked 20 years ago, it still works today. It is how the compat code interfaces to the rest of the system, which is where it gets more problematic, and that's the part that can be tested without needing to worry about what architecture is underneath. kre