From 6dd67bd565db889944d740379e6ae87bd3fd4e44 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 25 Aug 2002 04:51:08 +0000 Subject: Update. 2002-08-24 Ulrich Drepper * 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 * resolv/gethnamaddr.c (MAXPACKET): Increase minimum value from 1024 to 65536, to avoid buffer overrun. * resolv/res_query.c (MAXPACKET): Likewise. architectures. --- sysdeps/generic/strtol.c | 3 +- sysdeps/ia64/elf/initfini.c | 156 +++++++++++++------------- sysdeps/ia64/hp-timing.h | 3 +- sysdeps/unix/sysv/linux/i386/sysdep.S | 9 +- sysdeps/unix/sysv/linux/ia64/Makefile | 4 + sysdeps/unix/sysv/linux/ia64/sys/user.h | 54 +++++++++ sysdeps/unix/sysv/linux/m68k/sysdep.S | 11 +- sysdeps/unix/sysv/linux/mips/sysdep.S | 11 +- sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S | 11 +- sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S | 14 +-- sysdeps/unix/sysv/linux/x86_64/sysdep.S | 11 +- 11 files changed, 170 insertions(+), 117 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/ia64/sys/user.h (limited to 'sysdeps') diff --git a/sysdeps/generic/strtol.c b/sysdeps/generic/strtol.c index 7e174d488b..28806083cf 100644 --- a/sysdeps/generic/strtol.c +++ b/sysdeps/generic/strtol.c @@ -188,7 +188,8 @@ extern int errno; # define TOUPPER(Ch) towupper (Ch) # endif # 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 # else # define IN_CTYPE_DOMAIN(c) isascii(c) diff --git a/sysdeps/ia64/elf/initfini.c b/sysdeps/ia64/elf/initfini.c index e4d6df7613..2e3234a2aa 100644 --- a/sysdeps/ia64/elf/initfini.c +++ b/sysdeps/ia64/elf/initfini.c @@ -1,5 +1,5 @@ /* 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. The GNU C Library is free software; you can redistribute it and/or @@ -27,81 +27,81 @@ * crtn.s puts the corresponding function epilogues in the .init and .fini sections. */ -__asm__ (" - -#include \"defs.h\" - -/*@HEADER_ENDS*/ - -/*@_init_PROLOG_BEGINS*/ - .section .init - .align 16 - .global _init# - .proc _init# -_init: - alloc r34 = ar.pfs, 0, 3, 0, 0 - mov r32 = r12 - mov r33 = b0 - adds r12 = -16, r12 - addl r14 = @ltoff(@fptr(__gmon_start__#)), gp - ;; - ld8 r15 = [r14] - ;; - cmp.eq p6, p7 = 0, r15 - (p6) br.cond.dptk .L5 - -/* we could use r35 to save gp, but we use the stack since that's what - * all the other init routines will do --davidm 00/04/05 */ - st8 [r12] = gp, -16 - br.call.sptk.many b0 = __gmon_start__# ;; - adds r12 = 16, r12 - ;; - ld8 gp = [r12] - ;; -.L5: - .align 16 - .endp _init# - -/*@_init_PROLOG_ENDS*/ - -/*@_init_EPILOG_BEGINS*/ - .section .init - .regstk 0,2,0,0 - mov r12 = r32 - mov ar.pfs = r34 - mov b0 = r33 - br.ret.sptk.many b0 - .endp _init# -/*@_init_EPILOG_ENDS*/ - -/*@_fini_PROLOG_BEGINS*/ - .section .fini - .align 16 - .global _fini# - .proc _fini# -_fini: - alloc r34 = ar.pfs, 0, 3, 0, 0 - mov r32 = r12 - mov r33 = b0 - adds r12 = -16, r12 - ;; - .align 16 - .endp _fini# - -/*@_fini_PROLOG_ENDS*/ - br.call.sptk.many b0 = i_am_not_a_leaf# ;; - ;; - -/*@_fini_EPILOG_BEGINS*/ - .section .fini - mov r12 = r32 - mov ar.pfs = r34 - mov b0 = r33 - br.ret.sptk.many b0 - .endp _fini# - -/*@_fini_EPILOG_ENDS*/ - -/*@TRAILER_BEGINS*/ - .weak __gmon_start__# +__asm__ ("\n\ +\n\ +#include \"defs.h\"\n\ +\n\ +/*@HEADER_ENDS*/\n\ +\n\ +/*@_init_PROLOG_BEGINS*/\n\ + .section .init\n\ + .align 16\n\ + .global _init#\n\ + .proc _init#\n\ +_init:\n\ + alloc r34 = ar.pfs, 0, 3, 0, 0\n\ + mov r32 = r12\n\ + mov r33 = b0\n\ + adds r12 = -16, r12\n\ + addl r14 = @ltoff(@fptr(__gmon_start__#)), gp\n\ + ;;\n\ + ld8 r15 = [r14]\n\ + ;;\n\ + cmp.eq p6, p7 = 0, r15\n\ + (p6) br.cond.dptk .L5\n\ +\n\ +/* 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 */\n\ + st8 [r12] = gp, -16\n\ + br.call.sptk.many b0 = __gmon_start__# ;;\n\ + adds r12 = 16, r12\n\ + ;;\n\ + ld8 gp = [r12]\n\ + ;;\n\ +.L5:\n\ + .align 16\n\ + .endp _init#\n\ +\n\ +/*@_init_PROLOG_ENDS*/\n\ +\n\ +/*@_init_EPILOG_BEGINS*/\n\ + .section .init\n\ + .regstk 0,2,0,0\n\ + mov r12 = r32\n\ + mov ar.pfs = r34\n\ + mov b0 = r33\n\ + br.ret.sptk.many b0\n\ + .endp _init#\n\ +/*@_init_EPILOG_ENDS*/\n\ +\n\ +/*@_fini_PROLOG_BEGINS*/\n\ + .section .fini\n\ + .align 16\n\ + .global _fini#\n\ + .proc _fini#\n\ +_fini:\n\ + alloc r34 = ar.pfs, 0, 3, 0, 0\n\ + mov r32 = r12\n\ + mov r33 = b0\n\ + adds r12 = -16, r12\n\ + ;;\n\ + .align 16\n\ + .endp _fini#\n\ +\n\ +/*@_fini_PROLOG_ENDS*/\n\ + br.call.sptk.many b0 = i_am_not_a_leaf# ;;\n\ + ;;\n\ +\n\ +/*@_fini_EPILOG_BEGINS*/\n\ + .section .fini\n\ + mov r12 = r32\n\ + mov ar.pfs = r34\n\ + mov b0 = r33\n\ + br.ret.sptk.many b0\n\ + .endp _fini#\n\ +\n\ +/*@_fini_EPILOG_ENDS*/\n\ +\n\ +/*@TRAILER_BEGINS*/\n\ + .weak __gmon_start__#\n\ "); diff --git a/sysdeps/ia64/hp-timing.h b/sysdeps/ia64/hp-timing.h index 3b6c07f451..fd920c348d 100644 --- a/sysdeps/ia64/hp-timing.h +++ b/sysdeps/ia64/hp-timing.h @@ -141,7 +141,8 @@ typedef unsigned long int hp_timing_t; char *__dest = (Buf); \ while (__len-- > 0 && __cp < __buf + sizeof (__buf)) \ *__dest++ = *__cp++; \ - memcpy (__dest, " clock cycles", MIN (__len, sizeof (" clock cycles"))); \ + memcpy (__dest, " clock cycles", MIN (__len, \ + (int) sizeof (" clock cycles"))); \ } while (0) #endif /* hp-timing.h */ diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.S b/sysdeps/unix/sysv/linux/i386/sysdep.S index 09428987ec..9546bb3c64 100644 --- a/sysdeps/unix/sysv/linux/i386/sysdep.S +++ b/sysdeps/unix/sysv/linux/i386/sysdep.S @@ -19,11 +19,10 @@ #include #include -/* Because the Linux version is in fact i386/ELF and the start.? file - for this system (sysdeps/i386/elf/start.S) is also used by The Hurd - and therefore this files must not contain the definition of the - `errno' variable (I don't know why, ask Roland), we have to define - it somewhere else. +/* The Linux version is in fact i386/ELF and the start.? file for this + system (sysdeps/i386/elf/start.S) is also used by The Hurd. This file + must not contain the definition of the `errno' variable, we have to + define it somewhere else. ...and this place is here. */ #if USE_TLS && HAVE___THREAD diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile index e028a2d618..4c1e6f2059 100644 --- a/sysdeps/unix/sysv/linux/ia64/Makefile +++ b/sysdeps/unix/sysv/linux/ia64/Makefile @@ -16,3 +16,7 @@ sysdep-dl-routines += dl-static sysdep_routines += $(sysdep-dl-routines) sysdep-rtld-routines += $(sysdep-dl-routines) 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 diff --git a/sysdeps/unix/sysv/linux/ia64/sys/user.h b/sysdeps/unix/sysv/linux/ia64/sys/user.h new file mode 100644 index 0000000000..039218761b --- /dev/null +++ b/sysdeps/unix/sysv/linux/ia64/sys/user.h @@ -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 +#include + +/* 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 */ diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.S b/sysdeps/unix/sysv/linux/m68k/sysdep.S index 30beaf233f..628335b8d0 100644 --- a/sysdeps/unix/sysv/linux/m68k/sysdep.S +++ b/sysdeps/unix/sysv/linux/m68k/sysdep.S @@ -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. The GNU C Library is free software; you can redistribute it and/or @@ -18,11 +18,10 @@ #include -/* Because the Linux version is in fact m68k/ELF and the start.? file - for this system (sysdeps/m68k/elf/start.S) is also used by The Hurd - and therefore this files must not contain the definition of the - `errno' variable (I don't know why, ask Roland), we have to define - it somewhere else. +/* The Linux version is in fact m68k/ELF and the start.? file for this + system (sysdeps/m68k/elf/start.S) is also used by The Hurd. This file + must not contain the definition of the `errno' variable, we have to + define it somewhere else. ...and this place is here. */ .bss diff --git a/sysdeps/unix/sysv/linux/mips/sysdep.S b/sysdeps/unix/sysv/linux/mips/sysdep.S index d051c4fe6e..2584982bb0 100644 --- a/sysdeps/unix/sysv/linux/mips/sysdep.S +++ b/sysdeps/unix/sysv/linux/mips/sysdep.S @@ -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. The GNU C Library is free software; you can redistribute it and/or @@ -18,11 +18,10 @@ #include -/* Because the Linux version is in fact MIPS/ELF and the start.? file - for this system (sysdeps/mips/elf/start.S) is also used by The Hurd - and therefore this files must not contain the definition of the - `errno' variable (I don't know why, ask Roland), we have to define - it somewhere else. +/* The Linux version is in fact MIPS/ELF and the start.? file for this + system (sysdeps/mips/elf/start.S) is also used by The Hurd. This file + must not contain the definition of the `errno' variable, we have to + define it somewhere else. ...and this place is here. */ .bss diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S index bb90491cba..5b17f6ba4b 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S +++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S @@ -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). This file is part of the GNU C Library. @@ -19,11 +19,10 @@ #include -/* Because the Linux version is in fact m68k/ELF and the start.? file - for this system (sysdeps/m68k/elf/start.S) is also used by The Hurd - and therefore this files must not contain the definition of the - `errno' variable (I don't know why, ask Roland), we have to define - it somewhere else. +/* The Linux version is in fact S390-32/ELF and the start.? file for this + system (sysdeps/s390/s390-32/elf/start.S) is also used by The Hurd. + This file must not contain the definition of the `errno' variable, + we have to define it somewhere else. ...and this place is here. */ .bss diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S index 2d49d36d8b..caa50ccc3d 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S +++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S @@ -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). This file is part of the GNU C Library. @@ -19,11 +19,10 @@ #include -/* Because the Linux version is in fact m68k/ELF and the start.? file - for this system (sysdeps/m68k/elf/start.S) is also used by The Hurd - and therefore this files must not contain the definition of the - `errno' variable (I don't know why, ask Roland), we have to define - it somewhere else. +/* The Linux version is in fact S390-64/ELF and the start.? file for this + system (sysdeps/s390/s390-64/elf/start.S) is also used by The Hurd. + This file must not contain the definition of the `errno' variable, + we have to define it somewhere else. ...and this place is here. */ .bss @@ -81,10 +80,9 @@ ENTRY(__syscall_error) brasl %r14,__errno_location@PLT st %r13,0(%r2) lmg %r13,%r15,264(%r15) - lghi %r2,-1 + lghi %r2,-1 br %r14 #endif #endif END (__syscall_error) - diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.S b/sysdeps/unix/sysv/linux/x86_64/sysdep.S index 7f041aa730..b8eccc8b9f 100644 --- a/sysdeps/unix/sysv/linux/x86_64/sysdep.S +++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.S @@ -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. The GNU C Library is free software; you can redistribute it and/or @@ -18,11 +18,10 @@ #include -/* Because the Linux version is in fact x86-64/ELF and the start.? file - for this system (sysdeps/x86_64/elf/start.S) is also used by The Hurd - and therefore this files must not contain the definition of the - `errno' variable (I don't know why, ask Roland), we have to define - it somewhere else. +/* The Linux version is in fact x86-64/ELF and the start.? file for this + system (sysdeps/x86_64/elf/start.S) is also used by The Hurd. This file + must not contain the definition of the `errno' variable, we have to + define it somewhere else. ...and this place is here. */ .bss -- cgit v1.2.3