Re: [Jack-Devel] [Fwd: Re: [Guitarix-developer] jack session crash]
On Thu, Nov 3, 2011 at 1:02 PM, Paul Davis <[hidden]> wrote:
> On Thu, Nov 3, 2011 at 12:28 PM, Andreas Degert <[hidden]> wrote:
>
>> Thanks for solving the problem (especially Nedko).
alas, the problem is not solved.
it turns out that gcc on OS X supports a feature related to weak
linkage but not the same as it. specifically, gcc on darwin supports
__attribute__((__weak_import__)) which is not the same as
__attribute__((__weak__))
in reality, there is no support on Linux for what is described in the
JACK header files. it just so happens that building with -fPIC happens
to work, but more as a side-effect than anything intentional. __weak__
is designed as way to refer to symbols used by one library but
obtained from another, not symbols used by an executable and obtained
from a library. __weak_import__ on gcc-osx does what we actually want.
this is very confusing situation that will take some time to sort out.
-fPIC is a potential solution, and apparently has some potential
benefits because it allows the run time linker more freedom to
optimize memory layout. but i don't think that it should be *the*
solution.
its very unfortunate that the binutils chain on linux has not acquired
the functionality that was added on OS X.
--p
1320446175.9332_0.ltw:2,a <CAFa_cKkyX6eq92WHfzM2P82rbgxQm8PTrUc-GH9U36xHRSXXNw at mail dot gmail dot com>