Ini adalah perintah abi-compliance-checker yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
abi-compliance-checker - alat untuk membandingkan kompatibilitas ABI dari pustaka C/C++ bersama
Versi
DESKRIPSI
NAMA:
Pemeriksa Kepatuhan ABI (pemeriksa kepatuhan abi) Memeriksa kompatibilitas mundur a
API perpustakaan C/C++
DESKRIPSI:
ABI Compliance Checker (ABICC) adalah alat untuk memeriksa biner mundur dan
kompatibilitas tingkat sumber dari pustaka C/C++ bersama. Alat ini memeriksa file header
dan pustaka bersama (*.so) dari versi lama dan baru serta menganalisis perubahan dalam API dan
ABI (ABI=API+compiler ABI) yang dapat merusak kompatibilitas biner dan/atau tingkat sumber:
perubahan dalam tumpukan panggilan, perubahan tabel-v, simbol yang dihapus, bidang yang diganti namanya, dll.
Ketidakcocokan biner dapat mengakibatkan crash atau perilaku aplikasi yang salah
dibangun dengan versi lama dari perpustakaan jika mereka berjalan di yang baru. Sumber
ketidakcocokan dapat mengakibatkan kesalahan kompilasi ulang dengan versi perpustakaan baru.
Alat ini ditujukan untuk pengembang perpustakaan perangkat lunak dan pengelola
sistem operasi yang tertarik untuk memastikan kompatibilitas ke belakang, yaitu izinkan
aplikasi lama untuk dijalankan atau dikompilasi ulang dengan versi perpustakaan yang lebih baru.
Alat ini juga dapat digunakan oleh ISV untuk memeriksa portabilitas aplikasi ke yang baru
versi perpustakaan. Masalah yang ditemukan dapat dipertimbangkan saat mengadaptasi
aplikasi ke versi perpustakaan baru.
Alat ini adalah perangkat lunak gratis: Anda dapat mendistribusikannya kembali dan/atau memodifikasinya di bawah
istilah GNU LGPL atau GNU GPL.
PEMAKAIAN:
abi-compliance-checker [opsi]
CONTOH:
abi-pemeriksa kepatuhan -lib NAMA -tua LAMA.xml -baru BARU.xml
OLD.xml dan NEW.xml adalah deskriptor XML:
1.0
/path1/ke/header/ /path2/ke/header/
...
/path1/ke/library(ies)/ /path2/to/library(ies)/
...
INFORMASI PILIHAN:
-h|-bantuan
Cetak bantuan ini.
-i|-info
Cetak info lengkap.
-v|-versi
Informasi versi cetak.
-versi dump
Cetak versi alat (1.99.14) dan jangan lakukan hal lain.
UMUM PILIHAN:
-l|-lib|-NAMA perpustakaan
Nama perpustakaan (tanpa versi).
-d1|-lama|-o PATH
Deskriptor versi perpustakaan pertama (lama). Ini mungkin salah satu dari berikut ini:
1. XML-deskriptor (file VERSION.xml):
1.0
/path1/ke/header/ /path2/ke/header/
...
/path1/ke/library(ies)/ /path2/to/library(ies)/
...
...
2. Dump ABI dihasilkan oleh -membuang opsi 3. Direktori dengan header dan/atau dibagikan
perpustakaan 4. File header tunggal
Jika Anda menggunakan jenis deskriptor 2-4 maka Anda harus menentukan nomor versi
dengan -v1 dan -v2 pilihan juga.
Untuk informasi lebih lanjut, silakan lihat:
http://ispras.linuxbase.org/index.php/Library_Descriptor
-d2|-baru|-n PATH
Deskriptor versi perpustakaan ke-2 (baru).
-membuang|-dump-abi JALUR
Buat dump ABI perpustakaan untuk deskriptor XML input. Anda dapat mentransfernya ke mana saja
dan lulus alih-alih deskriptor. Juga dapat digunakan untuk men-debug alat.
Versi dump ABI yang didukung: 2.0<=V<=3.2
EXTRA PILIHAN:
-aplikasi|-aplikasi PATH
Opsi ini memungkinkan seseorang untuk menentukan aplikasi yang harus diperiksa
portabilitas ke versi perpustakaan baru.
-lib-statis
Periksa pustaka statis alih-alih yang dibagikan. NS bagian dari
XML-descriptor harus menunjuk ke lokasi perpustakaan statis.
-gcc-jalur PATH
Jalur ke kompiler GCC silang untuk digunakan sebagai ganti GCC (host) biasa.
-gcc-awalan AWALAN
Awalan rantai alat GCC.
-gcc-opsi Memilih
Opsi kompiler tambahan.
-sysroot DIR
Tentukan direktori root alternatif. Alat akan mencari termasuk jalur di
direktori DIR/usr/include dan DIR/usr/lib.
-v1|-versi1 NUM
Tentukan versi perpustakaan pertama di luar deskriptor. Opsi ini diperlukan jika Anda
lebih suka jenis deskriptor alternatif (lihat -d1 pilihan).
Secara umum, Anda harus menentukannya di deskriptor XML:
VERSION
-v2|-versi2 NUM
Tentukan versi perpustakaan ke-2 di luar deskriptor.
-vnum NUM
Tentukan versi pustaka di dump ABI yang dihasilkan. NS bagian dari
input XML deskriptor akan ditimpa dalam kasus ini.
-s|-ketat
Perlakukan semua peringatan kompatibilitas sebagai masalah. Tambahkan sejumlah tingkat keparahan "Rendah"
masalah dengan nilai kembali alat.
-hanya header
Periksa file header tanpa perpustakaan bersama. Mudah dijalankan, tetapi dapat memberikan
laporan kompatibilitas berkualitas rendah dengan positif palsu dan tanpa mendeteksi
simbol yang ditambahkan/dihapus.
Atau Anda dapat menulis kata "tidak ada" ke bagian di
XML-deskriptor:
tak satupun
-pertunjukan-retval
Tampilkan jenis pengembalian simbol dalam laporan.
-simbol-daftar PATH
Opsi ini memungkinkan seseorang untuk menentukan file dengan daftar simbol (nama rusak di
C++) yang harus diperiksa. Simbol lain tidak akan diperiksa.
-jenis-daftar PATH
Opsi ini memungkinkan seseorang untuk menentukan file dengan daftar jenis yang seharusnya
diperiksa. Jenis lain tidak akan diperiksa.
-lewati-simbol PATH
Daftar simbol yang tidak boleh dicentang.
-lewati-jenis PATH
Daftar jenis yang tidak boleh diperiksa.
-tajuk-daftar PATH
File dengan daftar header, yang harus diperiksa/dibuang.
-skip-header PATH
File dengan daftar file header, yang tidak boleh dicentang.
-tajuk NAMA
Periksa/Buang ABI dari header ini saja.
-gunakan-buangan
Buat dump untuk dua versi library dan bandingkan dump. Ini harus meningkat
kinerja alat dan mengurangi penggunaan memori sistem.
-nostdinc
Jangan mencari di direktori sistem standar GCC untuk file header.
-sistem pembuangan NAMA -sysroot DIR
Temukan semua perpustakaan bersama dan file header di direktori DIR, buat XML
deskriptor dan membuat dump ABI untuk setiap perpustakaan. Kumpulan hasil dump ABI dapat berupa
dibandingkan (--cmp-sistem) dengan yang lain dibuat untuk versi operasi lain
sistem untuk memeriksa kompatibilitasnya. Jangan lupa tentukan
-lintas-gcc opsi jika sistem target Anda memerlukan beberapa versi GCC tertentu
compiler (berbeda dari host GCC). Sistem dump ABI akan dibuat untuk:
sys_dumps/NAMA/ARCH
-sistem pembuangan DESKRIPTOR.xml
Sama seperti opsi sebelumnya tetapi menggunakan deskriptor XML dari sistem target sebagai
masukan, di mana Anda harus menjelaskannya:
/* Bagian utama */
/* Nama sistem */
/* Daftar path ke file header dan/atau
direktori dengan file header, satu per baris */
/* Daftar jalur ke perpustakaan bersama dan/atau
direktori dengan pustaka bersama, satu per baris */
/* Bagian opsional */
/* Daftar direktori yang akan dicari
agar file header secara otomatis menghasilkan jalur penyertaan, satu per baris */
/* Daftar direktori yang akan dicari
untuk perpustakaan bersama untuk menyelesaikan dependensi, satu per baris */
/* Daftar direktori dengan alat yang digunakan
untuk analisis (GCC toolchain), satu per baris */
/* Awalan rantai alat GCC.
contoh:
arm-linux-gnueabi arm-none-simbianelf */
/* Opsi GCC tambahan, satu per baris */
-info sistem DIR
Opsi ini harus digunakan dengan -sistem pembuangan opsi untuk membuang ABI operasi
sistem dan mengkonfigurasi proses dumping. Anda dapat menemukan sampel dalam paket:
modul/Target/{unix, symbian, windows}
-cmp-sistem -d1 sys_dumps/NAME1/ARCH -d2 sys_dumps/NAME2/ARCH
Bandingkan dua sistem ABI dump. Buat laporan kompatibilitas untuk setiap perpustakaan dan
laporan HTML umum termasuk ringkasan hasil pengujian untuk semua pustaka yang diperiksa.
Laporan akan dibuat ke:
sys_compat_reports/NAME1_to_NAME2/ARCH
-libs-daftar PATH
File dengan daftar perpustakaan, yang harus dibuang oleh -sistem pembuangan Option
atau harus diperiksa oleh -cmp-sistem .
-ekst|-diperpanjang
Jika perpustakaan A Anda seharusnya digunakan oleh perpustakaan B lain dan Anda ingin mengontrol
ABI dari B, maka Anda harus mengaktifkan opsi ini. Alat akan memeriksa perubahan
di semua tipe data, bahkan jika mereka tidak digunakan oleh fungsi apa pun di perpustakaan A. Seperti itu
tipe data bukan bagian dari ABI library, tetapi mungkin merupakan bagian dari ABI dari B
Perpustakaan.
Skema singkatnya adalah:
app C (rusak) -> lib B (ABI rusak) -> lib A (ABI stabil)
-q|-tenang
Cetak semua pesan ke file alih-alih stdout dan stderr. Jalur default (bisa berupa
diubah oleh -log-jalur pilihan):
log/run.log
-stdout
Cetak hasil analisis (laporan kompatibilitas dan dump ABI) ke stdout alih-alih
membuat file. Ini akan memungkinkan pemipaan data ke program lain.
-format-laporan FMT
Ubah format laporan kompatibilitas. Format:
htm - format HTML (default) xml - format XML
-format sampah FMT
Ubah format dump ABI. Format:
perl - Data :: Format dumper (default) xml - format XML
-xml
Alias untuk: --format-laporan=xml or --dump-format=xml
-lang BAHASA
Setel bahasa pustaka (C atau C++). Anda dapat menggunakan opsi ini jika alat tidak dapat
mendeteksi bahasa secara otomatis. Opsi ini mungkin berguna untuk memeriksa header C-library
(--lang=C) di --header-only or --diperpanjang mode.
-lengkungan LENGKUNGAN
Atur arsitektur library (x86, x86_64, ia64, arm, ppc32, ppc64, s390, dll.). NS
opsi berguna jika alat tidak dapat mendeteksi arsitektur input yang benar
benda.
-biner|-bin|-abi
Tampilkan hanya masalah kompatibilitas "Binary". Buat laporan ke:
compat_reports/LIB_NAME/V1_to_V2/abi_compat_report.html
-source|-src|-api
Tampilkan hanya masalah kompatibilitas "Sumber". Buat laporan ke:
compat_reports/LIB_NAME/V1_to_V2/src_compat_report.html
-terpengaruh batas MEMBATASI
Jumlah maksimum simbol yang terpengaruh yang tercantum di bawah deskripsi yang diubah
ketik dalam laporan.
LAIN PILIHAN:
-uji
Jalankan tes internal. Buat dua versi biner yang tidak kompatibel dari perpustakaan sampel dan
jalankan alat untuk memeriksa kompatibilitasnya. Opsi ini memungkinkan seseorang untuk memeriksa apakah
alat bekerja dengan benar di lingkungan saat ini.
-uji-buang
Uji kemampuan untuk membuat, membaca, dan membandingkan dump ABI.
-debug
Modus debug. Cetak info debug di layar. Simpan tahap analisis menengah
di direktori debug:
debug/LIB_NAME/VERSI/
Juga pertimbangkan untuk menggunakan --membuang opsi untuk men-debug alat.
-kompatibel dengan cpp
Jika file header Anda ditulis dalam bahasa C dan dapat dikompilasi oleh G++
compiler (yaitu jangan gunakan kata kunci C++), maka Anda dapat memberi tahu alat tentang ini dan
mempercepat analisis.
-cpp-tidak kompatibel
Setel opsi ini jika input file header C menggunakan kata kunci C++.
-p|-params JALAN
Path ke file dengan nama parameter fungsi. Ini dapat digunakan untuk meningkatkan laporan
lihat jika file header perpustakaan tidak memiliki nama parameter. Format berkas:
func1;param1;param2;param3 ... func2;param1;param2;param3 ...
...
-relpath PATH
Ganti makro {RELPATH} ke PATH di deskriptor XML yang digunakan untuk membuang perpustakaan
ABI (lihat -membuang pilihan).
-relpath1 PATH
Ganti makro {RELPATH} ke PATH di deskriptor XML pertama (-d1).
-relpath2 PATH
Ganti makro {RELPATH} ke PATH di deskriptor XML ke-2 (-d2).
-dump-jalur PATH
Tentukan jalur file *.abi.tar.gz atau *.abi tempat membuat dump ABI. Bawaan:
abi_dumps/LIB_NAME/LIB_NAME_VERSION.abi.tar.gz
-menyortir
Aktifkan pengurutan data di dump ABI.
-jalur-laporan PATH
Jalur menuju laporan kompatibilitas. Bawaan:
compat_reports/LIB_NAME/V1_to_V2/compat_report.html
-bin-laporan-jalur PATH
Jalur ke laporan kompatibilitas "Binary". Bawaan:
compat_reports/LIB_NAME/V1_to_V2/abi_compat_report.html
-src-laporan-jalur PATH
Jalur ke laporan kompatibilitas "Sumber". Bawaan:
compat_reports/LIB_NAME/V1_to_V2/src_compat_report.html
-log-jalur PATH
Log jalur untuk semua pesan. Bawaan:
logs/LIB_NAME/VERSION/log.txt
-log1-jalur PATH
Jalur log untuk perpustakaan versi pertama. Bawaan:
log/LIB_NAME/V1/log.txt
-log2-jalur PATH
Jalur log untuk versi ke-2 perpustakaan. Bawaan:
log/LIB_NAME/V2/log.txt
-mode masuk MODE
Ubah mode pencatatan. Mode:
w - timpa log lama (default) a - tambahkan log lama n - jangan tulis log apa pun
-terpengaruh daftar
Hasilkan file dengan daftar simbol yang tidak kompatibel di samping kompatibilitas HTML
laporan. Gunakan perintah 'c++filt @file' dari GNU binutils untuk mengurai simbol C++ di
file yang dihasilkan. Nama bawaan:
abi_affected.txt src_affected.txt
-komponen NAMA
Nama komponen dalam judul dan ringkasan laporan HTML. Bawaan:
perpustakaan
-judul NAMA
Ubah nama perpustakaan di judul laporan menjadi NAME. Secara default akan ditampilkan sebagai
nama yang ditentukan oleh -l .
-informasi tambahan DIR
Buang info tambahan ke DIR.
-ekstra-buangan
Buat dump ABI yang diperluas yang berisi semua simbol dari unit terjemahan.
-memaksa
Coba gunakan opsi ini jika alat tidak berfungsi.
-toleransi TINGKAT
Terapkan serangkaian heuristik untuk berhasil mengkompilasi file header input. Kamu bisa
mengaktifkan beberapa level toleransi dengan menggabungkannya menjadi satu string (mis. 13, 124,
dll.). Level:
1 - lewati header non-Linux (mis. win32_*.h, dll.) 2 - lewati header internal (mis.
*_p.h, impl/*.h, dll.) 3 - lewati header yang menyertakan header non-Linux 4 - lewati
header disertakan oleh orang lain
-toleran
Aktifkan tingkat toleransi tertinggi [1234].
-memeriksa
Periksa kelengkapan dump ABI.
-cepat
Analisis cepat. Nonaktifkan pemeriksaan beberapa contoh template.
-lewati-internal-simbol POLA
Jangan periksa simbol yang cocok dengan polanya.
-lewati-internal-tipe POLA
Jangan periksa jenis yang cocok dengan polanya.
MELAPORKAN:
Laporan kompatibilitas akan dibuat untuk:
compat_reports/LIB_NAME/V1_to_V2/compat_report.html
Log akan dibuat ke:
log/LIB_NAME/V1/log.txt log/LIB_NAME/V2/log.txt
EXIT KODE:
0 - Kompatibel. Alat telah berjalan tanpa kesalahan. bukan nol - Tidak kompatibel atau
alat telah berjalan dengan kesalahan.
LEBIH INFORMASI:
http://lvc.github.io/abi-compliance-checker/
Gunakan abi-compliance-checker online menggunakan layanan onworks.net