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]>
* Andre Heine ([email protected]) [20090217 16:09]:

> Hmm, laut Wikipedia ist damit die Hardware Ebene gemeint, nicht unbedingt
> die API...

Zum einen irrt Wikipedia, zum anderen ist es nicht das API! API ist die
Schnittstelle, die sich Dir zum Programmieren (das P in API :) bietet.  Wenn
diese Schnittstelle in einer kompilierten Bibliothek vorliegt, spricht man
vom ABI.  Hier *müssen* die Schnittstellen passen, denn es handelt sich
letztendlich um Maschienencode.  Überleg mal was passiert, wenn sich z.B. 
die Argumente einer Funktion ändern, also zum Beispiel ein Parameter
hinzukommt, das Programm aber eben einen Parameter zu wenig übergibt. Dann
wird der der Code der Bibliothek irgendwelchen Müll vom Stack verarbeiten.

 
> Programmierschnittstelle eine Schnittstelle auf Quelltextebene definiert. 

Eben :) Auf Quelltextebene, nicht auf Ebene der kompilierten Bibliothek.

> die eine binärkompatible Schnittstelle zur Verfügung stellen, ohne dass
> ein Neukompilieren erforderlich wäre.

Eben deshalb muss eine Änderung des ABI mit der Erhöhung der Hauptversion
verbunden sein, damit die Applikation, welche die neue Bibliothek nutzen
will neu kompiliert werden muss. So verständlich?
 
> Z.B. gcc 3.3.5 auf gcc 3.4.6 (ABI Version 3 -> ABI Version 4)...
> 
> Wie verhält sich das nun genau???

Genau wie ich geschrieben habe. Hier hatte sich dass vom GCC unterstützte
ABI geändert. Des müssen alle Bibliotheken und Applikationen mit der
gleichen  Compiler-Version übersetzt werden, damit sie sich auch verstehen
können.

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.