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 @@ (define* (cross-libc target (("/[^ ]+/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 @@ (define* (cross-libc target ,@(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 {