abipkgdiff(1): Skillnad mellan sidversioner

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök
 
(En mellanliggande sidversion av samma användare visas inte)
Rad 69: Rad 69:
* Standard systemomfattande fil för undertryckningsspecifikation
* Standard systemomfattande fil för undertryckningsspecifikation


  Den lokaliseras med den valfria miljövariabeln
Den lokaliseras med den valfria miljövariabeln
  LIBABIGAIL_DEFAULT_SYSTEM_SUPPRESSION_FILE.
LIBABIGAIL_DEFAULT_SYSTEM_SUPPRESSION_FILE.
  Om den miljövariabeln inte är satt försöker abipkgdiff läsa in filen
Om den miljövariabeln inte är satt försöker abipkgdiff läsa in filen
  $libdir/libabigail/libabigail-default.abignore.
$libdir/libabigail/libabigail-default.abignore.
  Om den filen inte finns läses ingen standard systemomfattande
Om den filen inte finns läses ingen standard systemomfattande
  undertryckningsspecifikation in.
undertryckningsspecifikation in.


* Standard användarspecifik fil för undertryckningsspecifikation
* Standard användarspecifik fil för undertryckningsspecifikation


  Den lokaliseras med den valfria miljövariabeln
Den lokaliseras med den valfria miljövariabeln
  LIBABIGAIL_DEFAULT_USER_SUPPRESSION_FILE.
LIBABIGAIL_DEFAULT_USER_SUPPRESSION_FILE.
  Om den miljövariabeln inte är satt försöker abipkgdiff läsa in filen
Om den miljövariabeln inte är satt försöker abipkgdiff läsa in filen
  $HOME/.abignore.
$HOME/.abignore.
  Om den filen inte finns läses ingen standard användarspecifik
Om den filen inte finns läses ingen standard användarspecifik
  undertryckningsspecifikation in.
undertryckningsspecifikation in.


Utöver dessa standardfiler tittar abipkgdiff även inuti paketen som jämförs.
Utöver dessa standardfiler tittar abipkgdiff även inuti paketen som jämförs.
Rad 97: Rad 97:
; '''--allow-non-exported-interfaces'''
; '''--allow-non-exported-interfaces'''
: När verktyget tittar på debug-information som hör till en binär analyserar
: När verktyget tittar på debug-information som hör till en binär analyserar
  det typer som kan nås från gränssnitt (funktioner och variabler) som är
det typer som kan nås från gränssnitt (funktioner och variabler) som är
  synliga utanför sin översättningsenhet. Därefter byggs ett ABI-korpus genom
synliga utanför sin översättningsenhet. Därefter byggs ett ABI-korpus genom
  att endast beakta de typer som kan nås från gränssnitt kopplade till
att endast beakta de typer som kan nås från gränssnitt kopplade till
  definierade och exporterade <i>ELF</i>-symboler.
definierade och exporterade <i>ELF</i>-symboler.
  <br><br>
<br><br>
  Problemet med detta tillvägagångssätt är att analys av alla gränssnitt som är
Problemet med detta tillvägagångssätt är att analys av alla gränssnitt som är
  synliga utanför översättningsenheten kan innebära mycket data, särskilt när
synliga utanför översättningsenheten kan innebära mycket data, särskilt när
  binärerna är program snarare än delade bibliotek. Ett exempel är
binärerna är program snarare än delade bibliotek. Ett exempel är
  <i>Linux-kärnan</i>. Att analysera så stora ABI-korpusar kan vara mycket långsamt.
<i>Linux-kärnan</i>. Att analysera så stora ABI-korpusar kan vara mycket långsamt.
  <br><br>
<br><br>
  För en "normalt stor" binär kan man dock unna sig att låta libabigail
För en "normalt stor" binär kan man dock unna sig att låta libabigail
  analysera alla gränssnitt som är synliga utanför översättningsenheten, med
analysera alla gränssnitt som är synliga utanför översättningsenheten, med
  denna flagga.
denna flagga.
  <br><br>
<br><br>
  Observera att denna flagga är aktiverad som standard, om vi inte har att göra
Observera att denna flagga är aktiverad som standard, om vi inte har att göra
  med <i>Linux-kärnan</i>.
med <i>Linux-kärnan</i>.


; '''--btf'''
; '''--btf'''
: Använd detta för att jämföra paket med <i>BTF</i>-debug-information, om sådan
: Använd detta för att jämföra paket med <i>BTF</i>-debug-information, om sådan
  finns.
