Fragen zu nm und "undefined symbol"
Hi, ich bekomme beim Start von virt-manager auf einem SLES 11 SP1 (kernel 2.6.32.12-0.7-default 64bit) folgende Fehlermeldung: ========================================================= Traceback (most recent call last): File "/usr/share/virt-manager/virt-manager.py", line 414, in <module> main() File "/usr/share/virt-manager/virt-manager.py", line 329, in main from virtManager.config import vmmConfig File "/usr/share/virt-manager/virtManager/config.py", line 20, in <module> import gconf ImportError: /usr/lib64/python2.6/site-packages/gtk-2.0/gconf.so: undefined symbol: g_malloc_n ======================================================== Ich verstehe das so, daß /usr/lib64/python2.6/site-packages/gtk-2.0/gconf.so nach einem Symbol "g_malloc_n" verlangt, was nicht vorhanden zu sein scheint. Was ich nicht verstehe, ist daß bei der Installation des rpm's, das gconf.so beinhaltet, nicht bereits die library, die dieses Symbol enthält, als Abhängigkeit angemeckert wurde. Und wozu dient nm ? Ich verstehe dies so, daß mir nm die Symbole nennt, die eine Datei beinhaltet und nicht die Symbole, die eine Datei benötigt. Oder ? Vielen Dank für alle erhellenden Infos. Bernd -- Bernd Lentes Systemadministration Institut für Entwicklungsgenetik Gebäude 35.34 - Raum 208 HelmholtzZentrum münchen bernd.lentes@helmholtz-muenchen.de phone: +49 89 3187 1241 fax: +49 89 3187 2294 http://www.helmholtz-muenchen.de/idg Wir sitzen alle im selben Boot. Nur auf unterschiedlichen Decks. Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hi,
ich bekomme beim Start von virt-manager auf einem SLES 11 SP1 (kernel 2.6.32.12-0.7-default 64bit) folgende Fehlermeldung:
========================================================= Traceback (most recent call last): File "/usr/share/virt-manager/virt-manager.py", line 414, in <module> main() File "/usr/share/virt-manager/virt-manager.py", line 329, in main from virtManager.config import vmmConfig File "/usr/share/virt-manager/virtManager/config.py", line 20, in <module> import gconf ImportError: /usr/lib64/python2.6/site-packages/gtk-2.0/gconf.so: undefined symbol: g_malloc_n ========================================================
Ich verstehe das so, daß /usr/lib64/python2.6/site-packages/gtk-2.0/gconf.so nach einem Symbol "g_malloc_n" verlangt, was nicht vorhanden zu sein scheint. Was ich nicht verstehe, ist daß bei der Installation des rpm's, das gconf.so beinhaltet, nicht bereits die library, die dieses Symbol enthält, als Abhängigkeit angemeckert wurde.
Und wozu dient nm ? Ich verstehe dies so, daß mir nm die Symbole nennt, die eine Datei beinhaltet und nicht die Symbole, die eine Datei benötigt. Oder ?
Hi, das mit nm habe ich selbst herausgefunden: nm -u zeigt die benötigten Symbole, nm -g die zur Verfügung gestellten (die exportierten). http://de.wikibooks.org/wiki/Linux-Kompendium:_Bibliotheken ist sehr hilfreich. Aber wie kann ich denn rauskriegen, welche library das Symbol g_malloc_n zur Verfügung stellt ? Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hi,
ich bekomme beim Start von virt-manager auf einem SLES 11 SP1 (kernel 2.6.32.12-0.7-default 64bit) folgende Fehlermeldung:
========================================================= Traceback (most recent call last): File "/usr/share/virt-manager/virt-manager.py", line 414, in <module> main() File "/usr/share/virt-manager/virt-manager.py", line 329, in main from virtManager.config import vmmConfig File "/usr/share/virt-manager/virtManager/config.py", line 20, in <module> import gconf ImportError: /usr/lib64/python2.6/site-packages/gtk-2.0/gconf.so: undefined symbol: g_malloc_n ========================================================
Ich verstehe das so, daß /usr/lib64/python2.6/site-packages/gtk-2.0/gconf.so nach einem Symbol "g_malloc_n" verlangt, was nicht vorhanden zu sein scheint. Was ich nicht verstehe, ist daß bei der Installation des rpm's, das gconf.so beinhaltet, nicht bereits die library, die dieses Symbol enthält, als Abhängigkeit angemeckert wurde.
Und wozu dient nm ? Ich verstehe dies so, daß mir nm die Symbole nennt, die eine Datei beinhaltet und nicht die Symbole, die eine Datei benötigt. Oder ?
Hi,
das mit nm habe ich selbst herausgefunden: nm -u zeigt die benötigten Symbole, nm -g die zur Verfügung gestellten (die exportierten). http://de.wikibooks.org/wiki/Linux-Kompendium:_Bibliotheken ist sehr hilfreich.
Aber wie kann ich denn rauskriegen, welche library das Symbol g_malloc_n zur Verfügung stellt ?
Google hat mir gesagt, daß die Funktion g_malloc_n von der glib zur Verfügung gestellt wird (http://developer.gnome.org/glib/2.28/glib-Memory-Allocation.html#g-malloc-n). Mache ich aber ein nm auf die glib, so erhalte ich das folgende: pc56846:~ # nm /usr/lib64/libglib-2.0.so.0.2200.5 nm: /usr/lib64/libglib-2.0.so.0.2200.5: no symbols Heißt das, das meine glib überhaupt keine Funktionen zur Verfügung stellt ? Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Fri, 14 Dec 2012, Lentes, Bernd schrieb:
========================================================= Traceback (most recent call last): File "/usr/share/virt-manager/virt-manager.py", line 414, [..] ImportError: /usr/lib64/python2.6/site-packages/gtk-2.0/gconf.so: undefined symbol: g_malloc_n ======================================================== [..] Google hat mir gesagt, daß die Funktion g_malloc_n von der glib zur Verfügung gestellt wird
Jep. Glib verwendet generell 'g_' am Anfang.
pc56846:~ # nm /usr/lib64/libglib-2.0.so.0.2200.5 nm: /usr/lib64/libglib-2.0.so.0.2200.5: no symbols
Heißt das, das meine glib überhaupt keine Funktionen zur Verfügung stellt ?
Wurde gestrippt (siehe 'man strip'). Du kannst dennoch gucken: $ strings /usr/lib64/libglib-2.0.so.0.3200.1 | grep g_malloc g_malloc g_malloc0 g_malloc0_n g_malloc_n Was dir fehlt sind vermutlich die python glib-bindings: $ strings /usr/lib64/python2.7/site-packages/glib/_glib.so |grep g_malloc g_malloc_n g_malloc0_n $ rpm -qf /usr/lib64/python2.7/site-packages/glib/_glib.so python-gobject2-2.28.6-9.1.3.x86_64 Und ja, wenn python-gconf nicht python-gobject verlangt ist das ein Bug beim Paketieren. Wenn du allerdings mehrere Python-Versionen installiert hast kann da was durcheinander kommen. Guck dir mal $ rpm -q --requires python-gconf und $ rpm -q --provides python-gobject an. HTH, -dnh -- There is a green, multi-legged creature crawling on your shoulder. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hi, David Haller schrieb:
=========================================================
Traceback (most recent call last): File "/usr/share/virt-manager/virt-manager.py", line 414, [..] ImportError: /usr/lib64/python2.6/site-packages/gtk-2.0/gconf.so: undefined symbol: g_malloc_n
======================================================== [..] Google hat mir gesagt, daß die Funktion g_malloc_n von der glib zur Verfügung gestellt wird
Jep. Glib verwendet generell 'g_' am Anfang.
pc56846:~ # nm /usr/lib64/libglib-2.0.so.0.2200.5 nm: /usr/lib64/libglib-2.0.so.0.2200.5: no symbols
Heißt das, das meine glib überhaupt keine Funktionen zur Verfügung stellt ?
Wurde gestrippt (siehe 'man strip'). Du kannst dennoch gucken:
welchen Sinn macht strip ? Ich möchte doch, das die Symbole genutzt werden .
$ strings /usr/lib64/libglib-2.0.so.0.3200.1 | grep g_malloc g_malloc g_malloc0 g_malloc0_n g_malloc_n
Was dir fehlt sind vermutlich die python glib-bindings:
$ strings /usr/lib64/python2.7/site-packages/glib/_glib.so |grep g_malloc g_malloc_n g_malloc0_n
ich finde g_malloc_n leider nicht: pc56846:~ # strings /usr/lib64/python2.6/site-packages/gtk-2.0/glib/_glib.so|grep g_malloc g_malloc g_malloc0 pc56846:~ # strings /usr/lib64/libglib-2.0.so.0.2200.5 |grep g_malloc g_malloc g_malloc0
$ rpm -qf /usr/lib64/python2.7/site-packages/glib/_glib.so python-gobject2-2.28.6-9.1.3.x86_64
Und ja, wenn python-gconf nicht python-gobject verlangt ist das ein Bug beim Paketieren. Wenn du allerdings mehrere Python-Versionen installiert hast kann da was durcheinander kommen. Guck dir mal
$ rpm -q --requires python-gconf und $ rpm -q --provides python-gobject an.
pc56846:~ # rpm -q --requires python-gconf-2.28.1-14.11 python-gobject2 libgobject-2.0.so.0()(64bit) ... rpm -q --provides python-gobject2-2.20.0-1.1.56 _gio.so()(64bit) _glib.so()(64bit) ... Wenn das in "requires" steht, dann müßte rpm auch meckern, wenn etwas fehlt. Oder ? IIRC, habe ich nur eine python-Version installiert: pc56846:~ # rpm -qa |grep python python-2.6.0-8.9.28 apache2-mod_python-3.3.1-147.19 python-gobject2-2.20.0-1.1.56 python-orbit-2.14.3-137.26 python-gtk-2.16.0-1.1.251 python-gnome-2.22.0-67.32 python-cairo-1.6.4-1.33 libvirt-python-0.7.6-1.31.7 rpm-python-4.4.2.3-37.16.11 dbus-1-python-0.83.0-27.1.43 python-gtk-vnc-0.3.9-1.1.215 python-gconf-2.28.1-14.11 libpython2_6-1_0-2.6.0-8.9.20 python-xml-2.6.0-8.9.20 python-satsolver-0.14.17-0.2.18 yast2-python-bindings-2.17.4-1.27 python-curl-7.19.0-5.2.1.2 python-base-2.6.0-8.9.20 python-urlgrabber-3.9.1-0.1.2 python-selinux-2.0.91-4.2.1 libxml2-python-2.7.6-0.1.36 python-tk-2.6.0-8.9.28 python-numpy-1.3.0-1.1.42 python-numeric-24.2-195.17 Scheint nur 2.6.0-8.9.28 zu sein. Wie kann ich denn generell rausfinden, welche library mir das gewünschte Symbol zur Verfügung stellt ? Noch mal zum Verständnis: Es kann also sein, daß eine Software ein best. Symbol (und damit eine best. library) benötigt, diese beim Installieren als fehlende Abhängigkeit allerdings nicht anmeckert, obwohl die library fehlt ? Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Tue, 18 Dec 2012, Lentes, Bernd schrieb:
David Haller schrieb: [..]
pc56846:~ # nm /usr/lib64/libglib-2.0.so.0.2200.5 nm: /usr/lib64/libglib-2.0.so.0.2200.5: no symbols
Heißt das, das meine glib überhaupt keine Funktionen zur Verfügung stellt ?
Wurde gestrippt (siehe 'man strip'). Du kannst dennoch gucken:
welchen Sinn macht strip ? Ich möchte doch, das die Symbole genutzt werden .
Die Debuginformationen werden entfernt und die Datei _deutlich_ kleiner. 1.8M Mar 30 2012 /lib64/libc-2.14.1.so* 7.7M Oct 29 2011 /usr/lib/debug/lib64/libc-2.14.1.so.debug Und somit muß auch weniger in den Speicher geladen werden.
$ strings /usr/lib64/libglib-2.0.so.0.3200.1 | grep g_malloc g_malloc g_malloc0 g_malloc0_n g_malloc_n
Was dir fehlt sind vermutlich die python glib-bindings:
$ strings /usr/lib64/python2.7/site-packages/glib/_glib.so |grep g_malloc g_malloc_n g_malloc0_n
ich finde g_malloc_n leider nicht:
pc56846:~ # strings /usr/lib64/python2.6/site-packages/gtk-2.0/glib/_glib.so|grep g_malloc g_malloc g_malloc0 pc56846:~ # strings /usr/lib64/libglib-2.0.so.0.2200.5 |grep g_malloc g_malloc g_malloc0
http://developer.gnome.org/glib/2.30/glib-Memory-Allocation.html#g-malloc-n Beide Funktionen gibt's erst ab glib 2.24, du hast noch 2.22. Somit kann auch der python-glib-wrapper diese nicht "liefern".
Wenn das in "requires" steht, dann müßte rpm auch meckern, wenn etwas fehlt. Oder ?
Aber nicht bis auf die Ebene einzelner Funktionen. Das Programm aber, das via Python die glib verwendet sollte glib >= 2.24 als Require haben.
Wie kann ich denn generell rausfinden, welche library mir das gewünschte Symbol zur Verfügung stellt ?
Raten (z.B. glib verwendet g_*, Qt verwendet Q* usw.) und per 'strings ... | grep' nachgucken ob's stimmt. Oder googlen.
Noch mal zum Verständnis: Es kann also sein, daß eine Software ein best. Symbol (und damit eine best. library) benötigt, diese beim Installieren als fehlende Abhängigkeit allerdings nicht anmeckert, obwohl die library fehlt ?
s.o. Die Software müßte die lib in einer bestimmen Mindestversion fordern. -dnh -- Alles ist wie immer. Nur schlimmer. Mist. *[°°]* -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 18.12.2012 um 22:46 schrieb David Haller:
Und somit muß auch weniger in den Speicher geladen werden.
Falsch, die Debuginginfo wird immer von der Platte geladen und belegt daher nie Heuptspeicher. Philipp -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Thu, 20 Dec 2012, Philipp Thomas schrieb:
Am 18.12.2012 um 22:46 schrieb David Haller:
Und somit muß auch weniger in den Speicher geladen werden.
Falsch, die Debuginginfo wird immer von der Platte geladen und belegt daher nie Heuptspeicher.
Bei ungestrippten Libs? Zumindest im 'lsof' ist die ungestrippte lib größer. Aber dennoch: die lib muß gelesen werden, oder liegen die Debuginfos immer und ausschließlich am Ende der Datei und werden von ld nicht gelesen??? Kann's jetzt aber nicht genau nachvollziehen. Bei den gesonderten debuginfos ist das klar. -dnh -- Some people have no repect of age unless it is bottled. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
David Haller schrieb:
$ strings /usr/lib64/libglib-2.0.so.0.3200.1 | grep g_malloc g_malloc g_malloc0 g_malloc0_n g_malloc_n
Was dir fehlt sind vermutlich die python glib-bindings:
$ strings /usr/lib64/python2.7/site-packages/glib/_glib.so |grep g_malloc g_malloc_n g_malloc0_n
Kann ein Symbol gleichzeitig von verschiedenen libraries zur Verfügung gestellt werden ? Danke. Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo, Am Fri, 21 Dec 2012, Lentes, Bernd schrieb:
Kann ein Symbol gleichzeitig von verschiedenen libraries zur Verfügung gestellt werden ?
Ja. -dnh -- Ich [stand] schon mit freiem Oberkoerper am Kaffeeautomaten. Genuetzt hat es nichts[0]. Nungut, auch nicht geschadet[1]. -- Vinzent 'Gadget' Hoefler [0] Keine der ebenfalls anwesenden Damen ist ohnmaechtig geworden. [1] Keine der ebenfalls anwesenden Damen ist ohnmaechtig geworden. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
On Tue, 18 Dec 2012 14:27:17 +0100, "Lentes, Bernd"
welchen Sinn macht strip ? Ich möchte doch, das die Symbole genutzt werden .
Das können Sie doch auch trotzdem, sonst würden gestrippte Programme und Bibliotheken ja nicht mehr funktionieren. Gestrippt werden vor allem die Informationen, die Debugger wie gdb benötigen und die yur Laufyeit nicht nötig sind, aber erheblich Platz brauchen. Schau Dir mal die Größen der Dateien in einem -debuginfo Paket an, dann bekommst Du vieleicht eine Vorstellung. Sieh Dir mal eines dieser gestrippten Binaries mittels 'objdump -T' an und Du wirst sehen, daß die Symbolinfo noch da ist. Philipp -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Philipp Thomas schrieb:
On Tue, 18 Dec 2012 14:27:17 +0100, "Lentes, Bernd"
wrote: welchen Sinn macht strip ? Ich möchte doch, das die Symbole genutzt werden .
Das können Sie doch auch trotzdem, sonst würden gestrippte Programme und Bibliotheken ja nicht mehr funktionieren. Gestrippt werden vor allem die Informationen, die Debugger wie gdb benötigen und die yur Laufyeit nicht nötig sind, aber erheblich Platz brauchen. Schau Dir mal die Größen der Dateien in einem -debuginfo Paket an, dann bekommst Du vieleicht eine Vorstellung.
Sieh Dir mal eines dieser gestrippten Binaries mittels 'objdump -T' an und Du wirst sehen, daß die Symbolinfo noch da ist.
Philipp --
Ok. Nur noch mal zum Verständnis: Es kann also sein, daß eine Software ein best. Symbol (und damit eine best. library) benötigt, diese beim Installieren als fehlende Abhängigkeit allerdings nicht anmeckert, obwohl die library fehlt ? Und wenn ein undefined symbol bei Programmausführung angemeckert wird, wie kriege ich raus, welche lib das Symbol zur Verfügung stellt ? Bernd Helmholtz Zentrum München Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH) Ingolstädter Landstr. 1 85764 Neuherberg www.helmholtz-muenchen.de Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum Registergericht: Amtsgericht München HRB 6466 USt-IdNr: DE 129521671 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Hallo Bernd Am 2012-12-14 20:47, schrieb Lentes, Bernd:
Aber wie kann ich denn rauskriegen, welche library das Symbol g_malloc_n zur Verfügung stellt ?
Google hat mir gesagt, daß die Funktion g_malloc_n von der glib zur Verfügung gestellt wird (http://developer.gnome.org/glib/2.28/glib-Memory-Allocation.html#g-malloc-n). Mache ich aber ein nm auf die glib, so erhalte ich das folgende:
pc56846:~ # nm /usr/lib64/libglib-2.0.so.0.2200.5 nm: /usr/lib64/libglib-2.0.so.0.2200.5: no symbols
Heißt das, das meine glib überhaupt keine Funktionen zur Verfügung stellt ?
mit strings libglib-2.0.so.0.2200.5 | grep g_malloc die Version 2.22 hat die Symbole aber noch nicht, dafuer benoetigst Du 2.28 Holger -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
Am 14.12.2012 um 20:47 schrieb Lentes, Bernd:
Was ich nicht verstehe, ist daß bei der Installation des rpm's, das gconf.so beinhaltet, nicht bereits die library, die dieses Symbol enthält, als Abhängigkeit angemeckert wurde.
Bei der Erzeugung eines RPM-Paketes kann angegeben werden, ob rpm automatisch die Abhängigkeiten feststellen soll. Standardmässig ist das bei openSUSE-Paketen eingeschaltet. Ausserdem werden nur direkte Abhängigkeit gefunden. Wenn ein Programm bzw. eine Bibliothek eine Bibliothek aber dynamisch mittels dlopen nachläd , kann rpm die benötigen Symbole nicht finden.
Und wozu dient nm ? Ich verstehe dies so, daß mir nm die Symbole nennt, die eine Datei beinhaltet und nicht die Symbole, die eine Datei benötigt. Oder ?
nm kann beides.
Aber wie kann ich denn rauskriegen, welche library das Symbol g_malloc_n zur Verfügung stellt ?
Nur ansatzweise. Du kannst mittels 'objdump -p' oder ldd heraus finden, welch Bibliotheken benötigt werden. In denen musst Du dann nach dem benötigten Symbol suchen. Auch rpm kann Dir nur sagen, welches Symbol fehlt, nicht aber, woher das Symbol kommt.
Heißt das, das meine glib überhaupt keine Funktionen zur Verfügung stellt ?
Nein, das heißt nur, das sie gestript wurde, sprich die Informationen entfernt wurden. Bei openSUSE werden die gestrippten Informationen in einer Datei gespeichert (enthalten in den -debuginfo Paketen), da gdb die Symbolinformation auch aus einer Datei lesen kann. Die Informationen werden entfernt, weil sie viel Platz brauchen und normalerweise nicht gebraucht werden. Philipp -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org
participants (4)
-
David Haller
-
Holger Bruenjes
-
Lentes, Bernd
-
Philipp Thomas