Re: Re: [UnixOS2] libc

Ilya Zakharevich <[email protected]> Wed, 25 Jun 2003 05:17:56 -0700
Newsgroups gmane.comp.ide.emx.devel
Message-ID <[email protected]>
On Tue, Jun 24, 2003 at 06:13:51PM +0200, Stefan Neis wrote:
> > I do not see how this could be a problem.  First of all, EMX CRT DLL
> > has no exports by name, right?  [Can't check it now.]
> 
> I think so yes. But (static) libraries typically don't reference DLL
> entry points, do they? I think they just reference function names which
> get resolved to DLL entry points or whatever at link time?

Correct.

> > The problem with libraries which I meant is that a function could take
> > off_t as an argument (or a return value).  If the meaning of off_t
> > changes in the calling program, but not in the library (or visa
> > versa), this leads to problems which are extremely hard to debug.
> 
> Oh, yes. That's something I learned under Solaris and Linux and that's
> why I keep saying that following their scheme is not a very good idea.
> OTOH, if you want to continue existing libraries without recompilation,
> that's impossible to avoid.

I do not see any problem whatsoever.  C_LIBRARY_PATH should be
different, that's all.  It is easy to write a tiny script which will
sort existing libraries into 2 categories:

  a) compatible with old API only;
  b) do not call the changed API;

The newly compiled libraries may go into "b" or a third category

  c) compatible with the new API only.

As far as we do not have *many* such forks, the situation is handable.

[A part that recompiling all libraries will solve all the problems
skipped - as I said, I do not consider this feasible.]

Hope this helps,
Ilya