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

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: