guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: gnu: glibc: Patch 'openat64', which was buggy on 32-bit platforms


From: Ludovic Courtès
Subject: 01/01: gnu: glibc: Patch 'openat64', which was buggy on 32-bit platforms.
Date: Tue, 08 Sep 2015 13:55:07 +0000

civodul pushed a commit to branch core-updates
in repository guix.

commit c5d8e688dc79f8ea2094adf04d2274332cf5cb6c
Author: Ludovic Courtès <address@hidden>
Date:   Tue Sep 8 15:53:05 2015 +0200

    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.
---
 gnu-system.am                                |    1 +
 gnu/packages/base.scm                        |    4 +++-
 gnu/packages/patches/glibc-o-largefile.patch |   25 +++++++++++++++++++++++++
 3 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/gnu-system.am b/gnu-system.am
index 72ec9fc..e98ae20 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -473,6 +473,7 @@ dist_patch_DATA =                                           
\
   gnu/packages/patches/glibc-bootstrap-system.patch            \
   gnu/packages/patches/glibc-ldd-x86_64.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/gnutls-doc-fix.patch                    \
   gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 76fd111..e2d4727 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -471,7 +471,9 @@ store.")
                 (("use_ldconfig=yes")
                  "use_ldconfig=no")))
             (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)
 
    ;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc
diff --git a/gnu/packages/patches/glibc-o-largefile.patch 
b/gnu/packages/patches/glibc-o-largefile.patch
new file mode 100644
index 0000000..2b0ae8c
--- /dev/null
+++ b/gnu/packages/patches/glibc-o-largefile.patch
@@ -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 <address@hidden>
+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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]