This is an automated email from the git hooks/post-receive script. sthibault pushed a commit to branch sid in repository glibc.
commit eb123c94201494d030f7c1f75f5795fdbe5a71de Author: Samuel Thibault <samuel.thiba...@ens-lyon.org> Date: Mon Dec 19 01:58:36 2016 +0100 hurd-i386/tg-magic-pid.diff: New patch, add support for /proc/self --- debian/changelog | 1 + debian/patches/hurd-i386/tg-magic-pid.diff | 86 ++++++++++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 88 insertions(+) diff --git a/debian/changelog b/debian/changelog index 7aa4254..ab28e82 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ glibc (2.24-9) UNRELEASED; urgency=medium [ Samuel Thibault ] * hurd-i386/tg-libpthread-gsync-mutex.diff: Update patch, fixes trylock error return. + * hurd-i386/tg-magic-pid.diff: New patch, add support for /proc/self. [ Aurelien Jarno ] * debian/sysdeps/{amd64,i386,x32}.mk: disable lock elision (aka Intel TSX) diff --git a/debian/patches/hurd-i386/tg-magic-pid.diff b/debian/patches/hurd-i386/tg-magic-pid.diff new file mode 100644 index 0000000..14b41fd --- /dev/null +++ b/debian/patches/hurd-i386/tg-magic-pid.diff @@ -0,0 +1,86 @@ +From: Justus Winter <4win...@informatik.uni-hamburg.de> +Subject: [PATCH] hurd: Handle `pid' magical lookup retry + + * hurd/lookup-retry.c: Handle `pid' magical lookup + retry. + +--- + hurd/lookup-retry.c | 35 +++++++++++++++++++++++++++++++++++ + 1 file changed, 35 insertions(+) + +diff --git a/hurd/lookup-retry.c b/hurd/lookup-retry.c +index aee2ba8..845bc24 100644 +--- a/hurd/lookup-retry.c ++++ b/hurd/lookup-retry.c +@@ -25,6 +25,7 @@ + #include <string.h> + #include <_itoa.h> + #include <eloop-threshold.h> ++#include <unistd.h> + + /* Translate the error from dir_lookup into the error the user sees. */ + static inline error_t +@@ -59,6 +60,7 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port) + error_t err; + char *file_name; + int nloops; ++ file_t lastdir = MACH_PORT_NULL; + + error_t lookup_op (file_t startdir) + { +@@ -306,6 +308,26 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port) + goto bad_magic; + break; + ++ case 'p': ++ if (retryname[1] == 'i' && retryname[2] == 'd' && ++ (retryname[3] == '/' || retryname[3] == 0)) ++ { ++ char *p, buf[1024]; /* XXX */ ++ size_t len; ++ p = _itoa (__getpid (), &buf[sizeof buf], 10, 0); ++ len = &buf[sizeof buf] - p; ++ memcpy (buf, p, len); ++ strcpy (buf + len, &retryname[3]); ++ strcpy (retryname, buf); ++ ++ /* Do a normal retry on the remaining components. */ ++ startdir = lastdir; ++ file_name = retryname; ++ } ++ else ++ goto bad_magic; ++ break; ++ + default: + bad_magic: + return EGRATUITOUS; +@@ -316,6 +338,16 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port) + return EGRATUITOUS; + } + ++ if (MACH_PORT_VALID (*result) && *result != lastdir) ++ { ++ if (MACH_PORT_VALID (lastdir)) ++ __mach_port_deallocate (__mach_task_self (), lastdir); ++ ++ lastdir = *result; ++ __mach_port_mod_refs (__mach_task_self (), lastdir, ++ MACH_PORT_RIGHT_SEND, 1); ++ } ++ + if (startdir != MACH_PORT_NULL) + { + err = lookup_op (startdir); +@@ -326,6 +358,9 @@ __hurd_file_name_lookup_retry (error_t (*use_init_port) + err = (*use_init_port) (dirport, &lookup_op); + } while (! err); + ++ if (MACH_PORT_VALID (lastdir)) ++ __mach_port_deallocate (__mach_task_self (), lastdir); ++ + return err; + } + weak_alias (__hurd_file_name_lookup_retry, hurd_file_name_lookup_retry) +-- +tg: (7bb5f8a..) t/magic-pid (depends on: baseline) diff --git a/debian/patches/series b/debian/patches/series index b829544..4c8f68a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -140,6 +140,7 @@ hurd-i386/tg-NOFOLLOW.diff hurd-i386/tg-NOFOLLOW-DIRECTORY.diff hurd-i386/tg-libc_rwlock_recursive.diff hurd-i386/cvs-hurd_signal.h_c++.diff +hurd-i386/tg-magic-pid.diff i386/local-biarch.diff i386/local-cmov.diff -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git