Am Mittwoch, 18. Februar 2009 12:44 schrieb Philipp Thomas:
Am Wed, 18 Feb 2009 11:23:47 +0100 schriebst Du:
Das die Änderung eines Types von int zu long in der Signatur auch die ABI ändert ist neu:-)
Nicht zwansläufig :) Bei C++ fliesst ja der Datentyp direkt in die Namensdekoration ein. Mach mal ein 'objdump --demangle -T /usr/lib64/libstdc++.so.6', dann bekommst Du (Ausschnitt):
So verstehe ich... Du hattest das Beispiel mit Art+Parameter gebracht und die Signatur definiert ja der Entwickler... ( und somit auch einen Teil der ABI, wie ich jetzt weiss ...) Daher habe ich den Link gemailt:-() [...]
Wie soll das aber die Applikation merken? Wenn ich eine kompilierte Applikation habe und nun eine neue Version der Bibliothek einspiele erwarte ich, dass diese Applikation nach wie vor vernünftig funktioniert. Das aber ist (unter anderem) nur garantiert, wenn das ABI nicht verändert wurde.
Ja, das stimmt ja auch. Die andere Applikation merkt es natürlich erst dann, wenn sie "Explodiert":-) Da muss die Version stimmen. Weshalb ich jetzt _beides_ neu kompilieren würde um ggf. Fehler zu finden... (Das sollte ja eigentlich der Compiler anzeigen...) Das ist aber ein anderes Problem, nämlich eins von Oraganisatorischer Natur. Du hattest in etwa geschrieben (was auch so richtig ist, ich habe es nur in den falschen Hals bekommen). "Also zum Beispiel die Zahl und Art der Parameter ..." (rest entfernt) Die Art+Parameter werden ja erstmal durch den Entwickler festgelegt (API), daher meine Verwechslung/Unwissendheit. Soweit hatte ich aber gar nicht gedacht. Für MICH war in dem Moment klar, dass Du hier etwas verwechselt hast (was nicht so war/ist, sondern ICH habe es verwechelt bzw. hatte hier eine Wissenslücke)... Fazit: - Wenn ich meine API ändere, ändere ich auch meine ABI. - Ich kann die ABI auch ohne API Änderung z.B. durch falschen Compiler verändern... - die Architektur des systems bestimmt einen Teil der ABI (64bit) - Grundsätzlich sollte man immer alle Teile einer Apllikation PRÜFEN, wenn sich API/ABI ändern könnte... Andre -- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org