EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

abi-compliance-checker – Online in der Cloud

Führen Sie den abi-Compliance-Checker im kostenlosen OnWorks-Hosting-Anbieter über Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator aus

Dies ist der Befehl abi-compliance-checker, der im kostenlosen OnWorks-Hosting-Provider mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


abi-compliance-checker - Tool zum Vergleich der ABI-Kompatibilität von gemeinsam genutzten C/C++-Bibliotheken
Versionen

BESCHREIBUNG


Name:
ABI Compliance Checker (abi-compliance-checker) Überprüfung der Abwärtskompatibilität von a
C/C++-Bibliotheks-API

BESCHREIBUNG:
ABI Compliance Checker (ABICC) ist ein Tool zum Überprüfen von Rückwärtsbinär- und
Kompatibilität auf Quellebene einer gemeinsam genutzten C/C++-Bibliothek. Das Tool überprüft Header-Dateien
und Shared Libraries (*.so) alter und neuer Versionen und analysiert Änderungen in API und
ABI (ABI=API+Compiler-ABI), das die Binär- und/oder Quellkompatibilität beeinträchtigen kann:
Änderungen im Calling-Stack, V-Table-Änderungen, entfernte Symbole, umbenannte Felder usw.
Binäre Inkompatibilität kann zu Abstürzen oder falschem Verhalten von Anwendungen führen
mit einer alten Version einer Bibliothek erstellt, wenn sie auf einer neuen ausgeführt werden. Quelle
Inkompatibilität kann zu Neukompilierungsfehlern mit einer neuen Bibliotheksversion führen.

Das Tool richtet sich an Entwickler von Softwarebibliotheken und Betreuer von
Betriebssysteme, die an Abwärtskompatibilität interessiert sind, dh erlauben
alte Anwendungen laufen oder mit neueren Bibliotheksversionen neu kompiliert werden.

Das Tool kann auch von ISVs verwendet werden, um die Übertragbarkeit von Anwendungen auf neue zu überprüfen
Bibliotheksversionen. Gefundene Probleme können bei der Anpassung berücksichtigt werden
Anwendung auf eine neue Bibliotheksversion.

Dieses Tool ist kostenlose Software: Sie können es weiterverteilen und/oder unter dem
Bedingungen der GNU LGPL oder GNU GPL.

VERWENDUNG:
abi-Compliance-Checker [Optionen]

Beispiel:
Abi-Compliance-Checker -lib NAME/FUNKTION -alt ALT.xml -Neu NEU.xml

OLD.xml und NEW.xml sind XML-Deskriptoren:



1.0





/Pfad1/zu/Kopfzeile(n)/ /Pfad2/zu/Kopfzeile(n)/

...





/Pfad1/zu/Bibliothek(en)/ /Pfad2/zu/Bibliothek(en)/

...



INFORMATIONEN OPTIONEN:
-h|-Hilfe

Drucken Sie diese Hilfe aus.

-i|-info

Vollständige Informationen ausdrucken.

-v|-Version

Versionsinformationen drucken.

-Dumpversion

Drucken Sie die Tool-Version (1.99.14) aus und tun Sie nichts anderes.

ALLGEMEIN OPTIONEN:
-l|-lib|-Bibliothek NAME

Bibliotheksname (ohne Version).

-d1|-alt|-o PFAD

Deskriptor der 1. (alten) Bibliotheksversion. Es kann einer der folgenden sein:

1. XML-Deskriptor (Datei VERSION.xml):



1.0





/Pfad1/zu/Kopfzeile(n)/ /Pfad2/zu/Kopfzeile(n)/

...





/Pfad1/zu/Bibliothek(en)/ /Pfad2/zu/Bibliothek(en)/

...



...

2. ABI-Dump generiert von -Dump Option 3. Verzeichnis mit Headern und/oder Shared
Bibliotheken 4. Einzelne Header-Datei

Wenn Sie 2-4 Deskriptortypen verwenden, sollten Sie Versionsnummern angeben
mit -v1 und -v2 Optionen auch.

Weitere Informationen finden Sie unter:

