gnu: glibc: Patch 'openat64', which was buggy on 32-bit platforms.
* gnu/packages/patches/glibc-o-largefile.patch: New file. * gnu/packages/base.scm (glibc)[source]: Add it to 'patches'. * gnu-system.am (dist_patch_DATA): Add it.
This commit is contained in:
parent
140b4bc6cd
commit
c5d8e688dc
|
@ -473,6 +473,7 @@ dist_patch_DATA = \
|
||||||
gnu/packages/patches/glibc-bootstrap-system.patch \
|
gnu/packages/patches/glibc-bootstrap-system.patch \
|
||||||
gnu/packages/patches/glibc-ldd-x86_64.patch \
|
gnu/packages/patches/glibc-ldd-x86_64.patch \
|
||||||
gnu/packages/patches/glibc-locales.patch \
|
gnu/packages/patches/glibc-locales.patch \
|
||||||
|
gnu/packages/patches/glibc-o-largefile.patch \
|
||||||
gnu/packages/patches/gmp-arm-asm-nothumb.patch \
|
gnu/packages/patches/gmp-arm-asm-nothumb.patch \
|
||||||
gnu/packages/patches/gnutls-doc-fix.patch \
|
gnu/packages/patches/gnutls-doc-fix.patch \
|
||||||
gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
|
gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
|
||||||
|
|
|
@ -471,7 +471,9 @@ store.")
|
||||||
(("use_ldconfig=yes")
|
(("use_ldconfig=yes")
|
||||||
"use_ldconfig=no")))
|
"use_ldconfig=no")))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(patches (list (search-patch "glibc-ldd-x86_64.patch")))))
|
(patches (map search-patch
|
||||||
|
'("glibc-ldd-x86_64.patch"
|
||||||
|
"glibc-o-largefile.patch")))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
|
||||||
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
|
;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
This fixes <https://sourceware.org/bugzilla/show_bug.cgi?id=18781>
|
||||||
|
whereby, on 32-bit platforms, libc 2.22 would fail to pass O_LARGEFILE
|
||||||
|
to 'openat'. This was caught by 'tests/sparse03.at' in the tar
|
||||||
|
test suite.
|
||||||
|
|
||||||
|
commit eb32b0d40308166c4d8f6330cc2958cb1e545075
|
||||||
|
Author: Andreas Schwab <schwab@suse.de>
|
||||||
|
Date: Mon Aug 10 14:12:47 2015 +0200
|
||||||
|
|
||||||
|
Readd O_LARGEFILE flag for openat64 (bug 18781)
|
||||||
|
|
||||||
|
--- a/sysdeps/unix/sysv/linux/openat.c
|
||||||
|
+++ b/sysdeps/unix/sysv/linux/openat.c
|
||||||
|
@@ -68,6 +68,11 @@ __OPENAT (int fd, const char *file, int oflag, ...)
|
||||||
|
va_end (arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* We have to add the O_LARGEFILE flag for openat64. */
|
||||||
|
+#ifdef MORE_OFLAGS
|
||||||
|
+ oflag |= MORE_OFLAGS;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
return SYSCALL_CANCEL (openat, fd, file, oflag, mode);
|
||||||
|
}
|
||||||
|
libc_hidden_def (__OPENAT)
|
Loading…
Reference in New Issue