# Option or auto detected.
if ($arch) {
- # The following was partially copied from dpkg-dev 1.21.13
- # (/usr/share/perl5/Dpkg/Vendor/Debian.pm, _add_build_flags()),
- # copyright Raphaël Hertzog <hertzog@debian.org>, Guillem Jover
- # <guillem@debian.org>, Kees Cook <kees@debian.org>, Canonical, Ltd.
- # licensed under GPL version 2 or later. Keep it in sync.
+ # The following was partially copied from dpkg-dev 1.22.0
+ # (/usr/share/perl5/Dpkg/Vendor/Debian.pm, set_build_features and
+ # _add_build_flags()), copyright Raphaël Hertzog <hertzog@debian.org>,
+ # Guillem Jover <guillem@debian.org>, Kees Cook <kees@debian.org>,
+ # Canonical, Ltd. licensed under GPL version 2 or later. Keep it in
+ # sync.
require Dpkg::Arch;
my ($os, $cpu);
arm64
armel
armhf
+ hurd-amd64
hurd-i386
i386
kfreebsd-amd64
kfreebsd-i386
mips
- mipsel
+ mips64
mips64el
+ mips64r6
+ mips64r6el
+ mipsel
+ mipsn32
+ mipsn32el
+ mipsn32r6
+ mipsn32r6el
+ mipsr6
+ mipsr6el
powerpc
ppc64
ppc64el
);
# Disable unsupported hardening options.
- if ($os !~ /^(?:linux|kfreebsd|knetbsd|hurd)$/
- or $cpu =~ /^(?:hppa|avr32)$/) {
+ if ($os !~ /^(?:linux|kfreebsd|knetbsd|hurd)$/ or $cpu eq 'hppa') {
$harden_pie = 0;
}
if ($cpu =~ /^(?:ia64|alpha|hppa|nios2)$/ or $arch eq 'arm') {
$harden_stack = 0;
$harden_stack_strong = 0;
}
- if ($cpu =~ /^(?:ia64|hppa|avr32)$/) {
+ if ($cpu =~ /^(?:ia64|hppa)$/) {
$harden_relro = 0;
$harden_bindnow = 0;
}
# ANSI colored output.
-is_blhc 'arch-avr32', '--color', 8,
- "\033[31mCFLAGS missing\033[0m (-fstack-protector-strong)\033[33m:\033[0m gcc -D_FORTIFY_SOURCE=2 -g -O2 -Wformat -Wformat-security -Werror=format-security -Wall -c test.c
+is_blhc 'arch-amd64', '--color', 8,
+ "\033[31mCFLAGS missing\033[0m (-fstack-protector-strong)\033[33m:\033[0m gcc -D_FORTIFY_SOURCE=2 -g -O2 -fPIE -Wformat -Wformat-security -Werror=format-security -Wall -c test.c
+\033[31mLDFLAGS missing\033[0m (-pie)\033[33m:\033[0m gcc -fPIE -Wl,-z,relro -Wl,-z,now -o test test.o
";
# different architectures
-my $arch_avr32 =
- 'CFLAGS missing (-fstack-protector-strong): gcc -D_FORTIFY_SOURCE=2 -g -O2 -Wformat -Wformat-security -Werror=format-security -Wall -c test.c
-';
-is_blhc 'arch-avr32', '', 8,
- $arch_avr32;
+my $arch_hppa = '';
+is_blhc 'arch-hppa', '', 0,
+ $arch_hppa;
my $arch_i386 =
'CFLAGS missing (-fstack-protector-strong): gcc -D_FORTIFY_SOURCE=2 -g -O2 -fPIE -Wformat -Wformat-security -Werror=format-security -Wall -c test.c
# ignore architecture
-is_blhc ['arch-avr32', 'arch-i386', 'empty', 'arch-mipsel'],
- '--ignore-arch avr32 --ignore-arch mipsel',
+is_blhc ['arch-hppa', 'arch-i386', 'empty', 'arch-mipsel'],
+ '--ignore-arch hppa --ignore-arch mipsel',
9,
- "checking './t/logs/arch-avr32'...\n"
- . "ignoring architecture 'avr32'\n"
+ "checking './t/logs/arch-hppa'...\n"
+ . "ignoring architecture 'hppa'\n"
. "checking './t/logs/arch-i386'...\n"
. $arch_i386
. "checking './t/logs/empty'...\n"
. $arch_ia64;
# No exit when multiple files are specified.
-is_blhc ['bad-ldflags', 'empty', 'arch-avr32', 'debian-hardening-wrapper'], '', 25,
+is_blhc ['bad-ldflags', 'empty', 'arch-hppa', 'debian-hardening-wrapper'], '', 25,
"checking './t/logs/bad-ldflags'...\n"
. $bad_ldflags
. "checking './t/logs/empty'...\n"
. $empty
- . "checking './t/logs/arch-avr32'...\n"
- . $arch_avr32
+ . "checking './t/logs/arch-hppa'...\n"
+ . $arch_hppa
. "checking './t/logs/debian-hardening-wrapper'...\n"
. $debian_hardening_wrapper
;
# Ignore works correctly with multiple architectures.
-is_blhc ['arch-i386', 'arch-amd64', 'arch-avr32', 'ignore-flag'],
+is_blhc ['arch-i386', 'arch-amd64', 'arch-hppa', 'ignore-flag'],
'--ignore-arch-flag i386:-fstack-protector-strong --ignore-arch-flag mipsel:-Werror=format-security', 8,
"checking './t/logs/arch-i386'...
LDFLAGS missing (-pie): gcc -fPIE -Wl,-z,relro -Wl,-z,now -o test test.o
checking './t/logs/arch-amd64'...
CFLAGS missing (-fstack-protector-strong): gcc -D_FORTIFY_SOURCE=2 -g -O2 -fPIE -Wformat -Wformat-security -Werror=format-security -Wall -c test.c
LDFLAGS missing (-pie): gcc -fPIE -Wl,-z,relro -Wl,-z,now -o test test.o
-checking './t/logs/arch-avr32'...
-CFLAGS missing (-fstack-protector-strong): gcc -D_FORTIFY_SOURCE=2 -g -O2 -Wformat -Wformat-security -Werror=format-security -Wall -c test.c
+checking './t/logs/arch-hppa'...
checking './t/logs/ignore-flag'...
CFLAGS missing (-g): gcc -O2 -fstack-protector-strong -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -c test-b.c
CFLAGS missing (-O2): gcc -g -fstack-protector-strong -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -c test-c.c
"
;
-is_blhc ['arch-i386', 'arch-amd64', 'arch-avr32', 'ignore-line'],
+is_blhc ['arch-i386', 'arch-amd64', 'arch-hppa', 'ignore-line'],
'--ignore-arch-line "i386:gcc .+ -fPIE .+" --ignore-arch-line "mipsel:gcc .+ -Wl,-z,relro -Wl,-z,now .+"', 8,
"checking './t/logs/arch-i386'...
LDFLAGS missing (-pie): gcc -fPIE -Wl,-z,relro -Wl,-z,now -o test test.o
checking './t/logs/arch-amd64'...
CFLAGS missing (-fstack-protector-strong): gcc -D_FORTIFY_SOURCE=2 -g -O2 -fPIE -Wformat -Wformat-security -Werror=format-security -Wall -c test.c
LDFLAGS missing (-pie): gcc -fPIE -Wl,-z,relro -Wl,-z,now -o test test.o
-checking './t/logs/arch-avr32'...
-CFLAGS missing (-fstack-protector-strong): gcc -D_FORTIFY_SOURCE=2 -g -O2 -Wformat -Wformat-security -Werror=format-security -Wall -c test.c
+checking './t/logs/arch-hppa'...
checking './t/logs/ignore-line'...
CFLAGS missing (-g -O2 -fstack-protector-strong -Wformat -Werror=format-security): ./prepare-script gcc test-a.c test-b.c test-c.c
CPPFLAGS missing (-D_FORTIFY_SOURCE=2): ./prepare-script gcc test-a.c test-b.c test-c.c