Subject: bug#39975: closed (Re: bug#39975: Shepherd 0.7.0 [PATCH] services: Support compilation on the Hurd.)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 07 Mar 2020 21:06:02 +0000

Your bug report

#39975: Shepherd 0.7.0 [PATCH] services: Support compilation on the Hurd.

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
39975: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39975
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#39975: Shepherd 0.7.0 [PATCH] services: Support compilation on the Hurd.
From: Ludovic Courtès <[email-masked]>
To: Jan Nieuwenhuizen <[email-masked]>
Cc: [email-masked]
Date: Sat, 07 Mar 2020 22:04:52 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello!

Jan Nieuwenhuizen <[email-masked]> skribis:

>  (define prctl
> -  (if (dynamic-func "prctl" (dynamic-link))
> +  (if (catch #t
> +        (lambda _ (dynamic-func "prctl" (dynamic-link)))
> +        (const #f))

I changed it to ‘false-if-exception’ and pushed, thanks!

There are exciting things going on here it seems.  :-)

Ludo’.

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