.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "dpkg-buildflags 1" .TH dpkg-buildflags 1 2024-01-24 1.22.4 "dpkg suite" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAMN .IX Header "NAMN" dpkg-buildflags \- returnerar byggflaggor att anv\(:anda f\(:or att bygga paket .SH SYNOPS .IX Header "SYNOPS" \&\fBdpkg-buildflags\fR [\fIflagga\fR...] \fIkommando\fR .SH BESKRIVNING .IX Header "BESKRIVNING" \&\fBdpkg-buildflags\fR \(:ar ett verktyg f\(:or att h\(:amta kompileringsflaggor att anv\(:anda f\(:or att bygga Debianpaket. .PP De f\(:orvalda flaggorna anges av leverant\(:oren, men de kan ut\(:okas/\(:overstyras p\(oa flera s\(:att: .IP 1. 4 p\(oa hela systemet med \fB/etc/dpkg/buildflags.conf\fR; .IP 2. 4 f\(:or den nuvarande anv\(:andaren med \fR\f(CB$XDG_CONFIG_HOME\fR\fB/dpkg/buildflags.conf\fR d\(:ar \fB\fR\f(CB$XDG_CONFIG_HOME\fR\fB\fR har standardv\(:ardet \fB\fR\f(CB$HOME\fR\fB/.config\fR; .IP 3. 4 tempor\(:art av anv\(:andaren med milj\(:ovariabler (se stycket "MILJ\(:O"). .IP 4. 4 dynamiskt av paketansvariga med milj\(:ovariabler som s\(:atts via \fBdebian/rules\fR (se stycket "MILJ\(:O"). .PP Konfigurationsfilerna kan inneh\(oalla fyra sorters direktiv: .IP "\fBSET\fR \fIflagga\fR \fIv\(:arde\fR" 4 .IX Item "SET flagga v\(:arde" \(:Overstyr flaggan \fIflagga\fR till att ha v\(:ardet \fIv\(:arde\fR. .IP "\fBSTRIP\fR \fIflagga\fR \fIv\(:arde\fR" 4 .IX Item "STRIP flagga v\(:arde" Ta bort alla flaggor som listas i \fIv\(:arde\fR fr\(oan flaggan som anges i \fIflagga\fR. Sedan dpkg 1.16.1. .IP "\fBAPPEND\fR \fIflagga\fR \fIv\(:arde\fR" 4 .IX Item "APPEND flagga v\(:arde" Ut\(:oka flaggan \fIflagga\fR genom att l\(:agga till alternativen som anges i \fIv\(:arde\fR. Ett blanksteg l\(:aggs till f\(:ore v\(:ardet om flaggans nuvarande v\(:arde inte \(:ar tomt. .IP "\fBPREPEND\fR \fIflagga\fR \fIv\(:arde\fR" 4 .IX Item "PREPEND flagga v\(:arde" Ut\(:oka flaggan \fIflagga\fR genom att l\(:agga till alternativen som anges i \fIv\(:arde\fR f\(:orst. Ett blanksteg l\(:aggs till efter v\(:ardet om flaggans nuvarande v\(:arde inte \(:ar tomt. Sedan dpkg 1.16.1. .PP Konfigurationsfilerna kan inneh\(oalla kommentarer p\(oa rader som b\(:orjar med ett nummertecken (#). \(:Aven tomma rader ignoreras. .PP Kommandot introducerades i dpkg 1.15.7.. .SH KOMMANDON .IX Header "KOMMANDON" .IP \fB\-\-dump\fR 4 .IX Item "--dump" Skriv alla kompileringsflaggor och deras v\(:arde p\(oa standard ut. En flagga skrivs per rad, avdelade fr\(oan sitt v\(:arde med ett likamedtecken (\(rq\fIflagga\fR=\fIv\(:arde\fR\(rq). Detta \(:ar standard\(oatg\(:arden. .IP \fB\-\-list\fR 4 .IX Item "--list" Skriv ut listan \(:over flaggor som st\(:ods av den aktuella leverant\(:oren (en per rad). Se stycket "FLAGGOR SOM ST\(:ODS" f\(:or mer information om dem. .IP \fB\-\-status\fR 4 .IX Item "--status" Visa information som kan vara anv\(:andbar f\(:or att f\(:orklara \fBdpkg-buildflags\fR beteende (sedan dpkg 1.16.5): relevanta milj\(:ovariabler, aktuell \(oaterf\(:ors\(:aljare, status f\(:or alla funktionsflaggor. Skriv \(:aven ut slutgiltiga kompilatorflaggor och deras k\(:alla. .Sp Detta \(:ar t\(:ankt att k\(:oras fr\(oan \fBdebian/rules\fR s\(oa att byggloggen inneh\(oaller ett tydligt sp\(oar \(:over de anv\(:anda byggflaggorna. Det kan vara anv\(:andbart f\(:or att diagnostisera problem r\(:orande dessa. .IP \fB\-\-export=\fR\fIformat\fR 4 .IX Item "--export=format" Skriv kommandon som kan anv\(:andas f\(:or att exportera alla kompileringsflaggor f\(:or n\(oagot specifikt verktyg. Om \fIformat\fR inte anges antas \fBsh\fR. Endast kompileringsflaggor som b\(:orjar med en stor bokstav tas med, andra antas att inte vara l\(:ampliga f\(:or milj\(:on. Format som st\(:ods: .RS 4 .IP \fBsh\fR 4 .IX Item "sh" Skalkommandon f\(:or att s\(:atta och exportera alla kompileringsflaggor i milj\(:on. Flaggv\(:ardena citeras s\(oa att utdata \(:ar redo att utv\(:arderas av ett skal. .IP \fBcmdline\fR 4 .IX Item "cmdline" Argument att s\(:anda till byggprogrammets kommandorad f\(:or att anv\(:anda alla kompileringsflaggor (sedan dpkg 1.17.0). Flaggornas v\(:arde citeras enligt skalsyntax. .IP \fBconfigure\fR 4 .IX Item "configure" Detta \(:ar ett gammalt alias f\(:or \fBcmdline\fR. .IP \fBmake\fR 4 .IX Item "make" Make-direktiv f\(:or att s\(:atta och exportera alla kompileringsflaggor i milj\(:on. Utdata kan skrivas till ett makefil-fragment och utv\(:arderas med ett \fBinclude\fR\-direktiv. .RE .RS 4 .RE .IP "\fB\-\-get\fR \fIflagga\fR" 4 .IX Item "--get flagga" Skriv ut v\(:ardet p\(oa flaggan p\(oa standard ut. Avslutar med 0 om flaggan \(:ar k\(:and, om inte avslutar den med 1. .IP "\fB\-\-origin\fR \fIflagga\fR" 4 .IX Item "--origin flagga" Anger ursprunget till flaggan som returneras av \fB\-\-get\fR. Avslutar med 0 om flaggan \(:ar k\(:and, om inte avslutar med 1. Ursprunget kan vara ett av f\(:oljande v\(:arden: .RS 4 .IP \fBvendor\fR 4 .IX Item "vendor" originalflagga satt av leverant\(:oren returneras; .IP \fBsystem\fR 4 .IX Item "system" flaggan \(:ar satt/modifierad av systemkonfigurationen; .IP \fBuser\fR 4 .IX Item "user" flaggan \(:ar satt/modifierad av anv\(:andarkonfigurationen; .IP \fBenv\fR 4 .IX Item "env" flaggan \(:ar satt/modifierad av en milj\(:ospecifik konfiguration. .RE .RS 4 .RE .IP \fB\-\-query\fR 4 .IX Item "--query" Srkiv ut information som kan vara anv\(:andbar f\(:or att f\(:orklara programmets beteende: aktuell \(oaterf\(:ors\(:aljare, relevanta milj\(:ovariabler, funktionsomr\(oaden, status f\(:or alla funktionsflaggor, huruvida en funktion hanteras av ett inbyggt f\(:orval av kompilatorn (sedan dpkg 1.21.14) och kompilatorflaggorna med sina ursprung (sedan dpkg 1.19.0). .Sp Till exempel: .Sp .Vb 3 \& Vendor: Debian \& Environment: \& DEB_CFLAGS_SET=\-O0 \-Wall \& \& Area: qa \& Features: \& bug=no \& canary=no \& Builtins: \& \& Area: hardening \& Features: \& pie=no \& Builtins: \& pie=yes \& \& Area: reproducible \& Features: \& timeless=no \& Builtins: \& \& Flag: CFLAGS \& Value: \-O0 \-Wall \& Origin: env \& \& Flag: CPPFLAGS \& Value: \-D_FORTIFY_SOURCE=2 \& Origin: vendor .Ve .IP "\fB\-\-query\-features\fR \fIomr\(oade\fR" 4 .IX Item "--query-features omr\(oade" Skriv ut funktioner aktiverade f\(:or ett givet omr\(oade (sedan dpkg 1.16.2). Om funktionen hanteras (\(:aven om bara av n\(oagra arkitekturer) som ett inbyggt f\(:orval av kompilatorn visas f\(:altet \fBBultin\fR (sedan dpkg 1.21.14). De enda f\(:or n\(:arvarande k\(:anda omr\(oadena p\(oa Debian och dess derivat \(:ar \fBfuture\fR, \fBqa\fR, \fBreproducible\fR, \fBsanitize\fR och \fBhardening\fR, se avsnittet \fBFUNKTIONSOMR\(oADEN\fR f\(:or fler detaljer. Avslutar med 0 om omr\(oadet \(:ar k\(:ant, avslutar annars med 1. .Sp Utdata \(:ar p\(oa RFC822\-headerformat, med en sektion per funktion. Till exempel: .Sp .Vb 3 \& Feature: pie \& Enabled: yes \& Builtin: yes \& \& Feature: stackprotector \& Enabled: yes .Ve .IP \fB\-\-help\fR 4 .IX Item "--help" Visar hj\(:alpsk\(:arm och avslutar. .IP \fB\-\-version\fR 4 .IX Item "--version" Visar version och avslutar. .SH "FLAGGOR SOM ST\(:ODS" .IX Header "FLAGGOR SOM ST\(:ODS" .IP \fBASFLAGS\fR 4 .IX Item "ASFLAGS" Flaggor f\(:or v\(:ardassemblern. F\(:orvalt v\(:arde: tomt. Sedan dpkg 1.21.0. .IP \fBCFLAGS\fR 4 .IX Item "CFLAGS" Flaggor f\(:or v\(:ard\-C\-kompilatorn. Standardv\(:ardet som satts av leverant\(:oren inneh\(oaller \fB\-g\fR och den f\(:orvalda optimeringsniv\(oan (vanligtvis \fB\-O2\fR, eller \fB\-O0\fR om milj\(:ovariabeln \fBDEB_BUILD_OPTIONS\fR definierar \fInoopt\fR). .IP \fBCPPFLAGS\fR 4 .IX Item "CPPFLAGS" Flaggor f\(:or v\(:ard\-C\-f\(:orprocesseraren. F\(:orvalt v\(:arde: tomt. .IP \fBCXXFLAGS\fR 4 .IX Item "CXXFLAGS" Flaggor f\(:or v\(:ard\-C++\-kompilatorn. Samma som \fBCFLAGS\fR. .IP \fBOBJCFLAGS\fR 4 .IX Item "OBJCFLAGS" Flaggor f\(:or v\(:ard\-Objective C\-kompilatorn. Samma som \fBCFLAGS\fR. Sedan dpkg 1.17.7. .IP \fBOBJCXXFLAGS\fR 4 .IX Item "OBJCXXFLAGS" Flaggor f\(:or v\(:ard\-Objective C++\-kompilatorn. Samma som \fBCXXFLAGS\fR. Sedan dpkg 1.17.7. .IP \fBDFLAGS\fR 4 .IX Item "DFLAGS" Flaggor f\(:or v\(:ard\-D\-kompilatorn (ldc eller gdc). Sedan dpkg 1.20.6. .IP \fBFFLAGS\fR 4 .IX Item "FFLAGS" Flaggor f\(:or v\(:ard\-Fortran 77\-kompilatorn. En delm\(:angd av \fBCFLAGS\fR. .IP \fBFCFLAGS\fR 4 .IX Item "FCFLAGS" Flaggor f\(:or v\(:ard\-Fortran 9x\-kompilatorn. Samma som \fBFFLAGS\fR. Sedan dpkg 1.17.7. .IP \fBLDFLAGS\fR 4 .IX Item "LDFLAGS" Flaggor som s\(:ands till v\(:ardkompilatorn vid l\(:ankning av bin\(:arer eller delade objekt (om l\(:ankaren anropas direkt m\(oaste \fB\-Wl\fR och \fB,\fR tas bort fr\(oan dessa flaggor). Standardv\(:arde: tomt. .IP \fBASFLAGS_FOR_BUILD\fR 4 .IX Item "ASFLAGS_FOR_BUILD" Flaggor f\(:or bygg-assemblern. F\(:orvalt v\(:arde: tomt. Sedan dpkg 1.22.1. .IP \fBCFLAGS_FOR_BUILD\fR 4 .IX Item "CFLAGS_FOR_BUILD" Flaggor f\(:or bygg-C-kompilatorn. Standardv\(:ardet som satts av leverant\(:oren inneh\(oaller \fB\-g\fR och den f\(:orvalda optimeringsniv\(oan (vanligtvis \fB\-O2\fR, eller \fB\-O0\fR om milj\(:ovariabeln \fBDEB_BUILD_OPTIONS\fR definierar \fInoopt\fR). Sedan dpkg 1.22.1. .IP \fBCPPFLAGS_FOR_BUILD\fR 4 .IX Item "CPPFLAGS_FOR_BUILD" Flaggor f\(:or bygg\-C\-f\(:orprocesseraren. F\(:orvalt v\(:arde: tomt. Sedan dpkg 1.22.1. .IP \fBCXXFLAGS_FOR_BUILD\fR 4 .IX Item "CXXFLAGS_FOR_BUILD" Flaggor f\(:or bygg\-C++\-kompilatorn. Samma som \fBCFLAGS_FOR_BUILD\fR. Sedan dpkg 1.22.1. .IP \fBOBJCFLAGS_FOR_BUILD\fR 4 .IX Item "OBJCFLAGS_FOR_BUILD" Flaggor f\(:or bygg-Objective C\-kompilatorn. Samma som \fBCFLAGS_FOR_BUILD\fR. Sedan dpkg 1.22.1. .IP \fBOBJCXXFLAGS_FOR_BUILD\fR 4 .IX Item "OBJCXXFLAGS_FOR_BUILD" Flaggor f\(:or bygg-Objective C++\-kompilatorn. Samma som \fBCXXFLAGS_FOR_BUILD\fR. Sedan dpkg 1.22.1. .IP \fBDFLAGS_FOR_BUILD\fR 4 .IX Item "DFLAGS_FOR_BUILD" Flaggor f\(:or bygg-D-kompilatorn (ldc eller gdc). Sedan dpkg 1.22.1. .IP \fBFFLAGS_FOR_BUILD\fR 4 .IX Item "FFLAGS_FOR_BUILD" Flaggor f\(:or bygg-Fortran 77\-kompilatorn. En delm\(:angd av \fBCFLAGS_FOR_BUILD\fR. Sedan dpkg 1.22.1. .IP \fBFCFLAGS_FOR_BUILD\fR 4 .IX Item "FCFLAGS_FOR_BUILD" Flaggor f\(:or bygg-Fortran 9x\-kompilatorn. Samma som \fBFFLAGS_FOR_BUIDL\fR. Sedan dpkg 1.22.1. .IP \fBLDFLAGS_FOR_BUILD\fR 4 .IX Item "LDFLAGS_FOR_BUILD" Flaggor som s\(:ands till bygg-kompilatorn vid l\(:ankning av bin\(:arer eller delade objekt (om l\(:ankaren anropas direkt m\(oaste \fB\-Wl\fR och \fB,\fR tas bort fr\(oan dessa flaggor). Standardv\(:arde: tomt. Sedan dpkg 1.22.1. .PP Nya flaggor kan komma att l\(:aggas till i framtiden om behovet uppst\(oar (till exempel f\(:or att st\(:oda andra spr\(oak). .SH FUNKTIONSOMR\(oADEN .IX Header "FUNKTIONSOMR\(oADEN" Varje omr\(oadesfunktion kan aktiveras och inaktiveras i omr\(oadesv\(:ardet i milj\(:ovariablerna \fBDEB_BUILD_OPTIONS\fR och \fBDEB_BUILD_MAINT_OPTIONS\fR modifierarna \(rq\fB+\fR\(rq och \(rq\fB\-\fR\(rq. Till exempel, f\(:or att aktivera \fBhardening\fR\-funktionen \(rqpie\(rq och inaktivera funktionen \(rqfortify\(rq genom att ange detta i \fBdebian/rules\fR: .PP .Vb 1 \& export DEB_BUILD_MAINT_OPTIONS=hardening=+pie,\-fortify .Ve .PP Den speciella funktionen \fBall\fR kan anv\(:andas f\(:or att aktivera eller inaktivera alla omr\(oadesfunktioner samtidigt. Du kan till exempel inaktivera allt i omr\(oadet \fBhardening\fR och endast aktivera \(rqformat\(rq och \(rqfortify\(rq med: .PP .Vb 1 \& export DEB_BUILD_MAINT_OPTIONS=hardening=\-all,+format,+fortify .Ve .SS abi .IX Subsection "abi" Flera kommandoradsflaggor (beskrivna nedan) kan anv\(:andas f\(:or att aktivera funktioner som kan \(:andra ABI:et f\(:or ett paket, men som inte kan aktiveras som standard p\(oa grund av bak\(oatkompatibilitetsorsaker s\(oavida de inte samordnas eller kontrolleras var f\(:or sig. .IP \fBlfs\fR 4 .IX Item "lfs" Den h\(:ar inst\(:allningen (sedan dpkg 1.22.0; inaktiverad som f\(:orval) aktiverar st\(:od f\(:or stora filer p\(oa 32\-bitars\-arkitekturer d\(:ar deras ABI inte som f\(:orval inkluderar LFS, genom att l\(:agga till \fB\-D_LARGEFILE_SOURCE \-D_FILE_OFFSET_BITS=64\fR till \fBCPPFLAGS\fR. .Sp N\(:ar funktionen \(:ar aktiverad kommer den \(:overstyra v\(:ardet fr\(oan samma funktion i funktionsomr\(oadet \fBfuture\fR. .IP \fBtime64\fR 4 .IX Item "time64" Den h\(:ar inst\(:allningen (sedan dpkg 1.22.0; inaktiverad som f\(:orval) aktiverar st\(:od f\(:or 64\-bitars time_t p\(oa 32\-bitars\-arkitekturer d\(:ar deras ABI inte som f\(:orval inkluderar det, genom att l\(:agga till \fB\-D_TIME_BITS=64\fR till \fBCPPFLAGS\fR. Inst\(:allningen aktiverar automatiskt lfs\-funktionerna eftersom den beh\(:ovs f\(:or att den ska fungera. .SS future .IX Subsection "future" Flera kommandoradsflaggor (beskrivna nedan) kan anv\(:andas f\(:or att aktivera funktioner som borde vara aktiverade som standard, men som inte kan vara det p\(oa grund av bak\(oatkompatibilitetsorsaker. .IP \fBlfs\fR 4 .IX Item "lfs" Den h\(:ar inst\(:allningen (sedan dpkg 1.19.0; inaktiverad som f\(:orval) \(:ar nu ett alias f\(:or funktionen \fBlfs\fR i \fBabi\fR\-omr\(oadet, anv\(:and den ist\(:allet. Funktionen fr\(oan \fBabi\fR\-omr\(oadet \(:overstyr den h\(:ar inst\(:allningen. .SS qa .IX Subsection "qa" Flera kommandoradsflaggor (beskrivna nedan) kan anv\(:andas f\(:or att g\(:ora det l\(:attare att hitta problem i k\(:allkoden eller byggsystemet. .IP \fBbug-implicit-func\fR 4 .IX Item "bug-implicit-func" This setting (since dpkg 1.22.3; disabled by default) adds \fB\-Werror=implicit\-function\-declaration\fR to \fBCFLAGS\fR. .IP \fBbug\fR 4 .IX Item "bug" Inst\(:allningen (sedan dpkg 1.17.4; inaktiverad som f\(:orval) l\(:agger till ytterligare varningar som p\(oalitligt uppt\(:acket problematisk k\(:allkod. Varningarna \(:ar \(:odesdigra. De enda flaggor som f\(:or n\(:arvarande st\(:ods \(:ar \fBCFLAGS\fR och \fBCXXFLAGS\fR med flaggorna satt till \fB\-Werror=array\-bounds\fR, \fB\-Werror=clobbered\fR, \fB\-Werror=implicit\-function\-declaration\fR och \fB\-Werror=volatile\-register\-var\fR. .Sp This feature handles \fB\-Werror=implicit\-function\-declaration\fR via the \fBbug-implicit-func\fR feature, if that has not been specified. .IP \fBcanary\fR 4 .IX Item "canary" Den h\(:ar inst\(:allningen (sedan dpkg 1.17.14; inaktiverad som f\(:orval) l\(:agger till overksamma tjallarflaggor till byggflaggorna, s\(oa att byggloggarna kan kontrolleras f\(:or att se hur byggflaggor vidarebefordras f\(:or att g\(:ora det enklare att hitta n\(:ar vanliga byggflagor utesluts. De enda flaggor som st\(:ods \(:ar f\(:or n\(:arvarande \fBCPPFLAGS\fR, \fBCFLAGS\fR, \fBOBJCFLAGS\fR, \fBCXXFLAGS\fR och \fBOBJCXXFLAGS\fR med flaggorna satta till \fB\-D_\|_DEB_CANARY_\fR\fIflag\fR_\fIslumpm\(:assigt\-id\fR\fB_\|_\fR, och \fBLDFLAGS\fR satt till \fB\-Wl,\-z,deb\-canary\-\fR\fIslumpm\(:assigt\-id\fR. .SS optimize .IX Subsection "optimize" Flera kommandoradsflaggor (beskrivna nedan) kan anv\(:andas f\(:or att hj\(:alpa till att optimera den skapade bin\(:aren (sedan dpkg 1.21.0). \fBObservera\fR: om \fBall\fR aktiveras kan dessa flaggor leda till bin\(:arartifakter som inte kan reproduceras. .IP \fBlto\fR 4 .IX Item "lto" Inst\(:allningen (sedan dpkg 1.2.0; inaktiverad som f\(:orval) aktiverar Link Time Optimization (optimering vid l\(:ankning) genom att l\(:agga till \fB\-flto=auto \-ffat\-lto\-objects\fR till \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR, \fBFCFLAGS\fR och \fBLDFLAGS\fR. .SS sanitize .IX Subsection "sanitize" Du kan anv\(:anda flera kompileringsflaggor (se detaljer nedan) f\(:or att sanera den f\(:ardiga bin\(:aren mot minnesf\(:ord\(:arvningsar, minnesl\(:ackor, anv\(:andning efter frigivning, datakappl\(:opningsfel i tr\(oadar och fel i f\(:orbindels med odefinierat beteende. \fBObservera\fR: dessa flaggor b\(:or \fBinte\fR anv\(:andas f\(:or produktionsbygg eftersom de kan minska p\(oalitligheten f\(:or korrekt kod, minska s\(:akerheten eller till och med funktionsrikedomen. .IP \fBaddress\fR 4 .IX Item "address" Den h\(:ar inst\(:allningen (sedan dpkg 1.18.0; inaktiverad som f\(:orval) l\(:agger till \fB\-fsanitize=address\fR till \fBLDFLAGS\fR och \fB\-fsanitize=address \-fno\-omit\-frame\-pointer\fR till \fBCFLAGS\fR och \fBCXXFLAGS\fR. .IP \fBthread\fR 4 .IX Item "thread" Den h\(:ar inst\(:allningen (sedan dpkg 1.18.0; inaktiverad som f\(:orval) l\(:agger till \fB\-fsanitize=thread\fR till \fBCFLAGS\fR, \fBCXXFLAGS\fR och \fBLDFLAGS\fR. .IP \fBleak\fR 4 .IX Item "leak" Den h\(:ar inst\(:allningen (sedan dpkg 1.18.0; inaktiverad som f\(:orval) l\(:agger till \fB\-fsanitize=leak\fR till \fBLDFLAGS\fR. Den inaktiveras automatiskt om antingen funktionen \fBaddress\fR eller \fBthread\fR aktiveras, eftersom de implicerar den. .IP \fBundefined\fR 4 .IX Item "undefined" Den h\(:ar inst\(:allningen (sedan dpkg 1.18.0; inaktiverad som f\(:orval) l\(:agger till \fB\-fsanitize=undefined\fR till \fBCFLAGS\fR, \fBCXXFLAGS\fR och \fBLDFLAGS\fR. .SS hardening .IX Subsection "hardening" Du kan anv\(:anda flera kompileringsflaggor (se detaljer nedan) f\(:or att h\(:arda den f\(:ardiga bin\(:aren mot minnesf\(:ord\(:arvningsangrepp, eller f\(:or att ge ytterligare varningsmeddelanden under kompileringen. F\(:orutom det som anges nedan aktiveras dessa som standard f\(:or arkitekturer som st\(:oder dem. .IP \fBformat\fR 4 .IX Item "format" Inst\(:allningen (sedan dpkg 1.16.1; aktiverad som f\(:orval) l\(:agger till \fB\-Wformat \-Werror=format\-security\fR till \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR och \fBOBJCXXFLAGS\fR. Detta kommer att varna om ol\(:amplig anv\(:andning av formatstr\(:angar, och att misslyckas n\(:ar formatfunktionerna anv\(:ands p\(oa ett s\(:att som representerar m\(:ojliga s\(:akerhetsproblem. F\(:or n\(:arvarande varnar detta om anrop till funktionerna \fBprintf\fR och \fBscanf\fR d\(:ar formatstr\(:angen inte \(:ar en fast str\(:ang och n\(:ar det inte finns n\(oagra formatargument, som i \fBprintf(foo);\fR ist\(:allet f\(:or \fBprintf("%s", foo);\fR Detta kan vara ett s\(:akerhetsh\(oal om formatstr\(:angen kommer fr\(oan en obetrodd k\(:alla och inneh\(oaller \(rq%n\(rq. .IP \fBfortify\fR 4 .IX Item "fortify" Inst\(:allningen (sedan dpkg 1.16.1; aktiverad som f\(:orval) l\(:agger till \fB\-D_FORTIFY_SOURCE=2\fR till \fBCPPFLAGS\fR. Kompilatorn har under kodgenereringen k\(:annedom om en hel del information om buffertstorlekar (d\(:ar till\(:ampligt) och f\(:ors\(:oker ers\(:atta os\(:akra funktionsanrop med obegr\(:ansade buffertl\(:angder med l\(:angdbegr\(:ansade dito. Det h\(:ar \(:ar speciellt anv\(:andbart f\(:or gammal, skr\(:apig kod. Dessutom blockeras formatstr\(:angar i skrivbart minne som inneh\(oaller \(rq%n\(rq. Om ett program \(:ar beroende av en s\(oadan formatstr\(:ang m\(oaste det g\(oas runt i kod. .Sp Observera att f\(:or att den h\(:ar flaggan ska ha n\(oagon funktion m\(oaste k\(:allkoden ocks\(oa kompileras med \fB\-O1\fR eller h\(:ogre. Om milj\(:ovariabeln \fBDEB_BUILD_OPTIONS\fR inneh\(oaller \fInoopt\fR kommer st\(:odet f\(:or \fBfortify\fR att inaktiverats, p\(oa grund av nya varningar som ges av glibc 2.16 och senare. .IP \fBstackprotector\fR 4 .IX Item "stackprotector" Inst\(:allningen (sedan dpkg 1.16.1; aktiverad som f\(:orval om stackprotectorstrong inte anv\(:ands) l\(:agger till \fB\-fstack\-protector \-\-param=ssp\-buffer\-size=4\fR till \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR och \fBFCFLAGS\fR. Detta l\(:agger till s\(:akerhetskontroller mot stack\(:overskrivningar, vilket g\(:or att m\(oanga m\(:ojliga kodinjiceringsangrepp ist\(:allet avbryter programmet. I det b\(:asta fallet g\(:or det kodinjiceringsangrepp till \(:overbelastnignsangrepp eller icke-problem (beroende p\(oa programmet). .Sp Den h\(:ar funktionen kr\(:aver l\(:ankning mot glibc (eller ett annat bibliotek som tillhandah\(oaller \fB_\|_stack_chk_fail\fR), s\(oa det m\(oaste inaktiveras n\(:ar du bygger med \fB\-nostdlib\fR eller \fB\-ffreestanding\fR eller liknande. .IP \fBstackprotectorstrong\fR 4 .IX Item "stackprotectorstrong" Inst\(:allningen (sedan dpkg 1.17.11; aktiverad som f\(:orval) l\(:agger till \fB\-fstack\-protector\-strong\fR till \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR och \fBFCFLAGS\fR. Detta \(:ar en starkare variant av \fBstackprotector\fR, men utan markanta prestandaminskningar. .Sp Om du inaktiverar \fBstackprotector\fR inaktiveras \(:aven denna inst\(:allning. .Sp Funktionen har samma krav som \fBstackprotector\fR, och kr\(:aver dessutom gcc 4.9 eller senare. .IP \fBstackclash\fR 4 .IX Item "stackclash" Inst\(:allningen (sedan dpkg 1.22.0; aktiverad som f\(:orval) l\(:agger till \fB\-fstack\-clash\-protection\fR p\(oa \fBamd64\fR, \fBarm64\fR, \fBarmhf\fR och \fBarmel\fR till \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR och \fBFCFLAGS\fR. Detta l\(:agger till kod som f\(:orhindrar attacker av typen stackkrock. .IP \fBbtacnh\fR 4 .IX Item "btacnh" Inst\(:allningen (sedan dpkg 1.122.0; aktiverad som f\(:orval) l\(:agger till \fB\-fcf\-protection\fR p\(oa \fBamd64\fR och \fB\-mbranch\-protection=standard\fR p\(oa \fBarm64\fR till \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR and \fBFCFLAGS\fR och \fBFCFLAGS\fR. Detta l\(:agger till f\(:orgreningsskydd till indirekta anrop, hopp och returer f\(:or att under k\(:orning kontrollera att de \(:ar giltiga. .IP \fBrelro\fR 4 .IX Item "relro" Inst\(:allningen (sedan dpkg 1.16.1; aktiverad som f\(:orval) l\(:agger till \fB\-Wl,\-z,relro\fR till \fBLDFLAGS\fR. Vid inl\(:asning av programmet m\(oaste l\(:ankaren skriva till flera ELF-minnessektioner. Den h\(:ar inst\(:allningen flaggar till inl\(:asaren att dessa sektioner ska g\(:oras skrivskyddade innan programmet f\(oar kontroll. Detta skyddar huvudsaklingen mot GOT\-\(:overskrivningsangrepp. Om inst\(:allningen inaktiveras kommer \(:aven \fBbindnow\fR att inaktiveras. .IP \fBbindnow\fR 4 .IX Item "bindnow" Inst\(:allningen (sedan dpkg 1.16.1; inaktiverad som f\(:orval) l\(:agger till \fB\-Wl,\-z,now\fR till \fBLDFLAGS\fR. Vid inl\(:asning av programmet l\(:oses alla dynamiska symboler, vilket g\(:or att hela PLT kan markeras som skrivskyddad (p\(oa grund av \fBrelro\fR ovan). Inst\(:allningen kan inte aktiveras om \fBrelro\fR inte \(:ar aktiverad. .IP \fBpie\fR 4 .IX Item "pie" Den h\(:ar inst\(:allningen (sedan dpkg 1.16.1; utan globalt f\(:orval sedan dpkg 1.18.23, eftersom den aktiveras som f\(:orval numera av gcc p\(oa Debianarkitekturerna amd64, arm64, armel, armhf, hurd\-i386, i386, kfreebsd\-amd64, kfreebsd\-i386, mips, mipsel, mips64el, powerpc, ppc64, ppc64el, riscv64, s390x, sparc och sparc64) l\(:agger till de flaggor som kr\(:avs f\(:or att aktivera eller inaktivera PIE via gcc-specifikationsfiler, om det beh\(:ovs, beroende p\(oa om gcc l\(:agger till flaggorna sj\(:alv p\(oa arkitekturen eller inte. Om inst\(:allningen aktiveras och gcc injicerar flaggorna l\(:agger den inte till N\(oagonting. Om inst\(:allningen \(:ar aktiverad och gcc inte injicerar flaggorna, l\(:agger den till \fB\-fPIE\fR (via \fI/usr/share/dpkg/pie\-compiler.specs\fR) till \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR och \fBFCFLAGS\fR, samt \fB\-fPIE \-pie\fR (via \fI/usr/share/dpkg/pie\-link.specs\fR) till \fBLDFLAGS\fR. N\(:ar inst\(:allningen \(:ar inaktiverad och gcc injicerar flaggorna, l\(:agger den till \fB\-fno\-PIE\fR (via \fI/usr/share/dpkg/no\-pie\-compile.specs\fR) till \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR och \fBFCFLAGS\fR, samt \fB\-fno\-PIE \-no\-pie\fR (via \fI/usr/share/dpkg/no\-pie\-link.specs\fR) till \fBLDFLAGS\fR. .Sp Positionsoberoende exekverbara program (PIE) beh\(:ovs f\(:or att dra f\(:ordel av slumpm\(:assig adressrymd (ASLR), vilket st\(:ods av vissa versioner av k\(:arnan. Medan ASLR redan kan anv\(:andas f\(:or datautrymmen i stacken och heap:en (brk och mmap), m\(oaste kodomr\(oaden f\(:orst kompileras som positionsoberoende. Delade bibliotek g\(:or redan detta (\-fPIC), s\(oa de drar automatiskt f\(:ordel av ASLR medan bin\(:ara .text\-regioner m\(oaste byggas med PIE f\(:or att uppn\(oa ASLR. N\(:ar detta sker \(:ar ROP-angrepp (Return Oriented Programming) mycket sv\(oarare eftersom det inte finns n\(oagra statiska platser att studsa fr\(oan i ett minnesf\(:ord\(:arvningsangrepp. .Sp PIE \(:ar inte kompatibelt med \fB\-fPIC\fR, s\(oa allm\(:an f\(:orsiktighet m\(oaste tas vid bygge av delade objekt. Men eftersom PIE-flaggorna som skapas injiceras via gcc-specifikationsfiler b\(:or det alltid vara s\(:akert att ovillkorligen s\(:atta dem oberoende av typen av objekt som kompileras eller l\(:ankas. .Sp Statiska bibliotek kan anv\(:andas av program eller andra delade bibliotek. Beroende p\(oa vilka flaggor som anv\(:ands f\(:or att kompilera objekten inuti ett statisk bibliotek kan dessa vara anv\(:andas av olika upps\(:attningar objekt: .RS 4 .IP inget 4 .IX Item "inget" Kan varken l\(:ankas till ett PIE-program eller ett delat bibliotek. .IP \fB\-fPIE\fR 4 .IX Item "-fPIE" Kan l\(:ankas till alla program, men inte ett delat bibliotek (rekommenderas). .IP \fB\-fPIC\fR 4 .IX Item "-fPIC" Kan l\(:ankas till alla program och delade bibliotek. .RE .RS 4 .Sp Om flaggorna beh\(:over s\(:attas manuellt och gcc:s spec-injektion f\(:orbig\(oas, finns det flera saker man beh\(:over t\(:anka p\(oa. Att ovillkorligen och explicit s\(:anda \fB\-fPIE\fR, \fB\-fpie\fR eller \fB\-pie\fR till ett byggsystem som anv\(:ander libtool \(:ar s\(:akert eftersom flaggorna kommer skalas av n\(:ar delade bibliotek byggs. P\(oa projekt som bygger b\(oade program och delade bibliotek kan du annars beh\(:ova se till att \fB\-fPIC\fR alltid s\(:ands sist i kompileringsflaggor s\(oasom \fBCFLAGS\fR n\(:ar delade bibliotek byggs (s\(oa att den \(:overstyre en tidigare angiven \fB\-PIE\fR), och att \fB\-shared\fR s\(:ands sist till l\(:ankflaggor s\(oasom \fBLDFLAGS\fR (s\(oa att den \(:overstyr en tidigare angiven \fB\-pie\fR). \fBObservera\fR: Detta beh\(:over inte g\(:oras med standard-gcc-specifikationsmaskineriet. .Sp Eftersom PIE i till\(:agg implementeras med ett generellt register kan vissa arkitekturer med f\(oa register (men inte l\(:angre i386 eftersom optimeringar implementerats i gcc >= 5) se prestandaf\(:orluster upp till 15% i v\(:aldigt textsegment-tunga programs k\(:orning; de flesta k\(:orningar ser mindre \(:an 1%. Arkitekturer med m\(oanga generella register (t.ex amd64) ser inte en lika stor v\(:arsta falls\-f\(:orlust. .RE .SS reproducible .IX Subsection "reproducible" Kompileringsflaggorna som anges nedan kan anv\(:andas f\(:or att g\(:ora det l\(:attare att reproducera byggbarhet eller tillhandah\(oalla ytterligare varningsflaggor under kompileringen. F\(:orutom det som anges nedan aktiveras dessa som standard f\(:or arkitekturer som st\(:oder dem. .IP \fBtimeless\fR 4 .IX Item "timeless" Inst\(:allningen (sedan dpkg 1.17.14; aktiverad som f\(:orval) l\(:agger till \fB\-Wdate\-time\fR till \fBCPPFLAGS\fR. Detta ger varningar n\(:ar makrona \fB_\|_TIME_\|_\fR, \fB_\|_DATE_\|_\fR eller \fB_\|_TIMESTAMP_\|_\fR anv\(:ands. .IP \fBfixfilepath\fR 4 .IX Item "fixfilepath" Inst\(:allningen (sedan dpkg 1.19.1; aktiverad som f\(:orval) l\(:agger till \fB\-ffile\-prefix\-map=\fR\fIBYGGS\(:OKV\(:AG\fR\fB=.\fR till \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR och \fBFCFLAGS\fR d\(:ar \fBBYGGS\(:OKV\(:AG\fR s\(:atts till toppniv\(oakatalogen f\(:or paketet som byggs. Detta f\(oar till effekt att byggs\(:okv\(:agen f\(:orsvinner fr\(oan alla genererade filer. .Sp Om b\(oade \fBfixdebugpath\fR och \fBfixfilepath\fR anges tar denna flagga f\(:oretr\(:ade, eftersom den \(:ar en \(:overm\(:angd av den f\(:orstn\(:amnda. .Sp \&\fBObservera\fR: Om byggprocessen f\(oangar byggflaggorna i de slutliga byggobjekten kommer det att g\(:ora paketet oreproducerbart. Och \(:aven om n\(oagra av objekten \(oaterigen kan g\(:oras reproducerbara genom att inaktivera den h\(:ar flaggan igen kr\(:aver det samtidigt att \fBfixdebugpath\fR inaktiveras, vilket kan g\(:ora de genererade fels\(:okningssymbolobjekten oreproducerbara. Den b\(:asta l\(:osningen \(:ar att sluta f\(oanga byggflaggor. .IP \fBfixdebugpath\fR 4 .IX Item "fixdebugpath" Inst\(:allningen (sedan dpkg 1.18.5; aktiverad som f\(:orval) l\(:agger till \fB\-fdebug\-prefix\-map=\fR\fIBYGGS\(:OKV\(:AG\fR\fB=.\fR till \fBCFLAGS\fR, \fBCXXFLAGS\fR, \fBOBJCFLAGS\fR, \fBOBJCXXFLAGS\fR, \fBFFLAGS\fR och \fBFCFLAGS\fR d\(:ar \fBBYGGS\(:OKV\(:AG\fR s\(:atts till toppniv\(oakatalogen f\(:or paketet som byggs. Detta f\(oar till effekt att byggs\(:okv\(:agen f\(:orsvinner fr\(oan alla genererade fels\(:okningssymboler. .Sp \&\fBObservera\fR: Funktionen har liknande reproduktionsegenskaper som \fBfixfilepath\fR. .SH MILJ\(:OVARIABLER .IX Header "MILJ\(:OVARIABLER" Det finns tv\(oa upps\(:attningar milj\(:ovariabler som utf\(:or samma operationer, den f\(:orsta (DEB_\fIflagga\fR_\fIop\fR) b\(:or aldrig anv\(:andas inuti \fBdebian/rules\fR). Den \(:ar t\(:ankt f\(:or anv\(:andare som vill bygga om k\(:allkodspaketet med andra byggflaggor. Den andra upps\(:attningen (DEB_\fIflagga\fR_MAINT_\fIop\fR) b\(:or endast anv\(:andas i \fBdebian/rules\fR av paketansvariga f\(:or att \(:andra de slutgiltiga byggflaggorna. .IP \fBDEB_\fR\fIflagga\fR\fB_SET\fR 4 .IX Item "DEB_flagga_SET" .PD 0 .IP "\fBDEB_\fR\fIflagga\fR\fB_MAINT_SET\fR (Sedan dpkg 1.16.1)" 4 .IX Item "DEB_flagga_MAINT_SET (Sedan dpkg 1.16.1)" .PD Denna variabel kan anv\(:andas f\(:or att tvinga fram v\(:ardet som returneras f\(:or given \fIflagga\fR. .IP "\fBDEB_\fR\fIflagga\fR\fB_STRIP\fR (sedan dpkg 1.16.1)" 4 .IX Item "DEB_flagga_STRIP (sedan dpkg 1.16.1)" .PD 0 .IP "\fBDEB_\fR\fIflagga\fR\fB_MAINT_STRIP\fR (sedan dpkg 1.16.1)" 4 .IX Item "DEB_flagga_MAINT_STRIP (sedan dpkg 1.16.1)" .PD Denna variabel kan anv\(:andas f\(:or att tillhandah\(oalla en blankstegsavdelad lista med flaggor som kommer att tas bort fr\(oan upps\(:attningen flaggor som ges f\(:or given \fIflagga\fR. .IP \fBDEB_\fR\fIflagga\fR\fB_APPEND\fR 4 .IX Item "DEB_flagga_APPEND" .PD 0 .IP "\fBDEB_\fR\fIflagga\fR\fB_MAINT_APPEND\fR (sedan dpkg 1.16.1)" 4 .IX Item "DEB_flagga_MAINT_APPEND (sedan dpkg 1.16.1)" .PD Denna variabel kan anv\(:andas f\(:or att l\(:agga till ytterligare flaggor till v\(:ardet som returneras f\(:or given \fIflagga\fR. .IP "\fBDEB_\fR\fIflagga\fR\fB_PREPEND\fR (sedan dpkg 1.16.1)" 4 .IX Item "DEB_flagga_PREPEND (sedan dpkg 1.16.1)" .PD 0 .IP "\fBDEB_\fR\fIflagga\fR\fB_MAINT_PREPEND\fR (sedan dpkg 1.16.1)" 4 .IX Item "DEB_flagga_MAINT_PREPEND (sedan dpkg 1.16.1)" .PD Denna variabel kan anv\(:andas f\(:or att l\(:agga till ytterligare flaggor f\(:orst i v\(:ardet som returneras f\(:or given \fIflagga\fR. .IP \fBDEB_BUILD_OPTIONS\fR 4 .IX Item "DEB_BUILD_OPTIONS" .PD 0 .IP "\fBDEB_BUILD_MAINT_OPTIONS\fR (sedan dpkg 1.16.1)" 4 .IX Item "DEB_BUILD_MAINT_OPTIONS (sedan dpkg 1.16.1)" .PD De h\(:ar variablerna kan anv\(:andas av en anv\(:andare eller utvecklare f\(:or att sl\(oa av/p\(oa olika omr\(oadesfunktioner som p\(oaverkar byggflaggorna. Variabeln \fBDEB_BUILD_MAINT_OPTIONS\fR\-variabeln \(:overstyr alla inst\(:allningar i funktionsomr\(oaden i \fBDEB_BUILD_OPTIONS\fR. Se avsnittet "FUNKTIONSOMR\(oADEN" f\(:or mer information. .IP \fBDEB_VENDOR\fR 4 .IX Item "DEB_VENDOR" Inst\(:allningen anger den aktuella \(oaterf\(:ors\(:aljaren. Om den inte \(:ar satt kommer \(oaterf\(:ors\(:aljaren att identifieras genom att l\(:asa \fB/etc/dpkg/origins/default\fR. .IP \fBDEB_BUILD_PATH\fR 4 .IX Item "DEB_BUILD_PATH" Den h\(:ar variabeln anger byggs\(:okv\(:agen (sedan dpkg 1.18.8) att anv\(:anda i funktioner s\(oasom \fBfixdebugpath\fR s\(oa att de kan styras av anroparen. Variabeln \(:ar f\(:or n\(:arvarande specifik f\(:or Debian och dess derivat. .IP \fBDPKG_COLORS\fR 4 .IX Item "DPKG_COLORS" V\(:aljer f\(:argl\(:age (sedan dpkg 1.18.5). F\(:or n\(:arvarande godtas f\(:oljande v\(:arden: \fBauto\fR (f\(:orval), \fBalways\fR och \fBnever\fR. .IP \fBDPKG_NLS\fR 4 .IX Item "DPKG_NLS" Om satt, anv\(:ands f\(:or att best\(:amma om lokalt spr\(oakst\(:od ska aktiveras, \(:aven k\(:ant som internationaliseringsst\(:od (eller i18n) (sedan dpkg 1.19.0). Till\(oatna v\(:arden \(:ar: \fB0\fR och \fB1\fR (f\(:orval). .SH FILER .IX Header "FILER" .SS Konfigurationsfiler .IX Subsection "Konfigurationsfiler" .IP \fB/etc/dpkg/buildflags.conf\fR 4 .IX Item "/etc/dpkg/buildflags.conf" Konfigurationsfil f\(:or hela systemet. .ie n .IP "\fR\fB$XDG_CONFIG_HOME\fR\fB/dpkg/buildflags.conf\fR eller" 4 .el .IP "\fR\f(CB$XDG_CONFIG_HOME\fR\fB/dpkg/buildflags.conf\fR eller" 4 .IX Item "$XDG_CONFIG_HOME/dpkg/buildflags.conf eller" .PD 0 .ie n .IP \fR\fB$HOME\fR\fB/.config/dpkg\-buildflags.conf\fR 4 .el .IP \fR\f(CB$HOME\fR\fB/.config/dpkg\-buildflags.conf\fR 4 .IX Item "$HOME/.config/dpkg-buildflags.conf" .PD Anv\(:andarens konfigurationsfil. .SS Paketeringsst\(:od .IX Subsection "Paketeringsst\(:od" .IP \fB/usr/share/dpkg/buildflags.mk\fR 4 .IX Item "/usr/share/dpkg/buildflags.mk" Makefile-klipp som l\(:aser in (och eventuellt exporterar) alla flaggor som st\(:od av \fBdpkg-buildflags\fR till variabler (sedan dpkg 1.16.1). .SH EXEMPEL .IX Header "EXEMPEL" F\(:or att s\(:anda byggflaggor till en byggkommandorad i en makefil: .Sp .Vb 1 \& $(MAKE) $(shell dpkg\-buildflags \-\-export=cmdline) \& \& ./configure $(shell dpkg\-buildflags \-\-export=cmdline) .Ve .PP F\(:or att s\(:atta byggflaggor i ett skalskript eller skalfragment kan \fBeval\fR anv\(:andas f\(:or att tolka utdata och exportera flaggorna i milj\(:on: .Sp .Vb 1 \& eval "$(dpkg\-buildflags \-\-export=sh)" && make .Ve .PP eller f\(:or att s\(:atta positionsparametrarna f\(:or att s\(:anda till ett kommando: .Sp .Vb 2 \& eval "set \-\- $(dpkg\-buildflags \-\-export=cmdline)" \& for dir in a b c; do (cd $dir && ./configure "$@" && make); done .Ve .SS "Anv\(:anda i debian/rules" .IX Subsection "Anv\(:anda i debian/rules" Du b\(:or anropa \fBdpkg-buildflags\fR eller inkludera \fBbuildflags.mk\fR fr\(oan filen \fBdebian/rules\fR f\(:or att h\(:amta de byggflaggor det \(:ar n\(:odv\(:andigt att s\(:anda till byggsystemet. Observera att \(:aldre versioner av \fBdpkg-buildpackages\fR (f\(:ore dpkg 1.16.1) exporterade dessa flaggor automatiskt. Du b\(:or dock inte bero p\(oa detta, eftersom detta f\(:orhindrar k\(:orning av \fBdebian/rules\fR manuellt. .PP F\(:or paket med autoconf-liknande byggsystem kan du s\(:anda relevanta flaggor direkt till configure eller \fBmake\fR\|(1), som visas ovan. .PP I andra byggsystem, eller om du vill ha mer finkorning styrning av vilka flaggor som s\(:ands vart, kan du anv\(:anda \fB\-\-get\fR. Eller s\(oa kan du ist\(:allet inkludera \fBbuildflags.mk\fR, som tar hand om anropet till \fBdpkg-buildflags\fR och lagringen av byggflaggorna i make-variabler. .PP Om du vill exportera alla byggflaggor till milj\(:on (d\(:ar de kan f\(oangas upp av ditt byggsystem): .Sp .Vb 2 \& DPKG_EXPORT_BUILDFLAGS = 1 \& include /usr/share/dpkg/buildflags.mk .Ve .PP F\(:or extra styrning av vad som expoteras kan du manuellt exportera variablerna (eftersom inga av dem exporteras som standard): .Sp .Vb 2 \& include /usr/share/dpkg/buildflags.mk \& export CPPFLAGS CFLAGS LDFLAGS .Ve .PP Du kan naturligtvis dessutom manuellt s\(:anda flaggorna till kommandon: .Sp .Vb 3 \& include /usr/share/dpkg/buildflags.mk \& build\-arch: \& $(CC) \-o hello hello.c $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .Ve .SH \(:OVERS\(:ATTNING .IX Header "\(:OVERS\(:ATTNING" Peter Krefting och Daniel Nylander.