You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Michael Renner <mi...@gmx.de> on 2012/03/15 14:30:13 UTC

die libmath nachträglich in ein Modul bringen?

Moin,

ich habe hier ein Binärmodul das einen Apache mit libmath voraussetzt. 
Den Apache will/kann/darf ich nicht neu bauen. Ich frage mich: bekomme 
ich libmath nachträglich in das Binärmodul rein? Nachträgliches Linken 
oder so?

Dankbar für Hinweise
-- 
|Michael Renner      E-mail: michael.renner@gmx.de  |
|81541 Munich        skype: michael.renner.gmx.de   |
|Germany             Don't drink as root!      ESC:wq

---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-de-help@httpd.apache.org


Re: die libmath nachträglich in ein Modul bringen?

Posted by Emil Obermayr <no...@nobswolf.info>.
On Thu, Mar 15, 2012 at 02:30:13PM +0100, Michael Renner wrote:
>
> ich habe hier ein Binärmodul das einen Apache mit libmath voraussetzt.  
> Den Apache will/kann/darf ich nicht neu bauen. Ich frage mich: bekomme  
> ich libmath nachträglich in das Binärmodul rein? Nachträgliches Linken  
> oder so?

Bist Du sicher dass die libmath schon im Apache Core gelinkt sein muss?

Oder muss sie einfach nur für das Modul zur Verfügung stehen?

Welches Modul ist es denn?

Gruß 

Emil

---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-de-help@httpd.apache.org


Re: die libmath nachträglich in ein Modul bringen?

Posted by Martin Allert <al...@arago.de>.
Hi, 

Was sagt denn ein "ldd <moduldatei>"?


Viele Grüße,

Martin Allert
(Mobil)

Am 15.03.2012 um 14:30 schrieb "Michael Renner" <mi...@gmx.de>:

> Moin,
> 
> ich habe hier ein Binärmodul das einen Apache mit libmath voraussetzt. Den Apache will/kann/darf ich nicht neu bauen. Ich frage mich: bekomme ich libmath nachträglich in das Binärmodul rein? Nachträgliches Linken oder so?
> 
> Dankbar für Hinweise
> -- 
> |Michael Renner      E-mail: michael.renner@gmx.de  |
> |81541 Munich        skype: michael.renner.gmx.de   |
> |Germany             Don't drink as root!      ESC:wq
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-de-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-de-help@httpd.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-de-help@httpd.apache.org

Re: die libmath nachträglich in ein Modul bringen?

Posted by Michael Renner <mi...@gmx.de>.
On 15.03.2012 23:37, Rainer Jung wrote:
> Hi Michael,
>
> On 15.03.2012 14:30, Michael Renner wrote:
>> Moin,
>>
>> ich habe hier ein Binärmodul das einen Apache mit libmath 
>> voraussetzt.
>
> Die Mathe-Library heißt im Filesystem libm.(a|so|so...). Sie gehört
> zum Standard-Installationszustand Deines Systems.

Moin Rainer (und alle die antworteten),

> Eine Library wird von einem Apache-Modul eigentlich nie im Apache
> selbst vorausgesetzt, sondern nur im installierten System. Es kommt
> eher umgekehrt zu Problemen, wenn ein Modul und der Apache beide
> unabhängig gegen eine Library linken und dabei verschiedene Versionen
> verwenden.
>
> In Deinem Fall solltest Du beim Linken des Moduls einfach ein "-lm"
> mit dazunehmen. "-labc" bedeutet "linke libabc ein", "-lb" steht also
> für libm.
>
>> Den Apache will/kann/darf ich nicht neu bauen. Ich frage mich: 
>> bekomme
>> ich libmath nachträglich in das Binärmodul rein? Nachträgliches 
>> Linken
>> oder so?
>
> Wenn Du die Sourcen hast ja, siehe oben. Wenn Du keine Sourcen hast,
> wird es eher schwierig. Der beste Workaround wird dann "LoadFile"
> sein. Mit LoadFile kannst Du vor der LoadModule-Zeile für Dein Modul
> dem Apache sagen, dass er eine Library laden soll.
>
> http://httpd.apache.org/docs/2.2/en/mod/mod_so.html#loadfile

wunderbar, so hat es funktioniert. Mit dem
LoadFile /lib64/libm.so.6
vorneweg lies sich das Modul laden.

Wieder was gelernt!

Danke rundum!
-- 
|Michael Renner      E-mail: michael.renner@gmx.de  |
|81541 Munich        skype: michael.renner.gmx.de   |
|Germany             Don't drink as root!      ESC:wq

---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-de-help@httpd.apache.org


Re: die libmath nachträglich in ein Modul bringen?

Posted by Rainer Jung <ra...@kippdata.de>.
Hi Michael,

On 15.03.2012 14:30, Michael Renner wrote:
> Moin,
>
> ich habe hier ein Binärmodul das einen Apache mit libmath voraussetzt.

Die Mathe-Library heißt im Filesystem libm.(a|so|so...). Sie gehört zum 
Standard-Installationszustand Deines Systems.

Eine Library wird von einem Apache-Modul eigentlich nie im Apache selbst 
vorausgesetzt, sondern nur im installierten System. Es kommt eher 
umgekehrt zu Problemen, wenn ein Modul und der Apache beide unabhängig 
gegen eine Library linken und dabei verschiedene Versionen verwenden.

In Deinem Fall solltest Du beim Linken des Moduls einfach ein "-lm" mit 
dazunehmen. "-labc" bedeutet "linke libabc ein", "-lb" steht also für libm.

> Den Apache will/kann/darf ich nicht neu bauen. Ich frage mich: bekomme
> ich libmath nachträglich in das Binärmodul rein? Nachträgliches Linken
> oder so?

Wenn Du die Sourcen hast ja, siehe oben. Wenn Du keine Sourcen hast, 
wird es eher schwierig. Der beste Workaround wird dann "LoadFile" sein. 
Mit LoadFile kannst Du vor der LoadModule-Zeile für Dein Modul dem 
Apache sagen, dass er eine Library laden soll.

http://httpd.apache.org/docs/2.2/en/mod/mod_so.html#loadfile

Bei Solaris gibt es "elfedit". Damit ginge das nachträgliche Eintragen 
einer Library Dependency in ein schon gelinktes shared object file wohl. 
Bei Linux gibt es das nicht so richtig. Erwähnt wird elfsh, aber das 
scheint nicht stabil zu sein:

http://www.eresi-project.org/wiki/TheELFsh

Schließlich könnte man noch fiese Tricks machen. Wenn das Modul eine 
andere Abhängigkeit zu einer Library eingetragen hat, könnte man eine 
Dummy-Library mit dem gleichen SO Name bauen, die gar keine Symbole 
enthält, aber selbst gegen die anderen Libs gelinkt ist. Würde ich aber 
nicht machen, ist Arbeit und schwer zu durchblicken für andere.

Schließlich ginge noch LD_PRELOAD auf die libm als Environment-Variable 
für den Apache-Prozess vor dem Starten setzen, etwa in der 
envvars-Datei. Die Libs in LD_PRELOAD werden automatisch vor dem Starten 
jedes Prozesses zuerst geladen und dann auch immer zuerst nach Symbolen 
durchsucht.

> Dankbar für Hinweise

:)

Lange Rede: ich würde auf LoadFile zurückgreifen.

Grüße sendet

Rainer

---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-de-help@httpd.apache.org