Author: sthibault Date: 2010-01-30 18:44:06 +0000 (Sat, 30 Jan 2010) New Revision: 4113
Added: glibc-package/branches/eglibc-2.11/debian/patches/hurd-i386/submitted-readlinkat.diff Modified: glibc-package/branches/eglibc-2.11/debian/changelog glibc-package/branches/eglibc-2.11/debian/patches/series Log: restore readlinkat: only part of it got upstream, the rest shall remain Modified: glibc-package/branches/eglibc-2.11/debian/changelog =================================================================== --- glibc-package/branches/eglibc-2.11/debian/changelog 2010-01-30 18:40:53 UTC (rev 4112) +++ glibc-package/branches/eglibc-2.11/debian/changelog 2010-01-30 18:44:06 UTC (rev 4113) @@ -16,7 +16,7 @@ - Update debian/patches/any/submitted-missing-etc-hosts.diff. - Update debian/patches/hppa/cvs-nptl-compat.diff. - Remove debian/patches/hurd-i386/cvs-termios-IXANY.patch (merged) - - Remove debian/patches/hurd-i386/submitted-readlinkat.diff (merged) + - Update debian/patches/hurd-i386/submitted-readlinkat.diff - Update debian/patches/localedata/first_weekday.diff - Remove debian/patches/locale/cvs-C-first_weekday.diff (merged) - Remove debian/patches/mips/local-lazy-eval.diff (obsolete) Added: glibc-package/branches/eglibc-2.11/debian/patches/hurd-i386/submitted-readlinkat.diff =================================================================== --- glibc-package/branches/eglibc-2.11/debian/patches/hurd-i386/submitted-readlinkat.diff (rev 0) +++ glibc-package/branches/eglibc-2.11/debian/patches/hurd-i386/submitted-readlinkat.diff 2010-01-30 18:44:06 UTC (rev 4113) @@ -0,0 +1,81 @@ +2009-09-27 Samuel Thibault <samuel.thiba...@ens-lyon.org> + + * sysdeps/mach/hurd/readlinkat.c: New file, heavily inherited from + sysdeps/mach/hurd/readlink.c + +--- + readlinkat.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 69 insertions(+), 1 deletion(-) + +diff --git a/sysdeps/mach/hurd/mkdirat.c b/sysdeps/mach/hurd/mkdirat.c +index 321d59f..a300745 100644 +--- /dev/null ++++ b/sysdeps/mach/hurd/readlinkat.c +@@ -0,0 +1,67 @@ ++/* Copyright (C) 1991,92,93,94,95,97,2002,2009 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include <unistd.h> ++#include <hurd.h> ++#include <hurd/paths.h> ++#include <hurd/fd.h> ++#include <fcntl.h> ++#include <string.h> ++ ++/* Read the contents of the symbolic link FILE_NAME relative to FD into no more ++ than LEN bytes of BUF. The contents are not null-terminated. ++ Returns the number of characters read, or -1 for errors. */ ++ssize_t ++readlinkat (fd, file_name, buf, len) ++ int fd; ++ const char *file_name; ++ char *buf; ++ size_t len; ++{ ++ error_t err; ++ file_t file; ++ struct stat64 st; ++ ++ file = __file_name_lookup_at (fd, 0, file_name, O_READ | O_NOLINK, 0); ++ if (file == MACH_PORT_NULL) ++ return -1; ++ ++ err = __io_stat (file, &st); ++ if (! err) ++ if (S_ISLNK (st.st_mode)) ++ { ++ char *rbuf = buf; ++ ++ err = __io_read (file, &rbuf, &len, 0, len); ++ if (!err && rbuf != buf) ++ { ++ memcpy (buf, rbuf, len); ++ __vm_deallocate (__mach_task_self (), (vm_address_t)rbuf, len); ++ } ++ } ++ else ++ err = EINVAL; ++ ++ __mach_port_deallocate (__mach_task_self (), file); ++ ++ if (err) ++ return __hurd_fail (err); ++ else ++ return len; ++} ++libc_hidden_def (readlinkat); Modified: glibc-package/branches/eglibc-2.11/debian/patches/series =================================================================== --- glibc-package/branches/eglibc-2.11/debian/patches/series 2010-01-30 18:40:53 UTC (rev 4112) +++ glibc-package/branches/eglibc-2.11/debian/patches/series 2010-01-30 18:44:06 UTC (rev 4113) @@ -99,6 +99,7 @@ hurd-i386/submitted-null-pathname.diff hurd-i386/submitted-sbrk.diff hurd-i386/local-thread-cancel.diff +hurd-i386/submitted-readlinkat.diff hurd-i386/submitted-SOL_IP.patch hurd-i386/local-bigmem.diff hurd-i386/local-disable-ioctls.diff -- To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org