ืืืื ืืคืงืืื dpkg-buildflags ืฉื ืืชื ืืืจืืฅ ืืกืคืง ืืืืจืื ืืืื ืื ืฉื OnWorks ืืืืฆืขืืช ืืืช ืืชืื ืืช ืืขืืืื ืืืงืืื ืืช ืืืจืืืืช ืฉืื ื, ืืืื Ubuntu Online, Fedora Online, ืืืืืืืจ ืืงืืื ืฉื Windows ืื ืืืืืืืจ ืืงืืื ืฉื MAC OS
ืชึธืึฐื ึดืืช:
ืฉืึตื
dpkg-buildflags - ืืืืืจ ืืืื build ืืฉืืืืฉ ืืืืื ืื ืืืช ืืืืืื
ืชึทืงืฆึดืืจ
dpkg-buildflags [ืืึนืคึผึฐืฆึดืึธื...] [ืืคืงืืื]
ืชืืืืจ
dpkg-buildflags ืืื ืืื ืืืืืืจ ืืืื ืงืืืคืืืฆืื ืืฉืืืืฉ ืืืืื ืื ืืืช ืืืืื
ืืืืืืช. ืืืื ืืจืืจืช ืืืืื ืืืืืจืื ืขื ืืื ืืกืคืง ืื ื ืืชื ืืืจืืื ืืืชื/ืืขืงืืฃ ืืืชื
ืืืื ืืจืืื:
1. ืืื ืืืขืจืืช ืขื /etc/dpkg/buildflags.conf;
2. ืืืฉืชืืฉ ืื ืืืื ืขื $XDG_CONFIG_HOME/dpkg/buildflags.conf ืืืคื
$XDG_CONFIG_HOME ืืจืืจืช ืืืื ื $HOME/.config;
3. ืืื ืืช ืขื ืืื ืืืฉืชืืฉ ืขื ืืฉืชื ื ืกืืืื (ืจืื ืกืขืืฃ ืืกืืืื);
4. ืืืืคื ืืื ืื ืขื ืืื ืื ืื ืืืืืื ืขื ืืฉืชื ื ืกืืืื ืืืืืจืื ืืืืฆืขืืช
ืืืืื/ืืืืื (ืจืื ืกืขืืฃ ืืกืืืื).
ืงืืฆื ืืชืฆืืจื ืืืืืื ืืืืื ืฉื ื ืกืืืื ืฉื ืื ืืืืช:
SET ืืื ืขืจื
ืชืขืงืืฃ ืืช ืืืื ืฉืฉืื ืืื ืืงืื ืืช ืืขืจื ืขืจื.
ืึฐืึดืชึฐืคึผึทืฉืึตื ืืื ืขืจื
ืจืฆืืขื ืืืืื ืืฉื ืืื ืื ืืืื ืืื ืืื ืืจืฉืืืื ื ืขืจื.
ืืืกืฃ ืืื ืขืจื
ืืจืืื ืืช ืืืื ืืฉื ืืื ืขื ืืื ืืืกืคืช ืืืคืฉืจืืืืช ืืืคืืจืืืช ื ืขืจื. ืืื ืืื
ืืืฆืื ืืขืจื ืืืฆืืจืฃ ืื ืืขืจื ืื ืืืื ืฉื ืืืื ืืื ื ืจืืง.
ืืื ื ืืจืืฉ ืืื ืขืจื
ืืจืืื ืืช ืืืื ืืฉื ืืื ืขื ืืื ืืฆืืช ืืืคืฉืจืืืืช ืฉื ืืชื ื ื ืขืจื. ืืื ืืื
ืืฆืืจืฃ ืืขืจื ืืืืงืื ืื ืืขืจื ืื ืืืื ืฉื ืืืื ืืื ื ืจืืง.
ืงืืฆื ืืชืฆืืจื ืืืืืื ืืืืื ืืขืจืืช ืขื ืฉืืจืืช ืืืชืืืืืช ื-hash (#). ืจืืง
ืืชืขืืืื ืื ืืืงืืืื.
ืคืงืืืืช
--ืืืืื ืืืคืก ืืคืื ืกืื ืืจืื ืืช ืื ืืืื ืืืืืืจ ืืืขืจืืื ืฉืืื. ืื ืืืคืืก ืืื ืืื
ืืื ืฉืืจื ืืืคืจืืช ืืขืจืื ืืกืืื ืฉืืื ("ืืื=ืขืจืโ). ืื
ืคืขืืืช ืืจืืจืช ืืืื.
--ืจืฉืืื ืืืคืก ืืช ืจืฉืืืช ืืืืืื ืื ืชืืืื ืขื ืืื ืืกืคืง ืื ืืืื (ืืื ืืื ืฉืืจื). ืจืื ืืช
ื ืชืื ืืืืื ืืืืืข ื ืืกืฃ ืขืืืื.
--ืกืึธืืึผืก
ืืฆื ืื ืืืืข ืฉืืืื ืืืืืช ืฉืืืืฉื ืืื ืืืกืืืจ ืืช ืืืชื ืืืืช ืฉื
dpkg-buildflags (ืืื dpkg 1.16.5): ืืฉืชื ื ืกืืืื ืจืืืื ืืืื, ืืจื
ืกืคืง, ืืฆื ืื ืืืื ืืืืคืืื ืื. ืืืคืก ืื ืืช ืืืื ืืืืืจ ืืืชืงืืืื ืขื
ืืืงืืจ ืฉืืื.
ืื ื ืืขื ืืืคืขืื ื ืืืืื/ืืืืื, ืื ืฉืืืื ืืื ืืื ืืืฉืืจ ืืจืืจ
ืขืงืืืช ืฉื ืืืื ืืื ืืื ืืฉืืืืฉ. ืื ืืืื ืืืืืช ืฉืืืืฉื ืืื ืืืืื ืืขืืืช ืืงืฉืืจืืช
ืืืชื.
--ืืืฆืื=ืคืึผืจืึธื
ืืืคืก ืืคืงืืืืช ืคืื ืกืื ืืจืืืืช ืฉื ืืชื ืืืฉืชืืฉ ืืื ืืื ืืืืฆื ืืช ืื ืืืืืืจ
ืืืืื ืขืืืจ ืืื ืืกืืื. ืื ื ืคืึผืจืึธื ืื ื ืืชื ืขืจื, sh ืื ืืืื.
ืจืง ืืืื ืืืืืจ ืืืชืืืืื ืืืืช ืืืืื ืืืืืื, ืืืจืื
ืื ืืืื ืฉืืื ื ืืชืืืืื ืืกืืืื. ืคืืจืืืื ื ืชืืืื:
sh ืคืงืืืืช Shell ืืื ืืืืืืจ ืืืืืฆื ืืช ืื ืืืื ืืืืืืจ ื-
ืกืืืื. ืขืจืื ืืืื ืืฆืืื ืื ืื ืฉืืคืื ืืืื
ืืขืจืื ืขื ืืื ืคืื.
ืงื ืก"ื
ืืืขืื ืื ืืืขืืืจ ืืฉืืจืช ืืคืงืืื ืฉื ืชืืื ืืช ืื ืืื ืืื ืืืฉืชืืฉ ืืื ื
ืืืื ืืืืืจ (ืืื dpkg 1.17.0). ืขืจืื ืืืื ืืฆืืื ืื ืืืขืืคืช
ืชืืืืจ.
ืืืืืืจ
ืืื ืืื ืื ืืืจืฉืช ืขืืืจ ืงื ืก"ื.
ืืขืฉืืช ืงืื ืื ืืืืช ืืืืืืจ ืืืืืฆื ืืช ืื ืืืื ืืืืืืจ ื-
ืกืืืื. ื ืืชื ืืืชืื ืคืื ืืืงืืข makefile ืืืืขืจืื
ืืืืฆืขืืช ืืืืื ืืืจืื.
--ืืงืื ืืื
ืืืคืก ืืช ืขืจื ืืืื ืขื โโืคืื ืกืื ืืจืื. ืืืฆื ืขื 0 ืื ืืืื ืืืืข
ืืืจืช ืืืฆื ืขื 1.
--ืึธืงืึนืจ ืืื
ืืืคืก ืืช ืืงืืจ ืืขืจื ืฉืืืืืจ ืขื ืืื --ืืงืื. ืืืฆื ืขื 0 ืื ืืืื
ืืืืข ืืืจืช ืืืฆื ืขื 1. ืืืงืืจ ืืืื ืืืืืช ืืื ืืืขืจืืื ืืืืื:
ืืืืจ ืืืื ืืืงืืจื ืฉืืืืืจ ืขื ืืื ืืกืคืง ืืืืืจ;
ืืขืจืืช ืืืื ืืืืืจ/ืืฉืชื ื ืขื ืืื ืชืฆืืจื ืืื ืืขืจืืช;
ืืืฉืชืืฉ ืืืื ืืืืืจ/ืืฉืชื ื ืขื ืืื ืชืฆืืจื ืกืคืฆืืคืืช ืืืฉืชืืฉ;
env ืืืื ืืืืืจ/ืืฉืชื ื ืขื ืืื ืชืฆืืจื ืกืคืฆืืคืืช ืืกืืืื.
--ืฉืืืืชื-ืชืืื ืืช ืืืืจ
ืืืคืก ืืช ืืชืืื ืืช ืืืืคืขืืืช ืขืืืจ ืืืืจ ื ืชืื (ืืื dpkg 1.16.2). ืืืืื
ืืืืจืื ืืืืืจืื ืืืื ืืืืืื ืื ืืืจืืช ืื qa, ืืฉืืืืจ, ืืืืจ
ื ืืชืงืฉืืช, ืจืื FEATURE ืฉืืืื ืกืขืืฃ ืืคืจืืื ื ืืกืคืื. ืืืฆื ืขื 0 ืื ื
ืืืืืจ ืืืืข ืืืจืช ืืืฆื ืขื 1.
ืืคืื ืืื ืืคืืจืื RFC822, ืขื ืงืืข ืืื ืืื ืชืืื ื. ืืืืืื:
ืชืืื ื: ืคืื
ืืืคืขื: ืื
ืชืืื ื: ืืื ืืืกื ืืช
ืืืคืขื: ืื
- ืขืืจื ืืฆื ืืช ืืืืขืช ืืฉืืืืฉ ืืฆื.
--ืึดืจึฐืกึธื
ืืฆื ืืช ืืืจืกื ืืฆื.
ื ืชืื ืืืืื
CFLAGS ืืคืฉืจืืืืช ืขืืืจ ืืืืจ C. ืขืจื ืืจืืจืช ืืืืื ืฉืืืืืจ ืขื ืืื ืืกืคืง ืืืื -g ื
ืจืืช ืืืคืืืืืืฆืื ืืืจืืจืช ืืืื (-O2 ืืืจื ืืื, ืื -O0 ืื DEB_BUILD_OPTIONS
ืืฉืชื ื ืกืืืื ืืืืืจ ืื).
CPPFLAGS
ืืคืฉืจืืืืช ืขืืืจ ืืขืื ืืงืื C. ืขืจื ืืจืืจืช ืืืื: ืจืืง.
CXXFLAGS
ืืคืฉืจืืืืช ืขืืืจ ืืืืืจ C++. ืืื CFLAGS.
OBJCFLAGS
ืืคืฉืจืืืืช ืขืืืจ ืืืืจ Objective C. ืืื CFLAGS.
OBJCXXFLAGS
ืืคืฉืจืืืืช ืขืืืจ ืืืืจ Objective C++. ืืื CXXFLAGS.
GCJFLAGS
ืืคืฉืจืืืืช ืขืืืจ ืืืืจ GNU Java (gcj). ืชืช-ืงืืืฆื ืฉื CFLAGS.
FFLAGS ืืคืฉืจืืืืช ืขืืืจ ืืืืจ Fortran 77. ืชืช-ืงืืืฆื ืฉื CFLAGS.
FCFLAGS
ืืคืฉืจืืืืช ืขืืืจ ืืืืืจ Fortran 9x. ืืื FFLAGS.
LDFLAGS
ืืคืฉืจืืืืช ืฉืืืขืืจื ืืืืืจ ืืขืช ืงืืฉืืจ ืงืืืฆื ืืคืขืื ืื ืืืืืืงืืื ืืฉืืชืคืื (ืื
ืืงืฉืจ ื ืงืจื ืืฉืืจืืช, ืื ืื -ืืื ื , ืืฉ ืืฉืืื ืืืืคืฉืจืืืืช ืืืื).
ืขืจื ืืจืืจืช ืืืื: ืจืืง.
ืืืืื ืืืฉืื ืขืฉืืืื ืืืชืืืกืฃ ืืขืชืื ืื ืืชืขืืจืจ ืฆืืจื (ืืืืืื ืืื ืืชืืื ืืืืจืื
ืฉืคืืช).
FEATURE ืฉืืืื
ื ืืชื ืืืคืขืื ืืืืฉืืืช ืื ืชืืื ืช ืืืืจ ื- DEB_BUILD_OPTIONS ื
DEB_BUILD_MAINT_OPTIONS ืขืจื ืืฉืื ืฉื ืืฉืชื ื ืืกืืืื ืขื ื-'+'ื'-' ืืฉื ื.
ืืืืืื, ืืื ืืืคืฉืจ ืืช ืืชืงืฉืืช ืชืืื ืช "ืคืื" ืืืฉืืชื ืืช ืชืืื ืช ื"ืืืืืง" ืื
ืืืื ืืขืฉืืช ืืืช ื ืืืืื/ืืืืื:
ืืืฆืื DEB_BUILD_MAINT_OPTIONS=ืืชืงืฉืืช=+ืคืื,-ืืืืืง
ืืชืืื ื ืืืืืืืช ืืช ืื (ืชืงืฃ ืืื ืืืืจ) ื ืืชื ืืืฉืชืืฉ ืืื ืืืคืขืื ืื ืืืฉืืืช ืืช ืื ืืืืืจ
ืชืืื ืืช ืื ืืื ืืช. ืืืื ืืืฉืืืช ืืช ืืื ื- ืืชืงืฉืืช ืืืืจ ืืืืคืฉืจ
ื ืืชื ืืืฉืื ืจืง "ืคืืจืื" ื"ืืืืืง" ืขื:
ืืืฆืื DEB_BUILD_MAINT_OPTIONS=ืืชืงืฉืืช=-ืืื,+ืคืืจืื,+ืืืืืง
qa
ื ืืชื ืืืฉืชืืฉ ืืืกืคืจ ืืคืฉืจืืืืช ืฉื ืืื ืืืืืจ (ืืคืืจื ืืืื) ืืื ืืกืืืข ืืืืชืืจ ืืขืืืช ื-
ืงืื ืืงืืจ ืื ืืขืจืืช ืื ืืื.
ืืื ืืืืจื ืื (ืืืฉืืชืช ืืืจืืจืช ืืืื) ืืืกืืคื ืื ืืคืฉืจืืช ืืืืจื ืืืืื ืืืืคื ืืืื
ืงืื ืืงืืจ ืืขืืืชื. ืืืืืจืืช ืื ืงืืื ืืืช.
ืื ืจืืช ืืืืจื ืื (ืืืฉืืชืช ืืืจืืจืช ืืืื) ืืืกืืคื ืืคืฉืจืืืืช ืืื ืงื ืจืืืช ืืืืื ืืื ืืื, ืื
ืฉื ืืชื ืืืืืง ืืช ืืืื ื ืืื ืืื ืืืฆื ืืืื ืืื ืืื ืืชืคืฉืืื ืืืืคืฉืจ
ืืฆืืืช ืื ืืฉืืื ืฉื โโืืืืจืืช ืืื ืื ืืื ืจืืืืืช. ืืืืื ืื ืชืื ืืจืืข
ืืืืืื ืื CPPFLAGS, CFLAGS, OBJCFLAGS, CXXFLAGS ื OBJCXXFLAGS ืขื ืืืืื ืืืืืจืื ื
-D__DEB_CANARY_ืืื_ืืืื ืืงืจืื__, ื LDFLAGS ืืืืื ื -Wl,-z,deb-canary-ืืืื ืืงืจืื.
ืืืืจ
ื ืืชื ืืืฉืชืืฉ ืืืกืคืจ ืืคืฉืจืืืืช ืฉื ืืื ืืืืืจ (ืืคืืจื ืืืื) ืืื ืืกืืืข ืืืืืื ืืชืืฆืื
ืืื ืืจื ื ืื ืืฉืืชืืช ืืืืจืื, ืืืืคืืช ืืืืจืื, ืฉืืืืฉ ืืืืจ ืืื ืื, ืืฉืืืช ืืืจืืฆื ื ืชืื ืื ื
ืืืื ืืชื ืืืืช ืื ืืืืืจืื.
ืืชืืืช
ืืืืจื ืื (ืืืฉืืชืช ืืืจืืจืช ืืืื) ืืืกืืคื -fsanitize=ืืชืืืช ื LDFLAGS ื
-fsanitize=ืืชืืืช -fno-omit-frame-pointer ื CFLAGS ื CXXFLAGS.
ืืื ืืืืจื ืื (ืืืฉืืชืช ืืืจืืจืช ืืืื) ืืืกืืคื -fsanitize=ืืื ื CFLAGS, CXXFLAGS ื
LDFLAGS.
ืืืืืฃ ืืืืจื ืื (ืืืฉืืชืช ืืืจืืจืช ืืืื) ืืืกืืคื -fsanitize=ืืืืคื ื LDFLAGS. ืื ื ืขืฉื
ืืืฉืืช ืืืืืืืืช ืื ืืืช ืืื ืืชืืืช ืื ืืื ืชืืื ืืช ืืืคืขืืืช, ืืื
ืื ืืจืืืื ืขื ืื.
ืื ืืืืืจ
ืืืืจื ืื (ืืืฉืืชืช ืืืจืืจืช ืืืื) ืืืกืืคื -fsanitize=ืื ืืืืืจ ื CFLAGS, CXXFLAGS
ื LDFLAGS.
ืืชืงืฉืืช
ื ืืชื ืืืฉืชืืฉ ืืืกืคืจ ืืคืฉืจืืืืช ืฉื ืืื ืืืืืจ (ืืคืืจื ืืืื) ืืื ืืขืืืจ ืืืงืฉืื ืืช ืืชืืฆืื
ืืื ืืจื ื ืื ืืชืงืคืืช ืฉืืืชืืช ืืืืืจืื, ืื ืืกืคืง ืืืืขืืช ืืืืจื ื ืืกืคืืช ืืืืื
ืึทืืึธืจึธื. ืืืขื ืืคื ืฉืฆืืื ืืืื, ืืื ืืืคืขืืื ืืืจืืจืช ืืืื ืขืืืจ ืืจืืืืงืืืจืืช
ืืชืืื ืืื.
ืคืึผืจืึธื ืืืืจื ืื (ืืืคืขืืช ืืืจืืจืช ืืืื) ืืืกืืคื - -ืฉืืืื=ืคืืจืื-ืืืืื ื CFLAGS,
CXXFLAGS, OBJCFLAGS ื OBJCXXFLAGS. ืื ืืืืืจ ืขื ืืืจืืืช ืคืืจืื ืื ืชืงืื
ืืฉืชืืฉ, ืืืืืฉื ืืืฉืจ ื ืขืฉื ืฉืืืืฉ ืืคืื ืงืฆืืืช ืขืืฆืื ืืืืคื ืืืืืฆื ืืคืฉืจื
ืืขืืืช ืืืืื. ื ืืื ืืขืืฉืื, ืื ืืืืืจ ืืคื ื ืฉืืืืช ื ืืืคืก ื scanf ืคืื ืงืฆืืืช
ืืืฉืจ ืืืจืืืช ืืคืืจืื ืืื ื ืืืจืืืช ืืืืืืืช ืืืื ืืจืืืื ืืื ืฉื ืคืืจืื,
ืืื ื printf(foo); ืืืงืื printf("%s", foo); ืื ืขืฉืื ืืืืืช ืืืจ ืืืืื ืื
ืืืจืืืช ืคืืจืื ืืืืขื ืืงืื ืื ืืืืื ืืืืืื '%n'.
ืึฐืึทืึตืง
ืืืืจื ืื (ืืืคืขืืช ืืืจืืจืช ืืืื) ืืืกืืคื -D_FORTIFY_SOURCE=2 ื CPPFLAGS. ืืืืื ืืงืื
ืืืจ ืืืืืจ ืืืืข ืืจืื ืืืืข ืขื ืืืื ืืืืจ (ืืืคื
ืืคืฉืจื), ืืื ืกื ืืืืืืฃ ืงืจืืืืช ืคืื ืงืฆืืืช ืืืืจ ืื ืืืืืืืืช ืืืืจื ืืืชื ืืืืื
ืขื ืืื ืืืืืืื ืืืืจื. ืื ืฉืืืืฉื ืืืืืื ืขืืืจ ืงืื ืืฉื ืืืกืืจืื.
ืื ืืกืฃ, ืืืจืืืืช ืขืืฆืื ืืืืืจืื ืื ืืชื ืืืชืืื ืืืืืืืช '%n' ืืกืืืืช. ืื
ืืืฉืื ืชืืื ืืืืจืืืช ืคืืจืื ืืื, ืืืื ืฆืืจื ืืขืงืืฃ ืืืชื.
ืฉืืื ืื ืฉืืื ืืืคืฉืจืืช ืื ืชืืื ืืฉืคืขื ืืืฉืื, ืืฉ ืืืจืืื ืื ืืช ืืืงืืจ
-O1 ืื ืืืื ืืืชืจ. ืื ืืฉืชื ื ืืกืืืื DEB_BUILD_OPTIONS ืืืื ืื, ืืืืจ ืืื
ืึฐืึทืึตืง ืืชืืืื ืชืืฉืืช, ืขืงื ืืืืจืืช ืืืฉืืช ืฉืืืฆืื ืขื ืืื glibc 2.16
ืืืืจ ืื.
ืืื ืืืกื ืืช
ืืืืจื ืื (ืืืคืขืืช ืืืจืืจืช ืืืื ืื stackprotectorstrong ืืื ื ืืฉืืืืฉ) ืืืกืืคื
-ืืื ืืืกื ืืช --param=ssp-buffer-size=4 ื CFLAGS, CXXFLAGS, OBJCFLAGS,
OBJCXXFLAGS, GCJFLAGS, FFLAGS ื FCFLAGS. ืื ืืืกืืฃ ืืืืงืืช ืืืืืืช ื ืื ืืืกื ืืช
ืืืืืฃ. ืื ืืืคื ืืชืงืคืืช ืจืืืช ืฉื ืืืจืงืช ืงืื ืคืืื ืฆืืืืืืช ืืืคืกืงื
ืืฆืืื. ืืืงืจื ืืืื ืื ืืืคื ืคืืืขืืืืช ืฉื ืืืจืงืช ืงืื ืืืืืฉื
ืฉื ืฉืืจืืช ืื ืืืขืืืช ืื (ืืืชืื ืืืืฉืื).
ืชืืื ื ืื ืืืจืฉืช ืงืืฉืืจ ืืื glibc (ืื ืกืคืง ืืืจ ืฉื
__stack_chk_fail), ืื ืฆืจืื ืืืืืช ืืืฉืืช ืืขืช ืื ืืื ืขื -ื ืืกืืืืื or
-ืขืืื ืืคื ื ืขืฆืื ืื ืืืื.
stackprotectorstrong
ืืืืจื ืื (ืืืคืขืืช ืืืจืืจืช ืืืื) ืืืกืืคื -fstack-protector-ืืืง ื CFLAGS,
CXXFLAGS, OBJCFLAGS, OBJCXXFLAGS, GCJFLAGS, FFLAGS ื FCFLAGS. ืื ืืืง ืืืชืจ
ืืจืกื ืฉื ืืื ืืืกื ืืช, ืื ืืื ืขืื ืฉื ืืืฆืืข ืืฉืืขืืชืืื.
ืืฉืืืช ืืื ืืืกื ืืช ืืฉืืืช ืื ืืช ืืืืืจื ืืื.
ืืชืืื ื ืื ืืฉ ืืืชื ืืจืืฉืืช ืืื ืืื ืืืกื ืืช, ืืื ืืกืฃ ืื
ืืืจืฉ gcc 4.9 ืืืืื.
relro ืืืืจื ืื (ืืืคืขืืช ืืืจืืจืช ืืืื) ืืืกืืคื -Wl,-z,relro ื LDFLAGS. ืืืืื ืืชืืื ืืช
ืืืขืื, ืฆืจืื ืืืชืื ืืื ืงืืขื ืืืืจืื ELF ืขื ืืื ืืืงืฉืจ. ืื ืืกืื
ืืืขืืืก ืืืคืื ืืช ืืืืงืื ืืืื ืืงืจืืื ืืืื ืืคื ื ืืขืืจืช ืืฉืืืื ื-
ืชืื ืืช. ืืืืจ ืืืืื ืืืืชืจ ืืื ืข ืืชืงืคืืช ืืืืคืช GOT. ืื ืืคืฉืจืืช ืื ืืื
ื ึธืึถื, bindnow ืืืคืื ืื ืื ืื ืื.
bindnow
ืืืืจื ืื (ืืืฉืืชืช ืืืจืืจืช ืืืื) ืืืกืืคื -Wl,-z,ืขืืฉืื ื LDFLAGS. ืืืืื ืืขืื ืช ืืชืืื ืืช,
ืื ืืกืืืื ืืืื ืืืื ืคืชืืจืื, ืื ืฉืืืคืฉืจ ืืกืื ืืช ืื ื-PLT ืืงืจืืื-
ืจืง (ืืืื relro ืึตืขึทื). ืืืคืฉืจืืช ืื ืืืืื ืืืืืช ืืืคืขืืช ืื relro ืื
ืืืืคืฉืจ.
ืคืื ืืืืจื ืื (ืืืฉืืชืช ืืืจืืจืช ืืืื) ืืืกืืคื -fPIE ื CFLAGS, CXXFLAGS, OBJCFLAGS,
OBJCXXFLAGS, GCJFLAGS, FFLAGS ื FCFLAGS, ื -fPIE -ืคึผึทืึดื ื LDFLAGS. ืขืืื
ืืจืืฉืื ืจืืืื ืืคืขืื ืขืฆืืืืื ืืื ืื ืฆื ืืช ืคืจืืกืช ืฉืื ืืืชืืืช
ืืงืจืื, ื ืชืื ืขื ืืื ืืื ืืจืกืืืช ืืืื. ืืขืื ASLR ืืืจ ืืืื ืืืืืช
ื ืืืฃ ืขืืืจ ืืืืจื ื ืชืื ืื ืืขืจืืื ืื-heap (brk ื-mmap), ืืืืจื ืืงืื ืืืืืื
ืืืืืช ืืืจืื ืืืืชื ืชืืื ืืชืคืงืื. ืกืคืจืืืช ืืฉืืชืคืืช ืืืจ ืขืืฉืืช ืืช ืื (-fPIC), ืื
ืื ืืจืืืืืื ASLR ืืืืคื ืืืืืืื, ืืื ืืืืจื ืืงืกื ืืื ืืจืืื ืฆืจืืืื ืืืืืช ืื ืื PIE ืืื ืืืจืืืื
ASLR. ืืืฉืจ ืื ืงืืจื, ืืชืงืคืืช ROP (Return Oriented Programming) ืื ืืจืื ืืืชืจ ืงืฉืืช
ืืืืืื ืฉืืื ืืืงืืืื ืกืืืืื ืฉื ืืชื ืืืกืชืืง ืืื ืืืืื ืคืืืขื ืืืืืจืื
ืึดืชึฐืงืึนืฃ.
ืื ืื ืชืืื -fPIC ืื ืืฉ ืื ืงืื ืืืืจืืช ืืืฉืจ ืื ืืื ืืฉืืชืฃ
ืืคืฆืื.
ืื ืืกืฃ, ืืืืืื ืฉ-PIE ืืืืฉื ืืืืฆืขืืช ืจืืฉืื ืืืื, ืืฉ ืืจืืืืงืืืจืืช
(ืืขืืงืจ i386) ืืืื ืืจืืืช ืืืืื ืืืฆืืขืื ืฉื ืขื 15% ืืงืืขื ืืงืกื ืืืื
ืขืืืกื ืขืืืื ืืืืื ืฉื ืืืฉืืืื; ืจืื ืขืืืกื ืืขืืืื ืจืืืื ืคืืืช ื-1%. ืืจืืืืงืืืจืืช ืขื
ืจืืฉืืืื ืืืืืื ืืืชืจ (ืืืฉื amd64) ืืื ื ืจืืืื ืขืื ืฉ ืืืื ืืืงืจื ืืืจืืข.
ืืฉืืืืจ
ื ืืชื ืืืฉืชืืฉ ืืืคืฉืจืืืืช ืืื ืืืืืืจ ืืืคืืจืืืช ืืืื ืืื ืืกืืืข ืืฉืืคืืจ ืืืืืช ืืฉืืืืจ ืฉื ืืื ืืื
ืื ืืกืคืง ืืืืขืืช ืืืืจื ื ืืกืคืืช ืืืืื ืืืืืืจ. ืืืขื ืืคื ืฉืฆืืื ืืืื, ืืื
ืืืคืขืืื ืืืจืืจืช ืืืื ืขืืืจ ืืจืืืืงืืืจืืช ืืชืืืืืช ืืื.
ื ืฆืื
ืืืืจื ืื (ืืืคืขืืช ืืืจืืจืช ืืืื) ืืืกืืคื -Wdate-time ื CPPFLAGS. ืื ืืืจืื
ืืืืจืืช ืืืฉืจ __ืึฐืึทื__, __ืชึทืึฒืจึดืื__ ื __TIMESTAMP__ ื ืขืฉื ืฉืืืืฉ ืืคืงืืืืช ืืืงืจื.
ืืกืืืื
ืืฉื ื 2 ืกืืื ืฉื ืืฉืชื ื ืกืืืื ืฉืขืืฉืื ืืช ืืืชื ืคืขืืืืช, ืืจืืฉืื ื
(DEB_ืืื_op) ืืื ืืืฉืชืืฉ ืืคื ืื ืืืืื/ืืืืื. ืื ืืืืขื ืืื ืืฉืชืืฉ ืฉืจืืฆื
ืืื ืืช ืืืืฉ ืืช ืืืืืช ืืืงืืจ ืขื ืืืื ืื ืืื ืฉืื ืื. ืืกื ืืฉื ื
(DEB_ืืื_MAINT_op) ืืฉ ืืืฉืชืืฉ ืจืง ื ืืืืื/ืืืืื ืขื ืืื ืื ืืื ืืืืืืืช ืืฉื ืืช
ืืืื ืืื ืืื ืฉื ืืฆืจื.
DEB_ืืื_ืึทืขึฒืจึถืึถืช
DEB_ืืื_MAINT_SET
ื ืืชื ืืืฉืชืืฉ ืืืฉืชื ื ืื ืืื ืืืืฅ ืืช ืืขืจื ืืืืืืจ ืขืืืจ ืื ืชืื ืืื.
DEB_ืืื_ืึฐืึดืชึฐืคึผึทืฉืึตื
DEB_ืืื_MAINT_STRIP
ื ืืชื ืืืฉืชืืฉ ืืืฉืชื ื ืื ืืื ืืกืคืง ืจืฉืืื ืืืคืจืืช ืืจืืื ืฉื ืืคืฉืจืืืืช ืฉืืืื
ืืืคืฉื ืืืขืจืืช ืืืืืื ืฉืืืืืจื ืขืืืจ ืื ืชืื ืืื.
DEB_ืืื_ืึฐืฆึทืจึตืฃ
DEB_ืืื_MAINT_APPEND
ื ืืชื ืืืฉืชืืฉ ืืืฉืชื ื ืื ืืื ืืืืกืืฃ ืืคืฉืจืืืืช ืืฉืืืืืช ืืขืจื ืืืืืืจ ืขืืืจื
ืื ืชืื ืืื.
DEB_ืืื_ืืื ื
DEB_ืืื_MAINT_PREPEND
ื ืืชื ืืืฉืชืืฉ ืืืฉืชื ื ืื ืืื ืืืืกืืฃ ืืคืฉืจืืืืช ืืฉืืืืืช ืืขืจื ืืืืืืจ
ืขื ืื ืชืื ืืื.
DEB_BUILD_OPTIONS
DEB_BUILD_MAINT_OPTIONS
ืืฉืชื ืื ืืื ืืืืืื ืืฉืืฉ ืืฉืชืืฉ ืื ืืชืืืง ืืื ืืืฉืืืช/ืืืคืฉืจ ืืืืจืื ืฉืื ืื
ืชืืื ืืช ืืืฉืคืืขืืช ืขื ืืืื ืื ืืื. ื DEB_BUILD_MAINT_OPTIONS ืขืงืืคืืช ืืฉืชื ืื
ืื ืืืืจื ื DEB_BUILD_OPTIONS ืชืืื ื ืืืืจืื. ืจืื ืืช FEATURE ืฉืืืื ืกืขืืฃ
ืืงืืืช ืคืจืืื.
ืืฉืชืืฉ ื-dpkg-buildflags ืืืืคื ืืงืืื ืืืืฆืขืืช ืฉืืจืืชื onworks.net