From: michael.haubenwall...@ssi-schaefer.com At: Jul  6 2015 10:50:50
To: Daniel Ruoso (BLOOMBERG/ 731 LEX)
Cc: libtool-patches@gnu.org
Subject: Re: [PATCH] AIX SONAME emulation, simplified implementation

On 06/24/2015 03:34 PM, Daniel Ruoso (BLOOMBERG/ 731 LEX) wrote:
> This patch offers a simplified implementation of a SONAME-like behavior 
> emulation.
I've tried this variant of soname-emulation too, but discovered the one using
the "lib.so.v(shr.o,shr.imp)" archive (=svr4) as the more reasonable compromise.
Is there a specific reason you need/want this simplified implementation?

The main reason is actually non-libtool build systems, where I have to 
implement this
by hand. The .so as text file is a much simpler implementation for situations 
where I have
to torture a hand-rolled build-system into producing a versionable shared 
object.

> This is different in the sense that it doesn't add archives disguised as .so 
> files,
Yeah, instead it does provide plain text files disguised as .so files.

Besides that, there's potential for more different confusion:

*) Linking with "/path/to/lib.so" produces different result than 
   linking with "/path/to/lib.so.v" (difference is in the runpath).
*) dlopen("lib.so") fails, while dlopen("lib.so.v") does work.
*) Provides two distinct files, instead of one single file with symlinks.

Those are fair points, I haven't considered them since all my AIX builds happen 
in very
controlled setups.

I could maybe argue that the dlopen case is a degenerate case, because the
runtime interface of a versioned shared library is its SONAME, not the 
unversioned .so,
and for shared objects that are intended to be dlopen'ed (which libtool calls 
modules),
my patch won't affect them.


> and instead relies on the fact that the AIX linker will take an import file 
> when

> looking for -l<foo>, and will record what the import file says.
This very detail isn't anything different compared to aix-soname=svr4.

Fair point again...

I think the main problem is that we implemented this patches in parallel, but I 
forgot to
release mine for a long time, and you did a much better job at it :).

I'll investigate how hard would it be to use your version of it for libtool 
projects
(even if I still do the simplified version for hand-rolled build systems).

daniel


Reply via email to