เบเบตเปเปเบกเปเบเบเปเบฒเบชเบฑเปเบ abicompat เบเบตเปเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเปเบ OnWorks เบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเปเบฎเบเบเบดเปเบเบเบฃเบตเปเบเบเปเบเปเบซเบเบถเปเบเปเบเบชเบฐเบเบฒเบเบตเปเบฎเบฑเบเบงเบฝเบเบญเบญเบเปเบฅเบเปเบเบฃเบตเบซเบผเบฒเบเบญเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบฑเปเบ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator
เปเบเบเบเบฒเบ:
NAME
abicompat - เบเบงเบเปเบเบดเปเบเบเบงเบฒเบกเปเบเบปเปเบฒเบเบฑเบเปเบเป ABI
abicompat เบเบงเบเปเบเบดเปเบเบงเปเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบตเปเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบเบเบฑเบเปเบซเปเปเบกเปเบเบเบฑเบเบขเบนเป
ABI เปเบเบปเปเบฒเบเบฑเบเปเบเปเบเบฑเบเบชเบฐเบเบฑเบเบเปเปเบกเบฒเบเบญเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบฑเปเบ. เบเปเบฒเบซเบฒเบเบงเปเบฒเบชเบฐเบเบฑเบเปเบซเบกเปเบเบญเบ
เบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบเบฐเบเปเบฒเบเบงเบฒเบกเบเปเปเปเบเบปเปเบฒเบเบฑเบเบเบญเบ ABI, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ abicompat เบเบตเปเบเบญเบเบเบนเปเปเบเปเปเบเบชเบดเปเบเบเบตเปเปเบเปเบเบญเบ
เบเบงเบฒเบกเบเปเปเปเบเบปเปเบฒเบเบฑเบเบเบฑเปเบเปเบกเปเบ.
เบเบฒเบเบฎเบฝเบเบฎเปเบญเบ
abicompat [เบเบฒเบโเปเบฅเบทเบญเบโ] [ ]
OPTIONS
ยท - เบเปเบงเบ
เบชเบฐเปเบเบเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเบชเบฑเปเบเปเบเปเบฝเบงเบเบฑเบเบเปเบฒเบชเบฑเปเบเปเบฅเบฐเบญเบญเบ.
ยท - เบเบฒเบเบเปเบฝเบเปเบเบ | -v
เบชเบฐเปเบเบเบชเบฐเบเบฑเบเบเบญเบเปเบเบเบเบฒเบเปเบฅเบฐเบญเบญเบ.
ยท --list-undefined-เบชเบฑเบเบเบฒเบฅเบฑเบ | -u
เบชเบฐเปเบเบเบฅเบฒเบเบเบทเปเบเบญเบเบชเบฑเบเบเบฒเบฅเบฑเบเบเบตเปเบเปเปเปเบเปเบเปเบฒเบเบปเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบฅเบฐเบญเบญเบ.
ยท --show-base-names | -b
เปเบเบเบปเบเบฅเบฒเบเบเบฒเบเบเบปเบเปเบเปเบฎเบฑเบเบเบตเปเบเปเบญเบเบญเบญเบเบกเบฒเปเบเบเปเบเบทเปเบญเบเบกเบท, เบเบฒเบเปเบฅเบทเบญเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฅเบฐ
เบซเปเบชเบฐเบซเบกเบธเบเบเบทเบเบเปเบฒเบงเปเบเบดเบเปเบเบเบเบทเปเบเบทเปเบเบเบฒเบเบเบญเบเบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเบเบฑเปเบ; เบเปเปเปเบกเปเบเบเบทเปเปเบเบฑเบก. เบเบตเป
เบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบชเบฐเบเบดเบเบเบตเปเบเปเบญเบเบเบฒเบเบเบฝเบเบเบฝเบเบเบทเปเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฅเบฐ
เบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบเบฑเบเปเบญเบเบฐเบฅเบฒเบเบเบญเบเบชเบดเปเบเบเบตเปเบเบทเปเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ.
ยท --app-debug-info-dir
เบเปเบฒเบเบปเบเปเบชเบฑเปเบเบเบฒเบเปเบเบซเบฒเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบเปเปเบกเบนเบเบเบตเบเบฑเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบกเปเบ
เบเบงเบโเบเบฐโเปเบเปโเบงเบฒเบโเบญเบญเบโ. เบเบตเปเปเบกเปเบเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบ binaries เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบ debug เปเบเป
เบเปเปเบกเบนเบเปเบกเปเบเบขเบนเปเปเบเบเบธเบเปเบเบฅเปเปเบเบเบเปเบฒเบเบซเบฒเบ.
ยท --lib-debug-info-dir1
เบเปเบฒเบเบปเบเปเบชเบฑเปเบเบเบฒเบเปเบเบซเบฒเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฒเบเปเบเปเบเปเปเบกเบนเบ debug เบเบญเบเบชเบฐเบเบฑเบเบเปเบฒเบญเบดเบ
เบเบญเบเบซเปเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบเปเบกเปเบเบเบงเบเบเบฐเบเบทเบเบงเบฒเบเปเบงเป. เบเบตเปเปเบกเปเบเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบ
เปเบเบเบฒเบฃเบตเบเบตเปเบเปเปเบกเบนเบเบเบตเบเบฑเบเบขเบนเปเปเบเบเบธเบเปเบเบฅเปเปเบเบเบเปเบฒเบเบซเบฒเบ.
ยท --lib-debug-info-dir2
เบเปเบฒเบเบปเบเปเบชเบฑเปเบเบเบฒเบเปเบเบซเบฒเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฒเบเปเบเปเบเปเปเบกเบนเบ debug เบเบญเบเบชเบฐเบเบฑเบเบเบตเบชเบญเบ
เบเบญเบเบซเปเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบเปเบกเปเบเบเบงเบเบเบฐเบเบทเบเบงเบฒเบเปเบงเป. เบเบตเปเปเบกเปเบเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบตเปเปเบเปเบฎเปเบงเบกเบเบฑเบ
เปเบเบเบฒเบฃเบตเบเบตเปเบเปเปเบกเบนเบเบเบตเบเบฑเบเบขเบนเปเปเบเบเบธเบเปเบเบฅเปเปเบเบเบเปเบฒเบเบซเบฒเบ.
ยท --no-show-locs
เบขเปเบฒเบชเบฐเปเบเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเปเบญเบเบเบตเปเบขเบนเปเปเบ เบเบฑเปเบเบเบตเบชเบญเบ เปเบเปเบเบเบฑเบ เบซเปเบญเบเบชเบฐเบซเบกเบธเบ เบเบตเปเบเปเบฝเบงเบเปเบญเบ
เบเบฐเปเบเบเบเบทเบเบเปเบฝเบเปเบเบ.
ยท -- เปเบซเบกเบเบญเปเบญเบ
เบเบตเปเบเบฐเบเบธเปเบเบฎเบนเบเปเบเบเบเบตเปเบญเปเบญเบเปเบญเบเบญเบ abicompat. เปเบโเบฎเบนเบโเปเบเบโเบเบตเปโ, เบกเบตโเบเบฝเบโเปเบเปโเบซเบเบถเปเบโเบชเบฐโเบเบฑเบโเบเบญเบโ
เบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบกเปเบเบเปเบญเบเบเบฒเบ. เบเบฑเปเบเปเบกเปเบ, abicompat เบเบทเบเปเบญเบตเปเบเปเบเบเบเบตเป:
abicompat --weak-mode
เบซเบกเบฒเบเปเบซเบเบงเปเบฒ -- เปเบซเบกเบเบญเปเบญเบ เบเบฒเบโเปเบฅเบทเบญเบโเปเบกเปเบโเปเบเปโเบชเบฒโเบกเบฒเบโเบเบทเบโเบเบปเบโเปเบงเบฑเปเบโเบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเบฝเบโเปเบเปโเบซเบเบถเปเบโเบชเบฐโเบเบฑเบโเบเบญเบโ
เบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบเปเบเบทเบเบกเบญเบ, เบเปเบญเบกเบเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ; เปเบโเบเปโเบฅเบฐโเบเบตโเบเบฑเปเบ, abicompat เบญเบฑเบเบเบฐเปเบเบกเบฑเบ
เบชเบฐเบซเบผเบฑเบเปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเปเปเบเบญเปเบญเบ:
abicompat
เปเบเบฎเบนเบเปเบเบเบเบตเปเบญเปเบญเบเปเบญเบเบตเป, เบเบฐเปเบเบเบเบญเบเบซเบเปเบฒเบเบตเปเปเบฅเบฐเบเบปเบงเปเบเบเบตเปเบชเบปเปเบเบญเบญเบเปเบเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเปเบฅเบฐ
เบเปเบฅเบดเปเบเบเปเบเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ (เปเบ, เบชเบฑเบเบเบฒเบฅเบฑเบเบเบญเบเบซเบเปเบฒเบเบตเปเปเบฅเบฐเบเบปเบงเปเบเปเบซเบผเบปเปเบฒเบเบตเป
เปเบกเปเบ undefined เปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบเบทเบเบเปเบฒเบเบปเบเปเบฅเบฐเบชเบปเปเบเบญเบญเบเปเบเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ) เปเบกเปเบ
เปเบกเบทเปเบญเบเบฝเบเบเบฝเบเบเบฑเบเบฅเบธเปเบเบเบญเบเบเบฐเปเบเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบฒเบกเบเบตเปเบเบฒเบเปเบงเปเปเบเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ. เปเบฅเบฐเบเปเบฒเบซเบฒเบเบงเปเบฒเปเบซเบผเบปเปเบฒเบเบตเป
เบชเบญเบโเบชเบฐโเบเบฑเบโเบเบญเบโเบเบฐโเปเบเบโเปเบกเปเบโเปเบเบโเบเปเบฒเบโเบเบฑเบโ, abicompat เบเบญเบเบเบนเปเปเบเปเบงเปเบฒเบกเบตเบเบงเบฒเบกเปเบเบเบเปเบฒเบเปเบเบงเปเบ
เปเบกเปเบ.
เปเบเบเปเบฒเบชเบฑเบเบเปเบฒเบเปเบญเบทเปเบเป, เปเบเบฎเบนเบเปเบเบเบเบตเป, abicompat เบเบงเบเปเบเบดเปเบเบงเปเบฒเบเบฐเปเบเบเบเบญเบเบซเบเปเบฒเบเบตเปเปเบฅเบฐ
เบเบปเบงเปเบเบเบตเปเบชเบปเปเบเบญเบญเบเปเบเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบซเบกเบฒเบเปเบเบดเบเบชเบดเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบชเบดเปเบเบเบตเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ
เบเบฒเบเบงเปเบฒ, เปเบเบปเปเบฒเบเบตเป ABI เบเปเบฝเบงเบเปเบญเบ.
เปเบซเปโเบชเบฑเบโเปเบเบโเบงเปเบฒโเปเบโเบฎเบนเบโเปเบเบโเบเบตเปโ, abicompat เบเปเปเบเบงเบเบเบปเบเบเบฑเบเบเบฑเบ เบซเบผเบทเบเบปเบงเปเบเบเบตเปเบชเบปเปเบเบญเบญเบ
(เบชเบฑเบโเบเบฒโเบฅเบฑเบโ) เบเบตเปโเบเบฒเบโเบงเปเบฒโเบเบฐโเปเบเบโเบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบโเปเบเปโเบงเปเบฒโเปเบเปโเบเบทเบโเปเบเบโเบเปเบฒเบโเบญเบญเบโเบเบฒเบโเบซเปเบญเบโเบชเบฐโเบซเบกเบธเบโ.
เบเบฑเปเบเปเบกเปเบเปเบซเบเบเบปเบเบเบตเปเบงเปเบฒเบกเบฑเบเบเบทเบเปเบญเบตเปเบเบงเปเบฒ เบญเปเบญเบเปเบญ mode
เบเบฑเบเบเบทเบ VALUES
เบฅเบฐเบซเบฑเบเบเบฒเบเบญเบญเบเบเบญเบ abicompat เบเปเบฒเบชเบฑเปเบเปเบกเปเบ 0 เบเปเบฒ ABI เบเบญเบ binaries เปเบเบฑเบ
เบเบฝเบเบเบฝเบเปเบกเปเบเปเบเบปเปเบฒเบเบฝเบกเบเบฑเบ, เบซเบผเบทเบเปเปเปเบกเปเบเบชเบนเบเบเปเบฒเบเบงเบเบกเบฑเบเปเบเบเบเปเบฒเบเบเบฑเบเบซเบผเบทเบเปเบฒเปเบเบทเปเบญเบเบกเบทเบเบปเบเบเปเปเบเบดเบเบเบฒเบ.
เปเบเบเปเบฅเบฐเบเบตเบเปเปเบกเบฒ, เบฅเบฐเบซเบฑเบเบญเบญเบเปเบกเปเบ 8-bits-wide bit field เบเบตเปเปเบเปเบฅเบฐ bit เบกเบต a
เบเบงเบฒเบกเบซเบกเบฒเบเบชเบฐเปเบเบฒเบฐ.
เบเบดเบเบเบณเบญเบดเบเบเบญเบเบเปเบฒ 1, เบเบทเป ABIDIFF_ERROR เบซเบกเบฒเบโเบเบงเบฒเบกโเบงเปเบฒโเบกเบตโเบเบงเบฒเบกโเบเบดเบโเบเบฒเบโ.
เบเบดเบเบเบตเบชเบญเบ, เบเบญเบเบกเบนเบเบเปเบฒ 2, เบเบทเป ABIDIFF_USAGE_ERROR เบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบกเบตเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเบงเบดเบเบตเบเบฒเบ
เบเบนเปเปเบเปเปเบเปเบฎเบฝเบเบฎเปเบญเบเปเบเบทเปเบญเบเบกเบท. เบกเบฑเบเบญเบฒเบเบเบฐเบเบทเบเบเปเบฒเบเบปเบ, เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบนเปเปเบเปเบฎเบฝเบเบฎเปเบญเบเปเบเบทเปเบญเบเบกเบท
เบเปเบงเบเบเบฒเบเบเปเบฝเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเปเปเบฎเบนเปเบเบฑเบ, เบกเบตเบเบปเบงเปเบฅเบเบเบดเบ เบซเบผเบท argument, เปเบฅเบฐเบญเบทเปเบเป เบเปเบฒเบเบดเบเบเบตเปเปเบกเปเบ
เบเบฑเปเบ, เบเบฒเบเบเบฑเปเบ ABIDIFF_ERROR bit เบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบฑเปเบเบเบฝเบงเบเบฑเบ.
เบเบดเบเบเบตเบชเบฒเบก, เบเบญเบเบกเบนเบเบเปเบฒ 4, เบเบทเป ABIDIFF_ABI_CHANGE เบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ ABI เบเบญเบ binaries เปเบเบฑเบ
เบเบฝเบเบเบฝเบเปเบกเปเบเปเบเบเบเปเบฒเบเบเบฑเบ.
เบเบดเบเบเบตเบชเบตเป, เบเบญเบเบกเบนเบเบเปเบฒ 8, เบเบทเป ABIDIFF_ABI_INCOMPATIBLE_CHANGE เบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ ABI เบเบญเบ
binaries เบเบฝเบเบเบฝเบเปเบกเปเบเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบเบฒเบเบเบตเปเบเปเปเปเบเบปเปเบฒเบเบฑเบเปเบเป. เบเปเบฒเบเบดเบเบเบตเปเบเบทเบเบเบฑเปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ
ABIDIFF_ABI_CHANGE bit เบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบฑเปเบเบเบฝเบงเบเบฑเบ. เบเปเบฒ ABIDIFF_ABI_CHANGE เบเบทเบเบเปเบฒเบเบปเบเปเบฅเบฐ
ABIDIFF_INCOMPATIBLE_CHANGE is เบเปเป เบเปเบฒเบเบปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ ABIs เบเบตเปเบเบทเบเบเบฝเบเบเบฝเบเบญเบฒเบเบเบฐ
เบซเบผเบทเบญเบฒเบเบเบฐเบเปเปเปเบเบปเปเบฒเบเบฑเบเปเบเป. เปเบเบเปเบฅเบฐเบเบตเบเบฑเปเบเบเปเบฒเบง, เบกเบฐเบเบธเบเบเปเบญเบเบเบปเบเบเบงเบเบเบทเบเบเบฒเบเบเปเบฝเบเปเบเบ ABI
เปเบเบทเปเบญเบเบฑเบเบชเบดเบเปเบเบงเปเบฒเบเบงเบเบกเบฑเบเปเบเบปเปเบฒเบเบฑเบเปเบเปเบซเบผเบทเบเปเป.
เบเบดเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเบเปเปเปเบเปเบเบทเบเบเปเบฒเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบธเบเบฑเบ.
เบเบฒเบเบเปเบฒเปเบเป เบเบปเบงเบขเปเบฒเบ
ยท เบเบฒเบโเบเบงเบโเบชเบญเบโเบเบงเบฒเบกโเบเปเปโเปเบเบปเปเบฒโเบเบฑเบ ABI เบเบตเปโเปเบเบฑเบโเปเบโเปเบเปโเปเบโเบชเบฐโเบเบฑเบโเบซเปเบญเบโเบชเบฐโเบซเบกเบธเบโเบเบตเปโเปเบเปเบโเบเบฑเบโเปเบซเบกเปโ:
$ cat -n test0.h
เปเบเบเบชเปเบฒเบ 1 fo
2 {
3 int m0;
4
5 foo()
6 : m0()
7 {}
8 };
9
10 เบเบธเบ*
11 first_func();
12
13 เบซเบงเปเบฒเบเปเบเบปเปเบฒ
14 second_func(foo&);
15
16 เบซเบงเปเบฒเบเปเบเบปเปเบฒ
17 third_func();
$
$ cat -n test-app.cc
1 // เบฅเบงเบเบฅเบงเบกเบเบฑเบ:
2 // g++ -g -Wall -o test-app -L. -ltest-0 test-app.cc
3
4 #include "test0.h"
5
6 int
7 เบซเบผเบฑเบ()
8 {
9 foo* f = first_func();
10 second_func(*f);
11 เบเบฑเบเบเบทเบ 0;
12 }
$
$ cat -n test0.cc
1 // เบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบเบเบตเปเบเปเบงเบ:
2 // g++ -g -Wall -shared -o libtest-0.so test0.cc
3
4 #include "test0.h"
5
6 เบเบธเบ*
7 first_func()
8 {
9 foo* f = new foo();
10 เบเบฑเบเบเบทเบ f;
11 }
12
13 เบซเบงเปเบฒเบเปเบเบปเปเบฒ
14 second_func(foo&)
15 {
16 }
17
18 เบซเบงเปเบฒเบเปเบเบปเปเบฒ
19 third_func()
20 {
21 }
$
$ cat -n test1.h
เปเบเบเบชเปเบฒเบ 1 fo
2 {
3 int m0;
4 char m1; /* <-- เปเบเปเปเบเบตเปเบกเบชเบฐเบกเบฒเบเบดเบเปเปเปเบขเบนเปเบเบตเปเบเบตเป! */
5
6 foo()
7 : m0( ),
8 m1()
9 {}
10 };
11
12 เบเบธเบ*
13 first_func();
14
15 เบซเบงเปเบฒเบเปเบเบปเปเบฒ
16 second_func(foo&);
17
18 เบซเบงเปเบฒเบเปเบเบปเปเบฒ
19 third_func();
$
$ cat -n test1.cc
1 // เบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบเบเบตเปเบเปเบงเบ:
2 // g++ -g -Wall -shared -o libtest-1.so test1.cc
3
4 #include "test1.h"
5
6 เบเบธเบ*
7 first_func()
8 {
9 foo* f = new foo();
10 เบเบฑเบเบเบทเบ f;
11 }
12
13 เบซเบงเปเบฒเบเปเบเบปเปเบฒ
14 second_func(foo&)
15 {
16 }
17
18 /* เปเบซเปเบเปเบฒเบเบดเบเบเปเบฒเปเบซเบฑเบเบญเบญเบเบเปเบฒเบเบดเบเบฒเบกเบเบญเบ third_func()
19 เบซเบงเปเบฒเบเปเบเบปเปเบฒ
20 third_func()
21 {
22 }
23 */
$
ยทเบฅเบงเบเบฅเบงเบกเบชเบฐเบเบฑเบเบเปเบฒเบญเบดเบเปเบฅเบฐเบเบตเบชเบญเบเบเบญเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ: libtest-0.so เปเบฅเบฐ
libtest-1.so:
$g++ -g -Wall -shared -o libtest-0.so test0.cc
$g++ -g -Wall -shared -o libtest-1.so test1.cc
ยทเบฅเบงเบเบฅเบงเบกเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฅเบฐเปเบเบทเปเบญเบกเบเปเปเบกเบฑเบเบเบฑเบเบชเบฐเบเบฑเบเบเปเบฒเบญเบดเบเบเบญเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ,
เบเบฒเบโเบชเปเบฒเบ เปเบญเบฑเบเบเบปเบเบชเบญเบ เบเบนเป:
$ g++ -g -Wall -o test-app -L. -ltest-0.so test-app.cc
ยท เบเบฝเบงเบเบตเป, เปเบเป abicompat เปเบเบทเปเบญเปเบเบดเปเบเบงเปเบฒ libtest-1.so เปเบกเปเบ ABI เปเบเบปเปเบฒเบเบฑเบเปเบเปเบเบฑเบ app, เบเปเบงเบเบเบงเบฒเบกเบเบฑเบเบเบท
เบเบฑเบ ABI เบเบญเบ libtest-0.so:
$ abicompat test-app libtest-0.so libtest-1.so
เปเบเบฅเป ELF 'test-app' เบญเบฒเบเบเบฐเบเปเปเปเบเบฑเบ ABI เบเบตเปเปเบเบปเปเบฒเบเบฑเบเปเบเปเบเบฑเบ 'libtest-1.so' เปเบเบทเปเบญเบเบเบฒเบเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบฑเบ 'libtest-0.so' เบเปเบฒเบเบฅเบธเปเบกเบเบตเป:
เบชเบฑเบเบฅเบงเบกเบเบฒเบเบเปเบฝเบเปเบเบเบเบฑเบเบเบฑเบ: 0 เบเบญเบเบญเบญเบ, 2 เบเปเบฝเบเปเบเบ, 0 เบเบฑเบเบเบฑเบเปเบเบตเปเบก
เบชเบฐเบซเบผเบธเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบปเบงเปเบ: 0 เบฅเบปเบเบญเบญเบ, 0 เบเปเบฝเบเปเบเบ, 0 เปเบเบตเปเบกเบเบปเบงเปเบ
2 เบซเบเปเบฒเบเบตเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเบฐเปเบเบเบเปเบญเบเบเบฒเบเบญเปเบญเบก:
[C]'function foo* first_func()' เบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเบฐเปเบเบเบเปเบญเบเบเบฒเบเบญเปเบญเบก:
เบเปเบฝเบโเบเบฐโเปเบเบโเบเบฑเบโเบเบทเบโเปเบโเบเปเบญเบโ:
เบเบตเปเปเบเบเบดเบก 'struct foo':
เบเบฐเบซเบเบฒเบเบเปเบฝเบเบเบฒเบ 32 เบซเบฒ 64 bits
1 เบเบฒเบเปเบเบเบชเบฐเบกเบฒเบเบดเบเบเปเปเบกเบนเบ:
'char foo::m1', เบเบตเป offset 32 โโ(in bits)
[C] 'function void second_func(foo&)' เบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเบฐเปเบเบเบเปเบญเบเบเบฒเบเบญเปเบญเบก:
เบเบฒเบฅเบฒเบกเบดเปเบเบต 0 เบเบญเบเบเบฐเปเบเบ 'foo&' เบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบฐเปเบเบเบเปเบญเบ:
เบเบฐเปเบเบเบญเปเบฒเบเบญเบตเบ 'struct foo' เบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ, เบเบฑเปเบเบเบตเปเปเบเปเบฅเบฒเบเบเบฒเบเบเปเบญเบเบซเบเปเบฒเบเบตเป
$
ยทเปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเปเบเปเบฎเบนเบเปเบเบเบเบตเปเบญเปเบญเบเปเบญเบเบญเบ abicompat, เบเบฑเปเบเปเบกเปเบ, เบชเบฐเบซเบเบญเบเบเบฝเบเปเบเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฅเบฐ
เบชเบฐโเบเบฑเบโเปเบซเบกเปโเบเบญเบโเบซเปโเบชเบฐโเบซเบกเบธเบโ:
$ abicompat --weak-mode test-app libtest-1.so
เบซเบเปเบฒเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ
'libtest-1.so'
เบกเบตเบเบฐเปเบเบเบเปเบญเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบ
'เปเบญเบฑเบเบเบปเบเบชเบญเบ'
เบเบฒเบเบซเบงเบฑเบเบงเปเบฒ:
function foo* first_func():
เบเปเบฝเบโเบเบฐโเปเบเบโเบเบฑเบโเบเบทเบโเปเบโเบเปเบญเบโ:
เบเบตเปเปเบเบเบดเบก 'struct foo':
เบเบฐเบซเบเบฒเบเบเปเบฝเบเบเบฒเบ 32 เบซเบฒ 64 bits
1 เบเบฒเบเปเบเบเบชเบฐเบกเบฒเบเบดเบเบเปเปเบกเบนเบ:
'char foo::m1', เบเบตเป offset 32 โโ(in bits)
$
เปเบเป abicompat เบญเบญเบเปเบฅเบเปเปเบเบเปเบเปเบเปเบฅเบดเบเบฒเบ onworks.net