aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog89
-rw-r--r--crypt/crypt_util.c2
-rw-r--r--ctype/ctype-extn.c6
-rw-r--r--elf/dynamic-link.h12
-rw-r--r--iconv/gconv_open.c5
-rw-r--r--include/features.h6
-rw-r--r--include/libintl.h9
-rw-r--r--inet/rexec.c5
-rw-r--r--intl/bindtextdom.c24
-rw-r--r--intl/dcigettext.c26
-rw-r--r--libio/libio.h4
-rw-r--r--locale/SYS_libc.c4
-rw-r--r--locale/lc-ctype.c6
-rw-r--r--locale/programs/charmap.c8
-rw-r--r--locale/programs/linereader.c6
-rw-r--r--nis/nis_callback.c4
-rw-r--r--nis/nis_clone_dir.c4
-rw-r--r--nis/nis_clone_obj.c6
-rw-r--r--nis/nis_clone_res.c4
-rw-r--r--nptl/ChangeLog6
-rw-r--r--nptl/sysdeps/pthread/pthread-functions.h4
-rw-r--r--posix/regex_internal.h2
-rw-r--r--resolv/nss_dns/dns-network.c4
-rw-r--r--resolv/res_send.c9
-rw-r--r--sunrpc/auth_des.c8
-rw-r--r--sunrpc/create_xid.c2
-rw-r--r--sunrpc/key_call.c2
-rw-r--r--sunrpc/rtime.c2
-rw-r--r--sunrpc/svcauth_des.c2
-rw-r--r--sunrpc/xdr.c14
-rw-r--r--sunrpc/xdr_intXX_t.c9
-rw-r--r--sysdeps/generic/dl-hash.h5
-rw-r--r--sysdeps/generic/libc-start.c6
-rw-r--r--sysdeps/i386/dl-machine.h4
-rw-r--r--sysdeps/i386/i686/dl-hash.h6
-rw-r--r--sysdeps/posix/getaddrinfo.c2
-rw-r--r--sysdeps/powerpc/powerpc32/dl-machine.h13
-rw-r--r--sysdeps/powerpc/powerpc64/dl-machine.h12
-rw-r--r--sysdeps/sh/dl-machine.h4
39 files changed, 210 insertions, 136 deletions
diff --git a/ChangeLog b/ChangeLog
index ce65a02..3a761c5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,94 @@
2005-02-16 Roland McGrath <roland@redhat.com>
+ * intl/dcigettext.c (_nl_find_msg): Add a cast.
+
+ * nis/nis_clone_dir.c (nis_clone_directory): Use char * for ADDR.
+ * nis/nis_clone_obj.c (nis_clone_object): Likewise.
+ * nis/nis_clone_res.c (nis_clone_result): Likewise.
+
+ * resolv/nss_dns/dns-network.c (getanswer_r): Use const unsigned char *
+ for END_OF_MESSAGE and CP.
+
+ * resolv/res_send.c (send_dg): Add else branch for case impossible
+ unless `poll' is buggy.
+
+ * crypt/crypt_util.c (__setkey_r): Add a cast.
+
+ * locale/programs/linereader.c (get_toplvl_escape): Use size_t for
+ NBYTES, and unsigned char * for BYTES.
+
+ * locale/programs/charmap.c (charmap_new_char): Use size_t and
+ unsighed char * for NBYTES, BYTES parameters.
+
+ * sysdeps/generic/dl-hash.h (_dl_elf_hash): Take const char * argument
+ and cast it.
+ * sysdeps/i386/i686/dl-hash.h (_dl_elf_hash): Likewise.
+
+ * sunrpc/create_xid.c (_create_xid): Don't use unsigned long for RES.
+
+ * sunrpc/svcauth_des.c (_svcauth_des): Fix cast type.
+
+ * sunrpc/auth_des.c (authdes_create): Don't use u_char for PKEY_DATA.
+ (authdes_marshal): Don't use unsigned int for LEN.
+ * sunrpc/xdr.c (xdr_hyper): Don't use unsigned long for T2.
+ (xdr_u_hyper): Likewise.
+ (xdr_u_short): Don't use u_long for L.
+ * sunrpc/xdr_intXX_t.c (xdr_int64_t): Don't use uint32_t for T2.
+
+ * inet/rexec.c (rexec_af): Use socklen_t.
+ * sunrpc/key_call.c (getkeyserv_handle): Likewise.
+ * sunrpc/rtime.c (rtime): Likewise.
+ * resolv/res_send.c (send_vc, send_dg): Likewise.
+ * nis/nis_callback.c (__nis_create_callback): Likewise.
+
+ * sysdeps/generic/libc-start.c: Use unsigned int for nthreads ptr.
+
+ * sysdeps/posix/getaddrinfo.c (gaih_inet): Fix type of ADDR local.
+
+ * libio/libio.h (_IO_BE): Add parenthesis around EXPR.
+
+ * intl/dcigettext.c (INTVARDEF, INTUSE): Macros removed.
+ (_nl_default_dirname): Use libc_hidden_data_def instead of INTVARDEF.
+ (libc_freeres_fn, DCIGETTEXT): Don't use INTUSE.
+ * intl/bindtextdom.c (INTUSE): Macro removed.
+ (_nl_default_dirname): Use libc_hidden_proto.
+ (set_binding_values): Don't use INTUSE.
+ * include/libintl.h (_libc_intl_domainname_internal): Decl removed.
+ (_libc_intl_domainname): Use libc_hidden_proto.
+ * posix/regex_internal.h (gettext): Remove INTUSE on it.
+ * locale/SYS_libc.c (_libc_intl_domainname): Use libc_hidden_data_def
+ rather than INTDEF.
+ * include/libintl.h (_): Don't use *_internal name.
+
+ * ctype/ctype-extn.c (__ctype_tolower, __ctype_toupper): Use int32_t,
+ not uint32_t.
+ * locale/lc-ctype.c (_nl_postload_ctype): Likewise for assignments.
+
+ * iconv/gconv_open.c (__gconv_open): Remove useless cast.
+
+ [BZ #721]
+ * sysdeps/i386/dl-machine.h (ELF_MACHINE_NO_RELA): Define this outside
+ of [RESOLVE_MAP].
+ * sysdeps/sh/dl-machine.h (ELF_MACHINE_NO_REL): Likewise.
+ * sysdeps/powerpc/powerpc32/dl-machine.h
+ (elf_machine_rel, elf_machine_rel_relative): Removed.
+ * sysdeps/powerpc/powerpc64/dl-machine.h
+ (elf_machine_rel, elf_machine_rel_relative): Removed.
+
+2005-02-03 Alexandre Oliva <aoliva@redhat.com>
+
+ [BZ #721]
+ * elf/dynamic-link.h: Don't declare nested auto functions that are
+ not going to be defined.
+
+2004-07-23 Jakub Jelinek <jakub@redhat.com>
+
+ [BZ #284]
+ * include/features.h (_POSIX_SOURCE, _POSIX_C_SOURCE): Define
+ if _XOPEN_SOURCE >= 500 even if __STRICT_ANSI__ is defined.
+
+2005-02-16 Roland McGrath <roland@redhat.com>
+
* sysdeps/generic/libc-start.c (LIBC_START_MAIN): Move UBP_EV defn
inside [! SHARED] where it's used.
diff --git a/crypt/crypt_util.c b/crypt/crypt_util.c
index 5467a97..0db5be7 100644
--- a/crypt/crypt_util.c
+++ b/crypt/crypt_util.c
@@ -902,7 +902,7 @@ __setkey_r(__key, __data)
c = c << 1 | *__key++;
ktab[i] = c >> 1;
}
- _ufc_mk_keytab_r(ktab, __data);
+ _ufc_mk_keytab_r((char *) ktab, __data);
}
weak_alias (__setkey_r, setkey_r)
diff --git a/ctype/ctype-extn.c b/ctype/ctype-extn.c
index b54080d..d6851d4 100644
--- a/ctype/ctype-extn.c
+++ b/ctype/ctype-extn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1997,1999,2000,2002,2005 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
@@ -20,9 +20,9 @@
#include <ctype.h>
#define __ctype_tolower \
- ((uint32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_TOLOWER) + 128)
+ ((int32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_TOLOWER) + 128)
#define __ctype_toupper \
- ((uint32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_TOUPPER) + 128)
+ ((int32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_TOUPPER) + 128)
/* Real function versions of the non-ANSI ctype functions. isblank is
now in ISO C99 but we leave it here. */
diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h
index 5118144..1d6806f 100644
--- a/elf/dynamic-link.h
+++ b/elf/dynamic-link.h
@@ -1,5 +1,5 @@
/* Inline functions for dynamic linking.
- Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1995-2002, 2003, 2004, 2005 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
@@ -31,20 +31,24 @@
optimizing away alignment tests or using word instructions for
copying memory, breaking the very code written to handle the
unaligned cases. */
+# if ! ELF_MACHINE_NO_REL
auto void __attribute__((always_inline))
elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
const ElfW(Sym) *sym, const struct r_found_version *version,
void *const reloc_addr);
auto void __attribute__((always_inline))
+elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
+ void *const reloc_addr);
+# endif
+# if ! ELF_MACHINE_NO_RELA
+auto void __attribute__((always_inline))
elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
const ElfW(Sym) *sym, const struct r_found_version *version,
void *const reloc_addr);
auto void __attribute__((always_inline))
-elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
- void *const reloc_addr);
-auto void __attribute__((always_inline))
elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
void *const reloc_addr);
+# endif
# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
auto void __attribute__((always_inline))
elf_machine_lazy_rel (struct link_map *map,
diff --git a/iconv/gconv_open.c b/iconv/gconv_open.c
index 90da784..b23ab44 100644
--- a/iconv/gconv_open.c
+++ b/iconv/gconv_open.c
@@ -1,5 +1,6 @@
/* Find matching transformation algorithms and initialize steps.
- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1997,1998,1999,2000,2001,2004,2005
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -279,7 +280,7 @@ __gconv_open (const char *toset, const char *fromset, __gconv_t *handle,
/* Allocate the buffer. */
size = (GCONV_NCHAR_GOAL * steps[cnt].__max_needed_to);
- result->__data[cnt].__outbuf = (char *) malloc (size);
+ result->__data[cnt].__outbuf = malloc (size);
if (result->__data[cnt].__outbuf == NULL)
{
res = __GCONV_NOMEM;
diff --git a/include/features.h b/include/features.h
index e9227bf..822fe49 100644
--- a/include/features.h
+++ b/include/features.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1993,1995-2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1993,1995-2003,2004,2005 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
@@ -181,8 +181,8 @@
/* If none of the ANSI/POSIX macros are defined, use POSIX.1 and POSIX.2
(and IEEE Std 1003.1b-1993 unless _XOPEN_SOURCE is defined). */
-#if (!defined __STRICT_ANSI__ && !defined _POSIX_SOURCE && \
- !defined _POSIX_C_SOURCE)
+#if ((!defined __STRICT_ANSI__ || (_XOPEN_SOURCE - 0) >= 500) && \
+ !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE)
# define _POSIX_SOURCE 1
# if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500
# define _POSIX_C_SOURCE 2
diff --git a/include/libintl.h b/include/libintl.h
index 8f312f1..20083d4 100644
--- a/include/libintl.h
+++ b/include/libintl.h
@@ -41,7 +41,7 @@ extern char *__bind_textdomain_codeset (__const char *__domainname,
__const char *__codeset);
extern const char _libc_intl_domainname[];
-extern const char _libc_intl_domainname_internal[] attribute_hidden;
+libc_hidden_proto (_libc_intl_domainname)
/* Define the macros `_' and `N_' for conveniently marking translatable
strings in the libc source code. We have to make sure we get the
@@ -52,12 +52,7 @@ extern const char _libc_intl_domainname_internal[] attribute_hidden;
# undef _
/* This is defined as an optimizing macro, so use it. */
-# if !defined NOT_IN_libc && defined SHARED
-# define _(msgid) \
- __dcgettext_internal (_libc_intl_domainname_internal, msgid, LC_MESSAGES)
-# else
-# define _(msgid) \
+# define _(msgid) \
__dcgettext (_libc_intl_domainname, msgid, LC_MESSAGES)
-#endif
#endif
diff --git a/inet/rexec.c b/inet/rexec.c
index 3c14836..6deb1fe 100644
--- a/inet/rexec.c
+++ b/inet/rexec.c
@@ -111,7 +111,8 @@ retry:
port = 0;
} else {
char num[32];
- int s2, sa2len;
+ int s2;
+ socklen_t sa2len;
s2 = __socket(res0->ai_family, res0->ai_socktype, 0);
if (s2 < 0) {
@@ -136,7 +137,7 @@ retry:
port = atoi(servbuff);
(void) sprintf(num, "%u", port);
(void) __write(s, num, strlen(num)+1);
- { int len = sizeof (from);
+ { socklen_t len = sizeof (from);
s3 = TEMP_FAILURE_RETRY (accept(s2, (struct sockaddr *)&from,
&len));
__close(s2);
diff --git a/intl/bindtextdom.c b/intl/bindtextdom.c
index 39256ed..546da8e 100644
--- a/intl/bindtextdom.c
+++ b/intl/bindtextdom.c
@@ -1,5 +1,5 @@
/* Implementation of the bindtextdomain(3) function
- Copyright (C) 1995-1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1995-1998, 2000, 2001, 2002, 2005 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
@@ -60,9 +60,7 @@
/* Contains the default location of the message catalogs. */
extern const char _nl_default_dirname[];
#ifdef _LIBC
-extern const char _nl_default_dirname_internal[] attribute_hidden;
-#else
-# define INTUSE(name) name
+libc_hidden_proto (_nl_default_dirname)
#endif
/* List with bindings of specific domains. */
@@ -152,8 +150,8 @@ set_binding_values (domainname, dirnamep, codesetp)
char *result = binding->dirname;
if (strcmp (dirname, result) != 0)
{
- if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0)
- result = (char *) INTUSE(_nl_default_dirname);
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ result = (char *) _nl_default_dirname;
else
{
#if defined _LIBC || defined HAVE_STRDUP
@@ -168,7 +166,7 @@ set_binding_values (domainname, dirnamep, codesetp)
if (__builtin_expect (result != NULL, 1))
{
- if (binding->dirname != INTUSE(_nl_default_dirname))
+ if (binding->dirname != _nl_default_dirname)
free (binding->dirname);
binding->dirname = result;
@@ -222,7 +220,7 @@ set_binding_values (domainname, dirnamep, codesetp)
{
/* Simply return the default values. */
if (dirnamep)
- *dirnamep = INTUSE(_nl_default_dirname);
+ *dirnamep = _nl_default_dirname;
if (codesetp)
*codesetp = NULL;
}
@@ -244,11 +242,11 @@ set_binding_values (domainname, dirnamep, codesetp)
if (dirname == NULL)
/* The default value. */
- dirname = INTUSE(_nl_default_dirname);
+ dirname = _nl_default_dirname;
else
{
- if (strcmp (dirname, INTUSE(_nl_default_dirname)) == 0)
- dirname = INTUSE(_nl_default_dirname);
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ dirname = _nl_default_dirname;
else
{
char *result;
@@ -271,7 +269,7 @@ set_binding_values (domainname, dirnamep, codesetp)
}
else
/* The default value. */
- new_binding->dirname = (char *) INTUSE(_nl_default_dirname);
+ new_binding->dirname = (char *) _nl_default_dirname;
new_binding->codeset_cntr = 0;
@@ -327,7 +325,7 @@ set_binding_values (domainname, dirnamep, codesetp)
if (0)
{
failed_codeset:
- if (new_binding->dirname != INTUSE(_nl_default_dirname))
+ if (new_binding->dirname != _nl_default_dirname)
free (new_binding->dirname);
failed_dirname:
free (new_binding);
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
index d711172..75762ea 100644
--- a/intl/dcigettext.c
+++ b/intl/dcigettext.c
@@ -1,5 +1,5 @@
/* Implementation of the internal dcigettext function.
- Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1995-2002,2003,2004,2005 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
@@ -236,13 +236,6 @@ transcmp (p1, p2)
}
#endif
-#ifndef INTVARDEF
-# define INTVARDEF
-#endif
-#ifndef INTUSE
-# define INTUSE(name) name
-#endif
-
/* Name of the default domain used for gettext(3) prior any call to
textdomain(3). The default value for this is "messages". */
const char _nl_default_default_domain[] attribute_hidden = "messages";
@@ -252,8 +245,15 @@ const char *_nl_current_default_domain attribute_hidden
= _nl_default_default_domain;
/* Contains the default location of the message catalogs. */
+
+#ifdef _LIBC
+extern const char _nl_default_dirname[];
+libc_hidden_proto (_nl_default_dirname)
+#endif
const char _nl_default_dirname[] = LOCALEDIR;
-INTVARDEF (_nl_default_dirname)
+#ifdef _LIBC
+libc_hidden_data_def (_nl_default_dirname)
+#endif
/* List with bindings of specific domains created by bindtextdomain()
calls. */
@@ -485,7 +485,7 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
}
if (binding == NULL)
- dirname = (char *) INTUSE(_nl_default_dirname);
+ dirname = (char *) _nl_default_dirname;
else if (binding->dirname[0] == '/')
dirname = binding->dirname;
else
@@ -882,7 +882,7 @@ _nl_find_msg (domain_file, domainbinding, msgid, lengthp)
goto converted;
}
- inbuf = result;
+ inbuf = (const unsigned char *) result;
# else
# if HAVE_ICONV
const char *inptr = (const char *) inbuf;
@@ -950,7 +950,7 @@ _nl_find_msg (domain_file, domainbinding, msgid, lengthp)
newmem->next = transmem_list;
transmem_list = newmem;
- freemem = newmem->data;
+ freemem = (unsigned char *) newmem->data;
freemem_size -= offsetof (struct transmem_list, data);
# else
transmem_list = newmem;
@@ -1161,7 +1161,7 @@ libc_freeres_fn (free_mem)
{
struct binding *oldp = _nl_domain_bindings;
_nl_domain_bindings = _nl_domain_bindings->next;
- if (oldp->dirname != INTUSE(_nl_default_dirname))
+ if (oldp->dirname != _nl_default_dirname)
/* Yes, this is a pointer comparison. */
free (oldp->dirname);
free (oldp->codeset);
diff --git a/libio/libio.h b/libio/libio.h
index 3b6facd..21e7048 100644
--- a/libio/libio.h
+++ b/libio/libio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1995, 1997-2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1995,1997-2003,2004,2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Per Bothner <bothner@cygnus.com>.
@@ -411,7 +411,7 @@ extern _IO_wint_t __wuflow (_IO_FILE *) __THROW;
extern _IO_wint_t __woverflow (_IO_FILE *, _IO_wint_t) __THROW;
#if __GNUC__ >= 3
-# define _IO_BE(expr, res) __builtin_expect (expr, res)
+# define _IO_BE(expr, res) __builtin_expect ((expr), res)
#else
# define _IO_BE(expr, res) (expr)
#endif
diff --git a/locale/SYS_libc.c b/locale/SYS_libc.c
index 4f9e946..a879b68 100644
--- a/locale/SYS_libc.c
+++ b/locale/SYS_libc.c
@@ -1,5 +1,7 @@
/* Define a constant for the dgettext domainname for libc internal messages,
so the string constant is not repeated in dozens of object files. */
+#include <libintl.h>
+
const char _libc_intl_domainname[] = "libc";
-INTDEF(_libc_intl_domainname)
+libc_hidden_data_def (_libc_intl_domainname)
diff --git a/locale/lc-ctype.c b/locale/lc-ctype.c
index 21964b9..a0a54fb 100644
--- a/locale/lc-ctype.c
+++ b/locale/lc-ctype.c
@@ -1,5 +1,5 @@
/* Define current locale data for LC_CTYPE category.
- Copyright (C) 1995,1996,1997,1998,1999,2000,2002,2003
+ Copyright (C) 1995,1996,1997,1998,1999,2000,2002,2003,2005
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -102,8 +102,8 @@ compat_symbol (libc, __ctype32_tolower, __ctype32_tolower, GLIBC_2_2);
compat_symbol (libc, __ctype32_toupper, __ctype32_toupper, GLIBC_2_2);
__ctype_b = current (uint16_t, CLASS, 128);
- __ctype_toupper = current (uint32_t, TOUPPER, 128);
- __ctype_tolower = current (uint32_t, TOLOWER, 128);
+ __ctype_toupper = current (int32_t, TOUPPER, 128);
+ __ctype_tolower = current (int32_t, TOLOWER, 128);
__ctype32_b = current (uint32_t, CLASS32, 0);
__ctype32_toupper = current (uint32_t, TOUPPER32, 0);
__ctype32_tolower = current (uint32_t, TOLOWER32, 0);
diff --git a/locale/programs/charmap.c b/locale/programs/charmap.c
index 8dbac6f..b8aa1aa 100644
--- a/locale/programs/charmap.c
+++ b/locale/programs/charmap.c
@@ -49,8 +49,9 @@ static void new_width (struct linereader *cmfile, struct charmap_t *result,
const char *from, const char *to,
unsigned long int width);
static void charmap_new_char (struct linereader *lr, struct charmap_t *cm,
- int nbytes, char *bytes, const char *from,
- const char *to, int decimal_ellipsis, int step);
+ size_t nbytes, unsigned char *bytes,
+ const char *from, const char *to,
+ int decimal_ellipsis, int step);
bool enc_not_ascii_compatible;
@@ -927,7 +928,8 @@ charmap_find_value (const struct charmap_t *cm, const char *name, size_t len)
static void
charmap_new_char (struct linereader *lr, struct charmap_t *cm,
- int nbytes, char *bytes, const char *from, const char *to,
+ size_t nbytes, unsigned char *bytes,
+ const char *from, const char *to,
int decimal_ellipsis, int step)
{
hash_table *ht = &cm->char_table;
diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c
index 233799a..5c8cf65 100644
--- a/locale/programs/linereader.c
+++ b/locale/programs/linereader.c
@@ -1,4 +1,4 @@
-/* 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 Ulrich Drepper <drepper@gnu.org>, 1996.
@@ -347,8 +347,8 @@ get_toplvl_escape (struct linereader *lr)
/* This is supposed to be a numeric value. We return the
numerical value and the number of bytes. */
size_t start_idx = lr->idx - 1;
- char *bytes = lr->token.val.charcode.bytes;
- int nbytes = 0;
+ unsigned char *bytes = lr->token.val.charcode.bytes;
+ size_t nbytes = 0;
int ch;
do
diff --git a/nis/nis_callback.c b/nis/nis_callback.c
index b867b39..7d1b9f8 100644
--- a/nis/nis_callback.c
+++ b/nis/nis_callback.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
@@ -274,7 +274,7 @@ __nis_create_callback (int (*callback) (const_nis_name, const nis_object *,
struct nis_cb *cb;
int sock = RPC_ANYSOCK;
struct sockaddr_in sin;
- int len = sizeof (struct sockaddr_in);
+ socklen_t len = sizeof (struct sockaddr_in);
char addr[NIS_MAXNAMELEN + 1];
unsigned short port;
diff --git a/nis/nis_clone_dir.c b/nis/nis_clone_dir.c
index 0271db1..92e883f 100644
--- a/nis/nis_clone_dir.c
+++ b/nis/nis_clone_dir.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (c) 1997, 1998, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
@@ -26,7 +26,7 @@
directory_obj *
nis_clone_directory (const directory_obj *src, directory_obj *dest)
{
- unsigned char *addr;
+ char *addr;
unsigned int size;
XDR xdrs;
directory_obj *res;
diff --git a/nis/nis_clone_obj.c b/nis/nis_clone_obj.c
index 0b163fe..4d88200 100644
--- a/nis/nis_clone_obj.c
+++ b/nis/nis_clone_obj.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997, 1998, 2004 Free Software Foundation, Inc.
+/* Copyright (c) 1997, 1998, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
@@ -26,8 +26,8 @@
nis_object *
nis_clone_object (const nis_object *src, nis_object *dest)
{
- unsigned char *addr;
- unsigned long size;
+ char *addr;
+ unsigned int size;
XDR xdrs;
nis_object *res = NULL;
diff --git a/nis/nis_clone_res.c b/nis/nis_clone_res.c
index 135f397..a0e098c 100644
--- a/nis/nis_clone_res.c
+++ b/nis/nis_clone_res.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (c) 1997, 1998, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
@@ -26,7 +26,7 @@
nis_result *
nis_clone_result (const nis_result *src, nis_result *dest)
{
- unsigned char *addr;
+ char *addr;
unsigned int size;
XDR xdrs;
nis_result *res;
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index a575a82..3463c5d 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2005-02-16 Roland McGrath <roland@redhat.com>
+
+ * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
+ Use unsigned int * for ptr_nthreads.
+
2005-02-14 Alan Modra <amodra@bigpond.net.au>
* sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
@@ -15,6 +20,7 @@
2005-01-26 Jakub Jelinek <jakub@redhat.com>
+ [BZ #737]
* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
at least gotntpoff relocation and addition.
diff --git a/nptl/sysdeps/pthread/pthread-functions.h b/nptl/sysdeps/pthread/pthread-functions.h
index 2845346..d75bbbb 100644
--- a/nptl/sysdeps/pthread/pthread-functions.h
+++ b/nptl/sysdeps/pthread/pthread-functions.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -90,7 +90,7 @@ struct pthread_functions
void (*ptr__pthread_cleanup_pop_restore) (struct _pthread_cleanup_buffer *,
int);
#define HAVE_PTR_NTHREADS
- int *ptr_nthreads;
+ unsigned int *ptr_nthreads;
void (*ptr___pthread_unwind) (__pthread_unwind_buf_t *)
__attribute ((noreturn)) __cleanup_fct_attribute;
void (*ptr__nptl_deallocate_tsd) (void);
diff --git a/posix/regex_internal.h b/posix/regex_internal.h
index f065cf4..58fa749 100644
--- a/posix/regex_internal.h
+++ b/posix/regex_internal.h
@@ -60,7 +60,7 @@
# ifdef _LIBC
# undef gettext
# define gettext(msgid) \
- INTUSE(__dcgettext) (INTUSE(_libc_intl_domainname), msgid, LC_MESSAGES)
+ INTUSE(__dcgettext) (_libc_intl_domainname, msgid, LC_MESSAGES)
# endif
#else
# define gettext(msgid) (msgid)
diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c
index 6ff60f3..97d9263 100644
--- a/resolv/nss_dns/dns-network.c
+++ b/resolv/nss_dns/dns-network.c
@@ -262,14 +262,14 @@ getanswer_r (const querybuf *answer, int anslen, struct netent *result,
char linebuffer[0];
} *net_data = (struct net_data *) buffer;
int linebuflen = buflen - offsetof (struct net_data, linebuffer);
- const char *end_of_message = &answer->buf[anslen];
+ const unsigned char *end_of_message = &answer->buf[anslen];
const HEADER *header_pointer = &answer->hdr;
/* #/records in the answer section. */
int answer_count = ntohs (header_pointer->ancount);
/* #/entries in the question section. */
int question_count = ntohs (header_pointer->qdcount);
char *bp = net_data->linebuffer;
- const char *cp = &answer->buf[HFIXEDSZ];
+ const unsigned char *cp = &answer->buf[HFIXEDSZ];
char **alias_pointer;
int have_answer;
char *ans;
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 8fb21a9..1a53e5b 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -632,7 +632,7 @@ send_vc(res_state statp,
/* Are we still talking to whom we want to talk to? */
if (statp->_vcsock >= 0 && (statp->_flags & RES_F_VC) != 0) {
struct sockaddr_in6 peer;
- int size = sizeof peer;
+ socklen_t size = sizeof peer;
if (getpeername(statp->_vcsock,
(struct sockaddr *)&peer, &size) < 0 ||
@@ -809,7 +809,8 @@ send_dg(res_state statp,
int ptimeout;
struct sockaddr_in6 from;
static int socket_pf = 0;
- int fromlen, resplen, seconds, n;
+ socklen_t fromlen;
+ int resplen, seconds, n;
if (EXT(statp).nssocks[ns] == -1) {
/* only try IPv6 if IPv6 NS and if not failed before */
@@ -1033,6 +1034,10 @@ send_dg(res_state statp,
res_nclose(statp);
return (0);
}
+ else {
+ /* poll should not have returned > 0 in this case. */
+ abort ();
+ }
}
#ifdef DEBUG
diff --git a/sunrpc/auth_des.c b/sunrpc/auth_des.c
index fc5956d..7fe96ca 100644
--- a/sunrpc/auth_des.c
+++ b/sunrpc/auth_des.c
@@ -107,14 +107,14 @@ authdes_create (const char *servername, u_int window,
/* syncaddr - optional addr of host to sync with */
/* ckey - optional conversation key to use */
{
- u_char pkey_data[1024];
+ char pkey_data[1024];
netobj pkey;
if (!getpublickey (servername, pkey_data))
return NULL;
- pkey.n_bytes = (char *) pkey_data;
- pkey.n_len = strlen ((char *) pkey_data) + 1;
+ pkey.n_bytes = pkey_data;
+ pkey.n_len = strlen (pkey_data) + 1;
return INTUSE(authdes_pk_create) (servername, &pkey, window, syncaddr, ckey);
}
@@ -237,7 +237,7 @@ authdes_marshal (AUTH *auth, XDR *xdrs)
des_block cryptbuf[2];
des_block ivec;
int status;
- unsigned int len;
+ int len;
register int32_t *ixdr;
struct timeval tval;
diff --git a/sunrpc/create_xid.c b/sunrpc/create_xid.c
index 21b83a7..4e76918 100644
--- a/sunrpc/create_xid.c
+++ b/sunrpc/create_xid.c
@@ -33,7 +33,7 @@ static struct drand48_data __rpc_lrand48_data;
unsigned long
_create_xid (void)
{
- unsigned long res;
+ long int res;
__libc_lock_lock (createxid_lock);
diff --git a/sunrpc/key_call.c b/sunrpc/key_call.c
index 211f61d..506a997 100644
--- a/sunrpc/key_call.c
+++ b/sunrpc/key_call.c
@@ -386,7 +386,7 @@ getkeyserv_handle (int vers)
struct timeval wait_time;
int fd;
struct sockaddr_un name;
- int namelen = sizeof(struct sockaddr_un);
+ socklen_t namelen = sizeof(struct sockaddr_un);
#define TOTAL_TIMEOUT 30 /* total timeout talking to keyserver */
#define TOTAL_TRIES 5 /* Number of tries */
diff --git a/sunrpc/rtime.c b/sunrpc/rtime.c
index 4996f01..ff71a55 100644
--- a/sunrpc/rtime.c
+++ b/sunrpc/rtime.c
@@ -80,7 +80,7 @@ rtime (struct sockaddr_in *addrp, struct rpc_timeval *timep,
/* RFC 868 says the time is transmitted as a 32-bit value. */
uint32_t thetime;
struct sockaddr_in from;
- int fromlen;
+ socklen_t fromlen;
int type;
if (timeout == NULL)
diff --git a/sunrpc/svcauth_des.c b/sunrpc/svcauth_des.c
index 07d7bd0..becdd50 100644
--- a/sunrpc/svcauth_des.c
+++ b/sunrpc/svcauth_des.c
@@ -315,7 +315,7 @@ _svcauth_des (register struct svc_req *rqst, register struct rpc_msg *msg)
/*
* xdr the timestamp before encrypting
*/
- ixdr = (int32_t *) cryptbuf;
+ ixdr = (uint32_t *) cryptbuf;
IXDR_PUT_INT32 (ixdr, timestamp.tv_sec - 1);
IXDR_PUT_INT32 (ixdr, timestamp.tv_usec);
diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c
index d99a998..2f894fb 100644
--- a/sunrpc/xdr.c
+++ b/sunrpc/xdr.c
@@ -225,8 +225,7 @@ INTDEF(xdr_u_long)
bool_t
xdr_hyper (XDR *xdrs, quad_t *llp)
{
- long t1;
- unsigned long int t2;
+ long int t1, t2;
if (xdrs->x_op == XDR_ENCODE)
{
@@ -240,7 +239,7 @@ xdr_hyper (XDR *xdrs, quad_t *llp)
if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
return FALSE;
*llp = ((quad_t) t1) << 32;
- *llp |= t2;
+ *llp |= (unsigned long int) t2;
return TRUE;
}
@@ -259,8 +258,7 @@ INTDEF(xdr_hyper)
bool_t
xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
{
- unsigned long t1;
- unsigned long t2;
+ long int t1, t2;
if (xdrs->x_op == XDR_ENCODE)
{
@@ -274,7 +272,7 @@ xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
return FALSE;
*ullp = ((u_quad_t) t1) << 32;
- *ullp |= t2;
+ *ullp |= (unsigned long int) t2;
return TRUE;
}
@@ -332,7 +330,7 @@ INTDEF(xdr_short)
bool_t
xdr_u_short (XDR *xdrs, u_short *usp)
{
- u_long l;
+ long l;
switch (xdrs->x_op)
{
@@ -345,7 +343,7 @@ xdr_u_short (XDR *xdrs, u_short *usp)
{
return FALSE;
}
- *usp = (u_short) l;
+ *usp = (u_short) (u_long) l;
return TRUE;
case XDR_FREE:
diff --git a/sunrpc/xdr_intXX_t.c b/sunrpc/xdr_intXX_t.c
index 9d2f92e..6c1fca2 100644
--- a/sunrpc/xdr_intXX_t.c
+++ b/sunrpc/xdr_intXX_t.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 1998, 1999, 2000, 2004 Free Software Foundation, Inc.
+/* Copyright (c) 1998, 1999, 2000, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1998.
@@ -31,10 +31,7 @@
bool_t
xdr_int64_t (XDR *xdrs, int64_t *ip)
{
- int32_t t1;
- /* This must be unsigned, otherwise we get problems with sign
- extension in the DECODE case. */
- uint32_t t2;
+ int32_t t1, t2;
switch (xdrs->x_op)
{
@@ -46,7 +43,7 @@ xdr_int64_t (XDR *xdrs, int64_t *ip)
if (!XDR_GETINT32(xdrs, &t1) || !XDR_GETINT32(xdrs, &t2))
return FALSE;
*ip = ((int64_t) t1) << 32;
- *ip |= t2;
+ *ip |= (uint32_t) t2; /* Avoid sign extension. */
return TRUE;
case XDR_FREE:
return TRUE;
diff --git a/sysdeps/generic/dl-hash.h b/sysdeps/generic/dl-hash.h
index a84bf24..243ae14 100644
--- a/sysdeps/generic/dl-hash.h
+++ b/sysdeps/generic/dl-hash.h
@@ -1,5 +1,5 @@
/* Compute hash value for given string according to ELF standard.
- Copyright (C) 1995, 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1995,1996,1997,1998,2003,2005 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
@@ -25,8 +25,9 @@
first five operations no overflow is possible so we optimized it a
bit. */
static unsigned int
-_dl_elf_hash (const unsigned char *name)
+_dl_elf_hash (const char *name_arg)
{
+ const unsigned char *name = (const unsigned char *) name_arg;
unsigned long int hash = 0;
if (*name != '\0')
{
diff --git a/sysdeps/generic/libc-start.c b/sysdeps/generic/libc-start.c
index e0a04cb..f0d69b4 100644
--- a/sysdeps/generic/libc-start.c
+++ b/sysdeps/generic/libc-start.c
@@ -241,10 +241,10 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
terminate the entire process. */
result = 0;
# ifdef SHARED
- int *const ptr = __libc_pthread_functions.ptr_nthreads;
+ unsigned int *const ptr = __libc_pthread_functions.ptr_nthreads;
# else
- extern int __nptl_nthreads __attribute ((weak));
- int *const ptr = &__nptl_nthreads;
+ extern unsigned int __nptl_nthreads __attribute ((weak));
+ unsigned int *const ptr = &__nptl_nthreads;
# endif
if (! atomic_decrement_and_test (ptr))
diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
index 78c083f..a965a4a 100644
--- a/sysdeps/i386/dl-machine.h
+++ b/sysdeps/i386/dl-machine.h
@@ -299,14 +299,14 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rel *reloc,
#endif /* !dl_machine_h */
-#ifdef RESOLVE_MAP
-
/* The i386 never uses Elf32_Rela relocations for the dynamic linker.
Prelinked libraries may use Elf32_Rela though. */
#ifdef RTLD_BOOTSTRAP
# define ELF_MACHINE_NO_RELA 1
#endif
+#ifdef RESOLVE_MAP
+
/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
MAP is the object containing the reloc. */
diff --git a/sysdeps/i386/i686/dl-hash.h b/sysdeps/i386/i686/dl-hash.h
index 61183d8..4bdd998 100644
--- a/sysdeps/i386/i686/dl-hash.h
+++ b/sysdeps/i386/i686/dl-hash.h
@@ -1,5 +1,5 @@
/* Compute hash alue for given string according to ELF standard.
- Copyright (C) 1998, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2003, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -27,7 +27,7 @@
would be much slower than the generic C implementation. So don't
use it. */
static unsigned int
-_dl_elf_hash (const unsigned char *name)
+_dl_elf_hash (const char *name)
{
unsigned int result;
unsigned int temp0;
@@ -71,7 +71,7 @@ _dl_elf_hash (const unsigned char *name)
"jnz 2b\n"
"1:\t"
: "=&r" (result), "=r" (name), "=&c" (temp0), "=&r" (temp1)
- : "0" (0), "1" (name));
+ : "0" (0), "1" ((const unsigned char *) name));
return result;
}
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index c908134..5ec7262 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -680,7 +680,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
h->h_length);
else
{
- int32_t *addr = (uint32_t *) (*pat)->addr;
+ uint32_t *addr = (uint32_t *) (*pat)->addr;
addr[3] = *(uint32_t *) h->h_addr_list[i];
addr[2] = htonl (0xffff);
addr[1] = 0;
diff --git a/sysdeps/powerpc/powerpc32/dl-machine.h b/sysdeps/powerpc/powerpc32/dl-machine.h
index 6d7d91b..545c19b 100644
--- a/sysdeps/powerpc/powerpc32/dl-machine.h
+++ b/sysdeps/powerpc/powerpc32/dl-machine.h
@@ -313,19 +313,6 @@ elf_machine_lazy_rel (struct link_map *map,
/* elf_machine_runtime_setup handles this. */
}
-auto inline void __attribute__ ((always_inline))
-elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
- const ElfW(Sym) *sym, const struct r_found_version *version,
- void *const reloc_addr)
-{
-}
-
-auto inline void __attribute__ ((always_inline))
-elf_machine_rel_relative (ElfW(Addr) l_addr, const Elf32_Rel *reloc,
- void *const reloc_addr)
-{
-}
-
/* The SVR4 ABI specifies that the JMPREL relocs must be inside the
DT_RELA table. */
#define ELF_MACHINE_PLTREL_OVERLAP 1
diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h
index 6fc9df0..33fc1b6 100644
--- a/sysdeps/powerpc/powerpc64/dl-machine.h
+++ b/sysdeps/powerpc/powerpc64/dl-machine.h
@@ -810,17 +810,5 @@ elf_machine_lazy_rel (struct link_map *map,
/* elf_machine_runtime_setup handles this. */
}
-auto inline void __attribute__ ((always_inline))
-elf_machine_rel (struct link_map *map, const Elf64_Rel *reloc,
- const ElfW(Sym) *sym, const struct r_found_version *version,
- void *const reloc_addr)
-{
-}
-
-auto inline void __attribute__ ((always_inline))
-elf_machine_rel_relative (ElfW(Addr) l_addr, const Elf64_Rel *reloc,
- void *const reloc_addr)
-{
-}
#endif /* RESOLVE */
diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h
index b66b4f0..e73c6d7 100644
--- a/sysdeps/sh/dl-machine.h
+++ b/sysdeps/sh/dl-machine.h
@@ -256,11 +256,11 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
#endif /* !dl_machine_h */
-#ifdef RESOLVE_MAP
-
/* SH never uses Elf32_Rel relocations. */
#define ELF_MACHINE_NO_REL 1
+#ifdef RESOLVE_MAP
+
/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
MAP is the object containing the reloc. */