http://ispras.linuxbase.org/index.php/Library_Descriptor

-d2|-neu|-n PFAD

Deskriptor der 2. (neuen) Bibliotheksversion.

-Dump|-dump-abi PFAD

Erstellen Sie einen Bibliotheks-ABI-Dump für den Eingabe-XML-Deskriptor. Sie können es überall übertragen
und übergeben Sie anstelle des Deskriptors. Es kann auch zum Debuggen des Tools verwendet werden.

Unterstützte Versionen von ABI-Dump: 2.0<=V<=3.2

EXTRA OPTIONEN:
App|-Anwendungspfad

Mit dieser Option kann die Anwendung angegeben werden, auf die geprüft werden soll
Portabilität auf die neue Bibliotheksversion.

-statische-Bibliotheken

Überprüfen Sie statische Bibliotheken anstelle der freigegebenen. Die Abschnitt der
Der XML-Deskriptor sollte auf den Speicherort der statischen Bibliotheken verweisen.

-gcc-Pfad PATH

Pfad zum Cross-GCC-Compiler, der anstelle des üblichen (Host-)GCC verwendet werden soll.

-gcc-Präfix PRÄFIX

GCC-Toolchain-Präfix.

-gcc-Optionen OPTS

Zusätzliche Compiler-Optionen.

-sysroot DIR

Geben Sie das alternative Stammverzeichnis an. Das Tool sucht nach Pfaden in
die Verzeichnisse DIR/usr/include und DIR/usr/lib.

-v1|-version1 NUM

Geben Sie die 1. Bibliotheksversion außerhalb des Deskriptors an. Diese Option wird benötigt, wenn Sie
einen alternativen Deskriptortyp bevorzugt haben (siehe -d1 Möglichkeit).

Im Allgemeinen sollten Sie es im XML-Deskriptor angeben:



VERSION



-v2|-version2 NUM

Geben Sie die zweite Bibliotheksversion außerhalb des Deskriptors an.

-vnum NUM

Geben Sie die Bibliotheksversion im generierten ABI-Dump an. Die Abschnitt der
Eingabe-XML-Deskriptor wird in diesem Fall überschrieben.

-s|-streng

Behandeln Sie alle Kompatibilitätswarnungen als Probleme. Fügen Sie eine Reihe von Schweregraden "Niedrig" hinzu
Probleme mit dem Rückgabewert des Tools.

-nur Überschriften

Überprüfen Sie Header-Dateien ohne gemeinsam genutzte Bibliotheken. Es ist einfach zu laufen, kann aber eine
Kompatibilitätsbericht von geringer Qualität mit falsch positiven Ergebnissen und ohne Erkennung von
hinzugefügte/entfernte Symbole.

Alternativ können Sie das Wort "keine" an die schreiben Abschnitt in der
XML-Deskriptor:



keine



-show-reval

Den Rückgabetyp des Symbols im Bericht anzeigen.

-Symbole-Liste PATH

Mit dieser Option kann man eine Datei mit einer Liste von Symbolen angeben (verstümmelte Namen in
C++), die überprüft werden sollte. Andere Symbole werden nicht geprüft.

-Typenliste PATH

Mit dieser Option kann eine Datei mit einer Liste von Typen angegeben werden, die
überprüft. Andere Typen werden nicht geprüft.

-Skip-Symbole PATH

Die Liste der Symbole, die nicht überprüft werden sollten.

-Skip-Typen PATH

Die Liste der Typen, die nicht überprüft werden sollen.

-Header-Liste PATH

Die Datei mit einer Liste von Headern, die überprüft/gedumpt werden sollen.

-Skip-Header PATH

Die Datei mit der Liste der Header-Dateien, die nicht überprüft werden sollen.

-Header NAME/FUNKTION

Nur ABI dieses Headers prüfen/dumpen.

-Verwendungsdeponien

Erstellen Sie Dumps für zwei Versionen einer Bibliothek und vergleichen Sie Dumps. Das sollte zunehmen
die Leistung des Tools und verringern die Systemspeichernutzung.