finns.


; '''--ctf'''
; '''--ctf'''
: Använd detta för att jämföra paket med <i>CTF</i>-debug-information, om sådan
: Använd detta för att jämföra paket med <i>CTF</i>-debug-information, om sådan
  finns.
finns.


; '''--debug-info-pkg1''' | '''--d1''' ''&lt;sökväg&gt;''
; '''--debug-info-pkg1''' | '''--d1''' ''&lt;sökväg&gt;''
: För fall där debug-informationen för ''paket1'' har delats upp i en separat
: För fall där debug-informationen för ''paket1'' har delats upp i en separat
  fil anger detta för '''abipkgdiff''' var det separata
fil anger detta för '''abipkgdiff''' var det separata
  debug-informationspaketet finns.
debug-informationspaketet finns.
  <br><br>
<br><br>
  Observera att debug-informationen för ''paket1'' kan vara uppdelad i flera
Observera att debug-informationen för ''paket1'' kan vara uppdelad i flera
  olika debug-informationspaket. I så fall kan denna flagga anges flera gånger.
olika debug-informationspaket. I så fall kan denna flagga anges flera gånger.


; '''--debug-info-pkg2''' | '''--d2''' ''&lt;sökväg&gt;''
; '''--debug-info-pkg2''' | '''--d2''' ''&lt;sökväg&gt;''
Rad 135: Rad 135:
; '''--devel-pkg1''' | '''--devel1''' ''&lt;sökväg&gt;''
; '''--devel-pkg1''' | '''--devel1''' ''&lt;sökväg&gt;''
: Anger var det <i>utvecklingspaket</i> som hör till det första paketet att
: Anger var det <i>utvecklingspaket</i> som hör till det första paketet att
  jämföra finns. Det utvecklingspaketet på '''sökväg''' bör åtminstone innehålla
jämföra finns. Det utvecklingspaketet på '''sökväg''' bör åtminstone innehålla
  headerfiler där publika typer som biblioteken exponerar definieras.
headerfiler där publika typer som biblioteken exponerar definieras.
  När denna flagga används filtrerar verktyget bort rapporter om ABI-ändringar
När denna flagga används filtrerar verktyget bort rapporter om ABI-ändringar
  i typer som <i>inte</i> definieras i dessa headerfiler.
i typer som <i>inte</i> definieras i dessa headerfiler.


; '''--devel-pkg2''' | '''--devel2''' ''&lt;sökväg&gt;''
; '''--devel-pkg2''' | '''--devel2''' ''&lt;sökväg&gt;''
Rad 145: Rad 145:
; '''--drop-private-types'''
; '''--drop-private-types'''
: Denna flagga ska användas tillsammans med '''--devel-pkg1''' och
: Denna flagga ska användas tillsammans med '''--devel-pkg1''' och
  '''--devel-pkg2'''. Med denna flagga tas typer som <i>inte</i> definieras i
'''--devel-pkg2'''. Med denna flagga tas typer som <i>inte</i> definieras i
  headerfilerna helt bort från den interna representation som Libabigail bygger
headerfilerna helt bort från den interna representation som Libabigail bygger
  för att representera ABI:n. De behöver då inte filtreras bort i slutrapporten,
för att representera ABI:n. De behöver då inte filtreras bort i slutrapporten,
  eftersom de inte ens finns med internt.
eftersom de inte ens finns med internt.
  <br><br>
<br><br>
  Utan denna flagga behålls de privata typerna i den interna representationen
Utan denna flagga behålls de privata typerna i den interna representationen
  och filtreras bort senare från rapporten.
och filtreras bort senare från rapporten.
  <br><br>
<br><br>
  Flaggan kan därmed göra att Libabigail använder mindre minne. Den är främst
Flaggan kan därmed göra att Libabigail använder mindre minne. Den är främst
  avsedd för att optimera minnesförbrukningen för binärer med många publikt
avsedd för att optimera minnesförbrukningen för binärer med många publikt
  definierade och exporterade typer.
definierade och exporterade typer.


; '''--dso-only'''
; '''--dso-only'''
: Jämför endast ELF-filer som är delade bibliotek. Jämför till exempel inte
: Jämför endast ELF-filer som är delade bibliotek. Jämför till exempel inte
  körbara filer.
