From dd9423a67a7650a9b0f50d8151e4f3797c5a14f8 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 11 Jun 2003 21:57:23 +0000 Subject: [PATCH] Update. 2003-06-11 Ulrich Drepper * allocatestack.c (queue_stack): Always inline. * ptreadhP.h (__do_cancel): Likewise. --- argp/argp-help.c | 4 +-- elf/dl-load.c | 5 ++-- elf/dl-version.c | 3 ++- elf/do-lookup.h | 4 +-- iconv/Makefile | 6 ++--- iconv/gconv_cache.c | 2 +- iconv/gconv_charset.h | 11 +++------ iconv/gconv_conf.c | 6 ++--- iconv/gconv_db.c | 3 +-- iconv/gconv_int.h | 7 +++++- iconv/gconv_simple.c | 12 +++++++++ iconv/iconvconfig.c | 2 +- iconv/loop.c | 2 ++ iconvdata/cns11643.h | 4 ++- iconvdata/cns11643l1.h | 4 ++- iconvdata/euc-kr.c | 3 ++- iconvdata/gb2312.h | 4 ++- iconvdata/jis0201.h | 4 ++- iconvdata/jis0208.h | 4 ++- iconvdata/jis0212.h | 4 ++- iconvdata/jisx0213.h | 4 ++- iconvdata/ksc5601.h | 7 +++++- iconvdata/utf-7.c | 4 +-- include/libc-symbols.h | 4 +-- include/set-hooks.h | 14 +++++------ inet/Makefile | 2 +- intl/Makefile | 4 +-- intl/dcigettext.c | 4 +-- intl/hash-string.c | 47 ++++++++++++++++++++++++++++++++++++ intl/hash-string.h | 28 +++------------------ intl/loadmsgcat.c | 4 +-- io/ftw.c | 4 ++- locale/findlocale.c | 3 ++- locale/programs/linereader.c | 31 +++++++++++++++++++++++- locale/programs/linereader.h | 34 +++----------------------- locale/setlocale.c | 4 +-- locale/weight.h | 3 ++- locale/weightwc.h | 3 ++- nptl/ChangeLog | 5 ++++ nptl/allocatestack.c | 1 + nptl/pthreadP.h | 2 +- 41 files changed, 189 insertions(+), 117 deletions(-) create mode 100644 intl/hash-string.c diff --git a/argp/argp-help.c b/argp/argp-help.c index af23d93fe2..208fd86d6b 100644 --- a/argp/argp-help.c +++ b/argp/argp-help.c @@ -1,5 +1,5 @@ /* Hierarchial argument parsing help output - Copyright (C) 1995-2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1995-2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -521,7 +521,7 @@ hol_free (struct hol *hol) free (hol); } -static inline int +static int hol_entry_short_iterate (const struct hol_entry *entry, int (*func)(const struct argp_option *opt, const struct argp_option *real, diff --git a/elf/dl-load.c b/elf/dl-load.c index 8b0c82bb52..9198427edd 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -361,7 +361,7 @@ static struct r_search_path_struct rtld_search_dirs; static size_t max_dirnamelen; -static inline struct r_search_path_elem ** +static struct r_search_path_elem ** fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep, int check_trusted, const char *what, const char *where) { @@ -1935,8 +1935,7 @@ _dl_rtld_di_serinfo (struct link_map *loader, Dl_serinfo *si, bool counting) unsigned int idx = 0; char *allocptr = (char *) &si->dls_serpath[si->dls_cnt]; - inline void add_path (const struct r_search_path_struct *sps, - unsigned int flags) + void add_path (const struct r_search_path_struct *sps, unsigned int flags) # define add_path(sps, flags) add_path(sps, 0) /* XXX */ { if (sps->dirs != (void *) -1) diff --git a/elf/dl-version.c b/elf/dl-version.c index e9553e4744..3daea87848 100644 --- a/elf/dl-version.c +++ b/elf/dl-version.c @@ -1,5 +1,5 @@ /* Handle symbol and library versioning. - Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc. + Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -53,6 +53,7 @@ static inline struct link_map * +__attribute ((always_inline)) find_needed (const char *name, struct link_map *map) { struct link_map *tmap; diff --git a/elf/do-lookup.h b/elf/do-lookup.h index be75fb7b00..8ba07253e3 100644 --- a/elf/do-lookup.h +++ b/elf/do-lookup.h @@ -1,5 +1,5 @@ /* Look up a symbol in the loaded objects. - Copyright (C) 1995,96,97,98,99,2000,2001,2002 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2003 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 @@ -28,7 +28,7 @@ /* Inner part of the lookup functions. We return a value > 0 if we found the symbol, the value 0 if nothing is found and < 0 if something bad happened. */ -static inline int +static int FCT (const char *undef_name, unsigned long int hash, const ElfW(Sym) *ref, struct sym_val *result, struct r_scope_elem *scope, size_t i, ARG, struct link_map *skip, int type_class) diff --git a/iconv/Makefile b/iconv/Makefile index 15846c2c07..9fb41db9df 100644 --- a/iconv/Makefile +++ b/iconv/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 1997,1998,2000,2001,2002,2003 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 @@ -35,11 +35,11 @@ CFLAGS-gconv_cache.c = -DSTATIC_GCONV CFLAGS-gconv_simple.c = -DSTATIC_GCONV endif -vpath %.c ../locale/programs +vpath %.c ../locale/programs ../intl iconv_prog-modules = iconv_charmap charmap charmap-dir linereader \ dummy-repertoire simple-hash xstrdup xmalloc -iconvconfig-modules = strtab xmalloc +iconvconfig-modules = strtab xmalloc hash-string extra-objs = $(iconv_prog-modules:=.o) $(iconvconfig-modules:=.o) CFLAGS-iconv_prog.c = -I../locale/programs CFLAGS-iconv_charmap.c = -I../locale/programs diff --git a/iconv/gconv_cache.c b/iconv/gconv_cache.c index 6d19f9f052..9b695c377d 100644 --- a/iconv/gconv_cache.c +++ b/iconv/gconv_cache.c @@ -159,7 +159,7 @@ find_module_idx (const char *str, size_t *idxp) hashtab = (struct hash_entry *) ((char *) gconv_cache + header->hash_offset); - hval = hash_string (str); + hval = __hash_string (str); idx = hval % header->hash_size; hval2 = 1 + hval % (header->hash_size - 2); diff --git a/iconv/gconv_charset.h b/iconv/gconv_charset.h index f2eab2d4bd..31b545f2e1 100644 --- a/iconv/gconv_charset.h +++ b/iconv/gconv_charset.h @@ -1,5 +1,5 @@ /* Charset name normalization. - Copyright (C) 2001,02 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -22,7 +22,7 @@ #include -static inline void +static void strip (char *wp, const char *s) { int slash_count = 0; @@ -48,7 +48,7 @@ strip (char *wp, const char *s) } -static inline char * __attribute__ ((unused)) +static inline char * __attribute__ ((unused, always_inline)) upstr (char *dst, const char *str) { char *cp = dst; @@ -56,8 +56,3 @@ upstr (char *dst, const char *str) /* nothing */; return dst; } - - -/* If NAME is an codeset alias expand it. */ -extern int __gconv_compare_alias (const char *name1, const char *name2) - internal_function; diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c index 746c2245a3..1fa7d0e9f8 100644 --- a/iconv/gconv_conf.c +++ b/iconv/gconv_conf.c @@ -1,5 +1,5 @@ /* Handle configuration data. - Copyright (C) 1997,98,99,2000,2001,2002 Free Software Foundation, Inc. + Copyright (C) 1997,98,99,2000,2001,2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -125,7 +125,7 @@ detect_conflict (const char *alias) /* Add new alias. */ -static inline void +static void add_alias (char *rp, void *modules) { /* We now expect two more string. The strings are normalized @@ -178,7 +178,7 @@ add_alias (char *rp, void *modules) /* Insert a data structure for a new module in the search tree. */ -static inline void +static void internal_function insert_module (struct gconv_module *newp, int tobefreed) { diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c index 020b556d5e..158e0e186e 100644 --- a/iconv/gconv_db.c +++ b/iconv/gconv_db.c @@ -1,5 +1,5 @@ /* Provide access to the collection of available transformation modules. - Copyright (C) 1997,98,99,2000,2001,2002 Free Software Foundation, Inc. + Copyright (C) 1997,98,99,2000,2001,2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -27,7 +27,6 @@ #include #include -#include /* Simple data structure for alias mapping. We have two names, `from' diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h index dec29d9c14..a5fb728447 100644 --- a/iconv/gconv_int.h +++ b/iconv/gconv_int.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc. +/* Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -262,6 +262,11 @@ extern int __gconv_transliterate (struct __gconv_step *step, size_t *irreversible) attribute_hidden; +/* If NAME is an codeset alias expand it. */ +extern int __gconv_compare_alias (const char *name1, const char *name2) + internal_function; + + /* Builtin transformations. */ #ifdef _LIBC # define __BUILTIN_TRANSFORM(Name) \ diff --git a/iconv/gconv_simple.c b/iconv/gconv_simple.c index 69489d892b..4bb7a911cd 100644 --- a/iconv/gconv_simple.c +++ b/iconv/gconv_simple.c @@ -72,6 +72,7 @@ __gconv_btwoc_ascii (struct __gconv_step *step, unsigned char c) static inline int +__attribute ((always_inline)) internal_ucs4_loop (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, const unsigned char *inend, @@ -113,6 +114,7 @@ internal_ucs4_loop (struct __gconv_step *step, #ifndef _STRING_ARCH_unaligned static inline int +__attribute ((always_inline)) internal_ucs4_loop_unaligned (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, @@ -161,6 +163,7 @@ internal_ucs4_loop_unaligned (struct __gconv_step *step, static inline int +__attribute ((always_inline)) internal_ucs4_loop_single (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, @@ -219,6 +222,7 @@ internal_ucs4_loop_single (struct __gconv_step *step, static inline int +__attribute ((always_inline)) ucs4_internal_loop (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, const unsigned char *inend, @@ -283,6 +287,7 @@ ucs4_internal_loop (struct __gconv_step *step, #ifndef _STRING_ARCH_unaligned static inline int +__attribute ((always_inline)) ucs4_internal_loop_unaligned (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, @@ -352,6 +357,7 @@ ucs4_internal_loop_unaligned (struct __gconv_step *step, static inline int +__attribute ((always_inline)) ucs4_internal_loop_single (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, @@ -426,6 +432,7 @@ ucs4_internal_loop_single (struct __gconv_step *step, static inline int +__attribute ((always_inline)) internal_ucs4le_loop (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, const unsigned char *inend, @@ -467,6 +474,7 @@ internal_ucs4le_loop (struct __gconv_step *step, #ifndef _STRING_ARCH_unaligned static inline int +__attribute ((always_inline)) internal_ucs4le_loop_unaligned (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, @@ -518,6 +526,7 @@ internal_ucs4le_loop_unaligned (struct __gconv_step *step, static inline int +__attribute ((always_inline)) internal_ucs4le_loop_single (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, @@ -573,6 +582,7 @@ internal_ucs4le_loop_single (struct __gconv_step *step, static inline int +__attribute ((always_inline)) ucs4le_internal_loop (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, const unsigned char *inend, @@ -638,6 +648,7 @@ ucs4le_internal_loop (struct __gconv_step *step, #ifndef _STRING_ARCH_unaligned static inline int +__attribute ((always_inline)) ucs4le_internal_loop_unaligned (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, @@ -711,6 +722,7 @@ ucs4le_internal_loop_unaligned (struct __gconv_step *step, static inline int +__attribute ((always_inline)) ucs4le_internal_loop_single (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, diff --git a/iconv/iconvconfig.c b/iconv/iconvconfig.c index 33ffeb34fc..cd243f6807 100644 --- a/iconv/iconvconfig.c +++ b/iconv/iconvconfig.c @@ -784,7 +784,7 @@ new_name (const char *str, struct Strent *strent) newp->name = str; newp->strent = strent; newp->module_idx = -1; - newp->hashval = hash_string (str); + newp->hashval = __hash_string (str); ++nnames; diff --git a/iconv/loop.c b/iconv/loop.c index d792f4a8a2..1918fe5007 100644 --- a/iconv/loop.c +++ b/iconv/loop.c @@ -257,6 +257,7 @@ /* The function returns the status, as defined in gconv.h. */ static inline int +__attribute ((always_inline)) FCTNAME (LOOPFCT) (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, const unsigned char *inend, @@ -342,6 +343,7 @@ FCTNAME (LOOPFCT) (struct __gconv_step *step, # define SINGLE(fct) SINGLE2 (fct) # define SINGLE2(fct) fct##_single static inline int +__attribute ((always_inline)) SINGLE(LOOPFCT) (struct __gconv_step *step, struct __gconv_step_data *step_data, const unsigned char **inptrp, const unsigned char *inend, diff --git a/iconvdata/cns11643.h b/iconvdata/cns11643.h index 5117533ab4..125f55f228 100644 --- a/iconvdata/cns11643.h +++ b/iconvdata/cns11643.h @@ -1,5 +1,5 @@ /* Access functions for CNS 11643 handling. - Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -40,6 +40,7 @@ extern const uint32_t __cns11643l15_to_ucs4_tab[]; static inline uint32_t +__attribute ((always_inline)) cns11643_to_ucs4 (const char **s, size_t avail, unsigned char offset) { unsigned char ch = *(*s); @@ -140,6 +141,7 @@ extern const char __cns11643_from_ucs4p2c_tab[][3]; static inline size_t +__attribute ((always_inline)) ucs4_to_cns11643 (uint32_t wch, char *s, size_t avail) { unsigned int ch = (unsigned int) wch; diff --git a/iconvdata/cns11643l1.h b/iconvdata/cns11643l1.h index be99888ab7..e4b8655b0a 100644 --- a/iconvdata/cns11643l1.h +++ b/iconvdata/cns11643l1.h @@ -1,5 +1,5 @@ /* Access functions for CNS 11643, plane 1 handling. - Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -26,6 +26,7 @@ extern const uint16_t __cns11643l1_to_ucs4_tab[]; static inline uint32_t +__attribute ((always_inline)) cns11643l1_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset) { @@ -71,6 +72,7 @@ extern const char __cns11643l1_from_ucs4_tab14[][2]; static inline size_t +__attribute ((always_inline)) ucs4_to_cns11643l1 (uint32_t wch, unsigned char *s, size_t avail) { unsigned int ch = (unsigned int) wch; diff --git a/iconvdata/euc-kr.c b/iconvdata/euc-kr.c index 7774720bd6..289ff4c419 100644 --- a/iconvdata/euc-kr.c +++ b/iconvdata/euc-kr.c @@ -1,5 +1,5 @@ /* Mapping tables for EUC-KR handling. - Copyright (C) 1998, 1999, 2000-2002 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000-2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jungshik Shin and Ulrich Drepper , 1998. @@ -25,6 +25,7 @@ static inline void +__attribute ((always_inline)) euckr_from_ucs4 (uint32_t ch, unsigned char *cp) { if (ch > 0x9f) diff --git a/iconvdata/gb2312.h b/iconvdata/gb2312.h index c6856515c1..f5eaaf2224 100644 --- a/iconvdata/gb2312.h +++ b/iconvdata/gb2312.h @@ -1,5 +1,5 @@ /* Access functions for GB2312 conversion. - Copyright (C) 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -30,6 +30,7 @@ extern const uint16_t __gb2312_to_ucs[]; static inline uint32_t +__attribute ((always_inline)) gb2312_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset) { unsigned char ch = *(*s); @@ -67,6 +68,7 @@ extern const char __gb2312_from_ucs4_tab8[][2]; extern const char __gb2312_from_ucs4_tab9[][2]; static inline size_t +__attribute ((always_inline)) ucs4_to_gb2312 (uint32_t wch, unsigned char *s, size_t avail) { unsigned int ch = (unsigned int) wch; diff --git a/iconvdata/jis0201.h b/iconvdata/jis0201.h index 6fae3a2883..391e6d3f7c 100644 --- a/iconvdata/jis0201.h +++ b/iconvdata/jis0201.h @@ -1,5 +1,5 @@ /* Access functions for JISX0201 conversion. - Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -26,6 +26,7 @@ extern const uint32_t __jisx0201_to_ucs4[]; static inline uint32_t +__attribute ((always_inline)) jisx0201_to_ucs4 (char ch) { uint32_t val = __jisx0201_to_ucs4[(unsigned char) ch]; @@ -38,6 +39,7 @@ jisx0201_to_ucs4 (char ch) static inline size_t +__attribute ((always_inline)) ucs4_to_jisx0201 (uint32_t wch, char *s) { char ch; diff --git a/iconvdata/jis0208.h b/iconvdata/jis0208.h index ef6b891eb6..9dea38973c 100644 --- a/iconvdata/jis0208.h +++ b/iconvdata/jis0208.h @@ -1,5 +1,5 @@ /* Access functions for JISX0208 conversion. - Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -43,6 +43,7 @@ struct jisx0208_ucs_idx static inline uint32_t +__attribute ((always_inline)) jisx0208_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset) { unsigned char ch = *(*s); @@ -70,6 +71,7 @@ jisx0208_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset) static inline size_t +__attribute ((always_inline)) ucs4_to_jisx0208 (uint32_t wch, char *s, size_t avail) { unsigned int ch = (unsigned int) wch; diff --git a/iconvdata/jis0212.h b/iconvdata/jis0212.h index f57778ebab..ba439e53eb 100644 --- a/iconvdata/jis0212.h +++ b/iconvdata/jis0212.h @@ -1,5 +1,5 @@ /* Access functions for JISX0212 conversion. - Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -42,6 +42,7 @@ extern const char __jisx0212_from_ucs[][2]; static inline uint32_t +__attribute ((always_inline)) jisx0212_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset) { const struct jisx0212_idx *rp = __jisx0212_to_ucs_idx; @@ -77,6 +78,7 @@ jisx0212_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset) static inline size_t +__attribute ((always_inline)) ucs4_to_jisx0212 (uint32_t wch, char *s, size_t avail) { const struct jisx0212_idx *rp = __jisx0212_from_ucs_idx; diff --git a/iconvdata/jisx0213.h b/iconvdata/jisx0213.h index 5632e523bc..c92c70fdee 100644 --- a/iconvdata/jisx0213.h +++ b/iconvdata/jisx0213.h @@ -1,5 +1,5 @@ /* Functions for JISX0213 conversion. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Bruno Haible , 2002. @@ -32,6 +32,7 @@ extern const uint16_t __jisx0213_from_ucs_level2[]; #define NELEMS(arr) (sizeof (arr) / sizeof (arr[0])) static inline uint32_t +__attribute ((always_inline)) jisx0213_to_ucs4 (unsigned int row, unsigned int col) { uint32_t val; @@ -64,6 +65,7 @@ jisx0213_to_ucs4 (unsigned int row, unsigned int col) } static inline uint16_t +__attribute ((always_inline)) ucs4_to_jisx0213 (uint32_t ucs) { if (ucs < NELEMS (__jisx0213_from_ucs_level1) << 6) diff --git a/iconvdata/ksc5601.h b/iconvdata/ksc5601.h index 50e74fc985..603a337f89 100644 --- a/iconvdata/ksc5601.h +++ b/iconvdata/ksc5601.h @@ -1,5 +1,5 @@ /* Access functions for KS C 5601-1992 based encoding conversion. - Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2003 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 @@ -44,6 +44,7 @@ extern const struct map __ksc5601_hanja_from_ucs[KSC5601_HANJA]; static inline uint32_t +__attribute ((always_inline)) ksc5601_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset) { unsigned char ch = **s; @@ -85,6 +86,7 @@ ksc5601_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset) } static inline size_t +__attribute ((always_inline)) ucs4_to_ksc5601_hangul (uint32_t wch, unsigned char *s, size_t avail) { int l = 0; @@ -116,6 +118,7 @@ ucs4_to_ksc5601_hangul (uint32_t wch, unsigned char *s, size_t avail) static inline size_t +__attribute ((always_inline)) ucs4_to_ksc5601_hanja (uint32_t wch, unsigned char *s, size_t avail) { int l = 0; @@ -146,6 +149,7 @@ ucs4_to_ksc5601_hanja (uint32_t wch, unsigned char *s, size_t avail) } static inline size_t +__attribute ((always_inline)) ucs4_to_ksc5601_sym (uint32_t wch, unsigned char *s, size_t avail) { int l = 0; @@ -177,6 +181,7 @@ ucs4_to_ksc5601_sym (uint32_t wch, unsigned char *s, size_t avail) static inline size_t +__attribute ((always_inline)) ucs4_to_ksc5601 (uint32_t wch, unsigned char *s, size_t avail) { if (wch >= 0xac00 && wch <= 0xd7a3) diff --git a/iconvdata/utf-7.c b/iconvdata/utf-7.c index 64cf614208..ee2ae441b0 100644 --- a/iconvdata/utf-7.c +++ b/iconvdata/utf-7.c @@ -1,5 +1,5 @@ /* Conversion module for UTF-7. - Copyright (C) 2000-2002 Free Software Foundation, Inc. + Copyright (C) 2000-2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Bruno Haible , 2000. @@ -93,7 +93,7 @@ isxbase64 (uint32_t ch) /* Converts a value in the range 0..63 to a base64 encoded char. */ -static inline unsigned char +static unsigned char base64 (unsigned int i) { if (i < 26) diff --git a/include/libc-symbols.h b/include/libc-symbols.h index ffda19c6ac..e585a3b304 100644 --- a/include/libc-symbols.h +++ b/include/libc-symbols.h @@ -359,11 +359,11 @@ # endif /* Return a pointer (void *const *) to the first element of SET. */ -# define symbol_set_first_element(set) (&__start_##set) +# define symbol_set_first_element(set) ((void *const *) (&__start_##set)) /* Return true iff PTR (a void *const *) has been incremented past the last element in SET. */ -# define symbol_set_end_p(set, ptr) ((ptr) >= &__stop_##set) +# define symbol_set_end_p(set, ptr) ((ptr) >= (void *const *) &__stop_##set) # else /* Not ELF: a.out. */ diff --git a/include/set-hooks.h b/include/set-hooks.h index 1bc411ba6f..770b305309 100644 --- a/include/set-hooks.h +++ b/include/set-hooks.h @@ -1,5 +1,5 @@ /* Macros for using symbol sets for running lists of functions. - Copyright (C) 1994, 1995, 1997, 2000 Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1997, 2000, 2003 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 @@ -40,12 +40,12 @@ /* Run all the functions hooked on the set called NAME. Each function is called like this: `function ARGS'. */ -# define RUN_HOOK(NAME, ARGS) \ -do { \ - void *const *__unbounded ptr; \ - for (ptr = symbol_set_first_element (NAME); \ - ! symbol_set_end_p (NAME, ptr); ++ptr) \ - (*(__##NAME##_hook_function_t *) *ptr) ARGS; \ +# define RUN_HOOK(NAME, ARGS) \ +do { \ + void *const *__unbounded ptr; \ + for (ptr = (void *const *) symbol_set_first_element (NAME); \ + ! symbol_set_end_p (NAME, ptr); ++ptr) \ + (*(__##NAME##_hook_function_t *) *ptr) ARGS; \ } while (0) /* Define a hook variable with NAME and PROTO, and a function called RUNNER diff --git a/inet/Makefile b/inet/Makefile index b276877099..96313f40c2 100644 --- a/inet/Makefile +++ b/inet/Makefile @@ -47,7 +47,7 @@ routines := htonl htons \ getaliasent_r getaliasent getaliasname getaliasname_r \ in6_addr getnameinfo if_index ifaddrs -aux := check_pf +aux := check_pf ifreq tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \ tst-gethnm test-ifaddrs diff --git a/intl/Makefile b/intl/Makefile index ad38e263f9..32212c0e29 100644 --- a/intl/Makefile +++ b/intl/Makefile @@ -22,8 +22,8 @@ subdir = intl headers = libintl.h routines = bindtextdom dcgettext dgettext gettext \ dcigettext dcngettext dngettext ngettext \ - finddomain loadmsgcat localealias textdomain \ - l10nflist explodename plural plural-exp + finddomain loadmsgcat localealias textdomain +aux = l10nflist explodename plural plural-exp hash-string distribute = gmo.h gettextP.h hash-string.h loadinfo.h locale.alias \ plural.y plural-exp.h po2test.sed tst-gettext.sh tst-translit.sh \ translit.po tst-gettext2.sh tstlang1.po tstlang2.po tstcodeset.po\ diff --git a/intl/dcigettext.c b/intl/dcigettext.c index 9118dbdda9..fa53b7c574 100644 --- a/intl/dcigettext.c +++ b/intl/dcigettext.c @@ -1,5 +1,5 @@ /* Implementation of the internal dcigettext function. - Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2003 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 @@ -695,7 +695,7 @@ _nl_find_msg (domain_file, domainbinding, msgid, lengthp) { /* Use the hashing table. */ nls_uint32 len = strlen (msgid); - nls_uint32 hash_val = hash_string (msgid); + nls_uint32 hash_val = __hash_string (msgid); nls_uint32 idx = hash_val % domain->hash_size; nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2)); diff --git a/intl/hash-string.c b/intl/hash-string.c new file mode 100644 index 0000000000..e4b0f8fe57 --- /dev/null +++ b/intl/hash-string.c @@ -0,0 +1,47 @@ +/* Implements a string hashing function. + Copyright (C) 1995, 1997, 1998, 2000, 2003 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 "hash-string.h" + + +/* Defines the so called `hashpjw' function by P.J. Weinberger + [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools, + 1986, 1987 Bell Telephone Laboratories, Inc.] */ +unsigned long int +__hash_string (str_param) + const char *str_param; +{ + unsigned long int hval, g; + const char *str = str_param; + + /* Compute the hash value for the given string. */ + hval = 0; + while (*str != '\0') + { + hval <<= 4; + hval += (unsigned long int) *str++; + g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4)); + if (g != 0) + { + hval ^= g >> (HASHWORDBITS - 8); + hval ^= g; + } + } + return hval; +} diff --git a/intl/hash-string.h b/intl/hash-string.h index ae515a7655..578a329e7d 100644 --- a/intl/hash-string.h +++ b/intl/hash-string.h @@ -1,5 +1,5 @@ /* Implements a string hashing function. - Copyright (C) 1995, 1997, 1998, 2000 Free Software Foundation, Inc. + Copyright (C) 1995, 1997, 1998, 2000, 2003 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 @@ -34,27 +34,5 @@ /* Defines the so called `hashpjw' function by P.J. Weinberger [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools, 1986, 1987 Bell Telephone Laboratories, Inc.] */ -static unsigned long int hash_string PARAMS ((const char *__str_param)); - -static inline unsigned long int -hash_string (str_param) - const char *str_param; -{ - unsigned long int hval, g; - const char *str = str_param; - - /* Compute the hash value for the given string. */ - hval = 0; - while (*str != '\0') - { - hval <<= 4; - hval += (unsigned long int) *str++; - g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4)); - if (g != 0) - { - hval ^= g >> (HASHWORDBITS - 8); - hval ^= g; - } - } - return hval; -} +extern unsigned long int __hash_string PARAMS ((const char *__str_param)) + attribute_hidden; diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c index afcbd3c9fb..55dab143d3 100644 --- a/intl/loadmsgcat.c +++ b/intl/loadmsgcat.c @@ -1,5 +1,5 @@ /* Load needed message catalogs. - Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2003 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 @@ -1209,7 +1209,7 @@ _nl_load_domain (domain_file, domainbinding) for (i = 0; i < n_sysdep_strings; i++) { const char *msgid = inmem_orig_sysdep_tab[i].pointer; - nls_uint32 hash_val = hash_string (msgid); + nls_uint32 hash_val = __hash_string (msgid); nls_uint32 idx = hash_val % domain->hash_size; nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2)); diff --git a/io/ftw.c b/io/ftw.c index 64cab00252..c7c2038c06 100644 --- a/io/ftw.c +++ b/io/ftw.c @@ -258,6 +258,7 @@ find_object (struct ftw_data *data, struct STAT *st) static inline int +__attribute ((always_inline)) open_dir_stream (struct ftw_data *data, struct dir_data *dirp) { int result = 0; @@ -348,7 +349,8 @@ open_dir_stream (struct ftw_data *data, struct dir_data *dirp) } -static inline int +static int +internal_function process_entry (struct ftw_data *data, struct dir_data *dir, const char *name, size_t namlen) { diff --git a/locale/findlocale.c b/locale/findlocale.c index 9c9b85347f..04b197d266 100644 --- a/locale/findlocale.c +++ b/locale/findlocale.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -28,6 +28,7 @@ #include "localeinfo.h" #include "../iconv/gconv_charset.h" +#include "../iconv/gconv_int.h" #ifdef NL_CURRENT_INDIRECT diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c index 1df7df7e50..c3865e4dd5 100644 --- a/locale/programs/linereader.c +++ b/locale/programs/linereader.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -110,6 +110,35 @@ lr_eof (struct linereader *lr) } +void +lr_ignore_rest (struct linereader *lr, int verbose) +{ + if (verbose) + { + while (isspace (lr->buf[lr->idx]) && lr->buf[lr->idx] != '\n' + && lr->buf[lr->idx] != lr->comment_char) + if (lr->buf[lr->idx] == '\0') + { + if (lr_next (lr) < 0) + return; + } + else + ++lr->idx; + + if (lr->buf[lr->idx] != '\n' && ! feof (lr->fp) + && lr->buf[lr->idx] != lr->comment_char) + lr_error (lr, _("trailing garbage at end of line")); + } + + /* Ignore continued line. */ + while (lr->bufact > 0 && lr->buf[lr->bufact - 1] != '\n') + if (lr_next (lr) < 0) + break; + + lr->idx = lr->bufact; +} + + void lr_close (struct linereader *lr) { diff --git a/locale/programs/linereader.h b/locale/programs/linereader.h index a44360979b..27043b2456 100644 --- a/locale/programs/linereader.h +++ b/locale/programs/linereader.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper, . @@ -95,6 +95,7 @@ extern struct token *lr_token (struct linereader *lr, struct localedef_t *locale, const struct repertoire_t *repertoire, int verbose); +extern void lr_ignore_rest (struct linereader *lr, int verbose); #define lr_error(lr, fmt, args...) \ @@ -103,6 +104,7 @@ extern struct token *lr_token (struct linereader *lr, static inline int +__attribute ((always_inline)) lr_getc (struct linereader *lr) { if (lr->idx == lr->bufact) @@ -120,6 +122,7 @@ lr_getc (struct linereader *lr) static inline int +__attribute ((always_inline)) lr_ungetc (struct linereader *lr, int ch) { if (lr->idx == 0) @@ -142,33 +145,4 @@ lr_ungetn (struct linereader *lr, size_t n) } -static inline void -lr_ignore_rest (struct linereader *lr, int verbose) -{ - if (verbose) - { - while (isspace (lr->buf[lr->idx]) && lr->buf[lr->idx] != '\n' - && lr->buf[lr->idx] != lr->comment_char) - if (lr->buf[lr->idx] == '\0') - { - if (lr_next (lr) < 0) - return; - } - else - ++lr->idx; - - if (lr->buf[lr->idx] != '\n' && ! feof (lr->fp) - && lr->buf[lr->idx] != lr->comment_char) - lr_error (lr, _("trailing garbage at end of line")); - } - - /* Ignore continued line. */ - while (lr->bufact > 0 && lr->buf[lr->bufact - 1] != '\n') - if (lr_next (lr) < 0) - break; - - lr->idx = lr->bufact; -} - - #endif /* linereader.h */ diff --git a/locale/setlocale.c b/locale/setlocale.c index 50c752826c..9f6e96439b 100644 --- a/locale/setlocale.c +++ b/locale/setlocale.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 95-99, 2000, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 1995-2000, 2002, 2003 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 @@ -128,7 +128,7 @@ extern int _nl_msg_cat_cntr; /* Construct a new composite name. */ -static inline char * +static char * new_composite_name (int category, const char *newnames[__LC_LAST]) { size_t last_len = 0; diff --git a/locale/weight.h b/locale/weight.h index 439accdcaa..d67e9d9c24 100644 --- a/locale/weight.h +++ b/locale/weight.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1996,1997,1998,1999,2000,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Ulrich Drepper, . @@ -19,6 +19,7 @@ /* Find index of weight. */ static inline int32_t +__attribute ((always_inline)) findidx (const unsigned char **cpp) { int_fast32_t i = table[*(*cpp)++]; diff --git a/locale/weightwc.h b/locale/weightwc.h index 7eb72187f6..649b7a77ad 100644 --- a/locale/weightwc.h +++ b/locale/weightwc.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2000, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1996-2000, 2001, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Ulrich Drepper, . @@ -19,6 +19,7 @@ /* Find index of weight. */ static inline int32_t +__attribute ((always_inline)) findidx (const wint_t **cpp) { int32_t i; diff --git a/nptl/ChangeLog b/nptl/ChangeLog index c7af57c8ca..feeae3b711 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2003-06-11 Ulrich Drepper + + * allocatestack.c (queue_stack): Always inline. + * ptreadhP.h (__do_cancel): Likewise. + 2003-06-10 Jakub Jelinek * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c index 9653b62cab..bfa5ea1160 100644 --- a/nptl/allocatestack.c +++ b/nptl/allocatestack.c @@ -202,6 +202,7 @@ get_cached_stack (size_t *sizep, void **memp) /* Add a stack frame which is not used anymore to the stack. Must be called with the cache lock held. */ static inline void +__attribute ((always_inline)) queue_stack (struct pthread *stack) { /* We unconditionally add the stack to the list. The memory may diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index fe982af87b..a979f07f0b 100644 --- a/nptl/pthreadP.h +++ b/nptl/pthreadP.h @@ -116,7 +116,7 @@ extern void __pthread_unwind (__pthread_unwind_buf_t *__buf) /* Called when a thread reacts on a cancellation request. */ static inline void -__attribute ((noreturn)) +__attribute ((noreturn, always_inline)) __do_cancel (void) { struct pthread *self = THREAD_SELF;