From 55a24b753a4f6e03ed23e16b2be847bd5c5642a7 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 24 Mar 2005 08:19:18 +0000 Subject: Updated to fedora-glibc-20050324T0715 --- ChangeLog | 72 +++++ NEWS | 5 +- Versions.def | 2 + elf/Makefile | 11 +- elf/dl-open.c | 2 + elf/elf.h | 4 + elf/rtld.c | 3 +- elf/tst-tls15.c | 32 ++ elf/tst-tlsmod15a.c | 6 + elf/tst-tlsmod15b.c | 17 + fedora/branch.mk | 4 +- fedora/glibc.spec.in | 11 +- linuxthreads/ChangeLog | 10 + linuxthreads/sysdeps/m68k/Makefile | 7 - .../sysdeps/unix/sysv/linux/ia64/pt-initfini.c | 2 + locale/iso-4217.def | 1 + locale/setlocale.c | 2 +- localedata/ChangeLog | 11 + localedata/SUPPORTED | 2 + localedata/charmaps/WINDOWS-31J | 2 +- localedata/locales/sr_CS | 349 +++++++++++++++++++++ malloc/malloc.c | 6 +- nis/ypclnt.c | 10 +- nptl/ChangeLog | 5 + nptl/pthread_create.c | 20 +- scripts/versions.awk | 22 +- sunrpc/xdr_stdio.c | 12 +- sysdeps/generic/dl-tls.c | 38 ++- sysdeps/ia64/_mcount.S | 7 +- sysdeps/ia64/elf/initfini.c | 4 +- 30 files changed, 608 insertions(+), 71 deletions(-) create mode 100644 elf/tst-tls15.c create mode 100644 elf/tst-tlsmod15a.c create mode 100644 elf/tst-tlsmod15b.c delete mode 100644 linuxthreads/sysdeps/m68k/Makefile create mode 100644 localedata/locales/sr_CS diff --git a/ChangeLog b/ChangeLog index 07a887f5e4..6b6cbd103b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,57 @@ +2005-03-23 Jakub Jelinek + + * nis/ypclnt.c (yp_2_yperr): Revert 2004-11-30 patch. + (ypprot_err): Use yp_2_yperr table also for YP_NODOM .. YP_NOMORE. + +2005-03-22 Roland McGrath + + * locale/setlocale.c: Comment typo. + + * scripts/versions.awk: No errors for GLIBC_PRIVATE. + + * Versions.def (libdl, librt): Add GLIBC_2.3.4 version. + + * scripts/versions.awk: Print all errors and die at the end. + Use library name in versions array keys. + +2005-03-22 Daniel Jacobowitz + + * elf/elf.h (PT_ARM_EXIDX): New macro. + +2005-03-21 Thorsten Kukuk + + * sunrpc/xdr_stdio.c (xdrstdio_getlong, xdrstdio_putlong): + Convert correctly between long/int on 64bit big-endian. + +2005-03-21 David Mosberger + + * sysdeps/ia64/_mcount.S: Newer kernels don't like register-frames + with more than 8 output registers. Fix this by passing original + ar.pfs to _mcount_ret_helper via r3. + +2005-03-15 Jakub Jelinek + + [BZ #786] + * sysdeps/generic/dl-tls.c (_dl_next_tls_modid): Handle + GL(dl_tls_static_nelem) == GL(dl_tls_max_dtv_idx). + * elf/Makefile: Add rules to build and run tst-tls15. + * elf/tst-tls15.c: New test. + * elf/tst-tlsmod15a.c: New file. + * elf/tst-tlsmod15b.c: New file. + +2005-03-20 Ulrich Drepper + + * elf/rtld.c (dl_main): Always call init_tls if we have audit modules. + +2005-03-20 Alfred M. Szmidt + + * elf/dl-open.c (dl_open_worker): Fix typo. + +2005-03-20 Ulrich Drepper + + * malloc/malloc.c (public_cALLOc): We cannot skip the memory + clearing if perturb_byte != 0. + 2005-03-20 Jakub Jelinek * posix/bits/unistd.h (pread) [__USE_FILE_OFFSET64]: Use __off64_t @@ -7,6 +61,24 @@ * debug/tst-lfschk2.c: New test. * debug/tst-lfschk3.c: New test. +2005-02-09 Jakub Jelinek + + * sysdeps/unix/sysv/linux/bits/termios.h (CMSPAR): Define. + * sysdeps/unix/sysv/linux/sparc/bits/termios.h: Add __USE_MISC + and __USE_XOPEN guards to match linux/bits/termios.h. + * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise. + (CMSPAR): Define. + * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise. + +2005-02-10 H.J. Lu + + * sysdeps/ia64/elf/initfini.c: Add local _init and _fini labels. + +2005-02-27 Denis Barbier + + [BZ #38] + * locale/iso-4217.def: Add CSD currency. + 2005-03-19 Ulrich Drepper * inet/test-ifaddrs.c: Use test-skeleton. diff --git a/NEWS b/NEWS index cd975c998b..2601cd5dde 100644 --- 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. Version 2.3.4 diff --git a/Versions.def b/Versions.def index 33409f1143..923f5eb31e 100644 --- a/Versions.def +++ b/Versions.def @@ -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 diff --git a/elf/Makefile b/elf/Makefile index 80a3f6cb19..c034b2ba6e 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -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) diff --git a/elf/dl-open.c b/elf/dl-open.c index 7433d99ff9..a65690e5a3 100644 --- a/elf/dl-open.c +++ b/elf/dl-open.c @@ -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_("\ diff --git a/elf/elf.h b/elf/elf.h index b84cc0e3ad..8a9f7fd482 100644 --- 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 */ diff --git a/elf/rtld.c b/elf/rtld.c index 720029dfc9..b2122bb9d6 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -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 index 0000000000..7ac963aa2d --- /dev/null +++ b/elf/tst-tls15.c @@ -0,0 +1,32 @@ +#include +#include + +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 index 0000000000..66c707129a --- /dev/null +++ b/elf/tst-tlsmod15a.c @@ -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 index 0000000000..4f63eab144 --- /dev/null +++ b/elf/tst-tlsmod15b.c @@ -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 diff --git a/fedora/branch.mk b/fedora/branch.mk index 059c5a0d5c..57f20c3c67 100644 --- a/fedora/branch.mk +++ b/fedora/branch.mk @@ -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 diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in index d6fcab7080..8bb904b278 100644 --- a/fedora/glibc.spec.in +++ b/fedora/glibc.spec.in @@ -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 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 2.3.4-16 - fix pread with -D_FILE_OFFSET_BITS=64 (#151573) diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 8699564b4c..ce3bcb3e18 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,13 @@ +2005-03-21 GOTO Masanori + + * linuxthreads/sysdeps/m68k/Makefile: Remove to delete + unneeded o-iterator thing. + +2005-02-21 H.J. Lu + + * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Add local _init + and _fini labels. + 2005-03-05 Ulrich Drepper * sysdeps/i386/Makefile (CFLAGS-pt-initfini.s): Unconditionally diff --git a/linuxthreads/sysdeps/m68k/Makefile b/linuxthreads/sysdeps/m68k/Makefile deleted file mode 100644 index 1cd27d44ca..0000000000 --- a/linuxthreads/sysdeps/m68k/Makefile +++ /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 diff --git a/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c b/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c index 85fd33f4a8..af8a63c163 100644 --- a/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c +++ b/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c @@ -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\ diff --git a/locale/iso-4217.def b/locale/iso-4217.def index 01a69950dc..b7c05a351d 100644 --- a/locale/iso-4217.def +++ b/locale/iso-4217.def @@ -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 */ diff --git a/locale/setlocale.c b/locale/setlocale.c index e6db70d4c7..50bf8e772f 100644 --- a/locale/setlocale.c +++ b/locale/setlocale.c @@ -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; diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 548dc7890c..e454cd0cfc 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,14 @@ +2005-03-21 Jakub Jelinek + + * charmaps/WINDOWS-31J: Add % before alias keyword. + +2005-02-27 Denis Barbier + + [BZ #38] + * locales/sr_CS: New file. + Contributed by Danilo Segan + * SUPPORTED: Add sr_CS/ISO-8859-5 and sr_CS.UTF-8/UTF-8. + 2005-03-18 Andreas Schwab * locales/pa_IN (am_pm): Fix character names. diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED index 6dafc49f4d..b079c4ca79 100644 --- a/localedata/SUPPORTED +++ b/localedata/SUPPORTED @@ -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 \ diff --git a/localedata/charmaps/WINDOWS-31J b/localedata/charmaps/WINDOWS-31J index 76316c5761..d5ab12abef 100644 --- a/localedata/charmaps/WINDOWS-31J +++ b/localedata/charmaps/WINDOWS-31J @@ -8,7 +8,7 @@ % MORIYAMA Masayuki , 2003. % Last changed: 2003-07-18 -alias CP932 +% alias CP932 CHARMAP /x00 NULL diff --git a/localedata/locales/sr_CS b/localedata/locales/sr_CS new file mode 100644 index 0000000000..1a01f2f101 --- /dev/null +++ b/localedata/locales/sr_CS @@ -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 + "";"" % d- + "" % gj + "" % dz + "" % j + "" % lj + "" % nj + "";"" % c' + "" % kj + "";"" % dz< + + "";"" % D- + "" % Gj + "" % Dz + "" % J + "" % Lj + "" % Nj + "";"" % C' + "" % Kj + "";"" % Dz< + + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "";"" % z< + "";"" % s< + "";"" % c< + + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "";"" % z< + "";"" % s< + "";"" % c< + +translit_end +END LC_CTYPE + + +LC_COLLATE + +copy "iso14651_t1" + +collating-symbol +collating-symbol +collating-symbol + +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol + +collating-symbol +collating-symbol + +reorder-after + +reorder-after + + +reorder-after + + + + + +reorder-after + +reorder-after + +reorder-after + +reorder-after + + +reorder-after + ;;;IGNORE + ;;;IGNORE +reorder-after + ;;;IGNORE + ;;;IGNORE + +reorder-after + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE +reorder-after + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + +reorder-after + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE +reorder-after + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + +reorder-after + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE +reorder-after + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + +reorder-after + ;;;IGNORE +reorder-after + ;;;IGNORE + +reorder-after + ;;;IGNORE +reorder-after + ;;;IGNORE + +reorder-end + +END LC_COLLATE + +LC_MONETARY +int_curr_symbol "" +currency_symbol "" +mon_decimal_point "" +mon_thousands_sep "" +mon_grouping 3;3 +positive_sign "" +negative_sign "" +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 "" +thousands_sep "" +grouping 0;0 +END LC_NUMERIC + +LC_TIME + +abday "";"";/ + "";"";/ + "";"";/ + "" +day "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" +abmon "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"" +mon "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" + +d_t_fmt "/ +/ +" +d_fmt "" +t_fmt "" +am_pm "";"" +t_fmt_ampm "" +date_fmt "/ +/ +" +week 7;19971201;4 +first_weekday 2 +first_workday 2 +END LC_TIME + +LC_MESSAGES +yesexpr "" +noexpr "" +END LC_MESSAGES + +LC_PAPER +height 297 +width 210 +END LC_PAPER + +LC_NAME +name_fmt "/ +" +name_gen "" +name_mr "" +name_mrs "" +name_miss "" +name_ms "" +END LC_NAME + +LC_ADDRESS +postal_fmt "/ +/ +/ +/ +" +country_ab2 "" +country_ab3 "" +% FIXME: country_post is probably incorrect +country_post "" +country_name "/ +" +country_num 891 +country_car "" +% FIXME: ISBN code is what? "86" that preceedes all the numbers? +country_isbn "" +lang_name "" +lang_term "" +lang_lib "" +lang_ab "" +END LC_ADDRESS + +LC_TELEPHONE +tel_int_fmt "/ +" +tel_dom_fmt "" +int_prefix "" +int_select "" +END LC_TELEPHONE + +LC_MEASUREMENT +measurement 1 +END LC_MEASUREMENT diff --git a/malloc/malloc.c b/malloc/malloc.c index 44831bbb1d..65be277097 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -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 @@ -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; } diff --git a/nis/ypclnt.c b/nis/ypclnt.c index 85292b62d9..6230cb84dc 100644 --- a/nis/ypclnt.c +++ b/nis/ypclnt.c @@ -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 , 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]; } diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 6e0b5e31a1..6ded83e181 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2005-03-23 Ulrich Drepper + + * pthread_create.c (__pthread_create_2_1): Rename syscall error + variable to scerr. + 2005-03-10 Jakub Jelinek * tst-getpid1.c (do_test): Align stack passed to clone{2,}. diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c index bf41e9fcc9..18f1c034c7 100644 --- a/nptl/pthread_create.c +++ b/nptl/pthread_create.c @@ -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 , 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) diff --git a/scripts/versions.awk b/scripts/versions.awk index 7e33387d41..e642b3d16e 100644 --- a/scripts/versions.awk +++ b/scripts/versions.awk @@ -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 , 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 ="); diff --git a/sunrpc/xdr_stdio.c b/sunrpc/xdr_stdio.c index 4daa062c82..e73c5a5202 100644 --- a/sunrpc/xdr_stdio.c +++ b/sunrpc/xdr_stdio.c @@ -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; } diff --git a/sysdeps/generic/dl-tls.c b/sysdeps/generic/dl-tls.c index fdd569b587..4fed570d5c 100644 --- a/sysdeps/generic/dl-tls.c +++ b/sysdeps/generic/dl-tls.c @@ -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)) { diff --git a/sysdeps/ia64/_mcount.S b/sysdeps/ia64/_mcount.S index aa91cb5d42..8720a9c104 100644 --- a/sysdeps/ia64/_mcount.S +++ b/sysdeps/ia64/_mcount.S @@ -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) diff --git a/sysdeps/ia64/elf/initfini.c b/sysdeps/ia64/elf/initfini.c index 59674fe6f2..3aa44de8f1 100644 --- a/sysdeps/ia64/elf/initfini.c +++ b/sysdeps/ia64/elf/initfini.c @@ -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" -- cgit v1.2.3