körbara filer.


; '''--exported-interfaces-only'''
; '''--exported-interfaces-only'''
: Som standard analyseras typer som kan nås från gränssnitt som är synliga
: Som standard analyseras typer som kan nås från gränssnitt som är synliga
  utanför översättningsenheten, och sedan byggs ett ABI-korpus från de typer
utanför översättningsenheten, och sedan byggs ett ABI-korpus från de typer
  som kan nås från definierade och exporterade <i>ELF</i>-symboler.
som kan nås från definierade och exporterade <i>ELF</i>-symboler.
  <br><br>
<br><br>
  Eftersom analys av alla utifrån synliga gränssnitt kan bli mycket tung, i
Eftersom analys av alla utifrån synliga gränssnitt kan bli mycket tung, i
  synnerhet för program som <i>Linux-kärnan</i>, gör denna flagga att libabigail
synnerhet för program som <i>Linux-kärnan</i>, gör denna flagga att libabigail
  endast analyserar typer som kan nås från gränssnitt associerade med
endast analyserar typer som kan nås från gränssnitt associerade med
  definierade och exporterade <i>ELF</i>-symboler.
definierade och exporterade <i>ELF</i>-symboler.
  <br><br>
<br><br>
  Observera att denna flagga är aktiverad som standard när <i>Linux-kärnan</i>
Observera att denna flagga är aktiverad som standard när <i>Linux-kärnan</i>
  analyseras. Annars är den avstängd som standard.
analyseras. Annars är den avstängd som standard.


; '''--fail-no-dbg'''
; '''--fail-no-dbg'''
: Gör att programmet misslyckas och returnerar en icke-noll avslutningskod om
: Gör att programmet misslyckas och returnerar en icke-noll avslutningskod om
  det inte kunde läsa någon debug-information från debug-informationspaketen som
det inte kunde läsa någon debug-information från debug-informationspaketen som
  angavs på kommandoraden. Om inga sådana paket angavs är denna flagga inte
angavs på kommandoraden. Om inga sådana paket angavs är denna flagga inte
  aktiv.
aktiv.
  <br><br>
<br><br>
  Observera att den avslutningskod som returneras i detta fall är konstanten
Observera att den avslutningskod som returneras i detta fall är konstanten
  '''ABIDIFF_ERROR'''. För det numeriska värdet, se dokumentationen om
'''ABIDIFF_ERROR'''. För det numeriska värdet, se dokumentationen om
  avslutningskoder.
avslutningskoder.


; '''--full-impact''' | '''-f'''
; '''--full-impact''' | '''-f'''
: När två Linux-kärnpaket jämförs instruerar denna funktion '''abipkgdiff''' att
: När två Linux-kärnpaket jämförs instruerar denna funktion '''abipkgdiff''' att
  skriva ut den så kallade <b>fullständiga påverkningsrapporten</b>, vilket är den
skriva ut den så kallade <b>fullständiga påverkningsrapporten</b>, vilket är den
  standardrapporttyp som verktyget '''abidiff''' producerar.
standardrapporttyp som verktyget '''abidiff''' producerar.


; '''--harmless'''
; '''--harmless'''
: Visa endast <i>ofarliga</i> ändringar i differensrapporten. Som standard filtreras
: Visa endast <i>ofarliga</i> ändringar i differensrapporten. Som standard filtreras
  ofarliga ändringar bort för att minska bruset och göra det lättare att hitta
ofarliga ändringar bort för att minska bruset och göra det lättare att hitta
  verkliga ABI-problem.
verkliga ABI-problem.


; '''--help''' | '''-h'''
; '''--help''' | '''-h'''
Rad 199: Rad 199:
; '''--ignore-soname'''
; '''--ignore-soname'''
: Om två binärer med olika SONAME har samma namn i de gamla och nya paketen som
: Om två binärer med olika SONAME har samma namn i de gamla och nya paketen som
  jämförs tvingar denna flagga abipkgdiff att jämföra dem trots den uppenbara
jämförs tvingar denna flagga abipkgdiff att jämföra dem trots den uppenbara
  SONAME-ändringen. Detta gör det möjligt att analysera de ABI-ändringar som
SONAME-ändringen. Detta gör det möjligt att analysera de ABI-ändringar som
  kan ha lett till att utvecklarna ändrade SONAME.
kan ha lett till att utvecklarna ändrade SONAME.


