From 30a58e6599d9d8419006eb12e413854674ab2f24 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 3 Dec 2006 23:16:24 +0000 Subject: [BZ #3514, BZ #3515] 2006-12-03 Kaz Kojima * sysdeps/unix/sysv/linux/sh/sys/io.h: Removed. 2006-11-30 H.J. Lu * sysdeps/i386/i686/memcmp.S: Use jump table as the base of jump table entries. 2006-11-30 Jan Kratochvil * sysdeps/unix/sysv/linux/i386/clone.S: Provide CFI for the outermost `clone' function to ensure proper unwinding stop of gdb. * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise. 2006-11-23 Jakub Jelinek [BZ #3514] * manual/string.texi (strncmp): Fix pastos from wcscmp description. [BZ #3515] * manual/string.texi (strtok): Remove duplicate paragraph. --- ChangeLog | 23 ++++++++++++ manual/string.texi | 9 ++--- sysdeps/i386/i686/memcmp.S | 64 +++++++++++++++++----------------- sysdeps/unix/sysv/linux/i386/clone.S | 4 +++ sysdeps/unix/sysv/linux/sh/sys/io.h | 48 ------------------------- sysdeps/unix/sysv/linux/x86_64/clone.S | 4 +++ 6 files changed, 65 insertions(+), 87 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/sh/sys/io.h diff --git a/ChangeLog b/ChangeLog index d361fc552d..6de39155ae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,31 @@ +2006-12-03 Kaz Kojima + + * sysdeps/unix/sysv/linux/sh/sys/io.h: Removed. + +2006-11-30 H.J. Lu + + * sysdeps/i386/i686/memcmp.S: Use jump table as the base of + jump table entries. + +2006-11-30 Jan Kratochvil + + * sysdeps/unix/sysv/linux/i386/clone.S: Provide CFI for the outermost + `clone' function to ensure proper unwinding stop of gdb. + * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise. + 2006-12-01 Ulrich Drepper * nscd/nscd.init: Remove obsolete and commented-out -S option handling. +2006-11-23 Jakub Jelinek + + [BZ #3514] + * manual/string.texi (strncmp): Fix pastos from wcscmp description. + + [BZ #3515] + * manual/string.texi (strtok): Remove duplicate paragraph. + 2006-12-01 Jan Kratochvil * sysdeps/unix/sysv/linux/x86_64/sigaction.c: Fix compatibility with diff --git a/manual/string.texi b/manual/string.texi index f582bad96d..2fe60395eb 100644 --- a/manual/string.texi +++ b/manual/string.texi @@ -1187,8 +1187,8 @@ regards these characters as parts of the alphabet they do match. @comment ISO @deftypefun int strncmp (const char *@var{s1}, const char *@var{s2}, size_t @var{size}) This function is the similar to @code{strcmp}, except that no more than -@var{size} wide characters are compared. In other words, if the two -strings are the same in their first @var{size} wide characters, the +@var{size} characters are compared. In other words, if the two +strings are the same in their first @var{size} characters, the return value is zero. @end deftypefun @@ -1962,11 +1962,6 @@ If the end of the string @var{newstring} is reached, or if the remainder of string consists only of delimiter characters, @code{strtok} returns a null pointer. -Note that ``character'' is here used in the sense of byte. In a string -using a multibyte character encoding (abstract) character consisting of -more than one byte are not treated as an entity. Each byte is treated -separately. The function is not locale-dependent. - Note that ``character'' is here used in the sense of byte. In a string using a multibyte character encoding (abstract) character consisting of more than one byte are not treated as an entity. Each byte is treated diff --git a/sysdeps/i386/i686/memcmp.S b/sysdeps/i386/i686/memcmp.S index 113760d846..4fa6adea98 100644 --- a/sysdeps/i386/i686/memcmp.S +++ b/sysdeps/i386/i686/memcmp.S @@ -380,38 +380,38 @@ END (BP_SYM (memcmp)) .section .rodata ALIGN (2) L(table_32bytes) : - .long L(0bytes) - . + 0x0 - .long L(1bytes) - . + 0x4 - .long L(2bytes) - . + 0x8 - .long L(3bytes) - . + 0xc - .long L(4bytes) - . + 0x10 - .long L(5bytes) - . + 0x14 - .long L(6bytes) - . + 0x18 - .long L(7bytes) - . + 0x1c - .long L(8bytes) - . + 0x20 - .long L(9bytes) - . + 0x24 - .long L(10bytes) - . + 0x28 - .long L(11bytes) - . + 0x2c - .long L(12bytes) - . + 0x30 - .long L(13bytes) - . + 0x34 - .long L(14bytes) - . + 0x38 - .long L(15bytes) - . + 0x3c - .long L(16bytes) - . + 0x40 - .long L(17bytes) - . + 0x44 - .long L(18bytes) - . + 0x48 - .long L(19bytes) - . + 0x4c - .long L(20bytes) - . + 0x50 - .long L(21bytes) - . + 0x54 - .long L(22bytes) - . + 0x58 - .long L(23bytes) - . + 0x5c - .long L(24bytes) - . + 0x60 - .long L(25bytes) - . + 0x64 - .long L(26bytes) - . + 0x68 - .long L(27bytes) - . + 0x6c - .long L(28bytes) - . + 0x70 - .long L(29bytes) - . + 0x74 - .long L(30bytes) - . + 0x78 - .long L(31bytes) - . + 0x7c + .long L(0bytes) - L(table_32bytes) + .long L(1bytes) - L(table_32bytes) + .long L(2bytes) - L(table_32bytes) + .long L(3bytes) - L(table_32bytes) + .long L(4bytes) - L(table_32bytes) + .long L(5bytes) - L(table_32bytes) + .long L(6bytes) - L(table_32bytes) + .long L(7bytes) - L(table_32bytes) + .long L(8bytes) - L(table_32bytes) + .long L(9bytes) - L(table_32bytes) + .long L(10bytes) - L(table_32bytes) + .long L(11bytes) - L(table_32bytes) + .long L(12bytes) - L(table_32bytes) + .long L(13bytes) - L(table_32bytes) + .long L(14bytes) - L(table_32bytes) + .long L(15bytes) - L(table_32bytes) + .long L(16bytes) - L(table_32bytes) + .long L(17bytes) - L(table_32bytes) + .long L(18bytes) - L(table_32bytes) + .long L(19bytes) - L(table_32bytes) + .long L(20bytes) - L(table_32bytes) + .long L(21bytes) - L(table_32bytes) + .long L(22bytes) - L(table_32bytes) + .long L(23bytes) - L(table_32bytes) + .long L(24bytes) - L(table_32bytes) + .long L(25bytes) - L(table_32bytes) + .long L(26bytes) - L(table_32bytes) + .long L(27bytes) - L(table_32bytes) + .long L(28bytes) - L(table_32bytes) + .long L(29bytes) - L(table_32bytes) + .long L(30bytes) - L(table_32bytes) + .long L(31bytes) - L(table_32bytes) #undef bcmp diff --git a/sysdeps/unix/sysv/linux/i386/clone.S b/sysdeps/unix/sysv/linux/i386/clone.S index 54524ec120..f73a4b5195 100644 --- a/sysdeps/unix/sysv/linux/i386/clone.S +++ b/sysdeps/unix/sysv/linux/i386/clone.S @@ -120,6 +120,9 @@ L(pseudo_end): ret L(thread_start): + cfi_startproc; + /* Clearing frame pointer is insufficient, use CFI. */ + cfi_undefined (eip); /* Note: %esi is zero. */ movl %esi,%ebp /* terminate the stack frame */ #ifdef RESET_PID @@ -152,6 +155,7 @@ L(nomoregetpid): jmp L(haspid) .previous #endif + cfi_endproc; cfi_startproc PSEUDO_END (BP_SYM (__clone)) diff --git a/sysdeps/unix/sysv/linux/sh/sys/io.h b/sysdeps/unix/sysv/linux/sh/sys/io.h deleted file mode 100644 index 6fdc44ff89..0000000000 --- a/sysdeps/unix/sysv/linux/sh/sys/io.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (C) 1996, 1998, 1999, 2000 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_IO_H - -#define _SYS_IO_H 1 -#include - -__BEGIN_DECLS - -/* If TURN_ON is TRUE, request for permission to do direct i/o on the - port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O - permission off for that range. This call requires root privileges. */ -extern int ioperm (unsigned long int __from, unsigned long int __num, - int __turn_on) __THROW; - -/* Set the I/O privilege level to LEVEL. If LEVEL is nonzero, - permission to access any I/O port is granted. This call requires - root privileges. */ -extern int iopl (int __level) __THROW; - -/* The functions that actually perform reads and writes. */ -extern unsigned char inb (unsigned long int port) __THROW; -extern unsigned short int inw (unsigned long int port) __THROW; -extern unsigned long int inl (unsigned long int port) __THROW; - -extern void outb (unsigned char value, unsigned long int port) __THROW; -extern void outw (unsigned short value, unsigned long int port) __THROW; -extern void outl (unsigned long value, unsigned long int port) __THROW; - -__END_DECLS - -#endif /* _SYS_IO_H */ diff --git a/sysdeps/unix/sysv/linux/x86_64/clone.S b/sysdeps/unix/sysv/linux/x86_64/clone.S index 8a12b09035..db42f209c9 100644 --- a/sysdeps/unix/sysv/linux/x86_64/clone.S +++ b/sysdeps/unix/sysv/linux/x86_64/clone.S @@ -89,6 +89,9 @@ L(pseudo_end): ret L(thread_start): + cfi_startproc; + /* Clearing frame pointer is insufficient, use CFI. */ + cfi_undefined (rip); /* Clear the frame pointer. The ABI suggests this be done, to mark the outermost frame obviously. */ xorl %ebp, %ebp @@ -113,6 +116,7 @@ L(thread_start): /* Call exit with return value from function call. */ movq %rax, %rdi call HIDDEN_JUMPTARGET (_exit) + cfi_endproc; cfi_startproc; PSEUDO_END (BP_SYM (__clone)) -- cgit v1.2.3