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.
This commit is contained in:
Janneke Nieuwenhuizen 2023-09-10 15:21:24 +02:00
parent 1149cc1b9f
commit b2cc649999
No known key found for this signature in database
GPG key ID: F3C1A0D9C1D65273
3 changed files with 37 additions and 1 deletions

View file

@ -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 \

View file

@ -1463,7 +1463,8 @@ (define-public glibc/hurd
"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

View file

@ -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);