Updated to fedora-glibc-20050324T0715 fedora-glibc-2_3_4-17
authorjakub <jakub>
Thu, 24 Mar 2005 08:18:50 +0000 (08:18 +0000)
committerjakub <jakub>
Thu, 24 Mar 2005 08:18:50 +0000 (08:18 +0000)
29 files changed:
NEWS
Versions.def
elf/Makefile
elf/dl-open.c
elf/elf.h
elf/rtld.c
elf/tst-tls15.c [new file with mode: 0644]
elf/tst-tlsmod15a.c [new file with mode: 0644]
elf/tst-tlsmod15b.c [new file with mode: 0644]
fedora/branch.mk
fedora/glibc.spec.in
linuxthreads/ChangeLog
linuxthreads/sysdeps/m68k/Makefile [deleted file]
linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c
locale/iso-4217.def
locale/setlocale.c
localedata/ChangeLog
localedata/SUPPORTED
localedata/charmaps/WINDOWS-31J
localedata/locales/sr_CS [new file with mode: 0644]
malloc/malloc.c
nis/ypclnt.c
nptl/ChangeLog
nptl/pthread_create.c
scripts/versions.awk
sunrpc/xdr_stdio.c
sysdeps/generic/dl-tls.c
sysdeps/ia64/_mcount.S
sysdeps/ia64/elf/initfini.c

diff --git a/NEWS b/NEWS
index cd975c9..2601cd5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2005-2-21
+GNU C Library NEWS -- history of user-visible changes.  2005-3-19
 Copyright (C) 1992-2004, 2005 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -11,6 +11,9 @@ Version 2.4
 
 * New iconv converters for IBM1025, IBM1122, IBM1137, IBM1153,
   IBM1154, IBM1155, IBM1156, IBM1157, and IBM1158 contributed by Jiro Sekiba.
+
+* It is now possible to install audit libraries for the dynamic linker using
+  LD_AUDIT.  Implemented by Ulrich Drepper.
 \f
 Version 2.3.4
 
index 33409f1..923f5eb 100644 (file)
@@ -35,6 +35,7 @@ libdl {
   GLIBC_2.0
   GLIBC_2.1
   GLIBC_2.3.3
+  GLIBC_2.3.4
 }
 libm {
   GLIBC_2.0
@@ -90,6 +91,7 @@ librt {
   GLIBC_2.2
   GLIBC_2.3
   GLIBC_2.3.3
+  GLIBC_2.3.4
 }
 libutil {
   GLIBC_2.0
index 80a3f6c..c034b2b 100644 (file)
@@ -159,7 +159,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
         neededtest3 neededtest4 unload2 lateglobal initfirst global \
         restest2 next dblload dblunload reldep5 reldep6 reldep7 reldep8 \
         circleload1 tst-tls3 tst-tls4 tst-tls5 tst-tls6 tst-tls7 tst-tls8 \
-        tst-tls10 tst-tls11 tst-tls12 tst-tls13 tst-tls14 tst-align \
+        tst-tls10 tst-tls11 tst-tls12 tst-tls13 tst-tls14 tst-tls15 tst-align \
         tst-align2 $(tests-execstack-$(have-z-execstack)) tst-dlmodcount \
         tst-dlopenrpath tst-deep1 tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \
         unload3 unload4 unload5 tst-audit1 tst-global1 order2
@@ -190,6 +190,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
                tst-tlsmod5 tst-tlsmod6 tst-tlsmod7 tst-tlsmod8 \
                tst-tlsmod9 tst-tlsmod10 tst-tlsmod11 tst-tlsmod12 \
                tst-tlsmod13 tst-tlsmod13a tst-tlsmod14a tst-tlsmod14b \
+               tst-tlsmod15a tst-tlsmod15b \
                circlemod1 circlemod1a circlemod2 circlemod2a \
                circlemod3 circlemod3a \
                reldep8mod1 reldep8mod2 reldep8mod3 \
@@ -471,6 +472,7 @@ tst-tlsmod10.so-no-z-defs = yes
 tst-tlsmod12.so-no-z-defs = yes
 tst-tlsmod14a.so-no-z-defs = yes
 tst-tlsmod14b.so-no-z-defs = yes
+tst-tlsmod15a.so-no-z-defs = yes
 circlemod2.so-no-z-defs = yes
 circlemod3.so-no-z-defs = yes
 circlemod3a.so-no-z-defs = yes
@@ -683,8 +685,11 @@ $(objpfx)tst-tls12: $(objpfx)tst-tlsmod12.so
 $(objpfx)tst-tls13: $(libdl)
 $(objpfx)tst-tls13.out: $(objpfx)tst-tlsmod13a.so
 
-$(objpfx)tst-tls14:  $(objpfx)tst-tlsmod14a.so $(libdl)
-$(objpfx)tst-tls14.out:$(objpfx)tst-tlsmod14b.so
+$(objpfx)tst-tls14: $(objpfx)tst-tlsmod14a.so $(libdl)
+$(objpfx)tst-tls14.out: $(objpfx)tst-tlsmod14b.so
+
+$(objpfx)tst-tls15: $(libdl)
+$(objpfx)tst-tls15.out: $(objpfx)tst-tlsmod15a.so $(objpfx)tst-tlsmod15b.so
 
 CFLAGS-tst-align.c = $(stack-align-test-flags)
 CFLAGS-tst-align2.c = $(stack-align-test-flags)
index 7433d99..a65690e 100644 (file)
@@ -462,8 +462,10 @@ dl_open_worker (void *a)
          /* We have to bump the generation counter.  */
          any_tls = true;
        }
+#endif
     }
 