-nostdinc

Suchen Sie nicht in den GCC-Standardsystemverzeichnissen nach Header-Dateien.

-Dump-System NAME/FUNKTION -sysroot DIR

Finden Sie alle gemeinsam genutzten Bibliotheken und Header-Dateien im DIR-Verzeichnis, erstellen Sie XML
Deskriptoren und erstellen ABI-Dumps für jede Bibliothek. Die Ergebnismenge von ABI-Dumps kann sein:
verglichen (--cmp-systeme) mit dem anderen für eine andere Betriebsversion erstellt
System, um sie auf Kompatibilität zu überprüfen. Vergiss nicht anzugeben
-cross-gcc Option, wenn Ihr Zielsystem eine bestimmte Version von GCC erfordert
Compiler (anders als der Host-GCC). Der System-ABI-Dump wird generiert, um:

sys_dumps/NAME/ARCH

-Dump-System DESCRIPTOR.xml

Die gleiche Option wie die vorherige Option, nimmt jedoch einen XML-Deskriptor des Zielsystems als
Eingabe, wo Sie es beschreiben sollten:

/* Primärteile */



/* Name des Systems */





/* Die Liste der Pfade zu Header-Dateien und/oder

Verzeichnisse mit Header-Dateien, eine pro Zeile */





/* Die Liste der Pfade zu gemeinsam genutzten Bibliotheken und/oder

Verzeichnisse mit gemeinsam genutzten Bibliotheken, eine pro Zeile */



/* Optionale Abschnitte */



/* Liste der zu durchsuchenden Verzeichnisse

damit Header-Dateien automatisch Include-Pfade generieren, einen pro Zeile */





/* Liste der zu durchsuchenden Verzeichnisse

für gemeinsam genutzte Bibliotheken zum Auflösen von Abhängigkeiten, eine pro Zeile */





/* Liste der Verzeichnisse mit verwendeten Tools

zur Analyse (GCC-Toolchain), eine pro Zeile */





/* GCC-Toolchain-Präfix.

Beispiele:
arm-linux-gnueabi arm-none-symbianelf */





/* Zusätzliche GCC-Optionen, eine pro Zeile */



-sysinfo DIR

Diese Option sollte verwendet werden mit -Dump-System Option zum Dump ABI des Betriebs
Systeme und konfigurieren Sie den Dumping-Prozess. Ein Muster finden Sie im Paket:

Module/Ziele/{unix, symbian, windows}

-cmp-Systeme -d1 sys_dumps/NAME1/ARCH -d2 sys_dumps/NAME2/ARCH

Vergleichen Sie zwei System-ABI-Dumps. Erstellen Sie Kompatibilitätsberichte für jede Bibliothek und die
gemeinsamer HTML-Bericht mit der Zusammenfassung der Testergebnisse für alle überprüften Bibliotheken.
Bericht wird erstellt an:

sys_compat_reports/NAME1_to_NAME2/ARCH

-libs-liste PATH

Die Datei mit einer Liste der Bibliotheken, die vom -Dump-System zu erhalten
oder sollte vom -cmp-Systeme .

-ext|-erweitert

Wenn Ihre Bibliothek A von einer anderen Bibliothek B verwendet werden soll und Sie steuern möchten
den ABI von B, dann sollten Sie diese Option aktivieren. Das Tool prüft auf Änderungen
in allen Datentypen, auch wenn sie von keiner Funktion in der Bibliothek A verwendet werden
Datentypen sind nicht Bestandteil des ABI der A-Bibliothek, können aber Bestandteil des ABI des B . sein
Bibliothek.

Das kurze Schema ist:

app C (defekt) -> lib B (defekter ABI) -> lib A (stabiler ABI)

-q|-leise

Drucken Sie alle Nachrichten in die Datei anstelle von stdout und stderr. Standardpfad (kann sein
verändert von -log-Pfad Möglichkeit):

logs/run.log

-stdout

Analyseergebnisse (Kompatibilitätsberichte und ABI-Dumps) auf stdout statt auf . drucken
eine Datei erstellen. Dies würde es ermöglichen, Daten an andere Programme weiterzuleiten.

