Subject: Re: Linking against Linux binary modules
To: Thor Lancelot Simon <tls@rek.tjls.com>
From: Joerg Sonnenberger <joerg@NetBSD.org>
List: current-users
Date: 09/28/2006 12:15:40
On Thu, Sep 28, 2006 at 07:46:56AM -0400, Thor Lancelot Simon wrote:
> I have trouble believing that achieving that result (using linux
> web-browser plugins with natively compiled NetBSD browsers) will be
> anywhere near as simple as merely teaching ld.so to load linux shared
> object files.

Teaching ld.so to load Linux DSOs is indeed the easiest part (~removal
of the ABI check).

> How, for example, do you intend to solve the problem that many functions
> in the C library in Linux have the same name, but different signatures
> than their NetBSD counterparts?

The idea I discussed e.g. with Uwe was to introduce an optional translation
layer in ld.so.  Basically, what is needed is a third argument for dlopen
to specify a translation function which will be used for all further
namespace operations (e.g. rpath entries, NEEDED names, symbol names).
The rest of the processing can be kept as normal ELF usage.

So socket() would be translated to __linux_socket which is provided by a wrapper
DSO.

Joerg