; '''--impacted-interfaces'''
; '''--impacted-interfaces'''
: När lövändringar visas instruerar denna flagga abipkgdiff att visa listan
: När lövändringar visas instruerar denna flagga abipkgdiff att visa listan
  över påverkade gränssnitt. Den ska därför användas tillsammans med
över påverkade gränssnitt. Den ska därför användas tillsammans med
  '''--leaf-changes-only''', eller när två Linux-kärnpaket jämförs.
'''--leaf-changes-only''', eller när två Linux-kärnpaket jämförs.
  Annars ignoreras den.
Annars ignoreras den.


; '''--keep-tmp-files'''
; '''--keep-tmp-files'''
Rad 214: Rad 214:
; '''--leaf-changes-only''' | '''-l'''
; '''--leaf-changes-only''' | '''-l'''
: Visa endast lövändringar, och visa alltså ingen påverkananalysrapport.
: Visa endast lövändringar, och visa alltså ingen påverkananalysrapport.
  Denna flagga implicerar '''--redundant'''.
Denna flagga implicerar '''--redundant'''.
  <br><br>
<br><br>
  Den vanliga utskriften från '''abipkgdiff''' och '''abidiff''' när två binärer
Den vanliga utskriften från '''abipkgdiff''' och '''abidiff''' när två binärer
  jämförs, den så kallade <b>fullständiga påverkningsrapporten</b>, visar inte bara
jämförs, den så kallade <b>fullständiga påverkningsrapporten</b>, visar inte bara
  en ändring i en typ utan även hur ändringen kan nås från en funktion eller
en ändring i en typ utan även hur ändringen kan nås från en funktion eller
  variabel.
variabel.
  <br><br>
<br><br>
  Med '''--leaf-changes-only''' visas bara själva ändringen i typen, alltså
Med '''--leaf-changes-only''' visas bara själva ändringen i typen, alltså
  <i>lövändringen</i>. Om du dessutom använder '''--impacted-interfaces''' visas
<i>lövändringen</i>. Om du dessutom använder '''--impacted-interfaces''' visas
  även listan över gränssnitt som påverkas av lövändringen.
även listan över gränssnitt som påverkas av lövändringen.
  <br><br>
<br><br>
  Observera att när två Linux-kärnpaket jämförs är det denna
Observera att när två Linux-kärnpaket jämförs är det denna
  <b>lövändringsrapport</b> som produceras som standard. Den normala
<b>lövändringsrapport</b> som produceras som standard. Den normala
  <b>fullständiga påverkningsrapporten</b> kan då fås med '''--full-impact'''.
<b>fullständiga påverkningsrapporten</b> kan då fås med '''--full-impact'''.


; '''--linux-kernel-abi-whitelist''' | '''-w''' ''&lt;sökväg-till-vitlista&gt;''
; '''--linux-kernel-abi-whitelist''' | '''-w''' ''&lt;sökväg-till-vitlista&gt;''

Nuvarande version från 25 april 2026 kl. 11.40

NAMN

abipkgdiff - jämför ABI:er för ELF-filer i programpaket

abipkgdiff jämför de applikationsbinära gränssnitten (ABI) för de ELF-binärer som finns i två uppsättningar programpaket. Paketformat som för närvarande stöds är Deb, RPM, tar-arkiv (komprimerade eller okomprimerade) samt vanliga kataloger som innehåller binärer.

ABI:n för binärerna i den andra paketmängden jämförs mot ABI:n för binärerna i den första paketmängden.

För en fullständig ABI-ändringsrapport som även omfattar ändringar i funktioners och variablers undertyper måste de två inmatade paketmängderna åtföljas av sina paket med felsökningsinformation, som innehåller felsökningsinformation i antingen DWARF-, CTF- eller BTF-format. Observera dock att vissa paket innehåller binärer som bäddar in felsökningsinformationen direkt i en sektion i dessa binärer. I sådana fall behövs uppenbarligen inget separat debug-informationspaket, eftersom verktyget kommer att hitta felsökningsinformationen inne i binärerna.

Som standard använder abipkgdiff felsökningsinformation i DWARF-format, om sådan finns. Annars jämför det binärgränssnitt med hjälp av felsökningsinformation i CTF- eller BTF-format, om sådan finns. Slutligen, om ingen debug-information i dessa format hittas, beaktar det bara ELF-symboler och rapporterar om symboler som lagts till eller tagits bort.