-Berichtsformat FMT

Format des Kompatibilitätsberichts ändern. Formate:

htm - HTML-Format (Standard) xml - XML-Format

-Dump-Format FMT

Ändern Sie das Format des ABI-Dumps. Formate:

perl - Data::Dumper-Format (Standard) xml - XML-Format

-xml

Alias ​​für: --Berichtsformat=xml or --Dump-Format=xml

-lange SPRACHE

Legen Sie die Sprache der Bibliothek fest (C oder C++). Sie können diese Option verwenden, wenn das Tool dies nicht kann
eine Sprache automatisch erkennen. Diese Option kann nützlich sein, um C-Library-Header zu überprüfen
(- lang=C) in --headers-only or --erweitert Modi.

-Bogen BOGEN

Legen Sie die Bibliotheksarchitektur fest (x86, x86_64, ia64, arm, ppc32, ppc64, s390 usw.). Die
Option ist nützlich, wenn das Tool die korrekte Architektur der Eingabe nicht erkennen kann
Objekte.

-binär|-bin|-abi

Nur "Binär"-Kompatibilitätsprobleme anzeigen. Bericht erstellen an:

compat_reports/LIB_NAME/V1_to_V2/abi_compat_report.html

-source|-Quelle|-API

Nur Kompatibilitätsprobleme mit "Quelle" anzeigen. Bericht erstellen an:

compat_reports/LIB_NAME/V1_to_V2/src_compat_report.html

-limit-betroffen LIMIT

Die maximale Anzahl betroffener Symbole, die unter der Beschreibung der geänderten
geben Sie den Bericht ein.

anderes OPTIONEN:
-Test

Führen Sie interne Tests durch. Erstellen Sie zwei binär inkompatible Versionen einer Beispielbibliothek und
Führen Sie das Tool aus, um sie auf Kompatibilität zu überprüfen. Mit dieser Option kann überprüft werden, ob
das Tool funktioniert in der aktuellen Umgebung korrekt.

-Test-Dump

Testen Sie die Fähigkeit, ABI-Dumps zu erstellen, zu lesen und zu vergleichen.

-debuggen

Debugging-Modus. Debug-Informationen auf dem Bildschirm drucken. Zwischenstufen der Analyse speichern
im Debug-Verzeichnis:

debuggen/LIB_NAME/VERSION/

Erwägen Sie auch die Verwendung --entsorgen Option zum Debuggen des Tools.

-cpp-kompatibel

Wenn Ihre Header-Dateien in der Sprache C geschrieben sind und von G++ kompiliert werden können
Compiler (dh keine C++-Schlüsselwörter verwenden), dann können Sie das dem Tool mitteilen und
die Analyse beschleunigen.

-cpp-inkompatibel

Setzen Sie diese Option, wenn C-Header-Eingabedateien C++-Schlüsselwörter verwenden.

-p|-params PFAD

Pfad zur Datei mit den Funktionsparameternamen. Es kann zur Verbesserung des Berichts verwendet werden
anzeigen, wenn die Headerdateien der Bibliothek keine Parameternamen haben. Datei Format:

func1;param1;param2;param3 ... func2;param1;param2;param3 ...

...

-relpath PATH

Ersetzen Sie {RELPATH}-Makros durch PATH im XML-Deskriptor, der zum Ausgeben der Bibliothek verwendet wird
ABI (siehe -Dump Möglichkeit).

-relpath1 PATH

Ersetzen Sie {RELPATH}-Makros durch PATH im 1. XML-Deskriptor (-d1).

-relpath2 PATH

Ersetzen Sie {RELPATH}-Makros durch PATH im 2. XML-Deskriptor (-d2).

-Dump-Pfad PATH

Geben Sie einen *.abi.tar.gz- oder *.abi-Dateipfad an, in dem ein ABI-Dump erstellt werden soll. Standard:

abi_dumps/LIB_NAME/LIB_NAME_VERSION.abi.tar.gz

-Sortieren

