* Sascha 'saigkill' Manns (samannsml@directbox.com) [20090217 15:04]:
Wer oder was ist ABI?
ABI steht für Application Binary Interface, alswo die Schnittstelle(n), die eine binäre Bibliothek einer Anwendung bietet. Also zum Beispiel die Zahl und Art der Parameter, die eine nach aussen sichtbare Bibliotheksfunktion erwartet. Wenn diese Bibliothek einen Soname bibliothek.so.Hauptversion hat, so muss sichergestellt sein, das in allen Versionen mit der gleichen Hauptversion (die dann ja den gleichen Soname haben), sich an diesen Parametern nichts ändert. Beziehungsweise dass eben die Hauptversion erhöht wird wenn sich etwas ändert. Es gibt auch noch eine andere Möglichkeit, diesem Problem zu begegegnen, aber das wird nur von sehr wenigen Bibliotheken verwendet: die Symbolversionen. Hier wird jedem extern sichtbaren Symbol (also z.B. Variablen und Funktionen) eine Version zugeordnet. Damit braucht einem Symbol nur noch eine andere Version zugeordnet zu werden ohne das sich die Version der ganzen Bibliothek ändert. So liefert z.B. auch meiner x86_64 Maschine ein 'objdump -T /lib64/libc.so.6' (Ausschnitt): 00000000000c5300 g DF .text 000000000000017b GLIBC_2.4 __xmknodat 0000000000064160 g DF .text 0000000000000274 GLIBC_2.2.5 _IO_fdopen 00000000000f33b0 g DF .text 00000000000000f9 GLIBC_2.3.3 inet6_option_find 0000000000088bb0 w DF .text 000000000000000a GLIBC_2.3 wcstoull_l 00000000000f6ae0 g DF .text 00000000000002f8 GLIBC_2.2.5 clnttcp_create Die vorletzte Spalte sind die Symbolversionen und ein 'objdump -p /lib64/libc.so.6' zeigt Dir unter anderem, welche Versionen eine Bibliothek verwendet.
OK. Dann müssen wir nur noch den Patch irgendwie überarbeiten...
Fehler ist schon gefunden :) Ich mach gleich ein submitreq damit Du die Änderungen bekommst. Philipp -- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org