Re: libdbus++ Build

Philipp Thomas <[email protected]>
Newsgroups gmane.linux.suse.programming
Organization SUSE LINUX Products GmbH, G F: Markus Rex, HRB 16746 (AG Nürnberg)
Message-ID <[email protected]>
* Sascha 'saigkill' Manns ([email protected]) [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: [email protected]
For additional commands, e-mail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.