dpkg-buildflags(1) dpkg suite dpkg-buildflags(1) (NAME) dpkg-buildflags - (SYNOPSIS) dpkg-buildflags [...] [] (DESCRIPTION) dpkg-buildflags . (vendor) : 1. /etc/dpkg/buildflags.conf 2. $XDG_CONFIG_HOME/dpkg/buildflags.conf $XDG_CONFIG_HOME $HOME/.config 3. ( << (ENVIRONMENT)>> ) 4. debian/rules ( << (ENVIRONMENT)>> ). (directive) : SET flag value flag value. STRIP flag value value flag. dpkg 1.16.1 . APPEND flag value flag value . . PREPEND flag value flag value . . dpkg 1.16.1 . (#) () . . dpkg 1.15.7 . (COMMANDS) --dump . ("flag=value"). . --list ( ). << (SUPPORTED FLAGS)>> . --status dpkg-buildflags ( dpkg 1.16.5 ): . . debian/rules . . --export=format . format sh . . : sh . . cmdline ( dpkg 1.17.0 ). . configure (legacy) cmdline . make Make . Makefile include . --get flag . . --origin flag --get . . : vendor system user env . --query : ( dpkg 1.21.14 ) ( dpkg 1.19.0 ). : 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 --query-features area ( dpkg 1.16.2 ). ( ) Builtin ( dpkg 1.21.14 ). << (FEATURE AREAS)>> . . RFC822 . : Feature: pie Enabled: yes Builtin: yes Feature: stackprotector Enabled: yes --help . --version . (SUPPORTED FLAGS) ASFLAGS (host). : . dpkg 1.21.0 . CFLAGS C . -g ( -O2 -O0 DEB_BUILD_OPTIONS noopt ) . CPPFLAGS C . : . CXXFLAGS ++C . CFLAGS. OBJCFLAGS Objective C . CFLAGS. dpkg 1.17.7 . OBJCXXFLAGS ++Objective C . CXXFLAGS. dpkg 1.17.7 . DFLAGS D (ldc gdc). dpkg 1.20.6 . FFLAGS Fortran 77 . CFLAGS. FCFLAGS Fortran 9x . FFLAGS. dpkg 1.17.7 . LDFLAGS (linking) (shared objects). : ld(1) (sanitize) . -Wl -l -L -Wl , . ld(1) . : . ASFLAGS_FOR_BUILD (build). : . dpkg 1.22.1 . CFLAGS_FOR_BUILD C . -g ( -O2 -O0 DEB_BUILD_OPTIONS noopt ) . dpkg 1.22.1 . CPPFLAGS_FOR_BUILD C . : . dpkg 1.22.1 . CXXFLAGS_FOR_BUILD ++C . CFLAGS_FOR_BUILD. dpkg 1.22.1 . OBJCFLAGS_FOR_BUILD Objective C . CFLAGS_FOR_BUILD. dpkg 1.22.1 . OBJCXXFLAGS_FOR_BUILD ++Objective C . CXXFLAGS_FOR_BUILD. dpkg 1.22.1 . DFLAGS_FOR_BUILD D (ldc gdc). dpkg 1.22.1 . FFLAGS_FOR_BUILD Fortran 77 . CFLAGS_FOR_BUILD. dpkg 1.22.1 . FCFLAGS_FOR_BUILD Fortran 9x . FFLAGS_FOR_BUILD. dpkg 1.22.1 . LDFLAGS_FOR_BUILD . : ld(1) . -Wl -l -L -Wl , . ld(1) . : . dpkg 1.22.1 . ( ). (FEATURE AREAS) . DEB_BUILD_OPTIONS DEB_BUILD_MAINT_OPTIONS `+' `-' . ( dpkg-buildpackage(1)) (`=') . . "pie" "fortify" hardening debian/rules : export DEB_BUILD_MAINT_OPTIONS = hardening=+pie,-fortify all ( ) . hardening "format" "fortify" : export DEB_BUILD_MAINT_OPTIONS = hardening=-all,+format,+fortify : export DEB_BUILD_MAINT_OPTIONS = hardening=+pie abi=+lfs all . "lfs" abi "pie" "fortify" hardening "format" CONDITION : export DEB_BUILD_MAINT_OPTIONS = hardening=-all,+pie,+format abi=+lfs DEB_BUILD_MAINT_OPTIONS += hardening=+fortify ifdef CONDITION DEB_BUILD_MAINT_OPTIONS += hardening=-format endif abi ( ) ABI (backwards compatibility) . lfs ( dpkg 1.22.0 ) (Large File Support LFS) ABI LFS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 CPPFLAGS . future . time64 ( dpkg 1.22.0 i386 hurd-i386 dpkg 1.22.5 ) time_t ABI -D_TIME_BITS=64 CPPFLAGS . lfs abi . i386 ( hurd-i386 time64 ) . gcc armel armhf hppa m68k mips mipsel powerpc sh4 -U_LARGEFILE_SOURCE -U_FILE_OFFSET_BITS -U_TIME_BITS CPPFLAGS . future ( ) . lfs ( dpkg 1.19.0 ) lfs abi . abi . qa ( ) . bug-implicit-func ( dpkg 1.22.3 dpkg 1.22.6 ) -Werror=implicit-function-declaration CFLAGS . bug ( dpkg 1.17.4 ) . (fatal) . CFLAGS CXXFLAGS -Werror=array-bounds -Werror=clobbered -Werror=implicit-function-declaration -Werror=volatile-register-var . bug-implicit-func -Werror=implicit-function-declaration . canary ( dpkg 1.17.14 ) (canary) . CPPFLAGS CFLAGS OBJCFLAGS CXXFLAGS OBJCXXFLAGS -D__DEB_CANARY_flag_random-id__ LDFLAGS -Wl,-z,deb-canary-random-id . optimize ( ) ( dpkg 1.21.0 ). : all () . lto ( dpkg 1.21.0 ) (Link Time Optimization) -flto=auto -ffat-lto-objects CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS FFLAGS FCFLAGS LDFLAGS . sanitize ( ) (sanitize) (use-after-free) (threading data races) . : not (production) . address ( dpkg 1.18.0 ) -fsanitize=address LDFLAGS -fsanitize=address -fno-omit-frame-pointer CFLAGS CXXFLAGS . thread ( dpkg 1.18.0 ) -fsanitize=thread CFLAGS CXXFLAGS LDFLAGS . leak ( dpkg 1.18.0 ) -fsanitize=leak LDFLAGS . address thread . undefined ( dpkg 1.18.0 ) -fsanitize=undefined CFLAGS CXXFLAGS LDFLAGS . hardening ( ) (hardening) . . format ( dpkg 1.16.1 ) -Wformat -Werror=format-security CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS . . printf scanf (literal) printf(foo); printf("%s", foo);. `%n' . fortify ( dpkg 1.16.1 ) -D_FORTIFY_SOURCE=2 CPPFLAGS . ( ) . . `%n' . . -O1 . DEB_BUILD_OPTIONS noopt glibc 2.16 fortify . stackprotector ( dpkg 1.16.1 stackprotectorstrong ) -fstack-protector --param=ssp-buffer-size=4 CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS FFLAGS FCFLAGS . (stack overwrite) . (abort) . (DoS) ( ) . glibc ( __stack_chk_fail) -nostdlib -ffreestanding . stackprotectorstrong ( dpkg 1.17.11 ) -fstack-protector-strong CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS FFLAGS FCFLAGS . stackprotector . stackprotector . stackprotector gcc 4.9 . stackclash ( dpkg 1.22.0 ) -fstack-clash-protection amd64 arm64 armhf armel CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS FFLAGS FCFLAGS . (stack clash) . branch ( dpkg 1.22.0 ) -fcf-protection amd64 -mbranch-protection=standard arm64 CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS FFLAGS FCFLAGS . . relro ( dpkg 1.16.1 ) -Wl,-z,relro LDFLAGS . ELF . . GOT . bindnow . bindnow ( dpkg 1.16.1 ) -Wl,-z,now LDFLAGS . PLT ( relro ) . relro . pie ( dpkg 1.16.1 dpkg 1.18.23 gcc amd64 arm64 armel armhf hurd-i386 i386 mips mipsel mips64el powerpc ppc64 ppc64el riscv64 s390x sparc sparc64 ) PIE (specs) gcc gcc . gcc . gcc -fPIE ( /usr/share/dpkg/pie-compiler.specs) CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS FFLAGS FCFLAGS -fPIE -pie ( /usr/share/dpkg/pie-link.specs) LDFLAGS . gcc -fno-PIE ( /usr/share/dpkg/no-pie-compile.specs) CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS FFLAGS FCFLAGS -fno-PIE -no-pie ( /usr/share/dpkg/no-pie-link.specs) LDFLAGS . (Position Independent Executable PIE) (Address Space Layout Randomization ASLR) . ASLR (brk mmap) . (-fPIC) ASLR text. ASLR PIE . ROP ( ) . PIE -fPIC . PIE gcc . . : none PIE . -fPIE (). -fPIC . gcc . -fPIE -fpie -pie libtool . -fPIC CFLAGS ( -PIE ) -shared LDFLAGS ( -pie ). : gcc . PIE ( i386 gcc >= 5) . ( amd64) . reproducible (build reproducibility) . . timeless ( dpkg 1.17.14 ) -Wdate-time CPPFLAGS . __TIME__ __DATE__ __TIMESTAMP__ . fixfilepath ( dpkg 1.19.1 ) -ffile-prefix-map=BUILDPATH=. CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS FFLAGS FCFLAGS BUILDPATH . . fixdebugpath fixfilepath . : . fixdebugpath . . fixdebugpath ( dpkg 1.18.5 ) -fdebug-prefix-map=BUILDPATH=. CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS FFLAGS FCFLAGS BUILDPATH . . : fixfilepath . (ENVIRONMENT) (DEB_flag_op) debian/rules . . (DEB_flag_MAINT_op) debian/rules . DEB_flag_SET DEB_flag_MAINT_SET ( dpkg 1.16.1) flag . DEB_flag_STRIP ( dpkg 1.16.1) DEB_flag_MAINT_STRIP ( dpkg 1.16.1) ( ) flag . DEB_flag_APPEND DEB_flag_MAINT_APPEND ( dpkg 1.16.1) flag . DEB_flag_PREPEND ( dpkg 1.16.1) DEB_flag_MAINT_PREPEND ( dpkg 1.16.1) flag . DEB_BUILD_OPTIONS DEB_BUILD_MAINT_OPTIONS ( dpkg 1.16.1) / . DEB_BUILD_MAINT_OPTIONS DEB_BUILD_OPTIONS . << (FEATURE AREAS)>> . . dpkg-buildpackage(1) . DEB_VENDOR . /etc/dpkg/origins/default . DEB_BUILD_PATH ( dpkg 1.18.8 ) fixdebugpath . . DEB_HOST_ARCH (host) . (cross-compiling) DEB_HOST_ARCH DEB_BUILD_ARCH . DPKG_COLORS ( dpkg 1.18.5 ). : auto () always never. DPKG_NLS (NLS) ( i18n) ( dpkg 1.19.0 ). : 0 1 (). (FILES) (Configuration files) /etc/dpkg/buildflags.conf . $XDG_CONFIG_HOME/dpkg/buildflags.conf $HOME/.config/dpkg/buildflags.conf . (Packaging support) /usr/share/dpkg/buildflags.mk Makefile dpkg-buildflags ( ) ( dpkg 1.16.1 ). /usr/share/dpkg/buildtools.mk Makefile ( ) ( dpkg 1.19.0 ). (EXAMPLES) Makefile: $(MAKE) $(shell dpkg-buildflags --export=cmdline) ./configure $(shell dpkg-buildflags --export=cmdline) eval : eval "$(dpkg-buildflags --export=sh)" && make (positional) : eval "set -- $(dpkg-buildflags --export=cmdline)" for dir in a b c; do (cd $dir && ./configure "$@" && make); done debian/rules (Usage in debian/rules) dpkg-buildflags buildflags.mk debian/rules . dpkg-buildpackage ( dpkg 1.16.1) . debian/rules . autoconf configure make(1) . --get . buildflags.mk dpkg-buildflags make . ( ): DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/buildflags.mk ( ): include /usr/share/dpkg/buildflags.mk export CPPFLAGS CFLAGS LDFLAGS : include /usr/share/dpkg/buildflags.mk build-arch: $(CC) -o hello hello.c $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) 1.23.7-dirty 2026-03-06 dpkg-buildflags(1)