tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Regarding the ULTRIX and OSF1 compats



    Date:        Sat, 16 Mar 2019 12:01:04 -0400 (EDT)
    From:        Mouse <mouse%Rodents-Montreal.ORG@localhost>
    Message-ID:  <201903161601.MAA05660%Stone.Rodents-Montreal.ORG@localhost>


  | 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



Home | Main Index | Thread Index | Old Index