]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
[BZ #1468]
authorUlrich Drepper <drepper@redhat.com>
Fri, 14 Oct 2005 17:20:58 +0000 (17:20 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 14 Oct 2005 17:20:58 +0000 (17:20 +0000)
* sysdeps/unix/sysv/linux/x86_64/ucontext_i.h: Fix values for
oFPREGS, oSIGMASK, oFPREGSMEM, and oMXCSR.
Patch by Nicholas Miell <nmiell@comcast.net>.

ChangeLog
localedata/ChangeLog
localedata/SUPPORTED
localedata/locales/ku_TR [new file with mode: 0644]
stdlib/Makefile
stdlib/tst-ucontext-off.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/i386/ucontext_i.h
sysdeps/unix/sysv/linux/x86_64/ucontext_i.h
time/bug-asctime_r.c

index 73ea01bf520088db956cbe182c601f6ba8839117..6455a968c11b80fe4a5832a1fbb7203f7352f421 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2005-10-14  Ulrich Drepper  <drepper@redhat.com>
 
+       [BZ #1468]
+       * sysdeps/unix/sysv/linux/x86_64/ucontext_i.h: Fix values for
+       oFPREGS, oSIGMASK, oFPREGSMEM, and oMXCSR.
+       Patch by Nicholas Miell <nmiell@comcast.net>.
+
        [BZ #1460]
        * time/asctime.c (asctime_internal): New function, derived from
        asctime_r.  Takes additional parameter which is the buffer length.
index 504ba5eb4c1850ae3a4fecef2690784ebe9db71c..00bf9ea7bec307fb2af428b10385e2e1cad05551 100644 (file)
@@ -1,3 +1,10 @@
+2005-10-14  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #870]
+       * locales/ku_TR: New file.
+       * SUPPORTED (SUPPORTED-LOCALES): Add ku_TR.ISO-8859-9 and
+       ku_TR.UTF-8.
+
 2005-10-13  Ulrich Drepper  <drepper@redhat.com>
 
        [BZ #533]
index b9634853fbd4ae9a2dd935381af8d81caa7f7d33..d263e91f56710f15c871ea5b291c351ee3ec9fca 100644 (file)
@@ -226,6 +226,8 @@ km_KH/UTF-8 \
 kn_IN/UTF-8 \
 ko_KR.EUC-KR/EUC-KR \
 ko_KR.UTF-8/UTF-8 \
+ku_TR.UTF-8/UTF-8 \
+ku_TR/ISO-8859-9 \
 kw_GB.UTF-8/UTF-8 \
 kw_GB/ISO-8859-1 \
 ky_KG/UTF-8 \
diff --git a/localedata/locales/ku_TR b/localedata/locales/ku_TR
new file mode 100644 (file)
index 0000000..b1486f9
--- /dev/null
@@ -0,0 +1,215 @@
+escape_char  /
+comment_char  %
+
+% Kurdish (latin) language locale for Turkey
+% Source: Kader DILSIZ
+% Contact: Kader DILSIZ, Pablo Saratxaga
+% Email: kader@ikader.com, pablo@mandrakesoft.com
+% Tel:
+% Fax:
+% Language: ku
+% Territory: TR
+% Revision: 0.1
+% Date: 2003-07-27
+% Users: general
+% Charset: UTF-8
+% Distribution and use is free, also
+% for commercial purposes.
+% History:
+
+LC_IDENTIFICATION
+title      "Kurdish (latin) locale for Turkey"
+source     "Kader DILSIZ"
+address    ""
+contact    "Kader DILSIZ, Pablo Saratxaga"
+email      "kader@ikader.com, pablo@mandrakesoft.com"
+tel        ""
+fax        ""
+language   "Kurdish"
+territory  "Turkey"
+revision   "0.1"
+date       "2003-07-27"
+%
+category  "ku_TR:2000";LC_IDENTIFICATION
+category  "ku_TR:2000";LC_CTYPE
+category  "ku_TR:2000";LC_COLLATE
+category  "ku_TR:2000";LC_TIME
+category  "ku_TR:2000";LC_NUMERIC
+category  "ku_TR:2000";LC_MONETARY
+category  "ku_TR:2000";LC_MESSAGES
+category  "ku_TR:2000";LC_PAPER
+category  "ku_TR:2000";LC_NAME
+category  "ku_TR:2000";LC_ADDRESS
+category  "ku_TR:2000";LC_TELEPHONE
+category  "ku_TR:2000";LC_MEASUREMENT
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "tr_TR"
+END LC_CTYPE
+
+LC_COLLATE
+copy "iso14651_t1"
+
+%% a b c c, d e e> f g h i i> j k l m n o p q r s s, t u u> v w x y z
+
+collating-symbol <c,>
+collating-symbol <e/>>
+collating-symbol <i.>
+collating-symbol <i/>>
+collating-symbol <s,>
+collating-symbol <u/>>
+
+reorder-after <c>
+<c,>
+reorder-after <e>
+<e/>>
+reorder-after <h>
+<i>
+<i.>
+<i/>>
+reorder-after <s>
+<s,>
+reorder-after <u>
+<u/>>
+
+reorder-after <U0063>
+<U00E7> <c,>;<CDI>;<MIN>;IGNORE
+reorder-after <U0043>
+<U00C7> <c,>;<CDI>;<CAP>;IGNORE
+
+reorder-after <U0065>
+<U00EA> <e/>>;<CIR>;<MIN>;IGNORE
+reorder-after <U0045>
+<U00CA> <e/>>;<CIR>;<CAP>;IGNORE
+
+reorder-after <U0068>
+<U0131> <i>;<BAS>;<MIN>;IGNORE
+<U0069> <i.>;<PCT>;<MIN>;IGNORE
+<U00EE> <i/>>;<CIR>;<MIN>;IGNORE
+reorder-after <U0048>
+<U0049> <i>;<BAS>;<CAP>;IGNORE
+<U0130> <i.>;<PCT>;<CAP>;IGNORE
+<U00CE> <i/>>;<CIR>;<CAP>;IGNORE
+
+reorder-after <U0073>
+<U015F> <s,>;<CDI>;<MIN>;IGNORE
+reorder-after <U0053>
+<U015E> <s,>;<CDI>;<CAP>;IGNORE
+
+reorder-after <U0075>
+<U00FB> <u/>>;<CIR>;<MIN>;IGNORE
+reorder-after <U0055>
+<U00DB> <u/>>;<CIR>;<CAP>;IGNORE
+
+reorder-end
+
+END LC_COLLATE
+
+LC_MONETARY
+copy "tr_TR"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "tr_TR"
+END LC_NUMERIC
+
+LC_TIME
+abday       "<U0079><U00EA><U006B>";"<U0064><U0075><U0073>";/
+            "<U0073><U00EA><U0073>";"<U00E7><U0061><U0072>";/
+            "<U0070><U00EA><U006E>";"<U00EE><U006E><U00EE>";/
+            "<U0073><U0065><U0070>"
+day         "<U0079><U00EA><U006B><U0073><U00EA><U006D>";/
+            "<U0064><U0075><U0073><U00EA><U006D>";/
+            "<U0073><U00EA><U0073><U00EA><U006D>";/
+            "<U00E7><U0061><U0072><U0073><U00EA><U006D>";/
+            "<U0070><U00EA><U006E><U0063><U0073><U00EA><U006D>";/
+            "<U00EE><U006E><U00EE>";/
+            "<U0073><U0065><U0070><U0074>"
+abmon       "<U00C7><U0069><U006C>";"<U0053><U0069><U0062>";/
+            "<U0041><U0064><U0061>";"<U004E><U00EE><U0073>";/
+            "<U0047><U0075><U006C>";"<U0048><U0065><U007A>";/
+            "<U0054><U00EE><U0072>";"<U0054><U0065><U0062>";/
+            "<U00CE><U006C><U006F>";"<U0043><U006F><U0074>";/
+            "<U004D><U0069><U006A>";"<U004B><U0061><U006E>"
+mon         "<U00C7><U0069><U006C><U0065>";/
+            "<U0053><U0069><U0062><U0061><U0074>";/
+            "<U0041><U0064><U0061><U0072>";/
+            "<U004E><U00EE><U0073><U0061><U006E>";/
+            "<U0047><U0075><U006C><U0061><U006E>";/
+            "<U0048><U0065><U007A><U00EE><U0072><U0061><U006E>";/
+            "<U0054><U00EE><U0072><U006D><U0065><U0068>";/
+            "<U0054><U0065><U0062><U0061><U0078>";/
+            "<U00CE><U006C><U006F><U006E>";/
+            "<U0043><U006F><U0074><U006D><U0065><U0068>";/
+            "<U004D><U0069><U006A><U0064><U0061><U0072>";/
+            "<U004B><U0061><U006E><U00FB><U006E>"
+% format: %A %d %B %Y %T %Z
+d_t_fmt  "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+% format: %d/%m/%Y
+d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+t_fmt       "<U0025><U0054>"
+am_pm       "";""
+t_fmt_ampm  ""
+% format: %A %d %B %Y
+date_fmt  "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0042><U0020><U0025><U0059>"
+END LC_TIME
+
+LC_MESSAGES
+yesstr "<U0065><U0072><U00EA>"
+nostr  "<U006E><U00E2>"
+% eEdDyY
+yesexpr        "<U005E><U005B><U0065><U0045><U0064><U0044><U0079><U0059><U005D><U002E><U002A>"
+% nN
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_PAPER
+copy "tr_TR"
+END LC_PAPER
+
+LC_TELEPHONE
+copy "tr_TR"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "tr_TR"
+END LC_MEASUREMENT
+
+LC_NAME
+% format: %d%t%g%t%m%t%f
+name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+% TODO
+% SayĆ½n
+name_gen    "<U0053><U0061><U0079><U0131><U006E>"
+% "M."
+name_mr     "<U004D><U002E>"
+% "Jne"
+name_mrs    "<U004A><U006E><U0065>"
+name_ms     "<U004A><U006E><U0065>"
+% "Kc,k"
+name_miss   "<U004B><U00E7><U006B>"
+END LC_NAME
+
+LC_ADDRESS
+postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+% TODO
+country_name   "<U0054><U0075><U0072><U006B><U0065><U0079>"
+country_post "TR"
+country_ab2  "TR"
+country_ab3  "TUR"
+country_num  792
+country_isbn 975
+country_car "TR"
+% "kurdi"
+lang_name   "<U006B><U0075><U0072><U0064><U0069>"
+lang_ab     "ku"
+lang_term   "kur"
+lang_lib    "kur"
+END LC_ADDRESS
index 9a9ff8bd457f36f7c1efdb778130589a2210fccc..fa65c95121a9856720d6122a0791cf2771dc09b4 100644 (file)
@@ -63,7 +63,8 @@ tests         := tst-strtol tst-strtod testmb testrand testsort testdiv   \
                   test-canon test-canon2 tst-strtoll tst-environ           \
                   tst-xpg-basename tst-random tst-random2 tst-bsearch      \
                   tst-limits tst-rand48 bug-strtod tst-setcontext          \
-                  test-a64l tst-qsort tst-system testmb2 bug-strtod2
+                  test-a64l tst-qsort tst-system testmb2 bug-strtod2       \
+                  tst-ucontext-off
 
 include ../Makeconfig
 
diff --git a/stdlib/tst-ucontext-off.c b/stdlib/tst-ucontext-off.c
new file mode 100644 (file)
index 0000000..2e97f21
--- /dev/null
@@ -0,0 +1,35 @@
+#include <stddef.h>
+#include <stdio.h>
+#include <sys/ucontext.h>
+
+#include <ucontext_i.h>
+
+static int
+do_test  (void)
+{
+  int nerrors = 0;
+  int ntests = 0;
+
+#define TEST(member, val) \
+  do {                                                                 \
+    if (offsetof (struct ucontext, member) != val)                     \
+      {                                                                        \
+       printf ("offsetof(%s) = %zu, %s = %zu\n",                       \
+               #member, offsetof (struct ucontext, member),            \
+               #val, (size_t) val);                                    \
+       ++nerrors;                                                      \
+      }                                                                        \
+    ++ntests;                                                          \
+  } while (0)
+
+#ifdef TESTS
+  TESTS
+#endif
+
+  printf ("%d errors in %d tests\n", nerrors, ntests);
+
+  return nerrors != 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
index d6efca41b1ff8b6a6597f3fa8fc2ee1db56fc2c9..c6319f23918ff17abf1a3032119034fcb10aa841 100644 (file)
@@ -1,6 +1,6 @@
 /* Offsets and other constants needed in the *context() function
    implementation.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2005 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
 #define oFPREGS                96
 #define oSIGMASK       108
 #define oFPREGSMEM     236
+
+/* Tests run in stdlib/tst-ucontext-off.  */
+#define TESTS \
+  TEST (uc_link, oLINK);                               \
+  TEST (uc_stack.ss_sp, oSS_SP);                       \
+  TEST (uc_stack.ss_size, oSS_SIZE);                   \
+  TEST (uc_mcontext.gregs[REG_GS], oGS);               \
+  TEST (uc_mcontext.gregs[REG_FS], oFS);               \
+  TEST (uc_mcontext.gregs[REG_EDI], oEDI);             \
+  TEST (uc_mcontext.gregs[REG_ESI], oESI);             \
+  TEST (uc_mcontext.gregs[REG_EBP], oEBP);             \
+  TEST (uc_mcontext.gregs[REG_ESP], oESP);             \
+  TEST (uc_mcontext.gregs[REG_EBX], oEBX);             \
+  TEST (uc_mcontext.gregs[REG_EDX], oEDX);             \
+  TEST (uc_mcontext.gregs[REG_ECX], oECX);             \
+  TEST (uc_mcontext.gregs[REG_EAX], oEAX);             \
+  TEST (uc_mcontext.gregs[REG_EIP], oEIP);             \
+  TEST (uc_mcontext.fpregs, oFPREGS);                  \
+  TEST (uc_sigmask, oSIGMASK);                         \
+  TEST (__fpregs_mem, oFPREGSMEM);
index 5451a308ee7fc4a2ea46c5907eb3195c804616ee..e5099084cf3d7abc005ebed2fc336146e6496851 100644 (file)
@@ -1,6 +1,6 @@
 /* Offsets and other constants needed in the *context() function
    implementation for Linux/x86-64.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005 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
 #define oRAX           144
 #define oRCX           152
 #define oRIP           168
-#define oFPREGS                208
-#define oSIGMASK       280
-#define oFPREGSMEM     408
-#define oMXCSR         432
+#define oFPREGS                224
+#define oSIGMASK       296
+#define oFPREGSMEM     424
+#define oMXCSR         448
+
+/* Tests run in stdlib/tst-ucontext-off.  */
+#define TESTS \
+  TEST (uc_mcontext.gregs[REG_RBP], oRBP);                             \
+  TEST (uc_mcontext.gregs[REG_RSP], oRSP);                             \
+  TEST (uc_mcontext.gregs[REG_RBX], oRBX);                             \
+  TEST (uc_mcontext.gregs[REG_R8], oR8);                               \
+  TEST (uc_mcontext.gregs[REG_R9], oR9);                               \
+  TEST (uc_mcontext.gregs[REG_R12], oR12);                             \
+  TEST (uc_mcontext.gregs[REG_R13], oR13);                             \
+  TEST (uc_mcontext.gregs[REG_R14], oR14);                             \
+  TEST (uc_mcontext.gregs[REG_R15], oR15);                             \
+  TEST (uc_mcontext.gregs[REG_RDI], oRDI);                             \
+  TEST (uc_mcontext.gregs[REG_RSI], oRSI);                             \
+  TEST (uc_mcontext.gregs[REG_RDX], oRDX);                             \
+  TEST (uc_mcontext.gregs[REG_RAX], oRAX);                             \
+  TEST (uc_mcontext.gregs[REG_RCX], oRCX);                             \
+  TEST (uc_mcontext.gregs[REG_RIP], oRIP);                             \
+  TEST (uc_mcontext.fpregs, oFPREGS);                                  \
+  TEST (uc_sigmask, oSIGMASK);                                         \
+  TEST (__fpregs_mem, oFPREGSMEM);                                     \
+  TEST (__fpregs_mem.mxcsr, oMXCSR);
index 2579a6a3b075e9fe508dd73ac066078c0952a3b5..86651ef1c59a96e7bb7fd3b161b92b1d6d4994c3 100644 (file)
@@ -13,12 +13,18 @@ do_test (void)
   tp->tm_year = 10000 - 1900;
   char buf[1000];
   errno = 0;
+  buf[26] = '\xff';
   char *s = asctime_r (tp, buf);
   if (s != NULL || errno != EOVERFLOW)
     {
       puts ("asctime_r did not fail correctly");
       result = 1;
     }
+  if (buf[26] != '\xff')
+    {
+      puts ("asctime_r overwrote 27th byte in buffer");
+      result = 1;
+    }
   return result;
 }