summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-04-02 16:47:40 +0200
committerLudovic Courtès <ludo@gnu.org>2020-04-11 19:22:25 +0200
commit7aad4609ae38790b7cc4e6a88b3e48ab43bc1f09 (patch)
tree5db5f75c34f98d9070c06bff41911efb8c6b1a51
parentf46cf8ef252fbfb8dce6f458bd099978883089d2 (diff)
downloadguix-7aad4609ae38790b7cc4e6a88b3e48ab43bc1f09.tar.gz
gnu: cross-libc: Add patch to add 'mach_print' symbol on GNU/Hurd.
* gnu/packages/patches/glibc-hurd-mach-print.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/cross-base.scm (cross-libc): Add 'patch-libc/hurd' phase
when 'hurd-target?' is true.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/cross-base.scm11
-rw-r--r--gnu/packages/patches/glibc-hurd-mach-print.patch23
3 files changed, 33 insertions, 2 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 7347222852..02e9d804e9 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -977,6 +977,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/glibc-hidden-visibility-ldconfig.patch	\
   %D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch	\
   %D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch	\
+  %D%/packages/patches/glibc-hurd-mach-print.patch		\
   %D%/packages/patches/glibc-hurd-magic-pid.patch		\
   %D%/packages/patches/glibc-hurd-signal-sa-siginfo.patch	\
   %D%/packages/patches/glibc-ldd-x86_64.patch			\
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index df4570dafc..c21390767f 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -521,7 +521,12 @@ and the cross tool chain."
                                (("/[^ ]+/lib/libc.so.0.3")
                                 (string-append out "/lib/libc.so.0.3"
                                                " libmachuser.so libhurduser.so"))))
-                           #t)))
+                           #t))
+                       (add-after 'unpack 'patch-libc/hurd
+                         (lambda* (#:key inputs #:allow-other-keys)
+                           (let ((patch (assoc-ref inputs
+                                                   "hurd-mach-print.patch")))
+                             (invoke "patch" "-p1" "--force" "-i" patch)))))
                      '())))))
 
         ;; Shadow the native "kernel-headers" because glibc's recipe expects the
@@ -537,7 +542,9 @@ and the cross tool chain."
                          ,@(if (hurd-triplet? target)
                                `(("cross-mig"
                                   ,@(assoc-ref (package-native-inputs xheaders)
-                                               "cross-mig")))
+                                               "cross-mig"))
+                                 ("hurd-mach-print.patch"
+                                  ,@(search-patches "glibc-hurd-mach-print.patch")))
                                '())
                          ,@(package-inputs libc)  ;FIXME: static-bash
                          ,@(package-native-inputs libc))))))
diff --git a/gnu/packages/patches/glibc-hurd-mach-print.patch b/gnu/packages/patches/glibc-hurd-mach-print.patch
new file mode 100644
index 0000000000..7fdf6733d0
--- /dev/null
+++ b/gnu/packages/patches/glibc-hurd-mach-print.patch
@@ -0,0 +1,23 @@
+Provide a 'mach_print' symbol in libc.
+
+--- a/sysdeps/mach/hurd/i386/libc.abilist	2020-04-01 19:22:44.710088821 +0200
++++ b/sysdeps/mach/hurd/i386/libc.abilist	2020-04-01 19:22:52.062051161 +0200
+@@ -338,6 +338,7 @@
+ GLIBC_2.2.6 __mach_port_allocate F
+ GLIBC_2.2.6 __mach_port_deallocate F
+ GLIBC_2.2.6 __mach_port_insert_right F
++GLIBC_2.21 __mach_print F
+ GLIBC_2.2.6 __mach_reply_port F
+ GLIBC_2.2.6 __mach_task_self_ D 0x4
+ GLIBC_2.2.6 __mach_thread_self F
+
+--- a/mach/Versions
++++ b/mach/Versions
+@@ -56,6 +56,7 @@
+   }
+   GLIBC_2.21 {
+     __mach_host_self_;
++    mach_print;
+   }
+ 
+   HURD_CTHREADS_0.3 {