Detta verktyg använder biblioteket libabigail för att analysera binären samt dess tillhörande felsökningsinformation. Här är dess allmänna arbetssätt.

När det instrueras att göra så läses och analyseras en binär och dess tillhörande felsökningsinformation. För detta analyserar libabigail som standard beskrivningarna av de typer som kan nås från gränssnitt (funktioner och variabler) som är synliga utanför sin översättningsenhet. När den analysen är klar konstrueras ett Application Binary Interface Corpus genom att endast beakta den delmängd av typer som kan nås från gränssnitt som är kopplade till ELF-symboler som definieras och exporteras av binären. Det är detta slutliga ABI-korpus som libabigail betraktar som binärens ABI.

Libabigail kan sedan skapa textrepresentationer av ABI-korpusar, jämföra dem, analysera deras ändringar och rapportera om dem.

ANROP

abipkgdiff [flaggor] <paket1> <paket2>

paket1 och paket2 är paketen som innehåller binärerna som ska jämföras.

En alternativ anropsstil är:

abipkgdiff [flaggor] --set1 <pkg1-v1> <pkg2-v1> <pkg3-v1> \
                     --set2 <pkg1-v2> <pkg2-v2> <pkg3-v2>

där ABI:n för binärer i den andra paketmängden jämförs mot binärer i den första paketmängden.

MILJÖ

abipkgdiff läser in två standardfiler med undertryckningsspecifikationer, slår samman deras innehåll och använder det för att filtrera bort ABI-ändringsrapporter som användare kan betrakta som falska positiva.

  • Standard systemomfattande fil för undertryckningsspecifikation

Den lokaliseras med den valfria miljövariabeln LIBABIGAIL_DEFAULT_SYSTEM_SUPPRESSION_FILE. Om den miljövariabeln inte är satt försöker abipkgdiff läsa in filen $libdir/libabigail/libabigail-default.abignore. Om den filen inte finns läses ingen standard systemomfattande undertryckningsspecifikation in.

  • Standard användarspecifik fil för undertryckningsspecifikation

Den lokaliseras med den valfria miljövariabeln LIBABIGAIL_DEFAULT_USER_SUPPRESSION_FILE. Om den miljövariabeln inte är satt försöker abipkgdiff läsa in filen $HOME/.abignore. Om den filen inte finns läses ingen standard användarspecifik undertryckningsspecifikation in.

Utöver dessa standardfiler tittar abipkgdiff även inuti paketen som jämförs. Om det hittar en fil som slutar med ändelsen .abignore betraktas den som en undertryckningsspecifikation och kombineras med de standardspecifikationer som redan kan ha lästs in.

Användaren kan också använda flaggan --suppressions för att ange en undertryckningsspecifikation.

FLAGGOR

--allow-non-exported-interfaces
När verktyget tittar på debug-information som hör till en binär analyserar

det typer som kan nås från gränssnitt (funktioner och variabler) som är synliga utanför sin översättningsenhet. Därefter byggs ett ABI-korpus genom att endast beakta de typer som kan nås från gränssnitt kopplade till definierade och exporterade ELF-symboler.

Problemet med detta tillvägagångssätt är att analys av alla gränssnitt som är synliga utanför översättningsenheten kan innebära mycket data, särskilt när binärerna är program snarare än delade bibliotek. Ett exempel är Linux-kärnan. Att analysera så stora ABI-korpusar kan vara mycket långsamt.

För en "normalt stor" binär kan man dock unna sig att låta libabigail analysera alla gränssnitt som är synliga utanför översättningsenheten, med denna flagga.

Observera att denna flagga är aktiverad som standard, om vi inte har att göra med Linux-kärnan.

--btf
Använd detta för att jämföra paket med BTF-debug-information, om sådan

finns.

--ctf
Använd detta för att jämföra paket med CTF-debug-information, om sådan

finns.

--debug-info-pkg1 | --d1 <sökväg>
För fall där debug-informationen för paket1 har delats upp i en separat

fil anger detta för abipkgdiff var det separata debug-informationspaketet finns.

Observera att debug-informationen för paket1 kan vara uppdelad i flera olika debug-informationspaket. I så fall kan denna flagga anges flera gånger.

--debug-info-pkg2 | --d2 <sökväg>
Som ovan, men för paket2.
--devel-pkg1 | --devel1 <sökväg>
Anger var det utvecklingspaket som hör till det första paketet att

jämföra finns. Det utvecklingspaketet på sökväg bör åtminstone innehålla headerfiler där publika typer som biblioteken exponerar definieras. När denna flagga används filtrerar verktyget bort rapporter om ABI-ändringar i typer som inte definieras i dessa headerfiler.

--devel-pkg2 | --devel2 <sökväg>
Som ovan, men för det andra paketet.
--drop-private-types
Denna flagga ska användas tillsammans med --devel-pkg1 och

--devel-pkg2. Med denna flagga tas typer som inte definieras i headerfilerna helt bort från den interna representation som Libabigail bygger för att representera ABI:n. De behöver då inte filtreras bort i slutrapporten, eftersom de inte ens finns med internt.

Utan denna flagga behålls de privata typerna i den interna representationen och filtreras bort senare från rapporten.

Flaggan kan därmed göra att Libabigail använder mindre minne. Den är främst avsedd för att optimera minnesförbrukningen för binärer med många publikt definierade och exporterade typer.

--dso-only
Jämför endast ELF-filer som är delade bibliotek. Jämför till exempel inte

körbara filer.

--exported-interfaces-only
Som standard analyseras typer som kan nås från gränssnitt som är synliga

utanför översättningsenheten, och sedan byggs ett ABI-korpus från de typer som kan nås från definierade och exporterade ELF-symboler.

Eftersom analys av alla utifrån synliga gränssnitt kan bli mycket tung, i synnerhet för program som Linux-kärnan, gör denna flagga att libabigail endast analyserar typer som kan nås från gränssnitt associerade med definierade och exporterade ELF-symboler.

Observera att denna flagga är aktiverad som standard när Linux-kärnan analyseras. Annars är den avstängd som standard.

--fail-no-dbg
Gör att programmet misslyckas och returnerar en icke-noll avslutningskod om

det inte kunde läsa någon debug-information från debug-informationspaketen som angavs på kommandoraden. Om inga sådana paket angavs är denna flagga inte aktiv.

Observera att den avslutningskod som returneras i detta fall är konstanten ABIDIFF_ERROR. För det numeriska värdet, se dokumentationen om avslutningskoder.

--full-impact | -f
När två Linux-kärnpaket jämförs instruerar denna funktion abipkgdiff att

skriva ut den så kallade fullständiga påverkningsrapporten, vilket är den standardrapporttyp som verktyget abidiff producerar.

--harmless
Visa endast ofarliga ändringar i differensrapporten. Som standard filtreras

ofarliga ändringar bort för att minska bruset och göra det lättare att hitta verkliga ABI-problem.

--help | -h
Visa kort hjälp om kommandot och avsluta.
--ignore-soname
Om två binärer med olika SONAME har samma namn i de gamla och nya paketen som

jämförs tvingar denna flagga abipkgdiff att jämföra dem trots den uppenbara SONAME-ändringen. Detta gör det möjligt att analysera de ABI-ändringar som kan ha lett till att utvecklarna ändrade SONAME.

--impacted-interfaces
När lövändringar visas instruerar denna flagga abipkgdiff att visa listan

över påverkade gränssnitt. Den ska därför användas tillsammans med --leaf-changes-only, eller när två Linux-kärnpaket jämförs. Annars ignoreras den.

--keep-tmp-files
Radera inte temporära katalogfiler som skapas under verktygets körning.
--leaf-changes-only | -l
Visa endast lövändringar, och visa alltså ingen påverkananalysrapport.

Denna flagga implicerar --redundant.

Den vanliga utskriften från abipkgdiff och abidiff när två binärer jämförs, den så kallade fullständiga påverkningsrapporten, visar inte bara en ändring i en typ utan även hur ändringen kan nås från en funktion eller variabel.

Med --leaf-changes-only visas bara själva ändringen i typen, alltså lövändringen. Om du dessutom använder --impacted-interfaces visas även listan över gränssnitt som påverkas av lövändringen.

Observera att när två Linux-kärnpaket jämförs är det denna lövändringsrapport som produceras som standard. Den normala fullständiga påverkningsrapporten kan då fås med --full-impact.

--linux-kernel-abi-whitelist | -w <sökväg-till-vitlista>
När två Linux-kärn-RPM-paket jämförs pekar denna flagga ut en vitlista med
 namn på ELF-symboler för funktioner och variabler som måste jämföras för
 ABI-ändringar. Den kallas en "Linux kernel ABI white list".
 

