diff options
author | Andreas Schwab <schwab@redhat.com> | 2011-08-15 14:25:11 +0200 |
---|---|---|
committer | Andreas Schwab <schwab@redhat.com> | 2011-08-15 14:25:11 +0200 |
commit | ae0f462bfd5ce158dee29e41b47a3e4862a04f92 (patch) | |
tree | 442fdee956f492e0e2ab3f5e10a6e15b53d10f59 | |
parent | af0639697455b54e2ade8556867a15893197ffe2 (diff) | |
parent | 4eddf93f5cc2711187e5e397a76ed727b440e972 (diff) | |
download | glibc-ae0f462bfd5ce158dee29e41b47a3e4862a04f92.tar.gz glibc-ae0f462bfd5ce158dee29e41b47a3e4862a04f92.tar.xz glibc-ae0f462bfd5ce158dee29e41b47a3e4862a04f92.zip |
Merge remote-tracking branch 'origin/release/2.14/master' into fedora/2.14/master
-rw-r--r-- | ChangeLog | 21 | ||||
-rw-r--r-- | intl/l10nflist.c | 24 | ||||
-rw-r--r-- | locale/Makefile | 31 | ||||
-rw-r--r-- | nptl/ChangeLog | 7 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S | 6 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S | 6 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S | 4 |
7 files changed, 70 insertions, 29 deletions
diff --git a/ChangeLog b/ChangeLog index 64e0fb6739..752d26fc06 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +2011-08-14 Roland McGrath <roland@hack.frob.com> + + * locale/Makefile (locale-CPPFLAGS): Renamed CPPFLAGS-locale-programs. + (locale-CPPFLAGS): New variable; put LOCALEDIR, LOCALE_ALIAS_PATH and + -Iprograms here. + (cppflags-iterator.mk sequence): Use locale-programs in place of nonlib. + (localedef-modules): Add localedef. + (locale-modules): Add locale. + +2011-08-13 Ulrich Drepper <drepper@gmail.com> + + * intl/l10nflist.c (_nl_normalize_codeset): Make it compile outside + of libc. Make tolower call locale-independent. Optimize a bit by + using isdigit instead of isalnum. + * locale/Makefile (locale-CPPFLAGS): Add -DNOT_IN_libc. + +2011-08-11 Ulrich Drepper <drepper@gmail.com> + + * intl/l10nflist.c (_nl_make_l10nflist): Use locale-independent + classification. + 2011-07-22 Andreas Schwab <schwab@redhat.com> * resolv/res_init.c (__res_vinit): Properly tokenize nameserver diff --git a/intl/l10nflist.c b/intl/l10nflist.c index 2c06a91113..0b071e08e4 100644 --- a/intl/l10nflist.c +++ b/intl/l10nflist.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2002, 2004, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1995-2002, 2004, 2005, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. @@ -134,7 +134,7 @@ argz_next__ (argz, argz_len, entry) if (entry) { if (entry < argz + argz_len) - entry = strchr (entry, '\0') + 1; + entry = strchr (entry, '\0') + 1; return entry >= argz + argz_len ? NULL : (char *) entry; } @@ -332,13 +332,18 @@ _nl_normalize_codeset (codeset, name_len) char *retval; char *wp; size_t cnt; +#ifdef NOT_IN_libc + locale_t locale = newlocale (0, "C", NULL); +#else +# define locale _nl_C_locobj_ptr +#endif for (cnt = 0; cnt < name_len; ++cnt) - if (isalnum ((unsigned char) codeset[cnt])) + if (__isalnum_l ((unsigned char) codeset[cnt], locale)) { ++len; - if (isalpha ((unsigned char) codeset[cnt])) + if (! __isdigit_l ((unsigned char) codeset[cnt], locale)) only_digit = 0; } @@ -346,15 +351,14 @@ _nl_normalize_codeset (codeset, name_len) if (retval != NULL) { + wp = retval; if (only_digit) - wp = stpcpy (retval, "iso"); - else - wp = retval; + wp = stpcpy (wp, "iso"); for (cnt = 0; cnt < name_len; ++cnt) - if (isalpha ((unsigned char) codeset[cnt])) - *wp++ = tolower ((unsigned char) codeset[cnt]); - else if (isdigit ((unsigned char) codeset[cnt])) + if (__isalpha_l ((unsigned char) codeset[cnt], locale)) + *wp++ = __tolower_l ((unsigned char) codeset[cnt], locale); + else if (__isdigit_l ((unsigned char) codeset[cnt], locale)) *wp++ = codeset[cnt]; *wp = '\0'; diff --git a/locale/Makefile b/locale/Makefile index 2dbd8dc6a5..ccaebf190f 100644 --- a/locale/Makefile +++ b/locale/Makefile @@ -1,4 +1,5 @@ -# Copyright (C) 1991,1992,1995-2003,2005,2009 Free Software Foundation, Inc. +# Copyright (C) 1991,1992,1995-2003,2005,2009,2011 +# 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 @@ -59,10 +60,11 @@ vpath %.c programs ../crypt vpath %.h programs vpath %.gperf programs -localedef-modules := $(categories:%=ld-%) charmap linereader locfile \ +localedef-modules := localedef $(categories:%=ld-%) \ + charmap linereader locfile \ repertoire locarchive localedef-aux := md5 -locale-modules := locale-spec +locale-modules := locale locale-spec lib-modules := charmap-dir simple-hash xmalloc xstrdup @@ -90,22 +92,27 @@ endif localepath = "$(localedir):$(i18ndir)" -locale-CPPFLAGS := -DLOCALE_PATH='$(localepath)' \ - -DLOCALEDIR='"$(localedir)"' \ - -DLOCALE_ALIAS_PATH='"$(msgcatdir)"' \ - -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \ - -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \ - -DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \ - -Iprograms +# -Iprograms doesn't really belong here, but this gets it at the head +# of the list instead of the tail, where CPPFLAGS-$(lib) gets added. +# We need it before the standard -I's to see programs/config.h first. +locale-CPPFLAGS = -DLOCALEDIR='"$(localedir)"' \ + -DLOCALE_ALIAS_PATH='"$(msgcatdir)"' \ + -Iprograms + +CPPFLAGS-locale-programs = -DLOCALE_PATH='$(localepath)' \ + -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \ + -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \ + -DLOCSRCDIR='"$(i18ndir)/locales"' \ + -DHAVE_CONFIG_H -DNOT_IN_libc CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts CFLAGS-charmap-dir.c = -Wno-write-strings -# This makes sure -DNOT_IN_libc is passed for all these modules. +# This makes sure -DNOT_IN_libc et al are passed for all these modules. cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \ $(locale-modules) $(lib-modules)) -lib := nonlib +lib := locale-programs include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left)) # Depend on libc.so so a DT_NEEDED is generated in the shared objects. diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 0b94d0bf58..f110af5667 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,10 @@ +2011-08-08 Andreas Schwab <schwab@redhat.com> + + * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Maintain aligned + stack. + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise. + 2011-06-30 Ulrich Drepper <drepper@gmail.com> * nptl-init.c (__nptl_set_robust): New function. diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S b/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S index 680696200a..a06cd9b9b9 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2009 Free Software Foundation, Inc. +/* Copyright (C) 2009, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2009. @@ -71,7 +71,9 @@ ENTRY(__pthread_enable_asynccancel) 1: ret -3: movq $TCB_PTHREAD_CANCELED, %fs:RESULT +3: subq $8, %rsp + cfi_adjust_cfa_offset(8) + movq $TCB_PTHREAD_CANCELED, %fs:RESULT lock orl $TCB_EXITING_BITMASK, %fs:CANCELHANDLING movq %fs:CLEANUP_JMP_BUF, %rdi diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S index 5b4eea79ac..0618c46b24 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2005, 2007, 2009, 2010 Free Software Foundation, Inc. +/* Copyright (C) 2002-2005, 2007, 2009, 2010, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -64,9 +64,9 @@ __pthread_cond_timedwait: cfi_adjust_cfa_offset(8) cfi_rel_offset(%r15, 0) #ifdef __ASSUME_FUTEX_CLOCK_REALTIME -# define FRAME_SIZE 32 +# define FRAME_SIZE (32+8) #else -# define FRAME_SIZE 48 +# define FRAME_SIZE (48+8) #endif subq $FRAME_SIZE, %rsp cfi_adjust_cfa_offset(FRAME_SIZE) diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S index 68cd8ac632..48ec1c5854 100644 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2007, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2002-2007, 2009, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. @@ -46,7 +46,7 @@ __pthread_cond_wait: cfi_lsda(DW_EH_PE_udata4, .LexceptSTART) #endif -#define FRAME_SIZE 32 +#define FRAME_SIZE (32+8) leaq -FRAME_SIZE(%rsp), %rsp cfi_adjust_cfa_offset(FRAME_SIZE) |