build: syscalls: Properly handle clone errors.
* guix/build/syscalls.scm (clone): Catch -1 return value and throw error.master
parent
b7d0b096b0
commit
cf897cbacc
|
@ -325,7 +325,13 @@ string TMPL and return its file name. TMPL must end with 'XXXXXX'."
|
||||||
"Create a new child process by duplicating the current parent process.
|
"Create a new child process by duplicating the current parent process.
|
||||||
Unlike the fork system call, clone accepts FLAGS that specify which resources
|
Unlike the fork system call, clone accepts FLAGS that specify which resources
|
||||||
are shared between the parent and child processes."
|
are shared between the parent and child processes."
|
||||||
(proc syscall-id flags %null-pointer))))
|
(let ((ret (proc syscall-id flags %null-pointer))
|
||||||
|
(err (errno)))
|
||||||
|
(if (= ret -1)
|
||||||
|
(throw 'system-error "clone" "~d: ~A"
|
||||||
|
(list flags (strerror err))
|
||||||
|
(list err))
|
||||||
|
ret)))))
|
||||||
|
|
||||||
(define setns
|
(define setns
|
||||||
;; Some systems may be using an old (pre-2.14) version of glibc where there
|
;; Some systems may be using an old (pre-2.14) version of glibc where there
|
||||||
|
|
Loading…
Reference in New Issue