Subject: Shepherd 0.7.0 [PATCH] services: Support compilation on the Hurd.
From: Jan Nieuwenhuizen <[email-masked]>
To: [email-masked]
Date: Sat, 07 Mar 2020 16:09:03 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Compilation on the Hurd fails with

--8<---------------cut here---------------start------------->8---
  GUILEC   modules/shepherd.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /gnu/store/wq6m0l53hffnf9qa9hwdjqskcw54amf6-guile-2.2.6/bin/guild
;;; WARNING: compilation of /gnu/store/wq6m0l53hffnf9qa9hwdjqskcw54amf6-guile-2.2.6/bin/guild failed:
;;; failed to create path for auto-compiled file "/gnu/store/wq6m0l53hffnf9qa9hwdjqskcw54amf6-guile-2.2.6/bin/guild"
Backtrace:
In ice-9/boot-9.scm:
   222:29 19 (map1 _)
   222:29 18 (map1 _)
   222:29 17 (map1 _)
   222:29 16 (map1 _)
   222:29 15 (map1 _)
   222:29 14 (map1 (((shepherd comm)) ((shepherd config)) ((# #))))
   222:29 13 (map1 (((shepherd config)) ((shepherd system))))
   222:17 12 (map1 (((shepherd system))))
  2800:17 11 (resolve-interface (shepherd system) #:select _ #:hide _ ?)
In ice-9/threads.scm:
    390:8 10 (_ _)
In ice-9/boot-9.scm:
  2726:13  9 (_)
In ice-9/threads.scm:
    390:8  8 (_ _)
In ice-9/boot-9.scm:
  2994:20  7 (_)
   2312:4  6 (save-module-excursion #<procedure 3de2b88 at ice-9/boo?>)
  3014:26  5 (_)
In unknown file:
           4 (primitive-load-path "shepherd/system" #<procedure 3d7e?>)
In ice-9/eval.scm:
   626:19  3 (_ #<directory (shepherd system) 3dd8230>)
   245:16  2 (_ #<directory (shepherd system) 3dd8230>)
In unknown file:
           1 (dynamic-func "prctl" #<dynamic-object #f>)
In ice-9/boot-9.scm:
   752:25  0 (dispatch-exception _ _ _)

ice-9/boot-9.scm:752:25: In procedure dispatch-exception:
In procedure dynamic-pointer: Symbol not found: prctl
Makefile:2070: recipe for target 'modules/shepherd.go' failed
--8<---------------cut here---------------end--------------->8---

Find patch attached.

Greetings,
janneke

From ac06193300aea17d6e6d1ad784585542815af94b Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <[email-masked]>
Date: Sat, 7 Mar 2020 16:04:27 +0100
Subject: [PATCH] services: Support compilation on the Hurd.

* modules/shepherd/system.scm.in (prctl): Catch compile-time error.
---
 modules/shepherd/system.scm.in | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/modules/shepherd/system.scm.in b/modules/shepherd/system.scm.in
index 769404a..7def22d 100644
--- a/modules/shepherd/system.scm.in
+++ b/modules/shepherd/system.scm.in
@@ -1,6 +1,7 @@
 ;; system.scm -- Low-level operating system interface.
 ;; Copyright (C) 2013, 2014, 2016, 2018 Ludovic Courtès <[email-masked]>
 ;; Copyright (C) 2018 Carlo Zancanaro <[email-masked]>
+;; Copyright (C) 2020 Jan (janneke) Nieuwenhuizen <[email-masked]>
 ;;
 ;; This file is part of the GNU Shepherd.
 ;;
@@ -145,7 +146,9 @@ ctrlaltdel(8) and see kernel/reboot.c in Linux."
 (define PR_SET_CHILD_SUBREAPER @PR_SET_CHILD_SUBREAPER@)
 
 (define prctl
-  (if (dynamic-func "prctl" (dynamic-link))
+  (if (catch #t
+        (lambda _ (dynamic-func "prctl" (dynamic-link)))
+        (const #f))
       (let ((proc (syscall->procedure long "prctl" (list int int))))
         (lambda (process operation)
           "Perform an operation on the given process"
-- 
2.24.0

-- 
Jan Nieuwenhuizen <[email-masked]> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com