[OpenAFS-devel] Initial concern about Linux 2.4 patch

Jeffrey Hutzelman jhutz@cmu.edu
Sun, 5 Nov 2000 19:32:23 -0500 (EST)


On Sun, 5 Nov 2000, Chas Williams wrote:

> >* it appears to add a sys_name of i386_linux24.  I'm not sure that is
> >  a good idea; I believe that the ABI for Linux has been fairly stable
> 
> i made that choice because its just standard 'afs' practice.  that
> doesnt make it right though.  solaris 5.6 5.7 and 5.8 all share the
> same abi, but they have diff afs systypes

Unfortunately, I think you're both missing a key point here -- all modern
Linux systems use glibc, which defines the ABI that applications see, even
for system calls.  Systems running 2.0, 2,2, and 2,4 kernels will all have
exactly the same ABI if they are running the same glibc, and two systems
both running the same 2.2.x kernel will have different ABI's if they are
using different versions of glibc.

Unfortunately, the folks at Transarc did not understand this, and used the
sysname 'i386_linux22' for their port because it was targeted at 2.2.x
kernels, even though the distribution they targeted (RedHat 5.2) used the
same glibc as the existing i386_linux3 systype.  Worse, they _kept_ the
i386_linux22 sysname when they switched to supporting RedHat 6.x, which
uses a newer glibc with a different and not-entirely-compatible ABI.

> >I am not sure that there is any easy way of addressing these concerns.
> 
> perhaps renaming i386_linux2[24] to i386_linux2?

Um.  No.  i386_linux2 refers to the libc5 ABI (which was used primarily
with 2.0 kernels, but also with late 1.2 kernels as well, IIRC).  The name
change you're suggesting would result in two completely incompatible ABI's
using the same sysname, which is far worse than having two sysnames for
one ABI.


In any event, sysname assignment is going to be a messy issue.  For
OpenAFS, we should let the gatekeepers handle sysname assignment.
Ideally, developers should get a new sysname assigned _before_ starting
to distribute code that uses it, in order to minimize the number of people
who end up using non-standard sysnames because they picked up an early
patch and started using it.

We'll still have the problem of having both gatekeepers and IBM developers
doing sysname assignment, which I think is something the gatekeepers and
elders need to work out with IBM _soon_.  When IBM decided to port AFS to
Linux, they completely ignored the sysname choices made by the authors of
the existing (and widely-used) contributed port to the same platform.  We
need to make sure this doesn't happen again with other ports that
originate within OpenAFS.

-- Jeffrey T. Hutzelman (N3NHS) <jhutz+@cmu.edu>
   Sr. Research Systems Programmer
   School of Computer Science - Research Computing Facility
   Carnegie Mellon University - Pittsburgh, PA