Date: Thu, 7 Nov 1996 21:00:37 +0500 (ESK) From: "Serge A. Babkin" <babkin@hq.icb.chel.su> To: erich@lodgenet.com (Eric L. Hernes) Cc: hackers@freebsd.org, marc@nietzsche.bowtie.nl.hq.icb.chel.su, vadim@tversu.ac.ru, lenzi@bsi.com.br, babkin@hq.icb.chel.su (Serge A. Babkin) Subject: Re: COFF->BSD converter Message-ID: <199611071600.VAA25791@hq.icb.chel.su> In-Reply-To: <199611042234.QAA02056@jake.lodgenet.com> from "Eric L. Hernes" at Nov 4, 96 04:34:37 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> > "Serge A. Babkin" writes: > >I wrote the COFF -> BSD object file converter. It needs more extensive > >testing but it works for now. Now the compatibility library and > >set of headers are needed to use it. I don't know how long would it > >take from me to write them. So if anyone can suggest any help > >it will be gladly accepted. The possible benefits from this project are: > > > > Cool, but doesn't objcopy do the conversion if properly configured? Hm, I don't know. Is objcopy another thing from binutils ? > What compat libraries and headers do you need? Is the stuff from linux' > ibcs2 any help? The following things can be included in a converted executable file: 1. SCO ojbect files. Need: to be converted to BSD format (done). Libraries designed for SCO can be included in this cathegory. Converting, say, Oracle libraries is legal but I think converting SCO libraries like curses etc. are illegal. 2. SCO source files. They are often used as a kind of tuning. Need: to be compiled using SCO or SCO-like header files. For the first time the native SCO headers can be used, later the original headers defining the same things are needed for legal reasons. 3. Compatibility libraries. They are supposed to be written in BSD but implement SCO API. Some functions are the same as in BSD (like open()), some functions are different (like setpgrp()), some functions have different implementation of data structures (like stat() or fopen() or lseek()), some functions are missing in BSD but can be implemented at least in simplified form (like aio_*()), some functions can't be implemented in BSD just because they need some kernel level support (like TLI). The idea is to implement them (except the last one) to get as much of API as possible. It wolud be not bad to save original BSD functions in case of namespace collisions by adding something like "_bsd_" before their names and get the ability to use both APIs at the same time. I have implemented stdio functions now because they were the first thing needed for testing. Need: careful comparsion of SCO and BSD API and creating as many compatibility libraries from BSD ones as possible. 4. BSD object files. If they want to use the functions that are superceeded by SCO API they need to be converted to use functions with "_bsd_" added instead of them. Converter needs to be written but seems to be simple. Perhaps the iBSC2 support can't help here (except for adding some kernel features). > >- getting semi-native version of Oracle (or any other product distributed as > >set of object files) > > > >- using some libraries (say, Motif) converted from SCO (it's possible > >to get personal SCO license for free, so why do not use some > >godd things from it ?) > > because the free SCO is ELF :( It has binary files in ELF but libraries are both for ELF and COFF. > Is anyone working on ELF support > for SCO? I'm wondering this too. :-) -SB
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611071600.VAA25791>