This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: dlclose() doesn't unload any .so that uses Boost


On Tue, May 31, 2011 at 12:17 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Tue, May 31, 2011 at 08:43:45AM +0200, J wrote:
>> I've managed to track this issue down. It looks like a bug in GCC:
>
> Most likely the difference is just that g++-4.6 emits STB_GNU_UNIQUE
> symbols while g++-4.4 doesn't. ?And, when any STB_GNU_UNIQUE symbols
> are resolved against some library, it is marked as nodelete.
> Therefore, NOTABUG.

On the GCC mailing list I've been told that this should only happen if
there is in fact some reference to the symbol from some other shared
library, and I'm not referencing boost::signals at all from the host,
so shouldn't it properly unload? If the host doesn't touch that
particular symbol in the unique symbols table and doesn't link to any
library that uses that symbol besides libchild shouldn't libchild be
allowed to unload?

This looks like a bug to me, but what do I know; if this won't be
fixed then I'll guess I'll be doing s/gnu_unique_object/object/ on the
assembly from now on.

Thanks.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]