[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: Re: KPluginLoader ==> cannot load any more object with static TLS
From: Stephane MANKOWSKI <stephane () mankowski ! fr>
Date: 2012-11-03 19:06:49
Message-ID: 50956B49.2030404 () mankowski ! fr
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
Hi All,
I am progressing.
If I call a plasma _static_ method (as const KPluginInfo::List skglist =
Plasma::Applet::listAppletInfo("", "skrooge");) in my plugin, the I have
the error "*dlopen: cannot load any more object with static TLS*".
If I comment this line, then the plugin is loaded without error.
Of course, I need to call this static method, so what should I do?
Should I move this call in an other library which is not a plugin?
Regards,
Stephane
Le 01/11/2012 21:12, Stephane MANKOWSKI a écrit :
> Hi,
>
> I don't know if this is a coincidence or not but Skrooge is not able
> to load /*_only the plugins using "Plasma" APIs_*/ any more
> (The same code works on kubuntu 12.04 but not on 12.10).
>
> Do you think I am on the right track?
> Do you have some advice to find the correction?
>
> Thank you.
>
> Le 31/10/2012 19:09, Stephane MANKOWSKI a écrit :
> > Hi,
> >
> > Thank you for your answer.
> > Now, I know the reason of the error (not due to KDE or Skrooge, due
> > to libc) ...
> > ... do you know how to repair it?
> >
> > Do I have to put special linking "tags" in the CMakeLists.txt of my
> > plugins?
> > Do I have to open a bug on KPluginLoader?
> >
> > Is somebody else has the same kind of issue with plugins?
> >
> > Thank you.
> >
> > Le 31/10/2012 15:30, Sune Vuorela a écrit :
> > > On 2012-10-30, Stephane MANKOWSKI <stephane@mankowski.fr> wrote:
> > > > On kubuntu 12.04 (with KDE 4.9.1), all plugins were successfully
> > > > loaded.
> > > > On kubuntu 12.10 (with KDE 4.9.2), some plugins are not loaded due
> > > > to a=20
> > > > NULL pointer returned by /*loader.factory()*/
> > > > I didn't change the code of Skrooge in between.
> > > >
> > > > If I print the error message returned by /*loader.errorString()*/,
> > > > I get=20
> > > > this:
> > > > /*dlopen: cannot load any more object with static TLS*/
> > > >
> > > > I don't understand this error.
> > > > What does it mean?
> > > > What should I do to be able to load all plugins like on previous
> > > > version?
> > > the error is coming from libdl (the thing that is a few layers
> > > underneath kpluginloader). And it is apparantly because there isn't
> > > room
> > > in the DTV to initalize the static TLS.
> > > TLS is short for Threaded Local Storage (not related to ssl-TLS)
> > >
> > > the code is in
> > > http://sourceware.org/git/?p=glibc.git;a=blob;f=elf/dl-open.c;h=9c39a34a4b0baafd93f37b1364c10724b0fa6d9b;hb=HEAD \
> > >
> > > line 546
> > >
> > > /Sune
> > > - who don't fully understand the email he is writing
> > >
> > >
> > > > > Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to
> > > > > unsubscribe <<
> >
> >
> > > > Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to
> > > > unsubscribe <<
>
>
>
> > > Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[Attachment #5 (text/html)]
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi All,<br>
<br>
I am progressing.<br>
If I call a plasma <u>static</u> method (as const KPluginInfo::List
skglist = Plasma::Applet::listAppletInfo("", "skrooge");) in my
plugin, the I have the error "<b>dlopen: cannot load any more object
with static TLS</b>".<br>
If I comment this line, then the plugin is loaded without error.<br>
<br>
Of course, I need to call this static method, so what should I do?<br>
Should I move this call in an other library which is not a plugin?<br>
<br>
Regards,<br>
Stephane<br>
<br>
<div class="moz-cite-prefix">Le 01/11/2012 21:12, Stephane MANKOWSKI
a écrit :<br>
</div>
<blockquote cite="mid:5092D7A2.8040203@mankowski.fr" type="cite">
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
Hi,<br>
<br>
I don't know if this is a coincidence or not but Skrooge is not
able to load <i><b><u>only the plugins using "Plasma" APIs</u></b></i>
any more <br>
(The same code works on kubuntu 12.04 but not on 12.10).<br>
<br>
Do you think I am on the right track?<br>
Do you have some advice to find the correction?<br>
<br>
Thank you.<br>
<br>
<div class="moz-cite-prefix">Le 31/10/2012 19:09, Stephane
MANKOWSKI a écrit :<br>
</div>
<blockquote cite="mid:5091694B.50105@mankowski.fr" type="cite">Hi,
<br>
<br>
Thank you for your answer. <br>
Now, I know the reason of the error (not due to KDE or Skrooge,
due to libc) ... <br>
... do you know how to repair it? <br>
<br>
Do I have to put special linking "tags" in the CMakeLists.txt of
my plugins? <br>
Do I have to open a bug on KPluginLoader? <br>
<br>
Is somebody else has the same kind of issue with plugins? <br>
<br>
Thank you. <br>
<br>
Le 31/10/2012 15:30, Sune Vuorela a écrit : <br>
<blockquote type="cite">On 2012-10-30, Stephane MANKOWSKI <a
moz-do-not-send="true" class="moz-txt-link-rfc2396E"
href="mailto:stephane@mankowski.fr"><stephane@mankowski.fr></a>
wrote: <br>
<blockquote type="cite">On kubuntu 12.04 (with KDE 4.9.1), all
plugins were successfully loaded. <br>
On kubuntu 12.10 (with KDE 4.9.2), some plugins are not
loaded due to a <br>
NULL pointer returned by /*loader.factory()*/ <br>
I didn't change the code of Skrooge in between. <br>
<br>
If I print the error message returned by
/*loader.errorString()*/, I get <br>
this: <br>
/*dlopen: cannot load any more object with static TLS*/ <br>
<br>
I don't understand this error. <br>
What does it mean? <br>
What should I do to be able to load all plugins like on
previous version? <br>
</blockquote>
the error is coming from libdl (the thing that is a few layers
<br>
underneath kpluginloader). And it is apparantly because there
isn't room <br>
in the DTV to initalize the static TLS. <br>
TLS is short for Threaded Local Storage (not related to
ssl-TLS) <br>
<br>
the code is in <br>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://sourceware.org/git/?p=glibc.git;a=blob;f=elf/dl-open.c;hœ39a34a4b0baafd93 \
f37b1364c10724b0fa6d9b;hb=HEAD">http://sourceware.org/git/?p=glibc.git;a=blob;f=elf/dl-open.c;hœ39a34a4b0baafd93f37b1364c10724b0fa6d9b;hb=HEAD</a>
<br>
line 546 <br>
<br>
/Sune <br>
- who don't fully understand the email he is writing <br>
<br>
<br>
<blockquote type="cite">
<blockquote type="cite">Visit <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="http://mail.kde.org/mailman/listinfo/kde-devel#unsub">http://mail.kde.org/mailman/listinfo/kde-devel#unsub</a>
to unsubscribe << <br>
</blockquote>
</blockquote>
</blockquote>
<br>
<br>
<blockquote type="cite">
<blockquote type="cite">Visit <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="http://mail.kde.org/mailman/listinfo/kde-devel#unsub">http://mail.kde.org/mailman/listinfo/kde-devel#unsub</a>
to unsubscribe << <br>
</blockquote>
</blockquote>
</blockquote>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">
</pre>
<blockquote type="cite">
<blockquote type="cite">
<pre wrap="">Visit <a class="moz-txt-link-freetext" \
href="http://mail.kde.org/mailman/listinfo/kde-devel#unsub">http://mail.kde.org/mailman/listinfo/kde-devel#unsub</a> \
to unsubscribe << </pre>
</blockquote>
</blockquote>
</blockquote>
<br>
</body>
</html>
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic