~ruther/guix-local

b2cc649999ed97b62517dcfb7cf21ee731c97487 — Janneke Nieuwenhuizen 2 years ago 1149cc1
gnu: glibc/hurd: Add unsubmitted getauxval patch from upstream.

This support building of gdk-pixbuf, gobject-introspection.

* gnu/packages/patches/glibc-hurd-getauxval.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/base.scm (glibc/hurd)[source]: Use it.
3 files changed, 37 insertions(+), 1 deletions(-)

M gnu/local.mk
M gnu/packages/base.scm
A gnu/packages/patches/glibc-hurd-getauxval.patch
M gnu/local.mk => gnu/local.mk +1 -0
@@ 1287,6 1287,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch	\
  %D%/packages/patches/glibc-2.37-versioned-locpath.patch	\
  %D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch	\
  %D%/packages/patches/glibc-hurd-getauxval.patch		\
  %D%/packages/patches/glibc-hurd-gettyent.patch		\
  %D%/packages/patches/glibc-hurd-mach-print.patch		\
  %D%/packages/patches/glibc-hurd-signal-sa-siginfo.patch	\

M gnu/packages/base.scm => gnu/packages/base.scm +2 -1
@@ 1463,7 1463,8 @@ command.")
                                     "glibc-2.37-hurd-clock_t_centiseconds.patch"
                                     "glibc-2.37-hurd-local-clock_gettime_MONOTONIC.patch"
                                     "glibc-hurd-mach-print.patch"
                                     "glibc-hurd-gettyent.patch"))))
                                     "glibc-hurd-gettyent.patch"
                                     "glibc-hurd-getauxval.patch"))))
    (supported-systems %hurd-systems)))

(define-public glibc/hurd-headers

A gnu/packages/patches/glibc-hurd-getauxval.patch => gnu/packages/patches/glibc-hurd-getauxval.patch +34 -0
@@ 0,0 1,34 @@
Taken from https://salsa.debian.org/glibc-team/glibc/-/blob/5af8e3701c63ad202b652b5051bec592b8385820/debian/patches/hurd-i386/unsubmitted-getaux_at_secure.diff

This fixes gdk-pixbuf, gobject-introspection.

FIXME: sysdeps/mach/hurd/i386/init-first.c should instead pass an auxv
to __libc_start_main

Index: glibc-2.33/misc/getauxval.c
===================================================================
--- glibc-2.33.orig/misc/getauxval.c
+++ glibc-2.33/misc/getauxval.c
@@ -19,6 +19,7 @@
 #include <errno.h>
 #include <ldsodefs.h>
 #include <stdbool.h>
+#include <unistd.h>
 
 bool
 __getauxval2 (unsigned long int type, unsigned long int *result)
@@ -27,6 +28,14 @@ __getauxval2 (unsigned long int type, un
   ElfW(auxv_t) *p;
 #endif
 
+#ifdef AT_SECURE
+  if (type == AT_SECURE)
+    {
+      *result = __libc_enable_secure;
+      return true;
+    }
+#endif
+
   if (type == AT_HWCAP)
     {
       *result = GLRO(dl_hwcap);