Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Oct 1995 19:04:34 +0100
From:      se@zpr.uni-koeln.de (Stefan Esser)
To:        "Eric L. Hernes" <erich@lodgenet.com>
Cc:        current@freebsd.org
Subject:   Re: cvs commit: src/sys/i386/ibcs2 ibcs2_ioctl.h ibcs2_ipc.h ibcs2_isc_syscall.h ibcs2_isc_sysent.c ...
Message-ID:  <199510121804.AA16416@Sysiphos>
In-Reply-To: "Eric L. Hernes" <erich@lodgenet.com> "Re: cvs commit: src/sys/i386/ibcs2 ibcs2_ioctl.h ibcs2_ipc.h ibcs2_isc_syscall.h ibcs2_isc_sysent.c ..." (Oct 12, 12:30)

next in thread | previous in thread | raw e-mail | index | archive | help
On Oct 12, 12:30, "Eric L. Hernes" wrote:
} Subject: Re: cvs commit: src/sys/i386/ibcs2 ibcs2_ioctl.h ibcs2_ipc.h ibcs
} > On Oct 11, 20:07, Eric Siegerman wrote:

} > It seems to strengthen my point, that 
} > mounting a System V file system under 
} > /compat/ibcs2 and using its bin and lib
} > directories will not work in general ...
} 
} I do more work than I care to admit on SCO.
} I've used Xenix, Sco Unix, and now the OpenServer5 crap.
} 
} Just as a matter of interest, how would you propose mounting
} a Xenix filesystem?  Xenix doesn't have nfs, and FBSD doesn't support
} Xenix (or SysV for that matter) filesystems.  You could possibly
} mount a Xenix filesystem on an SCO Unix box and then nfs from there,
} but if you already have an SCO machine, why do you need iBCS?

Well, frankly, I don't know how 
to mount an SCO file system.

The emulation code currently has
/compat/ibcs2/lib magically made
a place to look for ibcs2 shared
liberaries, and I had pointed out,
that some directory in the /usr
tree might be more appropriate.

But the same argument might hold
for Linux, where a ext2fs file 
system is said to be expected in
FreeBSD very soon ...

Since not all shared libraries are 
guaranteed to be found in the same 
directory under SCO or Linux, people 
will have to combine the mount with 
symlinks, in order to have all the 
libraries appear in one directory 
under FreeBSD. And then I want the 
directory **searched** for libraries 
to be at /usr/compat/linux rather than 
/compat/linux, since just copying the
libraries into that directory will be
the thing a "naive" user will do ...

} > We'll need to play tricks (e.g. with 
} > symlinks) to make the shared libraries 
} > appear at the place where the emulation 
} > code looks for them, and then I'd rather 
} > choose a file system, that is suitable to 
} > take a copy of those libs, in case I need
} > to install them ...
} 
} I believe that BSDi traps all system calls which deal with
} filenames (particularily open, maybe only open) and re-maps some of
} them to the sco-filesystem layout (eg /usr/spool -> /varr/spool)
} I would expect the system calls to already be trapped.
} I don't know how the old SysV shared lib scheme works, for
} example who loads the library etc...

The scheme was very simple and just
had each library compiled to a fixed
address. The library was then mapped
in to a shared memory segment, that
was mapped into the application by
crt0.o, I guess ...

There was no address fixup required,
thus there was no need for an actual 
dynamic linker.

I've got to admit, that I didn't yet
look up any details of the emulation
code, and don't know, whether they
do the path fixup like BSDi ...

Well, but my interests are mainly in
device drivers, not system emulation,
and I just wanted to point out, that 
the root filesystem was not the place
to actually **put** the ibcs2/Linux
shared libraries, and that the place
where they are looked for ought to
be womewhere below /usr IMHO ...


Regards, STefan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199510121804.AA16416>