From 9cfe5381a17b19e6558902606a59e6ad6695e410 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 17 Feb 2005 01:19:55 +0000 Subject: [PATCH] [BZ #284, BZ #721] * 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 [BZ #721] * elf/dynamic-link.h: Don't declare nested auto functions that are not going to be defined. 2004-07-23 Jakub Jelinek [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 --- ChangeLog | 89 ++++++++++++++++++++++++ crypt/crypt_util.c | 2 +- ctype/ctype-extn.c | 6 +- elf/dynamic-link.h | 12 ++-- iconv/gconv_open.c | 5 +- include/features.h | 6 +- include/libintl.h | 9 +-- inet/rexec.c | 5 +- intl/bindtextdom.c | 24 +++---- intl/dcigettext.c | 26 +++---- libio/libio.h | 4 +- locale/SYS_libc.c | 4 +- locale/lc-ctype.c | 6 +- locale/programs/charmap.c | 8 ++- locale/programs/linereader.c | 6 +- nis/nis_callback.c | 4 +- nis/nis_clone_dir.c | 4 +- nis/nis_clone_obj.c | 6 +- nis/nis_clone_res.c | 4 +- nptl/ChangeLog | 6 ++ nptl/sysdeps/pthread/pthread-functions.h | 4 +- posix/regex_internal.h | 2 +- resolv/nss_dns/dns-network.c | 4 +- resolv/res_send.c | 9 ++- sunrpc/auth_des.c | 8 +-- sunrpc/create_xid.c | 2 +- sunrpc/key_call.c | 2 +- sunrpc/rtime.c | 2 +- sunrpc/svcauth_des.c | 2 +- sunrpc/xdr.c | 14 ++-- sunrpc/xdr_intXX_t.c | 9 +-- sysdeps/generic/dl-hash.h | 5 +- sysdeps/generic/libc-start.c | 6 +- sysdeps/i386/dl-machine.h | 4 +- sysdeps/i386/i686/dl-hash.h | 6 +- sysdeps/posix/getaddrinfo.c | 2 +- sysdeps/powerpc/powerpc32/dl-machine.h | 13 ---- sysdeps/powerpc/powerpc64/dl-machine.h | 12 ---- sysdeps/sh/dl-machine.h | 4 +- 39 files changed, 210 insertions(+), 136 deletions(-) diff --git a/ChangeLog b/ChangeLog index ce65a02e7e..3a761c562c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,92 @@ +2005-02-16 Roland McGrath + + * 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 + + [BZ #721] + * elf/dynamic-link.h: Don't declare nested auto functions that are + not going to be defined. + +2004-07-23 Jakub Jelinek + + [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 * sysdeps/generic/libc-start.c (LIBC_START_MAIN): Move UBP_EV defn diff --git a/crypt/crypt_util.c b/crypt/crypt_util.c index 5467a97b8a..0db5be7b0f 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 b54080d7ac..d6851d4fbc 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 #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 5118144174..1d6806f50c 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 90da784f78..b23ab44e4e 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 , 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 e9227bfca0..822fe4987b 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 8f312f1042..20083d4264 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 3c14836aa2..6deb1feb45 100644 --- a/inet/rexec.c +++ b/inet/rexec.c @@ -111,7 +111,8 @@ rexec_af(ahost, rport, name, pass, cmd, fd2p, af) 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 @@ rexec_af(ahost, rport, name, pass, cmd, fd2p, af) 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 39256ed566..546da8e29d 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 d7111729b9..75762ea18f 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 3b6facdddb..21e70489cf 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 . @@ -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 4f9e946cf3..a879b68a25 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 + 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 21964b9130..a0a54fbd8d 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 8dbac6f5b9..b8aa1aafc4 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 233799a87d..5c8cf65012 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 , 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 b867b39ab7..7d1b9f8e53 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 , 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 0271db1790..92e883fde9 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 , 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 0b163fe662..4d88200284 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 , 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 135f397911..a0e098c1ed 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 , 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 a575a82034..3463c5d885 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2005-02-16 Roland McGrath + + * sysdeps/pthread/pthread-functions.h (struct pthread_functions): + Use unsigned int * for ptr_nthreads. + 2005-02-14 Alan Modra * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit @@ -15,6 +20,7 @@ 2005-01-26 Jakub Jelinek + [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 2845346128..d75bbbb11e 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 , 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 f065cf449d..58fa749e90 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 6ff60f3119..97d9263895 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 8fb21a9446..1a53e5be9e 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 fc5956dcd7..7fe96ca765 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 21b83a7656..4e76918644 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 211f61db70..506a99767c 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 4996f01ba9..ff71a55aeb 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 07d7bd0122..becdd5066d 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 d99a9985c4..2f894fbba7 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 9d2f92e10d..6c1fca2b23 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 , 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 a84bf2416d..243ae14b51 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 e0a04cba58..f0d69b443b 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 78c083f6ab..a965a4a5fc 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 61183d80da..4bdd998aa8 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 , 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 c9081345ab..5ec7262157 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 6d7d91b3eb..545c19b300 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 6fc9df056a..33fc1b6a9c 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 b66b4f0e42..e73c6d79c3 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. */