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>