+#if USE_TLS
   /* Bump the generation number if necessary.  */
   if (any_tls && __builtin_expect (++GL(dl_tls_generation) == 0, 0))
     _dl_fatal_printf (N_("\
index b84cc0e..8a9f7fd 100644 (file)
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -2138,7 +2138,11 @@ typedef Elf32_Addr Elf32_Conflict;
 #define PF_ARM_SB          0x10000000   /* Segment contains the location
                                           addressed by the static base */
 
+/* Processor specific values for the Phdr p_type field.  */
+#define PT_ARM_EXIDX   0x70000001      /* .ARM.exidx segment */
+
 /* ARM relocs.  */
+
 #define R_ARM_NONE             0       /* No reloc */
 #define R_ARM_PC24             1       /* PC relative 26 bit branch */
 #define R_ARM_ABS32            2       /* Direct 32 bit  */
index 720029d..b2122bb 100644 (file)
@@ -1353,8 +1353,7 @@ ld.so does not support TLS, but program uses it!\n");
 
          /* Since we start using the auditing DSOs right away we need to
             initialize the data structures now.  */
-         if (!TLS_INIT_TP_EXPENSIVE)
-           tcbp = init_tls ();
+         tcbp = init_tls ();
 #endif
          struct dlmopen_args dlmargs;
          dlmargs.fname = al->name;
diff --git a/elf/tst-tls15.c b/elf/tst-tls15.c
new file mode 100644 (file)
index 0000000..7ac963a
--- /dev/null
@@ -0,0 +1,32 @@
+#include <dlfcn.h>
+#include <stdio.h>
+
+static int
+do_test (void)
+{
+  void *h = dlopen ("tst-tlsmod15a.so", RTLD_NOW);
+  if (h != NULL)
+    {
+      puts ("unexpectedly succeeded to open tst-tlsmod15a.so");
+      exit (1);
+    }
+
+  h = dlopen ("tst-tlsmod15b.so", RTLD_NOW);
+  if (h == NULL)
+    {
+      puts ("failed to open tst-tlsmod15b.so");
+      exit (1);
+    }
+
+  int (*fp) (void) = (int (*) (void)) dlsym (h, "in_dso");
+  if (fp == NULL)
+    {
+      puts ("cannot find in_dso");
+      exit (1);
+    }
+
+  return fp ();
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/elf/tst-tlsmod15a.c b/elf/tst-tlsmod15a.c
new file mode 100644 (file)
index 0000000..66c7071
--- /dev/null
@@ -0,0 +1,6 @@
+extern int nonexistent_dummy_var;
+int *
+foo (void)
+{
+  return &nonexistent_dummy_var;
+}
diff --git a/elf/tst-tlsmod15b.c b/elf/tst-tlsmod15b.c
new file mode 100644 (file)
index 0000000..4f63eab
--- /dev/null
@@ -0,0 +1,17 @@
+#include "tst-tls10.h"
+
+#ifdef USE_TLS__THREAD
+__thread int mod15b_var __attribute__((tls_model("initial-exec")));
+
+int
+in_dso (void)
+{
+  return mod15b_var;
+}
+#else
+int
+in_dso (void)
+{
+  return 0;
+}
+#endif
index 059c5a0..57f20c3 100644 (file)
@@ -1,5 +1,5 @@
 # This file is updated automatically by Makefile.
 glibc-branch := fedora
 glibc-base := HEAD
-fedora-sync-date := 2005-03-19 19:07 UTC
-fedora-sync-tag := fedora-glibc-20050319T1907
+fedora-sync-date := 2005-03-24 07:15 UTC
+fedora-sync-tag := fedora-glibc-20050324T0715
index d6fcab7..8bb904b 100644 (file)
@@ -1,4 +1,4 @@
-%define glibcrelease 16
+%define glibcrelease 17
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define prelinkarches noarch
 %define nptlarches i386 i686 athlon x86_64 ia64 s390 s390x sparcv9 ppc ppc64
@@ -1275,6 +1275,15 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Thu Mar 24 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-17
+- update from CVS
+  - fix LD_AUDIT in LinuxThreads ld.so
+  - fix calloc with M_PERTURB
+  - fix error handling in pthread_create with PTHREAD_EXPLICIT_SCHED
+    on ppc*/ia64/alpha/mips (BZ#801)
+  - fix a typo in WINDOWS-31J charmap (#151739)
+  - fix NIS ypprot_err (#151469)
+
 * Sun Mar 20 2005 Jakub Jelinek <jakub@redhat.com> 2.3.4-16
 - fix pread with -D_FILE_OFFSET_BITS=64 (#151573)
 
index 8699564..ce3bcb3 100644 (file)
@@ -1,3 +1,13 @@
+2005-03-21  GOTO Masanori  <gotom@debian.or.jp>
+
+       * linuxthreads/sysdeps/m68k/Makefile: Remove to delete
+       unneeded o-iterator thing.
+
+2005-02-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Add local _init
+       and _fini labels.
+
 2005-03-05  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/i386/Makefile (CFLAGS-pt-initfini.s): Unconditionally
diff --git a/linuxthreads/sysdeps/m68k/Makefile b/linuxthreads/sysdeps/m68k/Makefile
deleted file mode 100644 (file)
index 1cd27d4..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-ifeq ($(subdir), linuxthreads)
-object-suffixes-left := $(libpthread-nonshared)
-define o-iterator-doit
-$(objpfx)$o.os: pic-ccflag = -fPIC
-endef
-include $(o-iterator)
-endif
index 85fd33f..af8a63c 100644 (file)
@@ -87,6 +87,7 @@ _init:\n\
 /*@_init_EPILOG_BEGINS*/\n\
        .section .init\n\
        .proc _init#\n\
+_init:\n\
        .prologue\n\
        .save ar.pfs, r34\n\
        .vframe r32\n\
@@ -122,6 +123,7 @@ _fini:\n\
 /*@_fini_EPILOG_BEGINS*/\n\
        .section .fini\n\
        .proc _fini#\n\
+_fini:\n\
        .prologue\n\
        .save ar.pfs, r34\n\
        .vframe r32\n\
index 01a6995..b7c05a3 100644 (file)
@@ -43,6 +43,7 @@ DEFINE_INT_CURR("CLP")                /* Chilean Peso  */
 DEFINE_INT_CURR("CNY")         /* China Yuan Renminbi  */
 DEFINE_INT_CURR("COP")         /* Colombian Peso  */
 DEFINE_INT_CURR("CRC")         /* Costa Rican Colon  */
+DEFINE_INT_CURR("CSD")         /* Serbian Dinar  */
 DEFINE_INT_CURR("CUP")         /* Cuban Peso  */
 DEFINE_INT_CURR("CVE")         /* Cape Verde Escudo  */
 DEFINE_INT_CURR("CYP")         /* Cypriot Pound  */
index e6db70d..50bf8e7 100644 (file)
@@ -372,7 +372,7 @@ setlocale (int category, const char *locale)
       /* Critical section left.  */
       __libc_lock_unlock (__libc_setlocale_lock);
 
-      /* Free the resources (the locale path variable.  */
+      /* Free the resources (the locale path variable).  */
       free (locale_path);
 
       return composite;
index 548dc78..e454cd0 100644 (file)
@@ -1,3 +1,14 @@
+2005-03-21  Jakub Jelinek  <jakub@redhat.com>
+
+       * charmaps/WINDOWS-31J: Add % before alias keyword.
+
+2005-02-27  Denis Barbier  <barbier@debian.org>
+
+       [BZ #38]
+       * locales/sr_CS: New file.
+       Contributed by Danilo Segan <dsegan@gmx.net>
+       * SUPPORTED: Add sr_CS/ISO-8859-5 and sr_CS.UTF-8/UTF-8.
+
 2005-03-18  Andreas Schwab  <schwab@suse.de>
 
        * locales/pa_IN (am_pm): Fix character names.
index 6dafc49..b079c4c 100644 (file)
@@ -279,6 +279,8 @@ so_KE/ISO-8859-1 \
 so_SO/ISO-8859-1 \
 sq_AL.UTF-8/UTF-8 \
 sq_AL/ISO-8859-1 \
+sr_CS.UTF-8/UTF-8 \
+sr_CS/ISO-8859-5 \
 st_ZA.UTF-8/UTF-8 \
 st_ZA/ISO-8859-1 \
 sv_FI.UTF-8/UTF-8 \
index 76316c5..d5ab12a 100644 (file)
@@ -8,7 +8,7 @@
 % MORIYAMA Masayuki <msyk@mtg.biglobe.ne.jp>, 2003.
 % Last changed: 2003-07-18
 
-alias CP932
+alias CP932
 
 CHARMAP
 <U0000>     /x00         NULL
diff --git a/localedata/locales/sr_CS b/localedata/locales/sr_CS
new file mode 100644 (file)
index 0000000..1a01f2f
--- /dev/null
@@ -0,0 +1,349 @@
+comment_char %
+escape_char  /
+%
+% Serbian Language Locale for Serbia and Montenegro
+% Source: sr_YU locale
+% Address:
+%
+% Contact: Danilo Segan
+% Email: dsegan@gmx.net
+% Tel: +381 63 8626082
+% Fax: none
+% Language: sr
+% Territory: CS
+% Revision: 1.2
+% Date: 2004-08-09
+% Application: general
+% Users: general
+% Charset: UTF-8, ISO-8859-5
+% Distribution and use is free, also
+% for commercial purposes.
+%
+% TODO:
+% -- fix LC_COLLATE to work correctly for latin alphabet too
+%
+
+LC_IDENTIFICATION
+title      "Serbian locale for Serbia and Montenegro"
+source     "sr_YU locale"
+address    ""
+contact    "Danilo Segan"
+email      "bug-glibc-locales@gnu.org"
+tel        ""
+fax        ""
+language   "Serbian"
+territory  "Serbia and Montenegro"
+revision   "1.2"
+date       "2004-08-09"
+audience   "general"
+application   "GNU locale"
+abbreviation  ""
+%
+category  "i18n:1997";LC_IDENTIFICATION
+category  "i18n:1997";LC_CTYPE
+category  "i18n:1997";LC_COLLATE
+category  "i18n:1997";LC_MONETARY
+category  "i18n:1997";LC_NUMERIC
+category  "i18n:1997";LC_TIME
+category  "i18n:1997";LC_MESSAGES
+category  "i18n:1997";LC_PAPER
+category  "i18n:1997";LC_NAME
+category  "i18n:1997";LC_ADDRESS
+category  "i18n:1997";LC_TELEPHONE
+category  "i18n:1997";LC_MEASUREMENT
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "i18n"
+translit_start
+include "translit_combining";""
+
+% cyrillic -> latin
+<U0452> "<U0111>";"<U0064><U006A>" % d-
+<U0453> "<U0067><U006A>" % gj
+<U0455> "<U0064><U007A>" % dz
+<U0458> "<U006A>" % j
+<U0459> "<U006C><U006A>" % lj
+<U045A> "<U006E><U006A>" % nj
+<U045B> "<U0107>";"<U0063>" % c'
+<U045C> "<U006B><U006A>" % kj
+<U045F> "<U0064><U017E>";"<U0064><U007A>" % dz<
+
+<U0402> "<U0110>";"<U0044><U006A>" % D-
+<U0403> "<U0047><U006A>" % Gj
+<U0405> "<U0044><U007A>" % Dz
+<U0408> "<U004A>" % J
+<U0409> "<U004C><U006A>" % Lj
+<U040A> "<U004E><U006A>" % Nj
+<U040B> "<U0106>";"<U0043>" % C'
+<U040C> "<U004B><U006A>" % Kj
+<U040F> "<U0044><U017E>";"<U0064><U007A>" % Dz<
+
+<U0430> "<U0061>"
+<U0431> "<U0062>"
+<U0446> "<U0063>"
+<U0434> "<U0064>"
+<U0435> "<U0065>"
+<U0444> "<U0066>"
+<U0433> "<U0067>"
+<U0445> "<U0068>"
+<U0438> "<U0069>"
+<U043A> "<U006B>"
+<U043B> "<U006C>"
+<U043C> "<U006D>"
+<U043D> "<U006E>"
+<U043E> "<U006F>"
+<U043F> "<U0070>"
+<U0440> "<U0072>"
+<U0441> "<U0073>"
+<U0442> "<U0074>"
+<U0443> "<U0075>"
+<U0432> "<U0076>"
+<U0437> "<U007A>"
+<U0436> "<U017E>";"<U007A>" % z<
+<U0448> "<U0161>";"<U0073>" % s<
+<U0447> "<U010D>";"<U0063>" % c<
+
+<U0410> "<U0041>"
+<U0411> "<U0042>"
+<U0426> "<U0043>"
+<U0414> "<U0044>"
+<U0415> "<U0045>"
+<U0424> "<U0046>"
+<U0413> "<U0047>"
+<U0425> "<U0048>"
+<U0418> "<U0049>"
+<U041A> "<U004B>"
+<U041B> "<U004C>"
+<U041C> "<U004D>"
+<U041D> "<U004E>"
+<U041E> "<U004F>"
+<U041F> "<U0050>"
+<U0420> "<U0052>"
+<U0421> "<U0053>"
+<U0422> "<U0054>"
+<U0423> "<U0055>"
+<U0412> "<U0056>"
+<U0417> "<U005A>"
+<U0416> "<U017D>";"<U005A>" % z<
+<U0428> "<U0160>";"<U0053>" % s<
+<U0427> "<U010C>";"<U0063>" % c<
+
+translit_end
+END LC_CTYPE
+
+
+LC_COLLATE
+
+copy "iso14651_t1"
+
+collating-symbol  <d-z-sh>
+collating-symbol  <l-j-sh>
+collating-symbol  <n-j-sh>
+
+collating-symbol <cacute>
+collating-symbol <ccaron>
+collating-symbol <d//>
+collating-symbol <scaron>
+collating-symbol <zcaron>
+
+collating-symbol <CAP-MIN>
+collating-symbol <MIN-CAP>
+
+reorder-after <MIN>
+<MIN-CAP>
+reorder-after <CAP>
+<CAP-MIN>
+
+reorder-after <c>
+<cacute>
+<ccaron>
+<d>
+<d-z-sh>
+<d//>
+reorder-after <l>
+<l-j-sh>
+reorder-after <n>
+<n-j-sh>
+reorder-after <s>
+<scaron>
+reorder-after <z>
+<zcaron>
+
+reorder-after <U0063>
+<U0107>        <cacute>;<PCT>;<MIN>;IGNORE
+<U010D>        <ccaron>;<PCT>;<MIN>;IGNORE
+reorder-after <U0043>
+<U0106>        <cacute>;<PCT>;<CAP>;IGNORE
+<U010C>        <ccaron>;<PCT>;<CAP>;IGNORE
+
+reorder-after <U0064>
+<d-z<> <d-z-sh>;<PCT>;<MIN>;IGNORE
+<dz<>  <d-z-sh>;<PCT>;<MIN>;IGNORE
+<d-Z<> <d-z-sh>;<PCT>;<MIN-CAP>;IGNORE
+<U0111>        <d//>;<PCT>;<MIN>;IGNORE
+reorder-after <U0044>
+<D-Z<> <d-z-sh>;<PCT>;<CAP>;IGNORE
+<DZ<>  <d-z-sh>;<PCT>;<CAP>;IGNORE
+<D-z<> <d-z-sh>;<PCT>;<CAP-MIN>;IGNORE
+<Dz<>  <d-z-sh>;<PCT>;<CAP-MIN>;IGNORE
+<U0110>        <d//>;<PCT>;<CAP>;IGNORE
+
+reorder-after <U006C>
+<l-j>  <l-j-sh>;<PCT>;<MIN>;IGNORE
+<lj>   <l-j-sh>;<PCT>;<MIN>;IGNORE
+<l-J>  <l-j-sh>;<PCT>;<MIN-CAP>;IGNORE
+reorder-after <U004C>
+<L-J>  <l-j-sh>;<PCT>;<CAP>;IGNORE
+<LJ>   <l-j-sh>;<PCT>;<CAP>;IGNORE
+<L-j>  <l-j-sh>;<PCT>;<CAP-MIN>;IGNORE
+<Lj>   <l-j-sh>;<PCT>;<CAP-MIN>;IGNORE
+
+reorder-after <U006E>
+<n-j>  <n-j-sh>;<PCT>;<MIN>;IGNORE
+<nj>   <n-j-sh>;<PCT>;<MIN>;IGNORE
+<n-J>  <n-j-sh>;<PCT>;<MIN-CAP>;IGNORE
+reorder-after <U004E>
+<N-J>  <n-j-sh>;<PCT>;<CAP>;IGNORE
+<NJ>   <n-j-sh>;<PCT>;<CAP>;IGNORE
+<N-j>  <n-j-sh>;<PCT>;<CAP-MIN>;IGNORE
+<Nj>   <n-j-sh>;<PCT>;<CAP-MIN>;IGNORE
+
+reorder-after <U0073>
+<U0161>        <scaron>;<PCT>;<MIN>;IGNORE
+reorder-after <U0053>
+<U0160>        <scaron>;<PCT>;<CAP>;IGNORE
+
+reorder-after <U007A>
+<U017E>        <zcaron>;<PCT>;<MIN>;IGNORE
+reorder-after <U005A>
+<U017D>        <zcaron>;<PCT>;<CAP>;IGNORE
+
+reorder-end
+
+END LC_COLLATE
+
+LC_MONETARY
+int_curr_symbol           "<U0043><U0053><U0044><U0020>"
+currency_symbol           "<U0434><U0438><U043D>"
+mon_decimal_point         "<U002C>"
+mon_thousands_sep         "<U002E>"
+mon_grouping              3;3
+positive_sign             ""
+negative_sign             "<U002D>"
+int_frac_digits           2
+frac_digits               2
+p_cs_precedes             0
+p_sep_by_space            1
+n_cs_precedes             0
+n_sep_by_space            1
+p_sign_posn               1
+n_sign_posn               1
+END LC_MONETARY
+
+LC_NUMERIC
+decimal_point             "<U002C>"
+thousands_sep             ""
+grouping                  0;0
+END LC_NUMERIC
+
+LC_TIME
+
+abday   "<U043D><U0435><U0434>";"<U043F><U043E><U043D>";/
+        "<U0443><U0442><U043E>";"<U0441><U0440><U0435>";/
+        "<U0447><U0435><U0442>";"<U043F><U0435><U0442>";/
+        "<U0441><U0443><U0431>"
+day     "<U043D><U0435><U0434><U0435><U0459><U0430>";/
+        "<U043F><U043E><U043D><U0435><U0434><U0435><U0459><U0430><U043A>";/
+        "<U0443><U0442><U043E><U0440><U0430><U043A>";/
+        "<U0441><U0440><U0435><U0434><U0430>";/
+        "<U0447><U0435><U0442><U0432><U0440><U0442><U0430><U043A>";/
+        "<U043F><U0435><U0442><U0430><U043A>";/
+        "<U0441><U0443><U0431><U043E><U0442><U0430>"
+abmon   "<U0458><U0430><U043D>";"<U0444><U0435><U0431>";/
+        "<U043C><U0430><U0440>";"<U0430><U043F><U0440>";/
+        "<U043C><U0430><U0458>";"<U0458><U0443><U043D>";/
+        "<U0458><U0443><U043B>";"<U0430><U0432><U0433>";/
+        "<U0441><U0435><U043F>";"<U043E><U043A><U0442>";/
+        "<U043D><U043E><U0432>";"<U0434><U0435><U0446>"
+mon     "<U0458><U0430><U043D><U0443><U0430><U0440>";/
+        "<U0444><U0435><U0431><U0440><U0443><U0430><U0440>";/
+        "<U043C><U0430><U0440><U0442>";/
+        "<U0430><U043F><U0440><U0438><U043B>";/
+        "<U043C><U0430><U0458>";/
+        "<U0458><U0443><U043D>";/
+        "<U0458><U0443><U043B>";/
+        "<U0430><U0432><U0433><U0443><U0441><U0442>";/
+        "<U0441><U0435><U043F><U0442><U0435><U043C><U0431><U0430><U0440>";/
+        "<U043E><U043A><U0442><U043E><U0431><U0430><U0440>";/
+        "<U043D><U043E><U0432><U0435><U043C><U0431><U0430><U0440>";/
+        "<U0434><U0435><U0446><U0435><U043C><U0431><U0430><U0440>"
+
+d_t_fmt "<U0025><U0041><U002C><U0020><U0025><U0064><U002E><U0020>/
+<U0025><U0042><U0020><U0025><U0059><U002E><U0020><U0025><U0054>/
+<U0020><U0025><U005A>"
+d_fmt   "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059><U002E>"
+t_fmt   "<U0025><U0054>"
+am_pm   "";""
+t_fmt_ampm "<U0025><U0054>"
+date_fmt  "<U0025><U0061><U002C><U0020><U0025><U0065><U002E><U0020>/
+<U0025><U0062><U0020><U0025><U0059><U002E><U0020><U0020><U0025><U0048>/
+<U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U000A>"
+week    7;19971201;4
+first_weekday 2
+first_workday 2
+END LC_TIME
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U0414><U0434><U0044><U0064><U0059><U0079><U005D>"
+noexpr  "<U005E><U005B><U041D><U043D><U004E><U006E><U005D>"
+END LC_MESSAGES
+
+LC_PAPER
+height   297
+width    210
+END LC_PAPER
+
+LC_NAME
+name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+name_gen    ""
+name_mr     "<U0433><U002D><U0434><U0438><U043D>"
+name_mrs    "<U0433><U002D><U0452><U0430>"
+name_miss   "<U0433><U002D><U0452><U0438><U0446><U0430>"
+name_ms     "<U0433><U002D><U0452><U0430>"
+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>"
+country_ab2   "<U0043><U0053>"
+country_ab3   "<U0053><U0043><U0047>"
+% FIXME: country_post is probably incorrect
+country_post  "<U0053><U0043><U0047>"
+country_name  "<U0421><U0440><U0431><U0438><U0458><U0430><U0020><U0438>/
+<U0020><U0426><U0440><U043D><U0430><U0020><U0413><U043E><U0440><U0430>"
+country_num   891
+country_car   "<U0053><U0043><U0047>"
+% FIXME: ISBN code is what? "86" that preceedes all the numbers?
+country_isbn  "<U0038><U0036>"
+lang_name     "<U0441><U0440><U043F><U0441><U043A><U0438>"
+lang_term     "<U0073><U0072><U0070>"
+lang_lib      "<U0073><U0063><U0063>"
+lang_ab              "<U0073><U0072>"
+END LC_ADDRESS
+
+LC_TELEPHONE
+tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
+<U006C>"
+tel_dom_fmt    "<U0025><U0041><U0020><U0025><U006C>"
+int_prefix     "<U0033><U0038><U0031>"
+int_select     "<U0039><U0039>"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+measurement    1
+END LC_MEASUREMENT
index 44831bb..65be277 100644 (file)
@@ -1,4 +1,4 @@
-  /* Malloc implementation for multiple threads without lock contention.
+/* Malloc implementation for multiple threads without lock contention.
    Copyright (C) 1996-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Wolfram Gloger <wg@malloc.de>
@@ -3691,14 +3691,14 @@ public_cALLOc(size_t n, size_t elem_size)
 
   /* Two optional cases in which clearing not necessary */
 #if HAVE_MMAP
-  if (chunk_is_mmapped(p))
+  if (perturb_byte == 0 && chunk_is_mmapped(p))
     return mem;
 #endif
 
   csz = chunksize(p);
 
 #if MORECORE_CLEARS
-  if (p == oldtop && csz > oldtopsize) {
+  if (perturb_byte == 0 && (p == oldtop && csz > oldtopsize)) {
     /* clear only the bytes from non-freshly-sbrked memory */
     csz = oldtopsize;
   }
index 85292b6..6230cb8 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001, 2002, 2003, 2004, 2005
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
 
@@ -829,6 +830,11 @@ yperr_string (const int error)
 static const int8_t yp_2_yperr[] =
   {
 #define YP2YPERR(yp, yperr)  [YP_##yp - YP_VERS] = YPERR_##yperr
+    YP2YPERR (TRUE, SUCCESS),
+    YP2YPERR (NOMORE, NOMORE),
+    YP2YPERR (FALSE, YPERR),
+    YP2YPERR (NOMAP, MAP),
+    YP2YPERR (NODOM, DOMAIN),
     YP2YPERR (NOKEY, KEY),
     YP2YPERR (BADOP, YPERR),
     YP2YPERR (BADDB, BADDB),
@@ -839,7 +845,7 @@ static const int8_t yp_2_yperr[] =
 int
 ypprot_err (const int code)
 {
-  if (code < YP_VERS || code > YP_NOKEY)
+  if (code < YP_VERS || code > YP_NOMORE)
     return YPERR_YPERR;
   return yp_2_yperr[code - YP_VERS];
 }
index 6e0b5e3..6ded83e 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-23  Ulrich Drepper  <drepper@redhat.com>
+
+       * pthread_create.c (__pthread_create_2_1): Rename syscall error
+       variable to scerr.
+
 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
 
        * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
index bf41e9f..18f1c03 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -347,17 +347,15 @@ __pthread_create_2_1 (newthread, attr, start_routine, arg)
      void *arg;
 {
   STACK_VARIABLES;
-  const struct pthread_attr *iattr;
-  struct pthread *pd;
-  int err;
 
-  iattr = (struct pthread_attr *) attr;
+  const struct pthread_attr *iattr = (struct pthread_attr *) attr;
   if (iattr == NULL)
     /* Is this the best idea?  On NUMA machines this could mean
        accessing far-away memory.  */
     iattr = &default_attr;
 
-  err = ALLOCATE_STACK (iattr, &pd);
+  struct pthread *pd;
+  int err = ALLOCATE_STACK (iattr, &pd);
   if (__builtin_expect (err != 0, 0))
     /* Something went wrong.  Maybe a parameter of the attributes is
        invalid or we could not allocate memory.  */
@@ -406,14 +404,14 @@ __pthread_create_2_1 (newthread, attr, start_routine, arg)
       && __builtin_expect ((iattr->flags & ATTR_FLAG_NOTINHERITSCHED) != 0, 0)
       && (iattr->flags & (ATTR_FLAG_SCHED_SET | ATTR_FLAG_POLICY_SET)) != 0)
     {
-      INTERNAL_SYSCALL_DECL (err);
+      INTERNAL_SYSCALL_DECL (scerr);
 
       /* Use the scheduling parameters the user provided.  */
       if (iattr->flags & ATTR_FLAG_POLICY_SET)
        pd->schedpolicy = iattr->schedpolicy;
       else if ((pd->flags & ATTR_FLAG_POLICY_SET) == 0)
        {
-         pd->schedpolicy = INTERNAL_SYSCALL (sched_getscheduler, err, 1, 0);
+         pd->schedpolicy = INTERNAL_SYSCALL (sched_getscheduler, scerr, 1, 0);
          pd->flags |= ATTR_FLAG_POLICY_SET;
        }
 
@@ -422,14 +420,14 @@ __pthread_create_2_1 (newthread, attr, start_routine, arg)
                sizeof (struct sched_param));
       else if ((pd->flags & ATTR_FLAG_SCHED_SET) == 0)
        {
-         INTERNAL_SYSCALL (sched_getparam, err, 2, 0, &pd->schedparam);
+         INTERNAL_SYSCALL (sched_getparam, scerr, 2, 0, &pd->schedparam);
          pd->flags |= ATTR_FLAG_SCHED_SET;
        }
 
       /* Check for valid priorities.  */
-      int minprio = INTERNAL_SYSCALL (sched_get_priority_min, err, 1,
+      int minprio = INTERNAL_SYSCALL (sched_get_priority_min, scerr, 1,
                                      iattr->schedpolicy);
-      int maxprio = INTERNAL_SYSCALL (sched_get_priority_max, err, 1,
+      int maxprio = INTERNAL_SYSCALL (sched_get_priority_max, scerr, 1,
                                      iattr->schedpolicy);
       if (pd->schedparam.sched_priority < minprio
          || pd->schedparam.sched_priority > maxprio)
index 7e33387..e642b3d 100644 (file)
@@ -1,5 +1,5 @@
 # Combine version map fragments into version scripts for our shared objects.
-# Copyright (C) 1998,99,2000,02 Free Software Foundation, Inc.
+# Copyright (C) 1998,99,2000,2002,2005 Free Software Foundation, Inc.
 # Written by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
 # This script expects the following variables to be defined:
@@ -9,17 +9,19 @@
 
 # Read definitions for the versions.
 BEGIN {
+  lossage = 0;
+
   nlibs=0;
   while (getline < defsfile) {
     if (/^[a-zA-Z0-9_.]+ \{/) {
       libs[$1] = 1;
       curlib = $1;
       while (getline < defsfile && ! /^}/) {
-      if ($2 == "=") {
+       if ($2 == "=") {
          renamed[curlib "::" $1] = $3;
-      }
+       }
        else
-         versions[$1] = 1;
+         versions[curlib "::" $1] = 1;
       }
     }
   }
@@ -42,7 +44,7 @@ BEGIN {
   actlib = $1;
   if (!libs[$1]) {
     printf("no versions defined for %s\n", $1) > "/dev/stderr";
-    exit 1;
+    ++lossage;
   }
   next;
 }
@@ -51,9 +53,9 @@ BEGIN {
 /^  [A-Za-z_]/ {
   if (renamed[actlib "::" $1])
     actver = renamed[actlib "::" $1];
-  else if (!versions[$1]) {
+  else if (!versions[actlib "::" $1] && $1 != "GLIBC_PRIVATE") {
     printf("version %s not defined for %s\n", $1, actlib) > "/dev/stderr";
-    exit 1;
+    ++lossage;
   }
   else
     actver = $1;
@@ -93,6 +95,12 @@ function close_and_move(name, real_name) {
 # Now print the accumulated information.
 END {
   close(sort);
+
+  if (lossage) {
+    system("rm -f " tmpfile);
+    exit 1;
+  }
+
   oldlib = "";
   oldver = "";
   printf("version-maps =");
index 4daa062..e73c5a5 100644 (file)
@@ -108,20 +108,20 @@ xdrstdio_destroy (XDR *xdrs)
 static bool_t
 xdrstdio_getlong (XDR *xdrs, long *lp)
 {
-  int32_t mycopy;
+  u_int32_t mycopy;
 
-  if (fread ((caddr_t) & mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
+  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
     return FALSE;
-  *lp = (int32_t) ntohl (mycopy);
+  *lp = (long) ntohl (mycopy);
   return TRUE;
 }
 
 static bool_t
 xdrstdio_putlong (XDR *xdrs, const long *lp)
 {
-  long mycopy = htonl (*lp);
-  lp = &mycopy;
-  if (fwrite ((caddr_t) lp, 4, 1, (FILE *) xdrs->x_private) != 1)
+  int32_t mycopy = htonl ((u_int32_t) *lp);
+
+  if (fwrite ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
     return FALSE;
   return TRUE;
 }
index fdd569b..4fed570 100644 (file)
@@ -71,26 +71,24 @@ _dl_next_tls_modid (void)
         NB: the offset +1 is due to the fact that DTV[0] is used
         for something else.  */
       result = GL(dl_tls_static_nelem) + 1;
-      /* If the following would not be true we mustn't have assumed
-        there is a gap.  */
-      assert (result <= GL(dl_tls_max_dtv_idx));
-      do
-       {
-         while (result - disp < runp->len)
-           {
-             if (runp->slotinfo[result - disp].map == NULL)
-               break;
-
-             ++result;
-             assert (result <= GL(dl_tls_max_dtv_idx) + 1);
-           }
-
-         if (result - disp < runp->len)
-           break;
-
-         disp += runp->len;
-       }
-      while ((runp = runp->next) != NULL);
+      if (result <= GL(dl_tls_max_dtv_idx))
+       do
+         {
+           while (result - disp < runp->len)
+             {
+               if (runp->slotinfo[result - disp].map == NULL)
+                 break;
+
+               ++result;
+               assert (result <= GL(dl_tls_max_dtv_idx) + 1);
+             }
+
+           if (result - disp < runp->len)
+             break;
+
+           disp += runp->len;
+         }
+       while ((runp = runp->next) != NULL);
 
       if (result > GL(dl_tls_max_dtv_idx))
        {
index aa91cb5..8720a9c 100644 (file)
@@ -72,6 +72,7 @@ LEAF(_mcount)
        mov b7 = loc0
        mov rp = in2
        ;;
+       mov r3 = in0
        mov r8 = loc2
        mov r15 = loc3
        mov b6 = r2
@@ -81,10 +82,10 @@ END(_mcount)
 LOCAL_LEAF(_mcount_ret_helper)
        .prologue
        .altrp b7
-       .save ar.pfs, r40
+       .save ar.pfs, r3
        .body
-       alloc r2 = ar.pfs, 0, 0, 9, 0
-       mov ar.pfs = r40
+       alloc r2 = ar.pfs, 0, 0, 8, 0
+       mov ar.pfs = r3
        br b7
 END(_mcount_ret_helper)
 
index 59674fe..3aa44de 100644 (file)
@@ -116,13 +116,14 @@ __asm__ (".section .init\n"
 "/*@_init_PROLOG_ENDS*/\n"
 "\n"
 "/*@_init_EPILOG_BEGINS*/\n"
+"      .section .init\n"
 "      .proc _init#\n"
+"_init:\n"
 "      .prologue\n"
 "      .save ar.pfs, r34\n"
 "      .vframe r32\n"
 "      .save rp, r33\n"
 "      .body\n"
-"      .section .init\n"
 "      .regstk 0,2,0,0\n"
 "      mov r12 = r32\n"
 "      mov ar.pfs = r34\n"
@@ -155,6 +156,7 @@ __asm__ (".section .init\n"
 "/*@_fini_EPILOG_BEGINS*/\n"
 "      .section .fini\n"
 "      .proc _fini#\n"
+"_fini:\n"
 "      .prologue\n"
 "      .save ar.pfs, r34\n"
 "      .vframe r32\n"