Skip site navigation (1)Skip section navigation (2)
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>