r3368 - in glibc-package/trunk/debian: . patches patches/hurd-i386
Author: sthibaul-guest
Date: 2009-03-03 00:49:10 +0000 (Tue, 03 Mar 2009)
New Revision: 3368
Added:
glibc-package/trunk/debian/patches/hurd-i386/cvs-strerror_l.diff
Removed:
glibc-package/trunk/debian/patches/hurd-i386/local-no-strerror_l.diff
Modified:
glibc-package/trunk/debian/changelog
glibc-package/trunk/debian/patches/series
glibc-package/trunk/debian/patches/series.hurd-i386
Log:
* debian/patches/hurd-i386/local-no-strerror_l.diff: remove patch, replaced
by...
* debian/patches/hurd-i386/cvs-strerror_l.diff: new patch from Thomas
Schwinge.
Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog 2009-03-03 00:44:27 UTC (rev 3367)
+++ glibc-package/trunk/debian/changelog 2009-03-03 00:49:10 UTC (rev 3368)
@@ -26,6 +26,10 @@
bits/pthreadtypes.h. Move from series.hurd-i386 to series.
* debian/patches/hurd-i386/local-tls-dtv-offset.diff: remove patch, make
local-tls-support.diff create tlsdesc.sym instead.
+ * debian/patches/hurd-i386/local-no-strerror_l.diff: remove patch, replaced
+ by...
+ * debian/patches/hurd-i386/cvs-strerror_l.diff: new patch from Thomas
+ Schwinge.
-- Aurelien Jarno <aurel32@debian.org> Tue, 03 Mar 2009 00:54:27 +0100
Added: glibc-package/trunk/debian/patches/hurd-i386/cvs-strerror_l.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/cvs-strerror_l.diff (rev 0)
+++ glibc-package/trunk/debian/patches/hurd-i386/cvs-strerror_l.diff 2009-03-03 00:49:10 UTC (rev 3368)
@@ -0,0 +1,105 @@
+--- /dev/null 2009-03-02 21:38:39.360007130 +0100
++++ glibc/sysdeps/mach/strerror_l.c 2008-11-26 20:44:54.000000000 +0100
+@@ -0,0 +1,102 @@
++/* strerror_l - Get errno description string in given locale. Mach version.
++ Copyright (C) 2007, 2008 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 <libintl.h>
++#include <locale.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <mach/error.h>
++#include <errorlib.h>
++#include <sys/param.h>
++
++
++static __thread char *last_value;
++
++
++static const char *
++translate (const char *str, locale_t loc)
++{
++ locale_t oldloc = __uselocale (loc);
++ const char *res = _(str);
++ __uselocale (oldloc);
++ return res;
++}
++
++
++/* Return a string describing the errno code in ERRNUM. */
++char *
++strerror_l (int errnum, locale_t loc)
++{
++ int system;
++ int sub;
++ int code;
++ const struct error_system *es;
++ extern void __mach_error_map_compat (int *);
++
++ __mach_error_map_compat (&errnum);
++
++ system = err_get_system (errnum);
++ sub = err_get_sub (errnum);
++ code = err_get_code (errnum);
++
++ if (system > err_max_system || ! __mach_error_systems[system].bad_sub)
++ {
++ free (last_value);
++ if (__asprintf (&last_value, "%s%X",
++ translate ("Error in unknown error system: ", loc),
++ errnum) == -1)
++ last_value = NULL;
++
++ return last_value;
++ }
++
++ es = &__mach_error_systems[system];
++
++ if (sub >= es->max_sub)
++ return (char *) translate (es->bad_sub, loc);
++
++ if (code >= es->subsystem[sub].max_code)
++ {
++ free (last_value);
++ if (__asprintf (&last_value, "%s%s %d",
++ translate ("Unknown error ", loc),
++ translate (es->subsystem[sub].subsys_name, loc),
++ errnum) == -1)
++ last_value = NULL;
++
++ return last_value;
++ }
++
++ return (char *) translate (es->subsystem[sub].codes[code], loc);
++}
++
++
++#ifdef _LIBC
++# ifdef _LIBC_REENTRANT
++/* This is called when a thread is exiting to free the last_value string. */
++static void __attribute__ ((section ("__libc_thread_freeres_fn")))
++strerror_thread_freeres (void)
++{
++ free (last_value);
++}
++text_set_element (__libc_thread_subfreeres, strerror_thread_freeres);
++text_set_element (__libc_subfreeres, strerror_thread_freeres);
++# endif
++#endif
Deleted: glibc-package/trunk/debian/patches/hurd-i386/local-no-strerror_l.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/local-no-strerror_l.diff 2009-03-03 00:44:27 UTC (rev 3367)
+++ glibc-package/trunk/debian/patches/hurd-i386/local-no-strerror_l.diff 2009-03-03 00:49:10 UTC (rev 3368)
@@ -1,36 +0,0 @@
-Needs porting. Since this is new with 2.6, just disable for now, and please
-someone take the time to port it.
-
----
- string/strerror_l.c | 3 +++
- string/string.h | 3 ++-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
---- a/string/strerror_l.c
-+++ b/string/strerror_l.c
-@@ -23,6 +23,8 @@
- #include <string.h>
- #include <sys/param.h>
-
-+#if 0
-+Needs porting
-
- static __thread char *last_value;
-
-@@ -70,3 +72,4 @@
- text_set_element (__libc_subfreeres, strerror_thread_freeres);
- # endif
- #endif
-+#endif
---- a/string/string.h
-+++ b/string/string.h
-@@ -285,7 +285,8 @@
-
- #ifdef __USE_GNU
- /* Translate error number to string according to the locale L. */
--extern char *strerror_l (int __errnum, __locale_t __l) __THROW;
-+/* Not yet ported on the Hurd. */
-+/* extern char *strerror_l (int __errnum, __locale_t __l) __THROW; */
- #endif
-
-
Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series 2009-03-03 00:44:27 UTC (rev 3367)
+++ glibc-package/trunk/debian/patches/series 2009-03-03 00:49:10 UTC (rev 3368)
@@ -99,6 +99,7 @@
hurd-i386/submitted-dl-sysdep.diff
hurd-i386/submitted-itimer-lock.diff
hurd-i386/local-pthread_types.diff
+hurd-i386/cvs-strerror_l.diff
i386/local-biarch.diff
i386/local-clone.diff
Modified: glibc-package/trunk/debian/patches/series.hurd-i386
===================================================================
--- glibc-package/trunk/debian/patches/series.hurd-i386 2009-03-03 00:44:27 UTC (rev 3367)
+++ glibc-package/trunk/debian/patches/series.hurd-i386 2009-03-03 00:49:10 UTC (rev 3368)
@@ -1,6 +1,5 @@
hurd-i386/local-gscope.diff
hurd-i386/local-atomic-no-multiple_threads.diff
-hurd-i386/local-no-strerror_l.diff
hurd-i386/local-pthread_stubs.diff
hurd-i386/local-pthread-unsupported-stubs.diff
hurd-i386/local-unlockpt-chroot.diff
Reply to: