about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog23
-rw-r--r--manual/string.texi9
-rw-r--r--sysdeps/i386/i686/memcmp.S64
-rw-r--r--sysdeps/unix/sysv/linux/i386/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/io.h48
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/clone.S4
6 files changed, 65 insertions, 87 deletions
diff --git a/ChangeLog b/ChangeLog
index d361fc552d..6de39155ae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,31 @@
+2006-12-03  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+	* sysdeps/unix/sysv/linux/sh/sys/io.h: Removed.
+
+2006-11-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/i386/i686/memcmp.S: Use jump table as the base of
+	jump table entries.
+
+2006-11-30  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* 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  <drepper@redhat.com>
 
 	* nscd/nscd.init: Remove obsolete and commented-out -S option
 	handling.
 
+2006-11-23  Jakub Jelinek  <jakub@redhat.com>
+
+	[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  <jan.kratochvil@redhat.com>
 
 	* 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
 
@@ -1966,11 +1966,6 @@ 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
-separately.  The function is not locale-dependent.
 @end deftypefun
 
 @comment wchar.h
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 <features.h>
-
-__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))