Port-vax archive

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

Re: COMPAT_IBCS2 on Vax



Le 02/08/2017 à 23:02, Kamil Rytarowski a écrit :
On 02.08.2017 21:10, Maxime Villard wrote:
Le 02/08/2017 à 16:42, Kamil Rytarowski a écrit :
On 02.08.2017 15:27, Johnny Billquist wrote:
On 2017-08-02 14:44, Maxime Villard wrote:
Le 02/08/2017 à 14:21, Kamil Rytarowski a écrit :
On 02.08.2017 11:34, Maxime Villard wrote:
Hi,
I see that the Vax GENERIC kernel has COMPAT_IBCS2 enabled by
default.
But what
exactly is it doing here? iBCS2 is a standard designed for x86 CPUs,
and
it has
nothing to do with Vax.

Is there something that I'm missing? If so, it would be good to
enlighten the
man page.

Thanks,
Maxime

This looks like SVR3 compatibility, x86 variation of it is called
IBCS2.

Yes, I guessed that when reading the entry in GENERIC; but shouldn't
it be
renamed, or at least, made a little less confusing? In the man page for
example, we could say that iBCS2 stands for SVR3 on Vax, even if it is
called
iBCS2...

I would vote for renaming. iBCS2 is something that is totally cryptic to
me. SVR3 is something I would expect most people to understand what
it is.
But I suspect that also means renaming it for the x86 folks, and I
wonder how easy it might be to get them onboard.

    Johnny


I would keep it as it is, and improve documentation.


That's what I would do too.

In fact, I don't understand for which specific purpose compat_ibcs2 was
written. Was it written to be a compat for SVR3, but called iBCS2 for some
reason? (in which case, it would be suspicious to have it on i386.) Or
was it
intended to be the real x86-specific iBCS2? (in which case, it would be
suspicious to have it on Vax.)


It started as compat_ibcs2 which was SVR4 (ELF) i386.
It was extended with SCO UNIX SVR3 (IBCS2 COFF) i386.
Later there was added SCO UNIX SVR3 (IBCS2 XAOUT) i386.

The compat_ibcs2 i386 code was reused for DEC VAX SVR3.

The man page is not particularly enlightening, and I fear that in order to
figure out which compat (or which mix of both) compat_ibcs2 was meant to
be,
we will have to read the code and compare it with the iBCS2
specification. I
couldn't find this spec on the internet.


It started as SVR4 i386. IBCS2 ELF was renamed to compat_svr4, and
compat_ibcs2 was used for i386 SVR3.

I think that the ibcs2 evaluated as an alias for SVR3. I don't know
whether somebody reused this name on original VAX UNIX.

I proposed to keep it as it is, because there are more aliases like i386
that have not clear meaning.

Alright, thanks for the archeological digging.

I still I'm not sure what exactly this all means: if compat_ibcs2 is in fact
compat_svr3, and if the real iBCS2 implementation is in fact compat_svr4, what
is compat_svr4 doing on sparc/sparc64?

Again, iBCS2 is a standard for x86; does this standard happen to be compatible
with the sparc-like SVR4? Sorry if I'm being dumb, but this does not seem
obvious to me at all.

Maxime


Home | Main Index | Thread Index | Old Index