mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Update.
2002-08-24 Ulrich Drepper <drepper@redhat.com> * locale/programs/charmap.c (charmap_new_char): Don't use ULONG_MAX as maximum UCS4 value. * sysdeps/unix/sysv/linux/ia64/sys/user.h: New file. * sysdeps/generic/strtol.c: We don't need the isascii test in glibc. * malloc/hooks.c (public_sET_STATe): use size_t as type for i. * malloc/malloc.c (mALLINFo): Likewise. * libio/wstrops.c (_IO_wstr_pbackfail): Use WEOF in comparison. * libio/wfileops.c (_IO_wfile_overflow): Use EOF not WEOF when examining result of _IO_do_flush call. * stdio-common/vfprintf.c (vfprintf): Use correct type in va_arg. Use prec not spec when sizing buffers. * catgets/open_catalog.c (__open_catalog): Add casts to avoid warnings. * locale/loadarchive.c (_nl_load_locale_from_archive): Likewise. * locale/loadlocale.c (_nl_intern_locale_data): Likewise. * stdio-common/vfscanf.c (inchar): Likewise. * misc/efgcvt_r.c (fcvt_r): Likewise. * elf/dl-misc.c (_dl_debug_vdprintf): Likewise. * elf/readlib.c (process_file): Likewise. * elf/sprof.c (load_profdata): Likewise. * sysdeps/ia64/hp-timing.h (HP_TIMING_PRINT): Likewise. * locale/programs/linereader.c (get_toplvl_escape): Likewise. * locale/programs/charmap.c (charmap_read): Likewise. * libio/fileops.c: Likewise. * libio/fmemopen.c: Likewise. * stdlib/strtod.c: Likewise. * elf/dl-load.c: Likewise. * iconv/iconvconfig.c: Likewise. * iconv/iconv_prog.c (process_block): Likewise. * sysdeps/unix/sysv/linux/ia64/Makefile: Define _ASM_IA64_CURRENT_H macro to calm down the compiler. * iconv/gconv_cache.c (__gconv_load_cache): Add cast to avoid warning. * sysdeps/ia64/elf/initfini.c: Don't use newlines embedded in string. * sysdeps/unix/sysv/linux/i386/sysdep.S: Update comment regarding placement of errno definition. * sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/mips/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise. * resolv/nss_dns/dns-host.c (MAXPACKET): Increase minimum value from 1024 to 65536, to avoid buffer overrun. 2002-08-16 Paul Eggert <eggert@twinsun.com> * resolv/gethnamaddr.c (MAXPACKET): Increase minimum value from 1024 to 65536, to avoid buffer overrun. * resolv/res_query.c (MAXPACKET): Likewise. architectures.
This commit is contained in:
65
ChangeLog
65
ChangeLog
@ -1,3 +1,65 @@
|
|||||||
|
2002-08-24 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* locale/programs/charmap.c (charmap_new_char): Don't use
|
||||||
|
ULONG_MAX as maximum UCS4 value.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/ia64/sys/user.h: New file.
|
||||||
|
|
||||||
|
* sysdeps/generic/strtol.c: We don't need the isascii test in glibc.
|
||||||
|
|
||||||
|
* malloc/hooks.c (public_sET_STATe): use size_t as type for i.
|
||||||
|
* malloc/malloc.c (mALLINFo): Likewise.
|
||||||
|
|
||||||
|
* libio/wstrops.c (_IO_wstr_pbackfail): Use WEOF in comparison.
|
||||||
|
|
||||||
|
* libio/wfileops.c (_IO_wfile_overflow): Use EOF not WEOF when
|
||||||
|
examining result of _IO_do_flush call.
|
||||||
|
|
||||||
|
* stdio-common/vfprintf.c (vfprintf): Use correct type in va_arg.
|
||||||
|
Use prec not spec when sizing buffers.
|
||||||
|
|
||||||
|
* catgets/open_catalog.c (__open_catalog): Add casts to avoid warnings.
|
||||||
|
* locale/loadarchive.c (_nl_load_locale_from_archive): Likewise.
|
||||||
|
* locale/loadlocale.c (_nl_intern_locale_data): Likewise.
|
||||||
|
* stdio-common/vfscanf.c (inchar): Likewise.
|
||||||
|
* misc/efgcvt_r.c (fcvt_r): Likewise.
|
||||||
|
* elf/dl-misc.c (_dl_debug_vdprintf): Likewise.
|
||||||
|
* elf/readlib.c (process_file): Likewise.
|
||||||
|
* elf/sprof.c (load_profdata): Likewise.
|
||||||
|
* sysdeps/ia64/hp-timing.h (HP_TIMING_PRINT): Likewise.
|
||||||
|
* locale/programs/linereader.c (get_toplvl_escape): Likewise.
|
||||||
|
* locale/programs/charmap.c (charmap_read): Likewise.
|
||||||
|
* libio/fileops.c: Likewise.
|
||||||
|
* libio/fmemopen.c: Likewise.
|
||||||
|
* stdlib/strtod.c: Likewise.
|
||||||
|
* elf/dl-load.c: Likewise.
|
||||||
|
* iconv/iconvconfig.c: Likewise.
|
||||||
|
* iconv/iconv_prog.c (process_block): Likewise.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/ia64/Makefile: Define _ASM_IA64_CURRENT_H
|
||||||
|
macro to calm down the compiler.
|
||||||
|
|
||||||
|
* iconv/gconv_cache.c (__gconv_load_cache): Add cast to avoid warning.
|
||||||
|
|
||||||
|
* sysdeps/ia64/elf/initfini.c: Don't use newlines embedded in string.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/i386/sysdep.S: Update comment regarding
|
||||||
|
placement of errno definition.
|
||||||
|
* sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sysdep.S: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/x86_64/sysdep.S: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
|
||||||
|
|
||||||
|
* resolv/nss_dns/dns-host.c (MAXPACKET): Increase minimum value
|
||||||
|
from 1024 to 65536, to avoid buffer overrun.
|
||||||
|
|
||||||
|
2002-08-16 Paul Eggert <eggert@twinsun.com>
|
||||||
|
|
||||||
|
* resolv/gethnamaddr.c (MAXPACKET): Increase minimum value
|
||||||
|
from 1024 to 65536, to avoid buffer overrun.
|
||||||
|
* resolv/res_query.c (MAXPACKET): Likewise.
|
||||||
|
|
||||||
2002-08-24 Andreas Jaeger <aj@suse.de>
|
2002-08-24 Andreas Jaeger <aj@suse.de>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/i386/Versions: Remove *xattr syscalls.
|
* sysdeps/unix/sysv/linux/i386/Versions: Remove *xattr syscalls.
|
||||||
@ -12,7 +74,7 @@
|
|||||||
|
|
||||||
* sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs_conf):
|
* sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs_conf):
|
||||||
Prefer reading /proc/stat since it is more uniform across
|
Prefer reading /proc/stat since it is more uniform across
|
||||||
architectures.1
|
architectures.
|
||||||
|
|
||||||
* manual/texinfo.tex: Update to latest official version.
|
* manual/texinfo.tex: Update to latest official version.
|
||||||
|
|
||||||
@ -120,7 +182,6 @@
|
|||||||
2002-08-21 Roland McGrath <roland@redhat.com>
|
2002-08-21 Roland McGrath <roland@redhat.com>
|
||||||
|
|
||||||
* configure.in: Make GCC version check require 3.[2-9]* and no others.
|
* configure.in: Make GCC version check require 3.[2-9]* and no others.
|
||||||
* configure: Regenerated.
|
|
||||||
* manual/install.texi (Tools for Compilation): Say 3.2 is required.
|
* manual/install.texi (Tools for Compilation): Say 3.2 is required.
|
||||||
(Configuring and compiling): Don't mention older GCC versions any more.
|
(Configuring and compiling): Don't mention older GCC versions any more.
|
||||||
* INSTALL: Regenerated.
|
* INSTALL: Regenerated.
|
||||||
|
@ -194,7 +194,7 @@ __open_catalog (const char *cat_name, const char *nlspath, const char *env_var,
|
|||||||
goto close_unlock_return;
|
goto close_unlock_return;
|
||||||
|
|
||||||
if (__builtin_expect (!S_ISREG (st.st_mode), 0)
|
if (__builtin_expect (!S_ISREG (st.st_mode), 0)
|
||||||
|| st.st_size < sizeof (struct catalog_obj))
|
|| (size_t) st.st_size < sizeof (struct catalog_obj))
|
||||||
{
|
{
|
||||||
/* `errno' is not set correctly but the file is not usable.
|
/* `errno' is not set correctly but the file is not usable.
|
||||||
Use an reasonable error value. */
|
Use an reasonable error value. */
|
||||||
@ -305,7 +305,8 @@ __open_catalog (const char *cat_name, const char *nlspath, const char *env_var,
|
|||||||
|
|
||||||
/* Now we can check whether the file is large enough to contain the
|
/* Now we can check whether the file is large enough to contain the
|
||||||
tables it says it contains. */
|
tables it says it contains. */
|
||||||
if (st.st_size <= (sizeof (struct catalog_obj) + 2 * tab_size + max_offset))
|
if ((size_t) st.st_size
|
||||||
|
<= (sizeof (struct catalog_obj) + 2 * tab_size + max_offset))
|
||||||
/* The last string is not contained in the file. */
|
/* The last string is not contained in the file. */
|
||||||
goto invalid_file;
|
goto invalid_file;
|
||||||
|
|
||||||
|
@ -857,13 +857,13 @@ _dl_map_object_from_fd (const char *name, int fd, struct filebuf *fbp,
|
|||||||
l->l_phnum = header->e_phnum;
|
l->l_phnum = header->e_phnum;
|
||||||
|
|
||||||
maplength = header->e_phnum * sizeof (ElfW(Phdr));
|
maplength = header->e_phnum * sizeof (ElfW(Phdr));
|
||||||
if (header->e_phoff + maplength <= fbp->len)
|
if (header->e_phoff + maplength <= (size_t) fbp->len)
|
||||||
phdr = (void *) (fbp->buf + header->e_phoff);
|
phdr = (void *) (fbp->buf + header->e_phoff);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
phdr = alloca (maplength);
|
phdr = alloca (maplength);
|
||||||
__lseek (fd, header->e_phoff, SEEK_SET);
|
__lseek (fd, header->e_phoff, SEEK_SET);
|
||||||
if (__libc_read (fd, (void *) phdr, maplength) != maplength)
|
if ((size_t) __libc_read (fd, (void *) phdr, maplength) != maplength)
|
||||||
{
|
{
|
||||||
errstring = N_("cannot read file data");
|
errstring = N_("cannot read file data");
|
||||||
goto call_lose_errno;
|
goto call_lose_errno;
|
||||||
@ -1040,8 +1040,8 @@ _dl_map_object_from_fd (const char *name, int fd, struct filebuf *fbp,
|
|||||||
|
|
||||||
postmap:
|
postmap:
|
||||||
if (l->l_phdr == 0
|
if (l->l_phdr == 0
|
||||||
&& c->mapoff <= header->e_phoff
|
&& (ElfW(Off)) c->mapoff <= header->e_phoff
|
||||||
&& (c->mapend - c->mapstart + c->mapoff
|
&& ((size_t) (c->mapend - c->mapstart + c->mapoff)
|
||||||
>= header->e_phoff + header->e_phnum * sizeof (ElfW(Phdr))))
|
>= header->e_phoff + header->e_phnum * sizeof (ElfW(Phdr))))
|
||||||
/* Found the program header in this segment. */
|
/* Found the program header in this segment. */
|
||||||
l->l_phdr = (void *) (c->mapstart + header->e_phoff - c->mapoff);
|
l->l_phdr = (void *) (c->mapstart + header->e_phoff - c->mapoff);
|
||||||
@ -1414,13 +1414,13 @@ open_verify (const char *name, struct filebuf *fbp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
maplength = ehdr->e_phnum * sizeof (ElfW(Phdr));
|
maplength = ehdr->e_phnum * sizeof (ElfW(Phdr));
|
||||||
if (ehdr->e_phoff + maplength <= fbp->len)
|
if (ehdr->e_phoff + maplength <= (size_t) fbp->len)
|
||||||
phdr = (void *) (fbp->buf + ehdr->e_phoff);
|
phdr = (void *) (fbp->buf + ehdr->e_phoff);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
phdr = alloca (maplength);
|
phdr = alloca (maplength);
|
||||||
__lseek (fd, ehdr->e_phoff, SEEK_SET);
|
__lseek (fd, ehdr->e_phoff, SEEK_SET);
|
||||||
if (__libc_read (fd, (void *) phdr, maplength) != maplength)
|
if ((size_t) __libc_read (fd, (void *) phdr, maplength) != maplength)
|
||||||
{
|
{
|
||||||
read_error:
|
read_error:
|
||||||
errval = errno;
|
errval = errno;
|
||||||
@ -1433,7 +1433,7 @@ open_verify (const char *name, struct filebuf *fbp)
|
|||||||
for (ph = phdr; ph < &phdr[ehdr->e_phnum]; ++ph)
|
for (ph = phdr; ph < &phdr[ehdr->e_phnum]; ++ph)
|
||||||
if (ph->p_type == PT_NOTE && ph->p_filesz == 32 && ph->p_align >= 4)
|
if (ph->p_type == PT_NOTE && ph->p_filesz == 32 && ph->p_align >= 4)
|
||||||
{
|
{
|
||||||
if (ph->p_offset + 32 <= fbp->len)
|
if (ph->p_offset + 32 <= (size_t) fbp->len)
|
||||||
abi_note = (void *) (fbp->buf + ph->p_offset);
|
abi_note = (void *) (fbp->buf + ph->p_offset);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -211,7 +211,7 @@ _dl_debug_vdprintf (int fd, int tag_p, const char *fmt, va_list arg)
|
|||||||
iov[niov].iov_base = va_arg (arg, char *);
|
iov[niov].iov_base = va_arg (arg, char *);
|
||||||
iov[niov].iov_len = strlen (iov[niov].iov_base);
|
iov[niov].iov_len = strlen (iov[niov].iov_base);
|
||||||
if (prec != -1)
|
if (prec != -1)
|
||||||
iov[niov].iov_len = MIN (prec, iov[niov].iov_len );
|
iov[niov].iov_len = MIN ((size_t) prec, iov[niov].iov_len);
|
||||||
++niov;
|
++niov;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
|
/* Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
|
Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
|
||||||
Jakub Jelinek <jakub@redhat.com>, 1999.
|
Jakub Jelinek <jakub@redhat.com>, 1999.
|
||||||
@ -103,8 +103,8 @@ process_file (const char *real_file_name, const char *file_name,
|
|||||||
|
|
||||||
/* Check that the file is large enough so that we can access the
|
/* Check that the file is large enough so that we can access the
|
||||||
information. We're only checking the size of the headers here. */
|
information. We're only checking the size of the headers here. */
|
||||||
if (statbuf.st_size < sizeof (struct exec)
|
if ((size_t) statbuf.st_size < sizeof (struct exec)
|
||||||
|| statbuf.st_size < sizeof (ElfW(Ehdr)))
|
|| (size_t) statbuf.st_size < sizeof (ElfW(Ehdr)))
|
||||||
{
|
{
|
||||||
error (0, 0, _("File %s is too small, not checked."), file_name);
|
error (0, 0, _("File %s is too small, not checked."), file_name);
|
||||||
fclose (file);
|
fclose (file);
|
||||||
|
@ -675,7 +675,7 @@ load_profdata (const char *name, struct shobj *shobj)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (st.st_size != shobj->expected_size)
|
if ((size_t) st.st_size != shobj->expected_size)
|
||||||
{
|
{
|
||||||
error (0, 0,
|
error (0, 0,
|
||||||
_("profiling data file `%s' does not match shared object `%s'"),
|
_("profiling data file `%s' does not match shared object `%s'"),
|
||||||
|
@ -67,7 +67,7 @@ __gconv_load_cache (void)
|
|||||||
if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &st), 0) < 0
|
if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &st), 0) < 0
|
||||||
/* We do not have to start looking at the file if it cannot contain
|
/* We do not have to start looking at the file if it cannot contain
|
||||||
at least the cache header. */
|
at least the cache header. */
|
||||||
|| st.st_size < sizeof (struct gconvcache_header))
|
|| (size_t) st.st_size < sizeof (struct gconvcache_header))
|
||||||
{
|
{
|
||||||
close_and_exit:
|
close_and_exit:
|
||||||
__close (fd);
|
__close (fd);
|
||||||
|
@ -410,7 +410,8 @@ process_block (iconv_t cd, char *addr, size_t len, FILE *output)
|
|||||||
/* We have something to write out. */
|
/* We have something to write out. */
|
||||||
int errno_save = errno;
|
int errno_save = errno;
|
||||||
|
|
||||||
if (fwrite (outbuf, 1, outptr - outbuf, output) < outptr - outbuf
|
if (fwrite (outbuf, 1, outptr - outbuf, output)
|
||||||
|
< (size_t) (outptr - outbuf)
|
||||||
|| ferror (output))
|
|| ferror (output))
|
||||||
{
|
{
|
||||||
/* Error occurred while printing the result. */
|
/* Error occurred while printing the result. */
|
||||||
@ -435,7 +436,8 @@ conversion stopped due to problem in writing the output"));
|
|||||||
/* We have something to write out. */
|
/* We have something to write out. */
|
||||||
int errno_save = errno;
|
int errno_save = errno;
|
||||||
|
|
||||||
if (fwrite (outbuf, 1, outptr - outbuf, output) < outptr - outbuf
|
if (fwrite (outbuf, 1, outptr - outbuf, output)
|
||||||
|
< (size_t) (outptr - outbuf)
|
||||||
|| ferror (output))
|
|| ferror (output))
|
||||||
{
|
{
|
||||||
/* Error occurred while printing the result. */
|
/* Error occurred while printing the result. */
|
||||||
|
@ -441,8 +441,8 @@ add_alias (char *rp)
|
|||||||
return;
|
return;
|
||||||
*wp++ = '\0';
|
*wp++ = '\0';
|
||||||
|
|
||||||
assert (strlen (from) + 1 == to - from);
|
assert (strlen (from) + 1 == (size_t) (to - from));
|
||||||
assert (strlen (to) + 1 == wp - to);
|
assert (strlen (to) + 1 == (size_t) (wp - to));
|
||||||
|
|
||||||
new_alias (from, to - from, to, wp - to);
|
new_alias (from, to - from, to, wp - to);
|
||||||
}
|
}
|
||||||
@ -604,15 +604,15 @@ add_module (char *rp, const char *directory)
|
|||||||
|
|
||||||
/* See whether we must add the ending. */
|
/* See whether we must add the ending. */
|
||||||
need_ext = 0;
|
need_ext = 0;
|
||||||
if (wp - module < sizeof (gconv_module_ext)
|
if ((size_t) (wp - module) < sizeof (gconv_module_ext)
|
||||||
|| memcmp (wp - sizeof (gconv_module_ext), gconv_module_ext,
|
|| memcmp (wp - sizeof (gconv_module_ext), gconv_module_ext,
|
||||||
sizeof (gconv_module_ext)) != 0)
|
sizeof (gconv_module_ext)) != 0)
|
||||||
/* We must add the module extension. */
|
/* We must add the module extension. */
|
||||||
need_ext = sizeof (gconv_module_ext) - 1;
|
need_ext = sizeof (gconv_module_ext) - 1;
|
||||||
|
|
||||||
assert (strlen (from) + 1 == to - from);
|
assert (strlen (from) + 1 == (size_t) (to - from));
|
||||||
assert (strlen (to) + 1 == module - to);
|
assert (strlen (to) + 1 == (size_t) (module - to));
|
||||||
assert (strlen (module) + 1 == wp - module);
|
assert (strlen (module) + 1 == (size_t) (wp - module));
|
||||||
|
|
||||||
new_module (from, to - from, to, module - to, directory, module, wp - module,
|
new_module (from, to - from, to, module - to, directory, module, wp - module,
|
||||||
cost, need_ext);
|
cost, need_ext);
|
||||||
@ -1179,7 +1179,7 @@ write_output (void)
|
|||||||
total += iov[idx].iov_len;
|
total += iov[idx].iov_len;
|
||||||
++idx;
|
++idx;
|
||||||
|
|
||||||
assert (cur_extra_table - extra_table
|
assert ((size_t) (cur_extra_table - extra_table)
|
||||||
<= ((sizeof (struct extra_entry) + sizeof (gidx_t)
|
<= ((sizeof (struct extra_entry) + sizeof (gidx_t)
|
||||||
+ sizeof (struct extra_entry_module))
|
+ sizeof (struct extra_entry_module))
|
||||||
* nextra_modules));
|
* nextra_modules));
|
||||||
@ -1189,7 +1189,7 @@ write_output (void)
|
|||||||
total += iov[idx].iov_len;
|
total += iov[idx].iov_len;
|
||||||
++idx;
|
++idx;
|
||||||
|
|
||||||
if (TEMP_FAILURE_RETRY (writev (fd, iov, idx)) != total
|
if ((size_t) TEMP_FAILURE_RETRY (writev (fd, iov, idx)) != total
|
||||||
/* The file was created with mode 0600. Make it world-readable. */
|
/* The file was created with mode 0600. Make it world-readable. */
|
||||||
|| fchmod (fd, 0644) != 0
|
|| fchmod (fd, 0644) != 0
|
||||||
/* Rename the file, possibly replacing an old one. */
|
/* Rename the file, possibly replacing an old one. */
|
||||||
|
@ -477,7 +477,8 @@ _IO_new_do_write (fp, data, to_do)
|
|||||||
const char *data;
|
const char *data;
|
||||||
_IO_size_t to_do;
|
_IO_size_t to_do;
|
||||||
{
|
{
|
||||||
return (to_do == 0 || new_do_write (fp, data, to_do) == to_do) ? 0 : EOF;
|
return (to_do == 0
|
||||||
|
|| (_IO_size_t) new_do_write (fp, data, to_do) == to_do) ? 0 : EOF;
|
||||||
}
|
}
|
||||||
INTDEF2(_IO_new_do_write, _IO_do_write)
|
INTDEF2(_IO_new_do_write, _IO_do_write)
|
||||||
|
|
||||||
@ -1423,7 +1424,8 @@ _IO_file_xsgetn (fp, data, n)
|
|||||||
/* If we now want less than a buffer, underflow and repeat
|
/* If we now want less than a buffer, underflow and repeat
|
||||||
the copy. Otherwise, _IO_SYSREAD directly to
|
the copy. Otherwise, _IO_SYSREAD directly to
|
||||||
the user buffer. */
|
the user buffer. */
|
||||||
if (fp->_IO_buf_base && want < fp->_IO_buf_end - fp->_IO_buf_base)
|
if (fp->_IO_buf_base
|
||||||
|
&& want < (size_t) (fp->_IO_buf_end - fp->_IO_buf_base))
|
||||||
{
|
{
|
||||||
if (__underflow (fp) == EOF)
|
if (__underflow (fp) == EOF)
|
||||||
break;
|
break;
|
||||||
|
@ -98,7 +98,7 @@ fmemopen_read (void *cookie, char *b, size_t s)
|
|||||||
|
|
||||||
if (c->pos + s > c->size)
|
if (c->pos + s > c->size)
|
||||||
{
|
{
|
||||||
if (c->pos == c->size)
|
if ((size_t) c->pos == c->size)
|
||||||
return 0;
|
return 0;
|
||||||
s = c->size - c->pos;
|
s = c->size - c->pos;
|
||||||
}
|
}
|
||||||
@ -106,7 +106,7 @@ fmemopen_read (void *cookie, char *b, size_t s)
|
|||||||
memcpy (b, &(c->buffer[c->pos]), s);
|
memcpy (b, &(c->buffer[c->pos]), s);
|
||||||
|
|
||||||
c->pos += s;
|
c->pos += s;
|
||||||
if (c->pos > c->maxpos)
|
if ((size_t) c->pos > c->maxpos)
|
||||||
c->maxpos = c->pos;
|
c->maxpos = c->pos;
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
@ -125,7 +125,7 @@ fmemopen_write (void *cookie, const char *b, size_t s)
|
|||||||
|
|
||||||
if (c->pos + s + addnullc > c->size)
|
if (c->pos + s + addnullc > c->size)
|
||||||
{
|
{
|
||||||
if (c->pos + addnullc == c->size)
|
if ((size_t) (c->pos + addnullc) == c->size)
|
||||||
{
|
{
|
||||||
__set_errno (ENOSPC);
|
__set_errno (ENOSPC);
|
||||||
return -1;
|
return -1;
|
||||||
@ -136,7 +136,7 @@ fmemopen_write (void *cookie, const char *b, size_t s)
|
|||||||
memcpy (&(c->buffer[c->pos]), b, s);
|
memcpy (&(c->buffer[c->pos]), b, s);
|
||||||
|
|
||||||
c->pos += s;
|
c->pos += s;
|
||||||
if (c->pos > c->maxpos)
|
if ((size_t) c->pos > c->maxpos)
|
||||||
{
|
{
|
||||||
c->maxpos = c->pos;
|
c->maxpos = c->pos;
|
||||||
if (addnullc)
|
if (addnullc)
|
||||||
@ -173,7 +173,7 @@ fmemopen_seek (void *cookie, _IO_off64_t *p, int w)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (np < 0 || np > c->size)
|
if (np < 0 || (size_t) np > c->size)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
c->pos = np;
|
c->pos = np;
|
||||||
|
@ -430,12 +430,12 @@ _IO_wfile_overflow (f, wch)
|
|||||||
return _IO_do_flush (f);
|
return _IO_do_flush (f);
|
||||||
if (f->_wide_data->_IO_write_ptr == f->_wide_data->_IO_buf_end)
|
if (f->_wide_data->_IO_write_ptr == f->_wide_data->_IO_buf_end)
|
||||||
/* Buffer is really full */
|
/* Buffer is really full */
|
||||||
if (_IO_do_flush (f) == WEOF)
|
if (_IO_do_flush (f) == EOF)
|
||||||
return WEOF;
|
return WEOF;
|
||||||
*f->_wide_data->_IO_write_ptr++ = wch;
|
*f->_wide_data->_IO_write_ptr++ = wch;
|
||||||
if ((f->_flags & _IO_UNBUFFERED)
|
if ((f->_flags & _IO_UNBUFFERED)
|
||||||
|| ((f->_flags & _IO_LINE_BUF) && wch == L'\n'))
|
|| ((f->_flags & _IO_LINE_BUF) && wch == L'\n'))
|
||||||
if (_IO_do_flush (f) == WEOF)
|
if (_IO_do_flush (f) == EOF)
|
||||||
return WEOF;
|
return WEOF;
|
||||||
return wch;
|
return wch;
|
||||||
}
|
}
|
||||||
|
@ -291,7 +291,7 @@ _IO_wstr_pbackfail (fp, c)
|
|||||||
_IO_FILE *fp;
|
_IO_FILE *fp;
|
||||||
_IO_wint_t c;
|
_IO_wint_t c;
|
||||||
{
|
{
|
||||||
if ((fp->_flags & _IO_NO_WRITES) && c != EOF)
|
if ((fp->_flags & _IO_NO_WRITES) && c != WEOF)
|
||||||
return WEOF;
|
return WEOF;
|
||||||
return INTUSE(_IO_wdefault_pbackfail) (fp, c);
|
return INTUSE(_IO_wdefault_pbackfail) (fp, c);
|
||||||
}
|
}
|
||||||
|
@ -373,7 +373,7 @@ _nl_load_locale_from_archive (int category, const char **namep)
|
|||||||
do
|
do
|
||||||
{
|
{
|
||||||
to = ranges[upper].from + ranges[upper].len;
|
to = ranges[upper].from + ranges[upper].len;
|
||||||
if (to > archive_stat.st_size)
|
if (to > (size_t) archive_stat.st_size)
|
||||||
/* The archive locrectab contains bogus offsets. */
|
/* The archive locrectab contains bogus offsets. */
|
||||||
return NULL;
|
return NULL;
|
||||||
to = (to + ps - 1) & ~(ps - 1);
|
to = (to + ps - 1) & ~(ps - 1);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Functions to read locale data files.
|
/* Functions to read locale data files.
|
||||||
Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
|
Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
@ -105,7 +105,7 @@ _nl_intern_locale_data (int category, const void *data, size_t datasize)
|
|||||||
for (cnt = 0; cnt < newdata->nstrings; ++cnt)
|
for (cnt = 0; cnt < newdata->nstrings; ++cnt)
|
||||||
{
|
{
|
||||||
size_t idx = filedata->strindex[cnt];
|
size_t idx = filedata->strindex[cnt];
|
||||||
if (__builtin_expect (idx > newdata->filesize, 0))
|
if (__builtin_expect (idx > (size_t) newdata->filesize, 0))
|
||||||
{
|
{
|
||||||
puntdata:
|
puntdata:
|
||||||
free (newdata);
|
free (newdata);
|
||||||
|
@ -244,9 +244,9 @@ default character map file `%s' not found"), DEFAULT_CHARMAP));
|
|||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
struct charseq * seq = charmap_find_symbol (result, p, 1);
|
struct charseq *seq = charmap_find_symbol (result, p, 1);
|
||||||
|
|
||||||
if (seq == NULL || seq->ucs4 != *p)
|
if (seq == NULL || seq->ucs4 != (uint32_t) *p)
|
||||||
failed = 1;
|
failed = 1;
|
||||||
}
|
}
|
||||||
while (*p++ != '\0');
|
while (*p++ != '\0');
|
||||||
@ -962,7 +962,7 @@ charmap_new_char (struct linereader *lr, struct charmap_t *cm,
|
|||||||
errno = 0;
|
errno = 0;
|
||||||
newp->ucs4 = strtoul (from + 1, &endp, 16);
|
newp->ucs4 = strtoul (from + 1, &endp, 16);
|
||||||
if (endp - from != len1
|
if (endp - from != len1
|
||||||
|| (newp->ucs4 == ULONG_MAX && errno == ERANGE)
|
|| (newp->ucs4 == ~((uint32_t) 0) && errno == ERANGE)
|
||||||
|| newp->ucs4 >= 0x80000000)
|
|| newp->ucs4 >= 0x80000000)
|
||||||
/* This wasn't successful. Signal this name cannot be a
|
/* This wasn't successful. Signal this name cannot be a
|
||||||
correct UCS value. */
|
correct UCS value. */
|
||||||
@ -1008,9 +1008,9 @@ hexadecimal range format should use only capital characters"));
|
|||||||
|
|
||||||
errno = 0;
|
errno = 0;
|
||||||
from_nr = strtoul (&from[prefix_len], &from_end, decimal_ellipsis ? 10 : 16);
|
from_nr = strtoul (&from[prefix_len], &from_end, decimal_ellipsis ? 10 : 16);
|
||||||
if (*from_end != '\0' || (from_nr == ULONG_MAX && errno == ERANGE)
|
if (*from_end != '\0' || (from_nr == UINT_MAX && errno == ERANGE)
|
||||||
|| ((to_nr = strtoul (&to[prefix_len], &to_end,
|
|| ((to_nr = strtoul (&to[prefix_len], &to_end,
|
||||||
decimal_ellipsis ? 10 : 16)) == ULONG_MAX
|
decimal_ellipsis ? 10 : 16)) == UINT_MAX
|
||||||
&& errno == ERANGE)
|
&& errno == ERANGE)
|
||||||
|| *to_end != '\0')
|
|| *to_end != '\0')
|
||||||
{
|
{
|
||||||
@ -1057,7 +1057,7 @@ hexadecimal range format should use only capital characters"));
|
|||||||
errno = 0;
|
errno = 0;
|
||||||
newp->ucs4 = strtoul (name_end + 1, &endp, 16);
|
newp->ucs4 = strtoul (name_end + 1, &endp, 16);
|
||||||
if (endp - name_end != len1
|
if (endp - name_end != len1
|
||||||
|| (newp->ucs4 == ULONG_MAX && errno == ERANGE)
|
|| (newp->ucs4 == ~((uint32_t) 0) && errno == ERANGE)
|
||||||
|| newp->ucs4 >= 0x80000000)
|
|| newp->ucs4 >= 0x80000000)
|
||||||
/* This wasn't successful. Signal this name cannot be a
|
/* This wasn't successful. Signal this name cannot be a
|
||||||
correct UCS value. */
|
correct UCS value. */
|
||||||
|
@ -381,7 +381,7 @@ get_toplvl_escape (struct linereader *lr)
|
|||||||
bytes[nbytes++] = byte;
|
bytes[nbytes++] = byte;
|
||||||
}
|
}
|
||||||
while (ch == lr->escape_char
|
while (ch == lr->escape_char
|
||||||
&& nbytes < sizeof (lr->token.val.charcode.bytes));
|
&& nbytes < (int) sizeof (lr->token.val.charcode.bytes));
|
||||||
|
|
||||||
if (!isspace (ch))
|
if (!isspace (ch))
|
||||||
lr_error (lr, _("garbage at end of character code specification"));
|
lr_error (lr, _("garbage at end of character code specification"));
|
||||||
|
@ -527,7 +527,7 @@ int
|
|||||||
public_sET_STATe(Void_t* msptr)
|
public_sET_STATe(Void_t* msptr)
|
||||||
{
|
{
|
||||||
struct malloc_save_state* ms = (struct malloc_save_state*)msptr;
|
struct malloc_save_state* ms = (struct malloc_save_state*)msptr;
|
||||||
int i;
|
size_t i;
|
||||||
mbinptr b;
|
mbinptr b;
|
||||||
|
|
||||||
disallow_malloc_check = 1;
|
disallow_malloc_check = 1;
|
||||||
|
@ -5011,7 +5011,7 @@ size_t mUSABLe(mem) Void_t* mem;
|
|||||||
struct mallinfo mALLINFo(mstate av)
|
struct mallinfo mALLINFo(mstate av)
|
||||||
{
|
{
|
||||||
struct mallinfo mi;
|
struct mallinfo mi;
|
||||||
int i;
|
size_t i;
|
||||||
mbinptr b;
|
mbinptr b;
|
||||||
mchunkptr p;
|
mchunkptr p;
|
||||||
INTERNAL_SIZE_T avail;
|
INTERNAL_SIZE_T avail;
|
||||||
|
@ -141,9 +141,9 @@ APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len)
|
|||||||
if (left)
|
if (left)
|
||||||
{
|
{
|
||||||
*decpt += left;
|
*decpt += left;
|
||||||
if (--len > n)
|
if ((ssize_t) --len > n)
|
||||||
{
|
{
|
||||||
while (left-- > 0 && n < len)
|
while (left-- > 0 && n < (ssize_t) len)
|
||||||
buf[n++] = '0';
|
buf[n++] = '0';
|
||||||
buf[n] = '\0';
|
buf[n] = '\0';
|
||||||
}
|
}
|
||||||
|
@ -993,7 +993,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
|
|||||||
if (!left) \
|
if (!left) \
|
||||||
PAD (L' '); \
|
PAD (L' '); \
|
||||||
if (fspec == NULL) \
|
if (fspec == NULL) \
|
||||||
outchar (va_arg (ap, wint_t)); \
|
outchar (va_arg (ap, wchar_t)); \
|
||||||
else \
|
else \
|
||||||
outchar (args_value[fspec->data_arg].pa_wchar); \
|
outchar (args_value[fspec->data_arg].pa_wchar); \
|
||||||
if (left) \
|
if (left) \
|
||||||
@ -1113,7 +1113,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
|
|||||||
size_t len; \
|
size_t len; \
|
||||||
\
|
\
|
||||||
memset (&mbstate, '\0', sizeof (mbstate_t)); \
|
memset (&mbstate, '\0', sizeof (mbstate_t)); \
|
||||||
len = __wcrtomb (buf, (fspec == NULL ? va_arg (ap, wint_t) \
|
len = __wcrtomb (buf, (fspec == NULL ? va_arg (ap, wchar_t) \
|
||||||
: args_value[fspec->data_arg].pa_wchar), \
|
: args_value[fspec->data_arg].pa_wchar), \
|
||||||
&mbstate); \
|
&mbstate); \
|
||||||
if (len == (size_t) -1) \
|
if (len == (size_t) -1) \
|
||||||
@ -1452,7 +1452,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
|
|||||||
{
|
{
|
||||||
/* We have to use a special buffer. The "32" is just a safe
|
/* We have to use a special buffer. The "32" is just a safe
|
||||||
bet for all the output which is not counted in the width. */
|
bet for all the output which is not counted in the width. */
|
||||||
if (width < 32768 / sizeof (CHAR_T))
|
if (width < (int) (32768 / sizeof (CHAR_T)))
|
||||||
workend = ((CHAR_T *) alloca ((width + 32) * sizeof (CHAR_T))
|
workend = ((CHAR_T *) alloca ((width + 32) * sizeof (CHAR_T))
|
||||||
+ (width + 32));
|
+ (width + 32));
|
||||||
else
|
else
|
||||||
@ -1477,7 +1477,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
|
|||||||
{
|
{
|
||||||
/* We have to use a special buffer. The "32" is just a safe
|
/* We have to use a special buffer. The "32" is just a safe
|
||||||
bet for all the output which is not counted in the width. */
|
bet for all the output which is not counted in the width. */
|
||||||
if (width < 32768 / sizeof (CHAR_T))
|
if (width < (int) (32768 / sizeof (CHAR_T)))
|
||||||
workend = ((CHAR_T *) alloca ((width + 32) * sizeof (CHAR_T))
|
workend = ((CHAR_T *) alloca ((width + 32) * sizeof (CHAR_T))
|
||||||
+ (width + 32));
|
+ (width + 32));
|
||||||
else
|
else
|
||||||
@ -1520,17 +1520,17 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
|
|||||||
if (prec > width
|
if (prec > width
|
||||||
&& prec + 32 > (int)(sizeof (work_buffer) / sizeof (work_buffer[0])))
|
&& prec + 32 > (int)(sizeof (work_buffer) / sizeof (work_buffer[0])))
|
||||||
{
|
{
|
||||||
if (spec < 32768 / sizeof (CHAR_T))
|
if (prec < (int) (32768 / sizeof (CHAR_T)))
|
||||||
workend = alloca (spec + 32) + (spec + 32);
|
workend = alloca (prec + 32) + (prec + 32);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
workstart = (CHAR_T *) malloc ((spec + 32) * sizeof (CHAR_T));
|
workstart = (CHAR_T *) malloc ((prec + 32) * sizeof (CHAR_T));
|
||||||
if (workstart == NULL)
|
if (workstart == NULL)
|
||||||
{
|
{
|
||||||
done = -1;
|
done = -1;
|
||||||
goto all_done;
|
goto all_done;
|
||||||
}
|
}
|
||||||
workend = workstart + (spec + 32);
|
workend = workstart + (prec + 32);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
JUMP (*f, step2_jumps);
|
JUMP (*f, step2_jumps);
|
||||||
@ -1835,7 +1835,7 @@ do_positional:
|
|||||||
if (MAX (prec, width) + 32 > (int) (sizeof (work_buffer)
|
if (MAX (prec, width) + 32 > (int) (sizeof (work_buffer)
|
||||||
/ sizeof (CHAR_T)))
|
/ sizeof (CHAR_T)))
|
||||||
{
|
{
|
||||||
if (MAX (prec, width) < 32768 / sizeof (CHAR_T))
|
if (MAX (prec, width) < (int) (32768 / sizeof (CHAR_T)))
|
||||||
workend = ((CHAR_T *) alloca ((MAX (prec, width) + 32)
|
workend = ((CHAR_T *) alloca ((MAX (prec, width) + 32)
|
||||||
* sizeof (CHAR_T))
|
* sizeof (CHAR_T))
|
||||||
+ (MAX (prec, width) + 32));
|
+ (MAX (prec, width) + 32));
|
||||||
|
@ -81,7 +81,8 @@
|
|||||||
# define inchar() (c == WEOF ? ((errno = inchar_errno), WEOF) \
|
# define inchar() (c == WEOF ? ((errno = inchar_errno), WEOF) \
|
||||||
: ((c = _IO_getwc_unlocked (s)), \
|
: ((c = _IO_getwc_unlocked (s)), \
|
||||||
(void) (c != WEOF \
|
(void) (c != WEOF \
|
||||||
? ++read_in : (inchar_errno = errno)), c))
|
? ++read_in \
|
||||||
|
: (size_t) (inchar_errno = errno)), c))
|
||||||
|
|
||||||
# define MEMCPY(d, s, n) __wmemcpy (d, s, n)
|
# define MEMCPY(d, s, n) __wmemcpy (d, s, n)
|
||||||
# define ISSPACE(Ch) iswspace (Ch)
|
# define ISSPACE(Ch) iswspace (Ch)
|
||||||
@ -112,7 +113,8 @@
|
|||||||
# define inchar() (c == EOF ? ((errno = inchar_errno), EOF) \
|
# define inchar() (c == EOF ? ((errno = inchar_errno), EOF) \
|
||||||
: ((c = _IO_getc_unlocked (s)), \
|
: ((c = _IO_getc_unlocked (s)), \
|
||||||
(void) (c != EOF \
|
(void) (c != EOF \
|
||||||
? ++read_in : (inchar_errno = errno)), c))
|
? ++read_in \
|
||||||
|
: (size_t) (inchar_errno = errno)), c))
|
||||||
# define MEMCPY(d, s, n) memcpy (d, s, n)
|
# define MEMCPY(d, s, n) memcpy (d, s, n)
|
||||||
# define ISSPACE(Ch) isspace (Ch)
|
# define ISSPACE(Ch) isspace (Ch)
|
||||||
# define ISDIGIT(Ch) isdigit (Ch)
|
# define ISDIGIT(Ch) isdigit (Ch)
|
||||||
|
@ -556,7 +556,8 @@ INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM)
|
|||||||
/* Return 0.0 if no legal string is found.
|
/* Return 0.0 if no legal string is found.
|
||||||
No character is used even if a sign was found. */
|
No character is used even if a sign was found. */
|
||||||
#ifdef USE_WIDE_CHAR
|
#ifdef USE_WIDE_CHAR
|
||||||
if (c == decimal && cp[1] >= L'0' && cp[1] <= L'9')
|
if (c == (wint_t) decimal
|
||||||
|
&& (wint_t) cp[1] >= L'0' && (wint_t) cp[1] <= L'9')
|
||||||
{
|
{
|
||||||
/* We accept it. This funny construct is here only to indent
|
/* We accept it. This funny construct is here only to indent
|
||||||
the code directly. */
|
the code directly. */
|
||||||
@ -648,7 +649,7 @@ INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM)
|
|||||||
|
|
||||||
/* Ignore leading zeroes. This helps us to avoid useless computations. */
|
/* Ignore leading zeroes. This helps us to avoid useless computations. */
|
||||||
#ifdef USE_WIDE_CHAR
|
#ifdef USE_WIDE_CHAR
|
||||||
while (c == L'0' || (thousands != L'\0' && c == thousands))
|
while (c == L'0' || ((wint_t) thousands != L'\0' && c == (wint_t) thousands))
|
||||||
c = *++cp;
|
c = *++cp;
|
||||||
#else
|
#else
|
||||||
if (thousands == NULL)
|
if (thousands == NULL)
|
||||||
@ -675,17 +676,19 @@ INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM)
|
|||||||
/* If no other digit but a '0' is found the result is 0.0.
|
/* If no other digit but a '0' is found the result is 0.0.
|
||||||
Return current read pointer. */
|
Return current read pointer. */
|
||||||
if ((c < L_('0') || c > L_('9'))
|
if ((c < L_('0') || c > L_('9'))
|
||||||
&& (base == 16 && (c < TOLOWER (L_('a')) || c > TOLOWER (L_('f'))))
|
&& (base == 16 && (c < (wint_t) TOLOWER (L_('a'))
|
||||||
|
|| c > (wint_t) TOLOWER (L_('f'))))
|
||||||
#ifdef USE_WIDE_CHAR
|
#ifdef USE_WIDE_CHAR
|
||||||
&& c != decimal
|
&& c != (wint_t) decimal
|
||||||
#else
|
#else
|
||||||
&& ({ for (cnt = 0; decimal[cnt] != '\0'; ++cnt)
|
&& ({ for (cnt = 0; decimal[cnt] != '\0'; ++cnt)
|
||||||
if (decimal[cnt] != cp[cnt])
|
if (decimal[cnt] != cp[cnt])
|
||||||
break;
|
break;
|
||||||
decimal[cnt] != '\0'; })
|
decimal[cnt] != '\0'; })
|
||||||
#endif
|
#endif
|
||||||
&& (base == 16 && (cp == start_of_digits || TOLOWER (c) != L_('p')))
|
&& (base == 16 && (cp == start_of_digits
|
||||||
&& (base != 16 && TOLOWER (c) != L_('e')))
|
|| (CHAR_TYPE) TOLOWER (c) != L_('p')))
|
||||||
|
&& (base != 16 && (CHAR_TYPE) TOLOWER (c) != L_('e')))
|
||||||
{
|
{
|
||||||
tp = correctly_grouped_prefix (start_of_digits, cp, thousands, grouping);
|
tp = correctly_grouped_prefix (start_of_digits, cp, thousands, grouping);
|
||||||
/* If TP is at the start of the digits, there was no correctly
|
/* If TP is at the start of the digits, there was no correctly
|
||||||
@ -700,12 +703,13 @@ INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM)
|
|||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if ((c >= L_('0') && c <= L_('9'))
|
if ((c >= L_('0') && c <= L_('9'))
|
||||||
|| (base == 16 && TOLOWER (c) >= L_('a') && TOLOWER (c) <= L_('f')))
|
|| (base == 16 && (wint_t) TOLOWER (c) >= L_('a')
|
||||||
|
&& (wint_t) TOLOWER (c) <= L_('f')))
|
||||||
++dig_no;
|
++dig_no;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef USE_WIDE_CHAR
|
#ifdef USE_WIDE_CHAR
|
||||||
if (thousands == L'\0' || c != thousands)
|
if ((wint_t) thousands == L'\0' || c != (wint_t) thousands)
|
||||||
/* Not a digit or separator: end of the integer part. */
|
/* Not a digit or separator: end of the integer part. */
|
||||||
break;
|
break;
|
||||||
#else
|
#else
|
||||||
@ -765,7 +769,7 @@ INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM)
|
|||||||
numbers like `16.' i.e. with decimal but without trailing digits. */
|
numbers like `16.' i.e. with decimal but without trailing digits. */
|
||||||
if (
|
if (
|
||||||
#ifdef USE_WIDE_CHAR
|
#ifdef USE_WIDE_CHAR
|
||||||
c == decimal
|
c == (wint_t) decimal
|
||||||
#else
|
#else
|
||||||
({ for (cnt = 0; decimal[cnt] != '\0'; ++cnt)
|
({ for (cnt = 0; decimal[cnt] != '\0'; ++cnt)
|
||||||
if (decimal[cnt] != cp[cnt])
|
if (decimal[cnt] != cp[cnt])
|
||||||
|
@ -188,7 +188,8 @@ extern int errno;
|
|||||||
# define TOUPPER(Ch) towupper (Ch)
|
# define TOUPPER(Ch) towupper (Ch)
|
||||||
# endif
|
# endif
|
||||||
# else
|
# else
|
||||||
# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
|
# if defined _LIBC \
|
||||||
|
|| defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
|
||||||
# define IN_CTYPE_DOMAIN(c) 1
|
# define IN_CTYPE_DOMAIN(c) 1
|
||||||
# else
|
# else
|
||||||
# define IN_CTYPE_DOMAIN(c) isascii(c)
|
# define IN_CTYPE_DOMAIN(c) isascii(c)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Special .init and .fini section support for ia64.
|
/* Special .init and .fini section support for ia64.
|
||||||
Copyright (C) 2000 Free Software Foundation, Inc.
|
Copyright (C) 2000, 2002 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -27,81 +27,81 @@
|
|||||||
* crtn.s puts the corresponding function epilogues
|
* crtn.s puts the corresponding function epilogues
|
||||||
in the .init and .fini sections. */
|
in the .init and .fini sections. */
|
||||||
|
|
||||||
__asm__ ("
|
__asm__ ("\n\
|
||||||
|
\n\
|
||||||
#include \"defs.h\"
|
#include \"defs.h\"\n\
|
||||||
|
\n\
|
||||||
/*@HEADER_ENDS*/
|
/*@HEADER_ENDS*/\n\
|
||||||
|
\n\
|
||||||
/*@_init_PROLOG_BEGINS*/
|
/*@_init_PROLOG_BEGINS*/\n\
|
||||||
.section .init
|
.section .init\n\
|
||||||
.align 16
|
.align 16\n\
|
||||||
.global _init#
|
.global _init#\n\
|
||||||
.proc _init#
|
.proc _init#\n\
|
||||||
_init:
|
_init:\n\
|
||||||
alloc r34 = ar.pfs, 0, 3, 0, 0
|
alloc r34 = ar.pfs, 0, 3, 0, 0\n\
|
||||||
mov r32 = r12
|
mov r32 = r12\n\
|
||||||
mov r33 = b0
|
mov r33 = b0\n\
|
||||||
adds r12 = -16, r12
|
adds r12 = -16, r12\n\
|
||||||
addl r14 = @ltoff(@fptr(__gmon_start__#)), gp
|
addl r14 = @ltoff(@fptr(__gmon_start__#)), gp\n\
|
||||||
;;
|
;;\n\
|
||||||
ld8 r15 = [r14]
|
ld8 r15 = [r14]\n\
|
||||||
;;
|
;;\n\
|
||||||
cmp.eq p6, p7 = 0, r15
|
cmp.eq p6, p7 = 0, r15\n\
|
||||||
(p6) br.cond.dptk .L5
|
(p6) br.cond.dptk .L5\n\
|
||||||
|
\n\
|
||||||
/* we could use r35 to save gp, but we use the stack since that's what
|
/* we could use r35 to save gp, but we use the stack since that's what\n\
|
||||||
* all the other init routines will do --davidm 00/04/05 */
|
* all the other init routines will do --davidm 00/04/05 */\n\
|
||||||
st8 [r12] = gp, -16
|
st8 [r12] = gp, -16\n\
|
||||||
br.call.sptk.many b0 = __gmon_start__# ;;
|
br.call.sptk.many b0 = __gmon_start__# ;;\n\
|
||||||
adds r12 = 16, r12
|
adds r12 = 16, r12\n\
|
||||||
;;
|
;;\n\
|
||||||
ld8 gp = [r12]
|
ld8 gp = [r12]\n\
|
||||||
;;
|
;;\n\
|
||||||
.L5:
|
.L5:\n\
|
||||||
.align 16
|
.align 16\n\
|
||||||
.endp _init#
|
.endp _init#\n\
|
||||||
|
\n\
|
||||||
/*@_init_PROLOG_ENDS*/
|
/*@_init_PROLOG_ENDS*/\n\
|
||||||
|
\n\
|
||||||
/*@_init_EPILOG_BEGINS*/
|
/*@_init_EPILOG_BEGINS*/\n\
|
||||||
.section .init
|
.section .init\n\
|
||||||
.regstk 0,2,0,0
|
.regstk 0,2,0,0\n\
|
||||||
mov r12 = r32
|
mov r12 = r32\n\
|
||||||
mov ar.pfs = r34
|
mov ar.pfs = r34\n\
|
||||||
mov b0 = r33
|
mov b0 = r33\n\
|
||||||
br.ret.sptk.many b0
|
br.ret.sptk.many b0\n\
|
||||||
.endp _init#
|
.endp _init#\n\
|
||||||
/*@_init_EPILOG_ENDS*/
|
/*@_init_EPILOG_ENDS*/\n\
|
||||||
|
\n\
|
||||||
/*@_fini_PROLOG_BEGINS*/
|
/*@_fini_PROLOG_BEGINS*/\n\
|
||||||
.section .fini
|
.section .fini\n\
|
||||||
.align 16
|
.align 16\n\
|
||||||
.global _fini#
|
.global _fini#\n\
|
||||||
.proc _fini#
|
.proc _fini#\n\
|
||||||
_fini:
|
_fini:\n\
|
||||||
alloc r34 = ar.pfs, 0, 3, 0, 0
|
alloc r34 = ar.pfs, 0, 3, 0, 0\n\
|
||||||
mov r32 = r12
|
mov r32 = r12\n\
|
||||||
mov r33 = b0
|
mov r33 = b0\n\
|
||||||
adds r12 = -16, r12
|
adds r12 = -16, r12\n\
|
||||||
;;
|
;;\n\
|
||||||
.align 16
|
.align 16\n\
|
||||||
.endp _fini#
|
.endp _fini#\n\
|
||||||
|
\n\
|
||||||
/*@_fini_PROLOG_ENDS*/
|
/*@_fini_PROLOG_ENDS*/\n\
|
||||||
br.call.sptk.many b0 = i_am_not_a_leaf# ;;
|
br.call.sptk.many b0 = i_am_not_a_leaf# ;;\n\
|
||||||
;;
|
;;\n\
|
||||||
|
\n\
|
||||||
/*@_fini_EPILOG_BEGINS*/
|
/*@_fini_EPILOG_BEGINS*/\n\
|
||||||
.section .fini
|
.section .fini\n\
|
||||||
mov r12 = r32
|
mov r12 = r32\n\
|
||||||
mov ar.pfs = r34
|
mov ar.pfs = r34\n\
|
||||||
mov b0 = r33
|
mov b0 = r33\n\
|
||||||
br.ret.sptk.many b0
|
br.ret.sptk.many b0\n\
|
||||||
.endp _fini#
|
.endp _fini#\n\
|
||||||
|
\n\
|
||||||
/*@_fini_EPILOG_ENDS*/
|
/*@_fini_EPILOG_ENDS*/\n\
|
||||||
|
\n\
|
||||||
/*@TRAILER_BEGINS*/
|
/*@TRAILER_BEGINS*/\n\
|
||||||
.weak __gmon_start__#
|
.weak __gmon_start__#\n\
|
||||||
");
|
");
|
||||||
|
@ -141,7 +141,8 @@ typedef unsigned long int hp_timing_t;
|
|||||||
char *__dest = (Buf); \
|
char *__dest = (Buf); \
|
||||||
while (__len-- > 0 && __cp < __buf + sizeof (__buf)) \
|
while (__len-- > 0 && __cp < __buf + sizeof (__buf)) \
|
||||||
*__dest++ = *__cp++; \
|
*__dest++ = *__cp++; \
|
||||||
memcpy (__dest, " clock cycles", MIN (__len, sizeof (" clock cycles"))); \
|
memcpy (__dest, " clock cycles", MIN (__len, \
|
||||||
|
(int) sizeof (" clock cycles"))); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#endif /* hp-timing.h */
|
#endif /* hp-timing.h */
|
||||||
|
@ -19,11 +19,10 @@
|
|||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include <tls.h>
|
#include <tls.h>
|
||||||
|
|
||||||
/* Because the Linux version is in fact i386/ELF and the start.? file
|
/* The Linux version is in fact i386/ELF and the start.? file for this
|
||||||
for this system (sysdeps/i386/elf/start.S) is also used by The Hurd
|
system (sysdeps/i386/elf/start.S) is also used by The Hurd. This file
|
||||||
and therefore this files must not contain the definition of the
|
must not contain the definition of the `errno' variable, we have to
|
||||||
`errno' variable (I don't know why, ask Roland), we have to define
|
define it somewhere else.
|
||||||
it somewhere else.
|
|
||||||
|
|
||||||
...and this place is here. */
|
...and this place is here. */
|
||||||
#if USE_TLS && HAVE___THREAD
|
#if USE_TLS && HAVE___THREAD
|
||||||
|
@ -16,3 +16,7 @@ sysdep-dl-routines += dl-static
|
|||||||
sysdep_routines += $(sysdep-dl-routines)
|
sysdep_routines += $(sysdep-dl-routines)
|
||||||
sysdep-rtld-routines += $(sysdep-dl-routines)
|
sysdep-rtld-routines += $(sysdep-dl-routines)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# This is a crude attempt to silence the compiler which complains about
|
||||||
|
# then 'current' definition in the kernel headers.
|
||||||
|
CPPFLAGS += -D_ASM_IA64_CURRENT_H
|
||||||
|
54
sysdeps/unix/sysv/linux/ia64/sys/user.h
Normal file
54
sysdeps/unix/sysv/linux/ia64/sys/user.h
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/* Copyright (C) 2002 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. */
|
||||||
|
|
||||||
|
#ifndef _SYS_USER_H
|
||||||
|
#define _SYS_USER_H 1
|
||||||
|
|
||||||
|
#include <features.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
/* This definition comes directly from the kernel headers. If
|
||||||
|
anything changes in them this header has to be changed, too. */
|
||||||
|
|
||||||
|
|
||||||
|
/* The definition in the kernel has the comment "XXX fix me". */
|
||||||
|
#define EF_SIZE 3072
|
||||||
|
|
||||||
|
|
||||||
|
struct user
|
||||||
|
{
|
||||||
|
unsigned long int regs[EF_SIZE / 8 + 32]; /* Integer and fp regs. */
|
||||||
|
size_t u_tsize; /* Text size (pages). */
|
||||||
|
size_t u_dsize; /* Data size (pages). */
|
||||||
|
size_t u_ssize; /* Stack size (pages). */
|
||||||
|
unsigned long int start_code; /* Text starting address. */
|
||||||
|
unsigned long int start_data; /* Data starting address. */
|
||||||
|
unsigned long int start_stack; /* Stack starting address. */
|
||||||
|
long int signal; /* Signal causing core dump. */
|
||||||
|
struct regs *u_ar0; /* Help gdb find registers. */
|
||||||
|
unsigned long int magic; /* Identifies a core file. */
|
||||||
|
char u_comm[32]; /* User command name. */
|
||||||
|
};
|
||||||
|
|
||||||
|
#define NBPG PAGE_SIZE
|
||||||
|
#define UPAGES 1
|
||||||
|
#define HOST_TEXT_START_ADDR (u.start_code)
|
||||||
|
#define HOST_DATA_START_ADDR (u.start_data)
|
||||||
|
#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
|
||||||
|
|
||||||
|
#endif /* sys/user.h */
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1996 Free Software Foundation, Inc.
|
/* Copyright (C) 1996, 2002 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -18,11 +18,10 @@
|
|||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
/* Because the Linux version is in fact m68k/ELF and the start.? file
|
/* The Linux version is in fact m68k/ELF and the start.? file for this
|
||||||
for this system (sysdeps/m68k/elf/start.S) is also used by The Hurd
|
system (sysdeps/m68k/elf/start.S) is also used by The Hurd. This file
|
||||||
and therefore this files must not contain the definition of the
|
must not contain the definition of the `errno' variable, we have to
|
||||||
`errno' variable (I don't know why, ask Roland), we have to define
|
define it somewhere else.
|
||||||
it somewhere else.
|
|
||||||
|
|
||||||
...and this place is here. */
|
...and this place is here. */
|
||||||
.bss
|
.bss
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1998 Free Software Foundation, Inc.
|
/* Copyright (C) 1998, 2002 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -18,11 +18,10 @@
|
|||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
/* Because the Linux version is in fact MIPS/ELF and the start.? file
|
/* The Linux version is in fact MIPS/ELF and the start.? file for this
|
||||||
for this system (sysdeps/mips/elf/start.S) is also used by The Hurd
|
system (sysdeps/mips/elf/start.S) is also used by The Hurd. This file
|
||||||
and therefore this files must not contain the definition of the
|
must not contain the definition of the `errno' variable, we have to
|
||||||
`errno' variable (I don't know why, ask Roland), we have to define
|
define it somewhere else.
|
||||||
it somewhere else.
|
|
||||||
|
|
||||||
...and this place is here. */
|
...and this place is here. */
|
||||||
.bss
|
.bss
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
|
/* Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||||
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -19,11 +19,10 @@
|
|||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
/* Because the Linux version is in fact m68k/ELF and the start.? file
|
/* The Linux version is in fact S390-32/ELF and the start.? file for this
|
||||||
for this system (sysdeps/m68k/elf/start.S) is also used by The Hurd
|
system (sysdeps/s390/s390-32/elf/start.S) is also used by The Hurd.
|
||||||
and therefore this files must not contain the definition of the
|
This file must not contain the definition of the `errno' variable,
|
||||||
`errno' variable (I don't know why, ask Roland), we have to define
|
we have to define it somewhere else.
|
||||||
it somewhere else.
|
|
||||||
|
|
||||||
...and this place is here. */
|
...and this place is here. */
|
||||||
.bss
|
.bss
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||||
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -19,11 +19,10 @@
|
|||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
/* Because the Linux version is in fact m68k/ELF and the start.? file
|
/* The Linux version is in fact S390-64/ELF and the start.? file for this
|
||||||
for this system (sysdeps/m68k/elf/start.S) is also used by The Hurd
|
system (sysdeps/s390/s390-64/elf/start.S) is also used by The Hurd.
|
||||||
and therefore this files must not contain the definition of the
|
This file must not contain the definition of the `errno' variable,
|
||||||
`errno' variable (I don't know why, ask Roland), we have to define
|
we have to define it somewhere else.
|
||||||
it somewhere else.
|
|
||||||
|
|
||||||
...and this place is here. */
|
...and this place is here. */
|
||||||
.bss
|
.bss
|
||||||
@ -81,10 +80,9 @@ ENTRY(__syscall_error)
|
|||||||
brasl %r14,__errno_location@PLT
|
brasl %r14,__errno_location@PLT
|
||||||
st %r13,0(%r2)
|
st %r13,0(%r2)
|
||||||
lmg %r13,%r15,264(%r15)
|
lmg %r13,%r15,264(%r15)
|
||||||
lghi %r2,-1
|
lghi %r2,-1
|
||||||
br %r14
|
br %r14
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
END (__syscall_error)
|
END (__syscall_error)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -18,11 +18,10 @@
|
|||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
/* Because the Linux version is in fact x86-64/ELF and the start.? file
|
/* The Linux version is in fact x86-64/ELF and the start.? file for this
|
||||||
for this system (sysdeps/x86_64/elf/start.S) is also used by The Hurd
|
system (sysdeps/x86_64/elf/start.S) is also used by The Hurd. This file
|
||||||
and therefore this files must not contain the definition of the
|
must not contain the definition of the `errno' variable, we have to
|
||||||
`errno' variable (I don't know why, ask Roland), we have to define
|
define it somewhere else.
|
||||||
it somewhere else.
|
|
||||||
|
|
||||||
...and this place is here. */
|
...and this place is here. */
|
||||||
.bss
|
.bss
|
||||||
|
Reference in New Issue
Block a user