Alla andra funktioner eller variabler vars ELF-symboler inte finns i vitlistan kommer inte att beaktas i ABI-jämförelsen.

Om ingen vitlista anges jämförs ABI:n för alla publikt definierade och exporterade funktioner och globala variabler i Linux-kärnans binärer.

Observera att om ett vitlistepaket anges som parameter kan denna flagga hantera det, som om --wp användes.
--no-abignore
Sök inte i paketet efter undertryckningsfiler.
--no-added-binaries
Visa inte listan över binärer som har lagts till i det andra paketet.
 

Observera att förekomsten av sådana tillagda binärer inte betraktas som en ABI-ändring av detta verktyg; därför påverkar de inte verktygets avslutningskod. De har endast informationsvärde. Borttagna binärer betraktas däremot som ABI-ändringar.
--no-added-syms
Visa inte listan över funktioner, variabler eller andra symboler som lagts
 till.
--no-assume-odr-for-cplusplus
Vid analys av en binär från C++-kod med DWARF-debug-information antar
 libabigail som standard One Definition Rule för att snabba upp analysen.
 Då antas flera typer med samma namn i binären vara lika.
 

Denna flagga stänger av det antagandet och instruerar libabigail att faktiskt jämföra typerna för att avgöra om de är lika.
--no-default-suppression
Läs inte in standardfilerna för undertryckningsspecifikation.
--no-leverage-dwarf-factorization
När en binär med DWARF-debug-information har bearbetats med verktyget
 DWZ antas typinformationen redan vara faktoriserad. Libabigail använder det
 sammanhanget för vissa hastighetsoptimeringar.
 

Denna flagga stänger av dessa optimeringar.
--no-linkage-name
Visa inte länkagets namn för tillagda, borttagna eller ändrade funktioner
 eller variabler i den resulterande rapporten.
--no-parallel
Som standard använder abipkgdiff alla tillgängliga processorer för
 parallell körning. Denna flagga säger åt det att inte extrahera paket eller
 köra jämförelser parallellt.
--non-reachable-types | -t
Analysera och skriv ändringsrapporter för alla typer i binären, inklusive
 dem som inte kan nås från globala funktioner och variabler.
 

Denna flagga kan ge avsevärd prestandaförsämring eftersom antalet analyserade typer kan vara mycket stort. Men om den kombineras med --devel-pkg1 och --devel-pkg2 begränsas de extra icke-nåbara typerna till sådana som definieras i offentliga headerfiler i de angivna utvecklingspaketen, vilket förhoppningsvis gör prestandakostnaden acceptabel.

Att använda denna flagga tillsammans med undertryckningsspecifikationer (via --suppressions) kan också hjälpa till att hålla mängden analyserade typer under kontroll.

Utan denna flagga analyseras endast typer som kan nås från globala funktioner och variabler, och endast ändringar i sådana typer rapporteras.
--no-show-locs
Visa inte information om var i det andra delade biblioteket den aktuella
 typen ändrades.
--no-show-relative-offset-changes
Utan denna flagga nämner ändringsrapporten inte bara gamla och nya offset när
 offset för en datamedlem ändras, utan också hur många bitar datamedlemmen har
 flyttats. Med denna flagga visas inte det senare.
--no-unreferenced-symbols
Visa inte ändringsinformation om funktions- och variabelsymboler som inte
 refereras av någon debug-information. Observera att den ändringsinformation
 som visas för sådana symboler endast gäller tillagda eller borttagna symboler.
--show-bits
Visa storlekar och offset i bitar, inte byte. Detta är standard.
--show-bytes
Visa storlekar och offset i byte, inte bitar. Som standard visas de i bitar.
--show-dec
Visa storlekar och offset i decimal form. Detta är standard.
--show-hex
Visa storlekar och offset i hexadecimal form.
--show-identical-binaries
Visa namnen på alla binärer som jämförts, inklusive dem vars ABI är lika.
 Som standard, när denna flagga inte används, nämns endast binärer med
 ABI-ändringar i utmatningen.
--private-dso
Som standard jämför abipkgdiff inte DSO:er som är privata för RPM-paketet.
 En privat DSO är en DSO vars SONAME inte annonseras i RPM:ets
 "provides"-egenskap.
 

