Subject: Re: dl* functions on ELF platforms
To: None <soda@sra.co.jp>
From: T.SHIOZAKI <AoiMoe@imou.to>
List: tech-userlevel
Date: 03/01/2000 03:26:49
From: Noriyuki Soda <soda@sra.co.jp>
Subject: Re: dl* functions on ELF platforms
Date: Wed, 1 Mar 2000 02:42:48 +0900 (JST)
Message-ID: <200002291742.CAA01843@srapc342.sra.co.jp>

> As the orignal mail describes, currently libc functions cannot call
> dlopen(3) and related functions on ELF platforms.
> Please note that locale(3) implementation have to call dl*(3)
> functions (like commercial UNIXes).

For example, I invoke nm(1) and ldd(1) on Solaris7 just now:

% nm /usr/lib/libc.so | grep dlopen
[3072]  |         0|       0|FUNC |GLOB |0    |UNDEF  |_dlopen
[4229]  |         0|       0|FUNC |GLOB |0    |UNDEF  |dlopen
[1268]  |    653296|      13|OBJT |LOCL |0    |16     |dlopen_format
[1267]  |    653292|       4|OBJT |LOCL |0    |16     |dlopen_version
% ldd /usr/lib/libc.so
        libdl.so.1 =>    /usr/lib/libdl.so.1
% nm /usr/lib/libdl.so.1 | grep dlopen
[27]    |      2164|       8|FUNC |GLOB |0    |7      |_dlopen
[44]    |      2164|       8|FUNC |WEAK |0    |7      |dlopen

Probably, Solaris7 locale stuff uses _dl* functions in libdl.so .


> What is the best way to solve this problem?

Such use of libdl.so is the one of approach to solve this problem.
However, I personally think that it is not necessary to separate
into libdl.so .
It seems enough for dl* to be defined in libc.so, doesn't it?

--
Takuya SHIOZAKI - Chair of IMOU.
The I18n/M17n project On Unix environments (IMOU), Japan.