aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-04-09 13:34:17 +0200
committerDmitry Vyukov <dvyukov@google.com>2019-04-09 18:38:04 +0200
commit4398bd5e97beb47618a49d21bbb908076112efe1 (patch)
tree98f220bb689d65e52e9b59713e1c9de2eaf299f6 /pkg
parent4e3011def630aac51695771d3605f0b21533242b (diff)
pkg/build: detect "Permission denied" as build error
This happens when compiler has bad permissions.
Diffstat (limited to 'pkg')
-rw-r--r--pkg/build/build.go1
-rw-r--r--pkg/build/build_test.go31
2 files changed, 32 insertions, 0 deletions
diff --git a/pkg/build/build.go b/pkg/build/build.go
index 45b1500a2..8ccbe9e3d 100644
--- a/pkg/build/build.go
+++ b/pkg/build/build.go
@@ -169,6 +169,7 @@ var buildFailureCauses = [...]buildFailureCause{
{pattern: []byte("ERROR: ")},
{pattern: []byte(": fatal error: ")},
{pattern: []byte(": undefined reference to")},
+ {pattern: []byte(": Permission denied")},
{weak: true, pattern: []byte(": final link failed: ")},
{weak: true, pattern: []byte("collect2: error: ")},
{weak: true, pattern: []byte("FAILED: Build did NOT complete")},
diff --git a/pkg/build/build_test.go b/pkg/build/build_test.go
index 7b534ef49..c187fe9a4 100644
--- a/pkg/build/build_test.go
+++ b/pkg/build/build_test.go
@@ -103,6 +103,37 @@ ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all
`,
"ld: error: undefined symbol: __stack_smash_handler",
},
+ {`
+make: execvp: /gcc-5.5.0/bin/gcc: Permission denied
+scripts/kconfig/conf --silentoldconfig Kconfig
+arch/x86/Makefile:123: stack-protector enabled but compiler support broken
+arch/x86/Makefile:138: CONFIG_X86_X32 enabled but no binutils support
+Makefile:652: Cannot use CONFIG_CC_STACKPROTECTOR_REGULAR: -fstack-protector not supported by compiler
+make: execvp: /gcc-5.5.0/bin/gcc: Permission denied
+ SYSTBL arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h
+ SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_x32.h
+scripts/xen-hypercalls.sh: line 7: /gcc-5.5.0/bin/gcc: Permission denied
+ HOSTCC scripts/mod/mk_elfconfig
+/bin/sh: 1: /gcc-5.5.0/bin/gcc: Permission denied
+scripts/Makefile.build:258: recipe for target 'scripts/mod/empty.o' failed
+make[2]: *** [scripts/mod/empty.o] Error 126
+make[2]: *** Waiting for unfinished jobs....
+ CC scripts/mod/devicetable-offsets.s
+/bin/sh: 1: /gcc-5.5.0/bin/gcc: Permission denied
+scripts/Makefile.build:153: recipe for target 'scripts/mod/devicetable-offsets.s' failed
+make[2]: *** [scripts/mod/devicetable-offsets.s] Error 126
+ HOSTCC scripts/selinux/mdp/mdp
+ HOSTCC scripts/selinux/genheaders/genheaders
+scripts/Makefile.build:403: recipe for target 'scripts/mod' failed
+make[1]: *** [scripts/mod] Error 2
+make[1]: *** Waiting for unfinished jobs....
+ UPD include/config/kernel.release
+Makefile:545: recipe for target 'scripts' failed
+make: *** [scripts] Error 2
+make: *** Waiting for unfinished jobs....
+ HOSTLD arch/x86/tools/relocs
+`, "make: execvp: /gcc-5.5.0/bin/gcc: Permission denied",
+ },
} {
got := extractCauseInner([]byte(s.e))
if !bytes.Equal([]byte(s.expect), got) {