Denna flagga instruerar abipkgdiff att också jämföra DSO:er som inte annonseras i "provides"-egenskapen.

Observera att denna funktion för närvarande endast finns för RPM. Patchar för andra paketformat välkomnas.
--redundant
Visa redundanta ändringar i differensrapporterna. En redundant ändring är en
 ändring som redan har visats någon annanstans i rapporten.
--self-check
Detta används för att testa det underliggande Libabigail-biblioteket.
 När denna flagga används förväntar sig kommandot bara ett inmatat paket,
 tillsammans med dess tillhörande debug-informationspaket. Kommandot jämför då
 varje binär i paketet mot dess egen ABIXML-representation. Resultatet ska vara
 den tomma mängden om Libabigail beter sig korrekt. Annars finns ett problem
 som bör rättas.
 

Denna flagga används av personer som utvecklar Libabigail för regressionstester.
--set1 <paket1-sökväg> <paket2-sökväg> <paket3-sökväg> ...
Anger den första paketmängden vars binärer ska jämföras mot den andra.
 Observera att den andra mängden ska anges med --set2.
--set2 <paket1-sökväg> <paket2-sökväg> <paket3-sökväg> ...
Anger den andra paketmängden vars binärer ska jämföras mot den första.
--suppressions | --suppr <sökväg-till-undertryckningar>
Använd en fil med undertryckningsspecifikation som finns på den angivna
 sökvägen. Observera att denna flagga kan förekomma flera gånger på
 kommandoraden. I så fall tas alla dessa filer i beaktande.
 

Observera att om denna flagga inte anges läses standardfilerna för undertryckningsspecifikation in som standard.
--version | -v
Visa programmets version och avsluta.
--wp <sökväg-till-vitlistepaket>
När två Linux-kärn-RPM-paket jämförs pekar denna flagga på ett RPM-paket som
 innehåller flera vitlistor med namn på ELF-symboler för funktioner och
 variabler som måste jämföras för ABI-ändringar. Dessa vitlistor kallas
 "Linux kernel ABI white lists".
 

Utifrån innehållet i vitlistepaketet väljer programmet sedan lämplig vitlista att använda när ABI:n i Linux-kärnans binärer i paketen som angivits på kommandoraden jämförs.

Den valda vitlistan innehåller namnen på ELF-symboler för funktioner och variabler som måste jämföras för ABI-ändringar.

Alla andra funktioner eller variabler vars ELF-symboler inte finns i denna vitlista kommer inte att beaktas i ABI-jämförelsen.

Observera att denna flagga kan anges två gånger, men inte fler, så att ett vitlistepaket kan anges för vart och ett av de två Linux-kärnpaketen på kommandoraden.

Om ingen sådan flagga anges jämförs ABI:n för alla publikt definierade och exporterade funktioner och globala variabler i Linux-kärnans binärer.
--verbose
Skriv ut utförliga statusmeddelanden.
--verbose-diff
Skriv ut tidsstämplade och utförliga statusmeddelanden om
 differensberäkningen. Denna flagga implicerar --verbose.

RETURVÄRDE

Avslutningskoden för kommandot abipkgdiff är antingen 0 om ABI:n för de jämförda binärerna är lika, eller ett värde skilt från noll om de skiljer sig eller om verktyget råkade ut för ett fel.

I det senare fallet är värdet på avslutningskoden detsamma som för verktyget abidiff.

FÖRFATTARE

Dodji Seketeli

COPYRIGHT

2014-2025, Red Hat, Inc.

COLOPHON

Denna sida är en del av projektet libabigail (ABI Generic Analysis and Instrumentation Library). Information om projektet finns på ⟨https://sourceware.org/libabigail/⟩. Om du har en felrapport för denna manualsida, se ⟨http://sourceware.org/bugzilla/enter_bug.cgi?product=libabigail⟩. Denna sida hämtades från projektets Git-arkiv uppströms ⟨git://sourceware.org/git/libabigail.git⟩ den 2026-01-16. (Vid den tidpunkten var datumet för den senaste commit som hittades i arkivet 2025-11-11.) Om du upptäcker renderingsproblem i denna HTML-version av sidan, eller om du anser att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna COLOPHON (som inte är en del av originalmanualsidan), skicka e-post till man-pages@man7.org

Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/abipkgdiff.1.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till PC Service som har sponsrat Linux.se med webbhotell.