aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--argp/argp-help.c4
-rw-r--r--elf/dl-load.c5
-rw-r--r--elf/dl-version.c3
-rw-r--r--elf/do-lookup.h4
-rw-r--r--iconv/Makefile6
-rw-r--r--iconv/gconv_cache.c2
-rw-r--r--iconv/gconv_charset.h11
-rw-r--r--iconv/gconv_conf.c6
-rw-r--r--iconv/gconv_db.c3
-rw-r--r--iconv/gconv_int.h7
-rw-r--r--iconv/gconv_simple.c12
-rw-r--r--iconv/iconvconfig.c2
-rw-r--r--iconv/loop.c2
-rw-r--r--iconvdata/cns11643.h4
-rw-r--r--iconvdata/cns11643l1.h4
-rw-r--r--iconvdata/euc-kr.c3
-rw-r--r--iconvdata/gb2312.h4
-rw-r--r--iconvdata/jis0201.h4
-rw-r--r--iconvdata/jis0208.h4
-rw-r--r--iconvdata/jis0212.h4
-rw-r--r--iconvdata/jisx0213.h4
-rw-r--r--iconvdata/ksc5601.h7
-rw-r--r--iconvdata/utf-7.c4
-rw-r--r--include/libc-symbols.h4
-rw-r--r--include/set-hooks.h14
-rw-r--r--inet/Makefile2
-rw-r--r--intl/Makefile4
-rw-r--r--intl/dcigettext.c4
-rw-r--r--intl/hash-string.c47
-rw-r--r--intl/hash-string.h28
-rw-r--r--intl/loadmsgcat.c4
-rw-r--r--io/ftw.c4
-rw-r--r--locale/findlocale.c3
-rw-r--r--locale/programs/linereader.c31
-rw-r--r--locale/programs/linereader.h34
-rw-r--r--locale/setlocale.c4
-rw-r--r--locale/weight.h3
-rw-r--r--locale/weightwc.h3
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/allocatestack.c1
-rw-r--r--nptl/pthreadP.h2
41 files changed, 189 insertions, 117 deletions
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 <miles@gnu.ai.mit.edu>.
@@ -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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 2001.
@@ -22,7 +22,7 @@
#include <locale.h>
-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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 1997.
@@ -27,7 +27,6 @@
#include <dlfcn.h>
#include <gconv_int.h>
-#include <gconv_charset.h>
/* 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <jshin@pantheon.yale.edu>
and Ulrich Drepper <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <bruno@clisp.org>, 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 <haible@clisp.cons.org>, 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 <drepper@cygnus.com>, 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 <drepper@gnu.org>, 1996.
@@ -111,6 +111,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)
{
fclose (lr->fp);
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, <drepper@gnu.org>.
@@ -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, <drepper@cygnus.com>.
@@ -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, <drepper@cygnus.com>.
@@ -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 <drepper@redhat.com>
+
+ * allocatestack.c (queue_stack): Always inline.
+ * ptreadhP.h (__do_cancel): Likewise.
+
2003-06-10 Jakub Jelinek <jakub@redhat.com>
* 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;