Aktivieren Sie die Sortierung von Daten in ABI-Dumps.

-Berichtspfad PATH

Pfad zum Kompatibilitätsbericht. Standard:

compat_reports/LIB_NAME/V1_to_V2/compat_report.html

-bin-report-pfad PATH

Pfad zum Kompatibilitätsbericht "Binär". Standard:

compat_reports/LIB_NAME/V1_to_V2/abi_compat_report.html

-src-Berichtspfad PATH

Pfad zum Kompatibilitätsbericht "Quelle". Standard:

compat_reports/LIB_NAME/V1_to_V2/src_compat_report.html

-log-Pfad PATH

Protokollpfad für alle Nachrichten. Standard:

logs/LIB_NAME/VERSION/log.txt

-log1-Pfad PATH

Protokollpfad für die 1. Version einer Bibliothek. Standard:

logs/LIB_NAME/V1/log.txt

-log2-Pfad PATH

Protokollpfad für die 2. Version einer Bibliothek. Standard:

logs/LIB_NAME/V2/log.txt

-Logging-Modus MODE

Protokollierungsmodus ändern. Modi:

w - alte Protokolle überschreiben (Standard) a - alte Protokolle anhängen n - keine Protokolle schreiben

-Liste-betroffene

Generieren Sie eine Datei mit der Liste der inkompatiblen Symbole neben der HTML-Kompatibilität
Prüfbericht. Verwenden Sie den Befehl 'c++filt @file' von GNU Binutils, um C++-Symbole in zu entwirren
die generierte Datei. Standardnamen:

abi_betroffen.txt src_betroffen.txt

-Komponente NAME/FUNKTION

Der Komponentenname im Titel und in der Zusammenfassung des HTML-Berichts. Standard:

Bibliothek

-Titel NAME/FUNKTION

Ändern Sie den Bibliotheksnamen im Berichtstitel in NAME. Standardmäßig wird angezeigt a
Name angegeben von -l .

-Zusatzinformation DIR

Geben Sie zusätzliche Informationen in DIR ab.

-Extra-Dump

Erstellen Sie einen erweiterten ABI-Dump, der alle Symbole aus der Übersetzungseinheit enthält.

-Macht

Versuchen Sie, diese Option zu verwenden, wenn das Tool nicht funktioniert.

-Toleranz LEVEL

Wenden Sie eine Reihe von Heuristiken an, um Eingabeheaderdateien erfolgreich zu kompilieren. Du kannst
Ermöglichen Sie mehrere Toleranzstufen, indem Sie sie zu einem String zusammenfügen (z. B. 13, 124,
etc.). Ebenen:

1 - Nicht-Linux-Header überspringen (zB win32_*.h, etc.) 2 - Interne Header überspringen (zB
*_p.h, impl/*.h usw.) 3 - Überspringe Header, die Nicht-Linux-Header enthalten 4 - skip
Überschriften von anderen eingefügt

-tolerant

Höchste Toleranzstufe aktivieren [1234].

-prüfen

Überprüfen Sie die Vollständigkeit des ABI-Dumps.

-schnell

Schnelle Analyse. Deaktivieren Sie die Überprüfung einiger Vorlageninstanzen.

-interne-Symbole überspringen MUSTER

Überprüfen Sie keine Symbole, die dem Muster entsprechen.

-interne-Typen überspringen MUSTER

Überprüfen Sie keine Typen, die dem Muster entsprechen.

BERICHT:
Der Kompatibilitätsbericht wird erstellt an:

compat_reports/LIB_NAME/V1_to_V2/compat_report.html

Protokoll wird erstellt an:

logs/LIB_NAME/V1/log.txt logs/LIB_NAME/V2/log.txt

EXIT CODE:
0 - Kompatibel. Das Tool ist ohne Fehler gelaufen. ungleich Null - Inkompatibel oder
das Tool wurde mit Fehlern ausgeführt.

MEHR INFORMATION:
http://lvc.github.io/abi-compliance-checker/

Verwenden Sie den abi-compliance-checker online mit den onworks.net-Diensten


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad