public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Jorge Manuel B. S. Vicetto" <jmbsvicetto@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/mysql-extras:master commit in: /
Date: Wed,  2 Mar 2011 19:55:18 +0000 (UTC)	[thread overview]
Message-ID: <efff8295e1e36824b88f09da2369db1333effd19.jmbsvicetto@gentoo> (raw)

commit:     efff8295e1e36824b88f09da2369db1333effd19
Author:     Jorge Manuel B. S. Vicetto (jmbsvicetto) <jmbsvicetto <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  2 19:50:43 2011 +0000
Commit:     Jorge Manuel B. S. Vicetto <jmbsvicetto <AT> gentoo <DOT> org>
CommitDate: Wed Mar  2 19:50:43 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/mysql-extras.git;a=commit;h=efff8295

Split the 07340 patches in 2, leaving the removal of the strings.s file on the 07340 patches and moving everything else to the 07341 patches.
Fixes bug 356459.

---
 00000_index.txt                              |   11 +
 07340_all_mariadb_hardened_x86_strings.patch |  509 -------------------------
 07340_all_mysql_hardened_x86_strings.patch   |  509 -------------------------
 07341_all_mariadb_hardened_x86_strings.patch |  517 ++++++++++++++++++++++++++
 07341_all_mysql_hardened_x86_strings.patch   |  517 ++++++++++++++++++++++++++
 5 files changed, 1045 insertions(+), 1018 deletions(-)

diff --git a/00000_index.txt b/00000_index.txt
index ab861dd..8287602 100644
--- a/00000_index.txt
+++ b/00000_index.txt
@@ -691,6 +691,17 @@
 @pn mariadb
 @@ Gentoo Bug #344031: Fix new TEXTRELs
 
+@patch 07341_all_mysql_hardened_x86_strings.patch
+@ver 5.01.51.00 to 5.01.99.99
+@pn mysql
+@pn mysql-cluster
+@@ Gentoo Bug #344031: Fix new TEXTRELs
+
+@patch 07341_all_mariadb_hardened_x86_strings.patch
+@ver 5.01.51.00 to 5.01.99.99
+@pn mariadb
+@@ Gentoo Bug #344031: Fix new TEXTRELs
+
 @patch 10010_all_show_patches-percona-5.0.75-b12.patch
 @ver 5.00.75.00 to 5.00.76.99
 @pn mysql-community

diff --git a/07340_all_mariadb_hardened_x86_strings.patch b/07340_all_mariadb_hardened_x86_strings.patch
index a65234a..b442042 100644
--- a/07340_all_mariadb_hardened_x86_strings.patch
+++ b/07340_all_mariadb_hardened_x86_strings.patch
@@ -6,515 +6,6 @@
 		* strings/Makefile.in		Likewise.
 		* strings/strings-x86.S	Copy of strings-x86.s to support -fPIC
 
-diff -urN a/configure.in b/configure.in
---- a/configure.in	2010-11-10 00:23:45.287000082 +0100
-+++ b/configure.in	2010-11-10 00:30:47.681000059 +0100
-@@ -698,7 +698,7 @@
- 
- AC_MSG_CHECKING(if we should use assembler functions)
- # For now we only support assembler on i386 and sparc systems
--AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386" && $CCAS $CCASFLAGS -c strings/strings-x86.s -o checkassembler >/dev/null 2>&1 && test -f checkassembler && (rm -f checkassembler; exit 0;))
-+AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386" && $CCAS $CCASFLAGS -c strings/strings-x86.S -o checkassembler >/dev/null 2>&1 && test -f checkassembler && (rm -f checkassembler; exit 0;))
- AM_CONDITIONAL(ASSEMBLER_sparc32, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparc")
- AM_CONDITIONAL(ASSEMBLER_sparc64, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparcv9")
- AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "" -o "$ASSEMBLER_sparc32_TRUE" = "")
-diff -urN a/strings/Makefile.am b/strings/Makefile.am
---- a/strings/Makefile.am	2010-11-10 00:23:45.421000083 +0100
-+++ b/strings/Makefile.am	2010-11-10 00:31:23.489000090 +0100
-@@ -20,7 +20,7 @@
- 
- # Exact one of ASSEMBLER_X
- if ASSEMBLER_x86
--ASRCS		= strings-x86.s longlong2str-x86.s my_strtoll10-x86.s
-+ASRCS		= strings-x86.S longlong2str-x86.s my_strtoll10-x86.s
- CSRCS		= bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtod.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c str_alloc.c longlong2str_asm.c my_strchr.c strmov.c strmov_overlapp.c
- else
- if ASSEMBLER_sparc32
-@@ -44,7 +44,7 @@
- EXTRA_DIST =		ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-win1250ch.c \
- 			ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-utf8.c \
- 			ctype-ucs2.c ctype-uca.c ctype-tis620.c ctype-ujis.c \
--			xml.c decimal.c strto.c strings-x86.s \
-+			xml.c decimal.c strto.c strings-x86.S \
- 			longlong2str.c longlong2str-x86.s longlong2str_asm.c \
- 			my_strtoll10.c my_strtoll10-x86.s \
- 			strxmov.c bmove_upp.c strappend.c strcont.c strend.c \
-diff -urN a/strings/Makefile.in b/strings/Makefile.in
---- a/strings/Makefile.in	2010-11-10 00:23:45.423000082 +0100
-+++ b/strings/Makefile.in	2010-11-10 00:29:17.547000090 +0100
-@@ -104,7 +104,7 @@
- libmystrings_la_DEPENDENCIES =
- am__libmystrings_la_SOURCES_DIST = bmove_upp-sparc.s strappend-sparc.s \
- 	strend-sparc.s strinstr-sparc.s strmake-sparc.s strmov-sparc.s \
--	strnmov-sparc.s strstr-sparc.s strings-x86.s \
-+	strnmov-sparc.s strstr-sparc.s strings-x86.S \
- 	longlong2str-x86.s my_strtoll10-x86.s strxmov.c bmove_upp.c \
- 	strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c \
- 	strstr.c strinstr.c strmake.c strnmov.c strmov.c \
-@@ -637,7 +637,7 @@
- @ASSEMBLER_sparc32_TRUE@@ASSEMBLER_x86_FALSE@ASRCS = bmove_upp-sparc.s strappend-sparc.s strend-sparc.s strinstr-sparc.s strmake-sparc.s strmov-sparc.s strnmov-sparc.s strstr-sparc.s
- 
- # Exact one of ASSEMBLER_X
--@ASSEMBLER_x86_TRUE@ASRCS = strings-x86.s longlong2str-x86.s my_strtoll10-x86.s
-+@ASSEMBLER_x86_TRUE@ASRCS = strings-x86.S longlong2str-x86.s my_strtoll10-x86.s
- # These file MUST all be on the same line!! Otherwise automake
- # generats a very broken makefile
- @ASSEMBLER_sparc32_FALSE@@ASSEMBLER_x86_FALSE@CSRCS = strxmov.c bmove_upp.c strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c strstr.c strinstr.c strmake.c strnmov.c strmov.c longlong2str.c bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtod.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c my_strtoll10.c str_alloc.c my_strchr.c strmov_overlapp.c
-@@ -649,7 +649,7 @@
- EXTRA_DIST = ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-win1250ch.c \
- 			ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-utf8.c \
- 			ctype-ucs2.c ctype-uca.c ctype-tis620.c ctype-ujis.c \
--			xml.c decimal.c strto.c strings-x86.s \
-+			xml.c decimal.c strto.c strings-x86.S \
- 			longlong2str.c longlong2str-x86.s longlong2str_asm.c \
- 			my_strtoll10.c my_strtoll10-x86.s \
- 			strxmov.c bmove_upp.c strappend.c strcont.c strend.c \
-diff -urN a/strings/strings-x86.S b/strings/strings-x86.S
---- a/strings/strings-x86.S	1970-01-01 01:00:00.000000000 +0100
-+++ b/strings/strings-x86.S	2010-11-10 00:29:17.547000090 +0100
-@@ -0,0 +1,442 @@
-+# Copyright (C) 2000 MySQL AB
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; version 2 of the License.
-+#
-+# This program 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 General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-+
-+# Optimized string functions Intel 80x86  (gcc/gas syntax)
-+
-+	.file	"strings.S"
-+	.version "1.01"
-+
-+.text
-+
-+#	Move a alligned, not overlapped, by (long) divided memory area
-+#	Args: to,from,length
-+
-+.globl bmove_align
-+	.type	 bmove_align,@function
-+bmove_align:	
-+	movl	%edi,%edx
-+	push	%esi
-+	movl	4(%esp),%edi		# to
-+	movl	8(%esp),%esi		# from
-+	movl	12(%esp),%ecx		# length
-+	addw	$3,%cx			# fix if not divisible with long
-+	shrw	$2,%cx
-+	jz	.ba_20
-+	.p2align 4,,7
-+.ba_10:
-+	movl	-4(%esi,%ecx),%eax
-+	movl	 %eax,-4(%edi,%ecx)
-+	decl	%ecx
-+	jnz	.ba_10
-+.ba_20:	pop	%esi
-+	movl	%edx,%edi
-+	ret
-+
-+.bmove_align_end:	
-+	.size	 bmove_align,.bmove_align_end-bmove_align
-+
-+	# Move a string from higher to lower
-+	# Arg from_end+1,to_end+1,length
-+
-+.globl bmove_upp
-+	.type bmove_upp,@function
-+bmove_upp:	
-+	movl	%edi,%edx		# Remember %edi
-+	push	%esi
-+	movl	8(%esp),%edi		# dst
-+	movl	16(%esp),%ecx		# length
-+	movl	12(%esp),%esi		# source
-+	test	%ecx,%ecx
-+	jz	.bu_20
-+	subl	%ecx,%esi		# To start of strings
-+	subl	%ecx,%edi
-+	
-+	.p2align 4,,7
-+.bu_10:	movb	-1(%esi,%ecx),%al
-+	movb	 %al,-1(%edi,%ecx)
-+	decl	%ecx
-+	jnz	.bu_10
-+.bu_20:	pop	%esi
-+	movl	%edx,%edi
-+	ret
-+
-+.bmove_upp_end:	
-+	.size bmove_upp,.bmove_upp_end-bmove_upp
-+
-+	# Append fillchars to string
-+	# Args: dest,len,fill
-+
-+.globl strappend
-+	.type strappend,@function
-+strappend:	
-+	pushl	%edi
-+	movl	8(%esp),%edi		#  Memory pointer
-+	movl	12(%esp),%ecx		#  Length
-+	clrl	%eax			#  Find end of string
-+	repne
-+	scasb
-+	jnz	sa_99			#  String to long, shorten it
-+	movzb	16(%esp),%eax		#  Fillchar
-+	decl	%edi			#  Point at end null
-+	incl	%ecx			#  rep made one dec for null-char
-+
-+	movb	%al,%ah			# (2) Set up a 32 bit pattern.
-+	movw	%ax,%dx			# (2)
-+	shll	$16,%eax		# (3)
-+	movw	%dx,%ax			# (2) %eax has the 32 bit pattern.
-+
-+	movl	%ecx,%edx		# (2) Save the count of bytes.
-+	shrl	$2,%ecx			# (2) Number of dwords.
-+	rep
-+	stosl				# (5 + 5n)
-+	movb	$3,%cl			# (2)
-+	and	%edx,%ecx		# (2) Fill in the odd bytes
-+	rep
-+	stosb				#  Move last bytes if any
-+
-+sa_99:	movb	$0,(%edi)		#  End of string
-+	popl	%edi
-+	ret
-+.strappend_end:	
-+	.size strappend,.strappend_end-strappend
-+
-+	# Find if string contains any char in another string
-+	# Arg: str,set
-+	# Ret: Pointer to first found char in str
-+
-+.globl strcont
-+	.type strcont,@function
-+strcont:	
-+	movl	%edi,%edx
-+	pushl	%esi
-+	movl	8(%esp),%esi		#  str
-+	movl	12(%esp),%ecx		#  set
-+	clrb	%ah			#  For endtest
-+	jmp	sc_60
-+
-+sc_10:	scasb
-+	jz	sc_fo			#  Found char
-+sc_20:	cmp	(%edi),%ah		#  Test if null
-+	jnz	sc_10			#  Not end of set yet
-+	incl	%esi			#  Next char in str
-+sc_60:	movl	%ecx,%edi		#  %edi = Set
-+	movb	(%esi),%al		#  Test if this char exist
-+	andb	%al,%al
-+	jnz	sc_20			#  Not end of string
-+	clrl	%esi			#  Return Null
-+sc_fo:	movl	%esi,%eax		#  Char found here
-+	movl	%edx,%edi		#  Restore
-+	popl	%esi
-+	ret
-+.strcont_end:	
-+	.size strcont,.strcont_end-strcont
-+
-+	# Find end of string
-+	# Arg: str
-+	# ret: Pointer to end null
-+
-+.globl strend
-+	.type strend,@function
-+strend:	
-+	movl	%edi,%edx		#  Save
-+	movl	4(%esp),%edi		#  str
-+	clrl	%eax			#  Find end of string
-+	movl	%eax,%ecx
-+	decl	%ecx			#  ECX = -1
-+	repne
-+	scasb
-+	movl	%edi,%eax
-+	decl	%eax			#  End of string
-+	movl	%edx,%edi		#  Restore
-+	ret
-+.strend_end:	
-+	.size strend,.strend_end-strend
-+
-+	# Make a string with len fill-chars and endnull
-+	# Args: dest,len,fill
-+	# Ret:  dest+len
-+
-+.globl strfill
-+	.type strfill,@function
-+strfill:
-+	pushl	%edi
-+	movl	8(%esp),%edi		#  Memory pointer
-+	movl	12(%esp),%ecx		#  Length
-+	movzb	16(%esp),%eax		#  Fill
-+
-+	movb	%al,%ah			# (2) Set up a 32 bit pattern
-+	movw	%ax,%dx			# (2)
-+	shll	$16,%eax		# (3)
-+	movw	%dx,%ax			# (2) %eax has the 32 bit pattern.
-+
-+	movl	%ecx,%edx		# (2) Save the count of bytes.
-+	shrl	$2,%ecx			# (2) Number of dwords.
-+	rep
-+	stosl				# (5 + 5n)
-+	movb	$3,%cl			# (2)
-+	and	%edx,%ecx		# (2) Fill in the odd bytes
-+	rep
-+	stosb				#  Move last bytes if any
-+
-+	movb	%cl,(%edi)		#  End NULL
-+	movl	%edi,%eax		#  End i %eax
-+	popl	%edi
-+	ret
-+.strfill_end:	
-+	.size strfill,.strfill_end-strfill
-+
-+
-+	# Find a char in or end of a string
-+	# Arg: str,char
-+	# Ret: pointer to found char or NullS
-+
-+.globl strcend
-+	.type strcend,@function
-+strcend:
-+	movl	%edi,%edx
-+	movl	4(%esp),%edi		# str
-+	movb	8(%esp),%ah		# search
-+	clrb	%al			# for scasb to find end
-+
-+se_10:	cmpb	(%edi),%ah
-+	jz	se_20			# Found char
-+	scasb
-+	jnz	se_10			# Not end
-+	dec 	%edi			# Not found, point at end of string
-+se_20:	movl	%edi,%eax
-+	movl	%edx,%edi		# Restore
-+	ret
-+.strcend_end:	
-+	.size strcend,.strcend_end-strcend
-+
-+	# Test if string has a given suffix
-+
-+.globl is_prefix
-+	.type is_prefix,@function
-+is_prefix:	
-+	movl	%edi,%edx		# Save %edi
-+	pushl	%esi			# and %esi
-+	movl	12(%esp),%esi		# get suffix
-+	movl	8(%esp),%edi		# s1
-+	movl	$1,%eax			# Ok and zero-test
-+ip_10:	cmpb	(%esi),%ah
-+	jz	suf_ok			# End of string/ found suffix
-+	cmpsb				# Compare strings
-+	jz	ip_10			# Same, possible prefix
-+	xor	%eax,%eax		# Not suffix
-+suf_ok:	popl	%esi
-+	movl	%edx,%edi
-+	ret
-+.is_prefix_end:	
-+	.size is_prefix,.is_prefix_end-is_prefix
-+
-+	# Find a substring in string
-+	# Arg: str,search
-+
-+.globl strstr
-+	.type strstr,@function
-+
-+strstr:	
-+	pushl	%edi
-+	pushl	%esi
-+	movl	12(%esp),%esi		#  str
-+	movl	16(%esp),%edi		#  search
-+	movl	%edi,%ecx
-+	incl	%ecx			#  %ecx = search+1
-+	movb	(%edi),%ah		#  %ah = First char in search
-+	jmp	sf_10
-+
-+sf_00:	movl	%edx,%esi		#  si = Current str-pos
-+sf_10:	movb	(%esi),%al		#  Test if this char exist
-+	andb	%al,%al
-+	jz	sf_90			#  End of string, didn't find search
-+	incl	%esi
-+	cmpb	%al,%ah
-+	jnz	sf_10			#  Didn't find first char, continue
-+	movl	%esi,%edx		#  Save str-pos in %edx
-+	movl	%ecx,%edi
-+sf_20:	cmpb	$0,(%edi)
-+	jz	sf_fo			#  Found substring
-+	cmpsb
-+	jz	sf_20			#  Char ok
-+	jmp	sf_00			#  Next str-pos
-+
-+sf_90:	movl	$1,%edx			#  Return Null
-+sf_fo:	movl	%edx,%eax		#  Char found here
-+	decl	%eax			#  Pointed one after
-+	popl	%esi
-+	popl	%edi
-+	ret
-+.strstr_end:	
-+	.size strstr,.strstr_end-strstr
-+
-+
-+	# Find a substring in string, return index
-+	# Arg: str,search
-+
-+.globl strinstr
-+	.type strinstr,@function
-+
-+strinstr:
-+	pushl	%ebp
-+	movl	%esp,%ebp
-+#ifdef __PIC__
-+# undef __i686 /* gcc define gets in our way */
-+        pushl   %ebx
-+        call    __i686.get_pc_thunk.bx
-+        addl    $_GLOBAL_OFFSET_TABLE_, %ebx
-+#endif
-+	pushl	12(%ebp)		#  search
-+	pushl	8(%ebp)			#  str
-+#ifdef __PIC__
-+        call    strstr@PLT /*We need to be sure that ebx point to the got*/
-+#else
-+	call	strstr
-+#endif
-+	add	$8,%esp
-+	or	%eax,%eax
-+	jz	si_99			#  Not found, return NULL
-+	sub	8(%ebp),%eax		#  Pos from start
-+	inc	%eax			#  And first pos = 1
-+si_99:	
-+#ifdef __PIC__
-+        popl	%ebx
-+#endif
-+	popl	%ebp
-+	ret
-+.strinstr_end:	
-+	.size strinstr,.strinstr_end-strinstr
-+
-+	# Make a string of len length from another string
-+	# Arg: dst,src,length
-+	# ret: end of dst
-+
-+.globl strmake
-+	.type strmake,@function
-+
-+strmake:	
-+	pushl	%edi
-+	pushl	%esi
-+	mov	12(%esp),%edi		# dst
-+	movl	$0,%edx
-+	movl	20(%esp),%ecx		# length
-+	movl	16(%esp),%esi		# src
-+	cmpl	%edx,%ecx
-+	jz	sm_90
-+sm_00:	movb	(%esi,%edx),%al
-+	cmpb	$0,%al
-+	jz	sm_90
-+	movb	%al,(%edi,%edx)
-+	incl	%edx
-+	cmpl	%edx,%ecx
-+	jnz	sm_00
-+sm_90:	movb	$0,(%edi,%edx)
-+sm_99:	lea	(%edi,%edx),%eax	# Return pointer to end null
-+	pop	%esi
-+	pop	%edi
-+	ret
-+.strmake_end:	
-+	.size strmake,.strmake_end-strmake
-+
-+	# Move a string with max len chars
-+	# arg: dst,src,len
-+	# ret: pos to first null or dst+len
-+
-+.globl strnmov
-+	.type strnmov,@function
-+strnmov:	
-+	pushl	%edi
-+	pushl	%esi
-+	movl	12(%esp),%edi		#  dst
-+	movl	16(%esp),%esi		#  src
-+	movl	20(%esp),%ecx		#  Length of memory-area
-+	jecxz	snm_99			#  Nothing to do
-+	clrb	%al			#  For test of end-null
-+
-+snm_10:	cmpb	(%esi),%al		#  Next char to move
-+	movsb				#  move arg
-+	jz	snm_20			#  last char, fill with null
-+	loop	snm_10			#  Continue moving
-+	incl	%edi			#  Point two after last
-+snm_20:	decl	%edi			#  Point at first null (or last+1)
-+snm_99:	movl	%edi,%eax		#  Pointer at last char
-+	popl	%esi
-+	popl	%edi
-+	ret
-+.strnmov_end:	
-+	.size strnmov,.strnmov_end-strnmov
-+
-+	
-+.globl strmov
-+	.type strmov,@function
-+strmov:	
-+	movl	%esi,%ecx		#  Save old %esi and %edi
-+	movl	%edi,%edx
-+	movl	8(%esp),%esi		#  get source pointer (s2)
-+	movl	4(%esp),%edi		#  %edi -> s1
-+smo_10:	movb	(%esi),%al
-+	movsb				#  move arg
-+	andb	%al,%al
-+	jnz	smo_10			#  Not last
-+	movl	%edi,%eax
-+	dec	%eax
-+	movl	%ecx,%esi		#  Restore
-+	movl	%edx,%edi
-+	ret
-+.strmov_end:	
-+	.size strmov,.strmov_end-strmov
-+
-+.globl strxmov
-+	.type	 strxmov,@function
-+strxmov:
-+	movl	%ebx,%edx		#  Save %ebx, %esi and %edi
-+	mov	%esi,%ecx
-+	push	%edi
-+	leal	8(%esp),%ebx		#  Get destination
-+	movl	(%ebx),%edi
-+	xorb	%al,%al
-+	jmp	next_str		#  Handle source ebx+4
-+
-+start_str:
-+	movsb
-+	cmpb	-1(%edi),%al
-+	jne	start_str
-+	decl	%edi			#  Don't copy last null
-+
-+next_str:
-+	addl	$4,%ebx
-+	movl	(%ebx),%esi
-+	orl	%esi,%esi
-+	jne	start_str
-+	movb	%al,0(%edi)		#  Force last to ASCII 0
-+
-+	movl	%edi,%eax		#  Return ptr to ASCII 0
-+	pop	%edi			#  Restore registers
-+	movl	%ecx,%esi
-+	movl	%edx,%ebx
-+	ret
-+.strxmov_end:
-+	.size	 strxmov,.strxmov_end-strxmov
-+
-+#ifdef __PIC__
-+	.section	.gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
-+	.globl __i686.get_pc_thunk.bx
-+	.hidden	__i686.get_pc_thunk.bx
-+	.type	__i686.get_pc_thunk.bx,@function
-+__i686.get_pc_thunk.bx:
-+	movl (%esp), %ebx
-+	ret
-+#endif
-+	.section	.note.GNU-stack,"",@progbits
-+
 diff -urN a/strings/strings-x86.s b/strings/strings-x86.s
 --- a/strings/strings-x86.s	2010-11-09 21:29:32.192000076 +0100
 +++ b/strings/strings-x86.s	1970-01-01 01:00:00.000000000 +0100

diff --git a/07340_all_mysql_hardened_x86_strings.patch b/07340_all_mysql_hardened_x86_strings.patch
index 9e43d6a..b442042 100644
--- a/07340_all_mysql_hardened_x86_strings.patch
+++ b/07340_all_mysql_hardened_x86_strings.patch
@@ -6,515 +6,6 @@
 		* strings/Makefile.in		Likewise.
 		* strings/strings-x86.S	Copy of strings-x86.s to support -fPIC
 
-diff -urN a/configure.in b/configure.in
---- a/configure.in	2010-11-09 21:29:31.806000076 +0100
-+++ b/configure.in	2010-11-09 21:31:55.596000072 +0100
-@@ -673,7 +673,7 @@
- 
- AC_MSG_CHECKING(if we should use assembler functions)
- # For now we only support assembler on i386 and sparc systems
--AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386" && $AS strings/strings-x86.s -o checkassembler >/dev/null 2>&1 && test -f checkassembler && (rm -f checkassembler; exit 0;))
-+AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386" && $AS strings/strings-x86.S -o checkassembler >/dev/null 2>&1 && test -f checkassembler && (rm -f checkassembler; exit 0;))
- AM_CONDITIONAL(ASSEMBLER_sparc32, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparc")
- AM_CONDITIONAL(ASSEMBLER_sparc64, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparcv9")
- AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "" -o "$ASSEMBLER_sparc32_TRUE" = "")
-diff -urN a/strings/Makefile.am b/strings/Makefile.am
---- a/strings/Makefile.am	2010-11-09 21:29:32.195000076 +0100
-+++ b/strings/Makefile.am	2010-11-09 21:33:18.545000075 +0100
-@@ -20,7 +20,7 @@
- 
- # Exact one of ASSEMBLER_X
- if ASSEMBLER_x86
--ASRCS		= strings-x86.s longlong2str-x86.s my_strtoll10-x86.s
-+ASRCS		= strings-x86.S longlong2str-x86.s my_strtoll10-x86.s
- CSRCS		= bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtod.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c str_alloc.c longlong2str_asm.c my_strchr.c strmov.c
- else
- if ASSEMBLER_sparc32
-@@ -44,7 +44,7 @@
- EXTRA_DIST =		ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-win1250ch.c \
- 			ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-utf8.c \
- 			ctype-ucs2.c ctype-uca.c ctype-tis620.c ctype-ujis.c \
--			xml.c decimal.c strto.c strings-x86.s \
-+			xml.c decimal.c strto.c strings-x86.S \
- 			longlong2str.c longlong2str-x86.s longlong2str_asm.c \
- 			my_strtoll10.c my_strtoll10-x86.s \
- 			strxmov.c bmove_upp.c strappend.c strcont.c strend.c \
-diff -urN a/strings/Makefile.in b/strings/Makefile.in
---- a/strings/Makefile.in	2010-11-09 21:29:32.197000076 +0100
-+++ b/strings/Makefile.in	2010-11-09 21:33:45.348000075 +0100
-@@ -103,7 +103,7 @@
- libmystrings_la_DEPENDENCIES =
- am__libmystrings_la_SOURCES_DIST = bmove_upp-sparc.s strappend-sparc.s \
- 	strend-sparc.s strinstr-sparc.s strmake-sparc.s strmov-sparc.s \
--	strnmov-sparc.s strstr-sparc.s strings-x86.s \
-+	strnmov-sparc.s strstr-sparc.s strings-x86.S \
- 	longlong2str-x86.s my_strtoll10-x86.s strxmov.c bmove_upp.c \
- 	strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c \
- 	strstr.c strinstr.c strmake.c strnmov.c strmov.c \
-@@ -621,7 +621,7 @@
- @ASSEMBLER_sparc32_TRUE@@ASSEMBLER_x86_FALSE@ASRCS = bmove_upp-sparc.s strappend-sparc.s strend-sparc.s strinstr-sparc.s strmake-sparc.s strmov-sparc.s strnmov-sparc.s strstr-sparc.s
- 
- # Exact one of ASSEMBLER_X
--@ASSEMBLER_x86_TRUE@ASRCS = strings-x86.s longlong2str-x86.s my_strtoll10-x86.s
-+@ASSEMBLER_x86_TRUE@ASRCS = strings-x86.S longlong2str-x86.s my_strtoll10-x86.s
- # These file MUST all be on the same line!! Otherwise automake
- # generats a very broken makefile
- @ASSEMBLER_sparc32_FALSE@@ASSEMBLER_x86_FALSE@CSRCS = strxmov.c bmove_upp.c strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c strstr.c strinstr.c strmake.c strnmov.c strmov.c longlong2str.c bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtod.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c my_strtoll10.c str_alloc.c my_strchr.c
-@@ -633,7 +633,7 @@
- EXTRA_DIST = ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-win1250ch.c \
- 			ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-utf8.c \
- 			ctype-ucs2.c ctype-uca.c ctype-tis620.c ctype-ujis.c \
--			xml.c decimal.c strto.c strings-x86.s \
-+			xml.c decimal.c strto.c strings-x86.S \
- 			longlong2str.c longlong2str-x86.s longlong2str_asm.c \
- 			my_strtoll10.c my_strtoll10-x86.s \
- 			strxmov.c bmove_upp.c strappend.c strcont.c strend.c \
-diff -urN a/strings/strings-x86.S b/strings/strings-x86.S
---- a/strings/strings-x86.S	1970-01-01 01:00:00.000000000 +0100
-+++ b/strings/strings-x86.S	2010-11-09 22:05:05.084000076 +0100
-@@ -0,0 +1,442 @@
-+# Copyright (C) 2000 MySQL AB
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; version 2 of the License.
-+#
-+# This program 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 General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-+
-+# Optimized string functions Intel 80x86  (gcc/gas syntax)
-+
-+	.file	"strings.S"
-+	.version "1.01"
-+
-+.text
-+
-+#	Move a alligned, not overlapped, by (long) divided memory area
-+#	Args: to,from,length
-+
-+.globl bmove_align
-+	.type	 bmove_align,@function
-+bmove_align:	
-+	movl	%edi,%edx
-+	push	%esi
-+	movl	4(%esp),%edi		# to
-+	movl	8(%esp),%esi		# from
-+	movl	12(%esp),%ecx		# length
-+	addw	$3,%cx			# fix if not divisible with long
-+	shrw	$2,%cx
-+	jz	.ba_20
-+	.p2align 4,,7
-+.ba_10:
-+	movl	-4(%esi,%ecx),%eax
-+	movl	 %eax,-4(%edi,%ecx)
-+	decl	%ecx
-+	jnz	.ba_10
-+.ba_20:	pop	%esi
-+	movl	%edx,%edi
-+	ret
-+
-+.bmove_align_end:	
-+	.size	 bmove_align,.bmove_align_end-bmove_align
-+
-+	# Move a string from higher to lower
-+	# Arg from_end+1,to_end+1,length
-+
-+.globl bmove_upp
-+	.type bmove_upp,@function
-+bmove_upp:	
-+	movl	%edi,%edx		# Remember %edi
-+	push	%esi
-+	movl	8(%esp),%edi		# dst
-+	movl	16(%esp),%ecx		# length
-+	movl	12(%esp),%esi		# source
-+	test	%ecx,%ecx
-+	jz	.bu_20
-+	subl	%ecx,%esi		# To start of strings
-+	subl	%ecx,%edi
-+	
-+	.p2align 4,,7
-+.bu_10:	movb	-1(%esi,%ecx),%al
-+	movb	 %al,-1(%edi,%ecx)
-+	decl	%ecx
-+	jnz	.bu_10
-+.bu_20:	pop	%esi
-+	movl	%edx,%edi
-+	ret
-+
-+.bmove_upp_end:	
-+	.size bmove_upp,.bmove_upp_end-bmove_upp
-+
-+	# Append fillchars to string
-+	# Args: dest,len,fill
-+
-+.globl strappend
-+	.type strappend,@function
-+strappend:	
-+	pushl	%edi
-+	movl	8(%esp),%edi		#  Memory pointer
-+	movl	12(%esp),%ecx		#  Length
-+	clrl	%eax			#  Find end of string
-+	repne
-+	scasb
-+	jnz	sa_99			#  String to long, shorten it
-+	movzb	16(%esp),%eax		#  Fillchar
-+	decl	%edi			#  Point at end null
-+	incl	%ecx			#  rep made one dec for null-char
-+
-+	movb	%al,%ah			# (2) Set up a 32 bit pattern.
-+	movw	%ax,%dx			# (2)
-+	shll	$16,%eax		# (3)
-+	movw	%dx,%ax			# (2) %eax has the 32 bit pattern.
-+
-+	movl	%ecx,%edx		# (2) Save the count of bytes.
-+	shrl	$2,%ecx			# (2) Number of dwords.
-+	rep
-+	stosl				# (5 + 5n)
-+	movb	$3,%cl			# (2)
-+	and	%edx,%ecx		# (2) Fill in the odd bytes
-+	rep
-+	stosb				#  Move last bytes if any
-+
-+sa_99:	movb	$0,(%edi)		#  End of string
-+	popl	%edi
-+	ret
-+.strappend_end:	
-+	.size strappend,.strappend_end-strappend
-+
-+	# Find if string contains any char in another string
-+	# Arg: str,set
-+	# Ret: Pointer to first found char in str
-+
-+.globl strcont
-+	.type strcont,@function
-+strcont:	
-+	movl	%edi,%edx
-+	pushl	%esi
-+	movl	8(%esp),%esi		#  str
-+	movl	12(%esp),%ecx		#  set
-+	clrb	%ah			#  For endtest
-+	jmp	sc_60
-+
-+sc_10:	scasb
-+	jz	sc_fo			#  Found char
-+sc_20:	cmp	(%edi),%ah		#  Test if null
-+	jnz	sc_10			#  Not end of set yet
-+	incl	%esi			#  Next char in str
-+sc_60:	movl	%ecx,%edi		#  %edi = Set
-+	movb	(%esi),%al		#  Test if this char exist
-+	andb	%al,%al
-+	jnz	sc_20			#  Not end of string
-+	clrl	%esi			#  Return Null
-+sc_fo:	movl	%esi,%eax		#  Char found here
-+	movl	%edx,%edi		#  Restore
-+	popl	%esi
-+	ret
-+.strcont_end:	
-+	.size strcont,.strcont_end-strcont
-+
-+	# Find end of string
-+	# Arg: str
-+	# ret: Pointer to end null
-+
-+.globl strend
-+	.type strend,@function
-+strend:	
-+	movl	%edi,%edx		#  Save
-+	movl	4(%esp),%edi		#  str
-+	clrl	%eax			#  Find end of string
-+	movl	%eax,%ecx
-+	decl	%ecx			#  ECX = -1
-+	repne
-+	scasb
-+	movl	%edi,%eax
-+	decl	%eax			#  End of string
-+	movl	%edx,%edi		#  Restore
-+	ret
-+.strend_end:	
-+	.size strend,.strend_end-strend
-+
-+	# Make a string with len fill-chars and endnull
-+	# Args: dest,len,fill
-+	# Ret:  dest+len
-+
-+.globl strfill
-+	.type strfill,@function
-+strfill:
-+	pushl	%edi
-+	movl	8(%esp),%edi		#  Memory pointer
-+	movl	12(%esp),%ecx		#  Length
-+	movzb	16(%esp),%eax		#  Fill
-+
-+	movb	%al,%ah			# (2) Set up a 32 bit pattern
-+	movw	%ax,%dx			# (2)
-+	shll	$16,%eax		# (3)
-+	movw	%dx,%ax			# (2) %eax has the 32 bit pattern.
-+
-+	movl	%ecx,%edx		# (2) Save the count of bytes.
-+	shrl	$2,%ecx			# (2) Number of dwords.
-+	rep
-+	stosl				# (5 + 5n)
-+	movb	$3,%cl			# (2)
-+	and	%edx,%ecx		# (2) Fill in the odd bytes
-+	rep
-+	stosb				#  Move last bytes if any
-+
-+	movb	%cl,(%edi)		#  End NULL
-+	movl	%edi,%eax		#  End i %eax
-+	popl	%edi
-+	ret
-+.strfill_end:	
-+	.size strfill,.strfill_end-strfill
-+
-+
-+	# Find a char in or end of a string
-+	# Arg: str,char
-+	# Ret: pointer to found char or NullS
-+
-+.globl strcend
-+	.type strcend,@function
-+strcend:
-+	movl	%edi,%edx
-+	movl	4(%esp),%edi		# str
-+	movb	8(%esp),%ah		# search
-+	clrb	%al			# for scasb to find end
-+
-+se_10:	cmpb	(%edi),%ah
-+	jz	se_20			# Found char
-+	scasb
-+	jnz	se_10			# Not end
-+	dec 	%edi			# Not found, point at end of string
-+se_20:	movl	%edi,%eax
-+	movl	%edx,%edi		# Restore
-+	ret
-+.strcend_end:	
-+	.size strcend,.strcend_end-strcend
-+
-+	# Test if string has a given suffix
-+
-+.globl is_prefix
-+	.type is_prefix,@function
-+is_prefix:	
-+	movl	%edi,%edx		# Save %edi
-+	pushl	%esi			# and %esi
-+	movl	12(%esp),%esi		# get suffix
-+	movl	8(%esp),%edi		# s1
-+	movl	$1,%eax			# Ok and zero-test
-+ip_10:	cmpb	(%esi),%ah
-+	jz	suf_ok			# End of string/ found suffix
-+	cmpsb				# Compare strings
-+	jz	ip_10			# Same, possible prefix
-+	xor	%eax,%eax		# Not suffix
-+suf_ok:	popl	%esi
-+	movl	%edx,%edi
-+	ret
-+.is_prefix_end:	
-+	.size is_prefix,.is_prefix_end-is_prefix
-+
-+	# Find a substring in string
-+	# Arg: str,search
-+
-+.globl strstr
-+	.type strstr,@function
-+
-+strstr:	
-+	pushl	%edi
-+	pushl	%esi
-+	movl	12(%esp),%esi		#  str
-+	movl	16(%esp),%edi		#  search
-+	movl	%edi,%ecx
-+	incl	%ecx			#  %ecx = search+1
-+	movb	(%edi),%ah		#  %ah = First char in search
-+	jmp	sf_10
-+
-+sf_00:	movl	%edx,%esi		#  si = Current str-pos
-+sf_10:	movb	(%esi),%al		#  Test if this char exist
-+	andb	%al,%al
-+	jz	sf_90			#  End of string, didn't find search
-+	incl	%esi
-+	cmpb	%al,%ah
-+	jnz	sf_10			#  Didn't find first char, continue
-+	movl	%esi,%edx		#  Save str-pos in %edx
-+	movl	%ecx,%edi
-+sf_20:	cmpb	$0,(%edi)
-+	jz	sf_fo			#  Found substring
-+	cmpsb
-+	jz	sf_20			#  Char ok
-+	jmp	sf_00			#  Next str-pos
-+
-+sf_90:	movl	$1,%edx			#  Return Null
-+sf_fo:	movl	%edx,%eax		#  Char found here
-+	decl	%eax			#  Pointed one after
-+	popl	%esi
-+	popl	%edi
-+	ret
-+.strstr_end:	
-+	.size strstr,.strstr_end-strstr
-+
-+
-+	# Find a substring in string, return index
-+	# Arg: str,search
-+
-+.globl strinstr
-+	.type strinstr,@function
-+
-+strinstr:
-+	pushl	%ebp
-+	movl	%esp,%ebp
-+#ifdef __PIC__
-+# undef __i686 /* gcc define gets in our way */
-+        pushl   %ebx
-+        call    __i686.get_pc_thunk.bx
-+        addl    $_GLOBAL_OFFSET_TABLE_, %ebx
-+#endif
-+	pushl	12(%ebp)		#  search
-+	pushl	8(%ebp)			#  str
-+#ifdef __PIC__
-+        call    strstr@PLT /*We need to be sure that ebx point to the got*/
-+#else
-+	call	strstr
-+#endif
-+	add	$8,%esp
-+	or	%eax,%eax
-+	jz	si_99			#  Not found, return NULL
-+	sub	8(%ebp),%eax		#  Pos from start
-+	inc	%eax			#  And first pos = 1
-+si_99:	
-+#ifdef __PIC__
-+        popl	%ebx
-+#endif
-+	popl	%ebp
-+	ret
-+.strinstr_end:	
-+	.size strinstr,.strinstr_end-strinstr
-+
-+	# Make a string of len length from another string
-+	# Arg: dst,src,length
-+	# ret: end of dst
-+
-+.globl strmake
-+	.type strmake,@function
-+
-+strmake:	
-+	pushl	%edi
-+	pushl	%esi
-+	mov	12(%esp),%edi		# dst
-+	movl	$0,%edx
-+	movl	20(%esp),%ecx		# length
-+	movl	16(%esp),%esi		# src
-+	cmpl	%edx,%ecx
-+	jz	sm_90
-+sm_00:	movb	(%esi,%edx),%al
-+	cmpb	$0,%al
-+	jz	sm_90
-+	movb	%al,(%edi,%edx)
-+	incl	%edx
-+	cmpl	%edx,%ecx
-+	jnz	sm_00
-+sm_90:	movb	$0,(%edi,%edx)
-+sm_99:	lea	(%edi,%edx),%eax	# Return pointer to end null
-+	pop	%esi
-+	pop	%edi
-+	ret
-+.strmake_end:	
-+	.size strmake,.strmake_end-strmake
-+
-+	# Move a string with max len chars
-+	# arg: dst,src,len
-+	# ret: pos to first null or dst+len
-+
-+.globl strnmov
-+	.type strnmov,@function
-+strnmov:	
-+	pushl	%edi
-+	pushl	%esi
-+	movl	12(%esp),%edi		#  dst
-+	movl	16(%esp),%esi		#  src
-+	movl	20(%esp),%ecx		#  Length of memory-area
-+	jecxz	snm_99			#  Nothing to do
-+	clrb	%al			#  For test of end-null
-+
-+snm_10:	cmpb	(%esi),%al		#  Next char to move
-+	movsb				#  move arg
-+	jz	snm_20			#  last char, fill with null
-+	loop	snm_10			#  Continue moving
-+	incl	%edi			#  Point two after last
-+snm_20:	decl	%edi			#  Point at first null (or last+1)
-+snm_99:	movl	%edi,%eax		#  Pointer at last char
-+	popl	%esi
-+	popl	%edi
-+	ret
-+.strnmov_end:	
-+	.size strnmov,.strnmov_end-strnmov
-+
-+	
-+.globl strmov
-+	.type strmov,@function
-+strmov:	
-+	movl	%esi,%ecx		#  Save old %esi and %edi
-+	movl	%edi,%edx
-+	movl	8(%esp),%esi		#  get source pointer (s2)
-+	movl	4(%esp),%edi		#  %edi -> s1
-+smo_10:	movb	(%esi),%al
-+	movsb				#  move arg
-+	andb	%al,%al
-+	jnz	smo_10			#  Not last
-+	movl	%edi,%eax
-+	dec	%eax
-+	movl	%ecx,%esi		#  Restore
-+	movl	%edx,%edi
-+	ret
-+.strmov_end:	
-+	.size strmov,.strmov_end-strmov
-+
-+.globl strxmov
-+	.type	 strxmov,@function
-+strxmov:
-+	movl	%ebx,%edx		#  Save %ebx, %esi and %edi
-+	mov	%esi,%ecx
-+	push	%edi
-+	leal	8(%esp),%ebx		#  Get destination
-+	movl	(%ebx),%edi
-+	xorb	%al,%al
-+	jmp	next_str		#  Handle source ebx+4
-+
-+start_str:
-+	movsb
-+	cmpb	-1(%edi),%al
-+	jne	start_str
-+	decl	%edi			#  Don't copy last null
-+
-+next_str:
-+	addl	$4,%ebx
-+	movl	(%ebx),%esi
-+	orl	%esi,%esi
-+	jne	start_str
-+	movb	%al,0(%edi)		#  Force last to ASCII 0
-+
-+	movl	%edi,%eax		#  Return ptr to ASCII 0
-+	pop	%edi			#  Restore registers
-+	movl	%ecx,%esi
-+	movl	%edx,%ebx
-+	ret
-+.strxmov_end:
-+	.size	 strxmov,.strxmov_end-strxmov
-+
-+#ifdef __PIC__
-+	.section	.gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
-+	.globl __i686.get_pc_thunk.bx
-+	.hidden	__i686.get_pc_thunk.bx
-+	.type	__i686.get_pc_thunk.bx,@function
-+__i686.get_pc_thunk.bx:
-+	movl (%esp), %ebx
-+	ret
-+#endif
-+	.section	.note.GNU-stack,"",@progbits
-+
 diff -urN a/strings/strings-x86.s b/strings/strings-x86.s
 --- a/strings/strings-x86.s	2010-11-09 21:29:32.192000076 +0100
 +++ b/strings/strings-x86.s	1970-01-01 01:00:00.000000000 +0100

diff --git a/07341_all_mariadb_hardened_x86_strings.patch b/07341_all_mariadb_hardened_x86_strings.patch
new file mode 100644
index 0000000..7e86f7f
--- /dev/null
+++ b/07341_all_mariadb_hardened_x86_strings.patch
@@ -0,0 +1,517 @@
+2010-11-10	Magnus Granberg <zorry@gento.org>, Francisco Blas Izquierdo Riera <franxisco1988@mixmail.com>
+
+		#344031
+		* configure.in: 			Rename strings-x86.s to strings-x86.S
+		* strings/Makefile.am		Likewise.
+		* strings/Makefile.in		Likewise.
+		* strings/strings-x86.S	Copy of strings-x86.s to support -fPIC
+
+diff -urN a/configure.in b/configure.in
+--- a/configure.in	2010-11-10 00:23:45.287000082 +0100
++++ b/configure.in	2010-11-10 00:30:47.681000059 +0100
+@@ -698,7 +698,7 @@
+ 
+ AC_MSG_CHECKING(if we should use assembler functions)
+ # For now we only support assembler on i386 and sparc systems
+-AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386" && $CCAS $CCASFLAGS -c strings/strings-x86.s -o checkassembler >/dev/null 2>&1 && test -f checkassembler && (rm -f checkassembler; exit 0;))
++AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386" && $CCAS $CCASFLAGS -c strings/strings-x86.S -o checkassembler >/dev/null 2>&1 && test -f checkassembler && (rm -f checkassembler; exit 0;))
+ AM_CONDITIONAL(ASSEMBLER_sparc32, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparc")
+ AM_CONDITIONAL(ASSEMBLER_sparc64, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparcv9")
+ AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "" -o "$ASSEMBLER_sparc32_TRUE" = "")
+diff -urN a/strings/Makefile.am b/strings/Makefile.am
+--- a/strings/Makefile.am	2010-11-10 00:23:45.421000083 +0100
++++ b/strings/Makefile.am	2010-11-10 00:31:23.489000090 +0100
+@@ -20,7 +20,7 @@
+ 
+ # Exact one of ASSEMBLER_X
+ if ASSEMBLER_x86
+-ASRCS		= strings-x86.s longlong2str-x86.s my_strtoll10-x86.s
++ASRCS		= strings-x86.S longlong2str-x86.s my_strtoll10-x86.s
+ CSRCS		= bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtod.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c str_alloc.c longlong2str_asm.c my_strchr.c strmov.c strmov_overlapp.c
+ else
+ if ASSEMBLER_sparc32
+@@ -44,7 +44,7 @@
+ EXTRA_DIST =		ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-win1250ch.c \
+ 			ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-utf8.c \
+ 			ctype-ucs2.c ctype-uca.c ctype-tis620.c ctype-ujis.c \
+-			xml.c decimal.c strto.c strings-x86.s \
++			xml.c decimal.c strto.c strings-x86.S \
+ 			longlong2str.c longlong2str-x86.s longlong2str_asm.c \
+ 			my_strtoll10.c my_strtoll10-x86.s \
+ 			strxmov.c bmove_upp.c strappend.c strcont.c strend.c \
+diff -urN a/strings/Makefile.in b/strings/Makefile.in
+--- a/strings/Makefile.in	2010-11-10 00:23:45.423000082 +0100
++++ b/strings/Makefile.in	2010-11-10 00:29:17.547000090 +0100
+@@ -104,7 +104,7 @@
+ libmystrings_la_DEPENDENCIES =
+ am__libmystrings_la_SOURCES_DIST = bmove_upp-sparc.s strappend-sparc.s \
+ 	strend-sparc.s strinstr-sparc.s strmake-sparc.s strmov-sparc.s \
+-	strnmov-sparc.s strstr-sparc.s strings-x86.s \
++	strnmov-sparc.s strstr-sparc.s strings-x86.S \
+ 	longlong2str-x86.s my_strtoll10-x86.s strxmov.c bmove_upp.c \
+ 	strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c \
+ 	strstr.c strinstr.c strmake.c strnmov.c strmov.c \
+@@ -637,7 +637,7 @@
+ @ASSEMBLER_sparc32_TRUE@@ASSEMBLER_x86_FALSE@ASRCS = bmove_upp-sparc.s strappend-sparc.s strend-sparc.s strinstr-sparc.s strmake-sparc.s strmov-sparc.s strnmov-sparc.s strstr-sparc.s
+ 
+ # Exact one of ASSEMBLER_X
+-@ASSEMBLER_x86_TRUE@ASRCS = strings-x86.s longlong2str-x86.s my_strtoll10-x86.s
++@ASSEMBLER_x86_TRUE@ASRCS = strings-x86.S longlong2str-x86.s my_strtoll10-x86.s
+ # These file MUST all be on the same line!! Otherwise automake
+ # generats a very broken makefile
+ @ASSEMBLER_sparc32_FALSE@@ASSEMBLER_x86_FALSE@CSRCS = strxmov.c bmove_upp.c strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c strstr.c strinstr.c strmake.c strnmov.c strmov.c longlong2str.c bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtod.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c my_strtoll10.c str_alloc.c my_strchr.c strmov_overlapp.c
+@@ -649,7 +649,7 @@
+ EXTRA_DIST = ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-win1250ch.c \
+ 			ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-utf8.c \
+ 			ctype-ucs2.c ctype-uca.c ctype-tis620.c ctype-ujis.c \
+-			xml.c decimal.c strto.c strings-x86.s \
++			xml.c decimal.c strto.c strings-x86.S \
+ 			longlong2str.c longlong2str-x86.s longlong2str_asm.c \
+ 			my_strtoll10.c my_strtoll10-x86.s \
+ 			strxmov.c bmove_upp.c strappend.c strcont.c strend.c \
+diff -urN a/strings/strings-x86.S b/strings/strings-x86.S
+--- a/strings/strings-x86.S	1970-01-01 01:00:00.000000000 +0100
++++ b/strings/strings-x86.S	2010-11-10 00:29:17.547000090 +0100
+@@ -0,0 +1,442 @@
++# Copyright (C) 2000 MySQL AB
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; version 2 of the License.
++#
++# This program 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 General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
++
++# Optimized string functions Intel 80x86  (gcc/gas syntax)
++
++	.file	"strings.S"
++	.version "1.01"
++
++.text
++
++#	Move a alligned, not overlapped, by (long) divided memory area
++#	Args: to,from,length
++
++.globl bmove_align
++	.type	 bmove_align,@function
++bmove_align:	
++	movl	%edi,%edx
++	push	%esi
++	movl	4(%esp),%edi		# to
++	movl	8(%esp),%esi		# from
++	movl	12(%esp),%ecx		# length
++	addw	$3,%cx			# fix if not divisible with long
++	shrw	$2,%cx
++	jz	.ba_20
++	.p2align 4,,7
++.ba_10:
++	movl	-4(%esi,%ecx),%eax
++	movl	 %eax,-4(%edi,%ecx)
++	decl	%ecx
++	jnz	.ba_10
++.ba_20:	pop	%esi
++	movl	%edx,%edi
++	ret
++
++.bmove_align_end:	
++	.size	 bmove_align,.bmove_align_end-bmove_align
++
++	# Move a string from higher to lower
++	# Arg from_end+1,to_end+1,length
++
++.globl bmove_upp
++	.type bmove_upp,@function
++bmove_upp:	
++	movl	%edi,%edx		# Remember %edi
++	push	%esi
++	movl	8(%esp),%edi		# dst
++	movl	16(%esp),%ecx		# length
++	movl	12(%esp),%esi		# source
++	test	%ecx,%ecx
++	jz	.bu_20
++	subl	%ecx,%esi		# To start of strings
++	subl	%ecx,%edi
++	
++	.p2align 4,,7
++.bu_10:	movb	-1(%esi,%ecx),%al
++	movb	 %al,-1(%edi,%ecx)
++	decl	%ecx
++	jnz	.bu_10
++.bu_20:	pop	%esi
++	movl	%edx,%edi
++	ret
++
++.bmove_upp_end:	
++	.size bmove_upp,.bmove_upp_end-bmove_upp
++
++	# Append fillchars to string
++	# Args: dest,len,fill
++
++.globl strappend
++	.type strappend,@function
++strappend:	
++	pushl	%edi
++	movl	8(%esp),%edi		#  Memory pointer
++	movl	12(%esp),%ecx		#  Length
++	clrl	%eax			#  Find end of string
++	repne
++	scasb
++	jnz	sa_99			#  String to long, shorten it
++	movzb	16(%esp),%eax		#  Fillchar
++	decl	%edi			#  Point at end null
++	incl	%ecx			#  rep made one dec for null-char
++
++	movb	%al,%ah			# (2) Set up a 32 bit pattern.
++	movw	%ax,%dx			# (2)
++	shll	$16,%eax		# (3)
++	movw	%dx,%ax			# (2) %eax has the 32 bit pattern.
++
++	movl	%ecx,%edx		# (2) Save the count of bytes.
++	shrl	$2,%ecx			# (2) Number of dwords.
++	rep
++	stosl				# (5 + 5n)
++	movb	$3,%cl			# (2)
++	and	%edx,%ecx		# (2) Fill in the odd bytes
++	rep
++	stosb				#  Move last bytes if any
++
++sa_99:	movb	$0,(%edi)		#  End of string
++	popl	%edi
++	ret
++.strappend_end:	
++	.size strappend,.strappend_end-strappend
++
++	# Find if string contains any char in another string
++	# Arg: str,set
++	# Ret: Pointer to first found char in str
++
++.globl strcont
++	.type strcont,@function
++strcont:	
++	movl	%edi,%edx
++	pushl	%esi
++	movl	8(%esp),%esi		#  str
++	movl	12(%esp),%ecx		#  set
++	clrb	%ah			#  For endtest
++	jmp	sc_60
++
++sc_10:	scasb
++	jz	sc_fo			#  Found char
++sc_20:	cmp	(%edi),%ah		#  Test if null
++	jnz	sc_10			#  Not end of set yet
++	incl	%esi			#  Next char in str
++sc_60:	movl	%ecx,%edi		#  %edi = Set
++	movb	(%esi),%al		#  Test if this char exist
++	andb	%al,%al
++	jnz	sc_20			#  Not end of string
++	clrl	%esi			#  Return Null
++sc_fo:	movl	%esi,%eax		#  Char found here
++	movl	%edx,%edi		#  Restore
++	popl	%esi
++	ret
++.strcont_end:	
++	.size strcont,.strcont_end-strcont
++
++	# Find end of string
++	# Arg: str
++	# ret: Pointer to end null
++
++.globl strend
++	.type strend,@function
++strend:	
++	movl	%edi,%edx		#  Save
++	movl	4(%esp),%edi		#  str
++	clrl	%eax			#  Find end of string
++	movl	%eax,%ecx
++	decl	%ecx			#  ECX = -1
++	repne
++	scasb
++	movl	%edi,%eax
++	decl	%eax			#  End of string
++	movl	%edx,%edi		#  Restore
++	ret
++.strend_end:	
++	.size strend,.strend_end-strend
++
++	# Make a string with len fill-chars and endnull
++	# Args: dest,len,fill
++	# Ret:  dest+len
++
++.globl strfill
++	.type strfill,@function
++strfill:
++	pushl	%edi
++	movl	8(%esp),%edi		#  Memory pointer
++	movl	12(%esp),%ecx		#  Length
++	movzb	16(%esp),%eax		#  Fill
++
++	movb	%al,%ah			# (2) Set up a 32 bit pattern
++	movw	%ax,%dx			# (2)
++	shll	$16,%eax		# (3)
++	movw	%dx,%ax			# (2) %eax has the 32 bit pattern.
++
++	movl	%ecx,%edx		# (2) Save the count of bytes.
++	shrl	$2,%ecx			# (2) Number of dwords.
++	rep
++	stosl				# (5 + 5n)
++	movb	$3,%cl			# (2)
++	and	%edx,%ecx		# (2) Fill in the odd bytes
++	rep
++	stosb				#  Move last bytes if any
++
++	movb	%cl,(%edi)		#  End NULL
++	movl	%edi,%eax		#  End i %eax
++	popl	%edi
++	ret
++.strfill_end:	
++	.size strfill,.strfill_end-strfill
++
++
++	# Find a char in or end of a string
++	# Arg: str,char
++	# Ret: pointer to found char or NullS
++
++.globl strcend
++	.type strcend,@function
++strcend:
++	movl	%edi,%edx
++	movl	4(%esp),%edi		# str
++	movb	8(%esp),%ah		# search
++	clrb	%al			# for scasb to find end
++
++se_10:	cmpb	(%edi),%ah
++	jz	se_20			# Found char
++	scasb
++	jnz	se_10			# Not end
++	dec 	%edi			# Not found, point at end of string
++se_20:	movl	%edi,%eax
++	movl	%edx,%edi		# Restore
++	ret
++.strcend_end:	
++	.size strcend,.strcend_end-strcend
++
++	# Test if string has a given suffix
++
++.globl is_prefix
++	.type is_prefix,@function
++is_prefix:	
++	movl	%edi,%edx		# Save %edi
++	pushl	%esi			# and %esi
++	movl	12(%esp),%esi		# get suffix
++	movl	8(%esp),%edi		# s1
++	movl	$1,%eax			# Ok and zero-test
++ip_10:	cmpb	(%esi),%ah
++	jz	suf_ok			# End of string/ found suffix
++	cmpsb				# Compare strings
++	jz	ip_10			# Same, possible prefix
++	xor	%eax,%eax		# Not suffix
++suf_ok:	popl	%esi
++	movl	%edx,%edi
++	ret
++.is_prefix_end:	
++	.size is_prefix,.is_prefix_end-is_prefix
++
++	# Find a substring in string
++	# Arg: str,search
++
++.globl strstr
++	.type strstr,@function
++
++strstr:	
++	pushl	%edi
++	pushl	%esi
++	movl	12(%esp),%esi		#  str
++	movl	16(%esp),%edi		#  search
++	movl	%edi,%ecx
++	incl	%ecx			#  %ecx = search+1
++	movb	(%edi),%ah		#  %ah = First char in search
++	jmp	sf_10
++
++sf_00:	movl	%edx,%esi		#  si = Current str-pos
++sf_10:	movb	(%esi),%al		#  Test if this char exist
++	andb	%al,%al
++	jz	sf_90			#  End of string, didn't find search
++	incl	%esi
++	cmpb	%al,%ah
++	jnz	sf_10			#  Didn't find first char, continue
++	movl	%esi,%edx		#  Save str-pos in %edx
++	movl	%ecx,%edi
++sf_20:	cmpb	$0,(%edi)
++	jz	sf_fo			#  Found substring
++	cmpsb
++	jz	sf_20			#  Char ok
++	jmp	sf_00			#  Next str-pos
++
++sf_90:	movl	$1,%edx			#  Return Null
++sf_fo:	movl	%edx,%eax		#  Char found here
++	decl	%eax			#  Pointed one after
++	popl	%esi
++	popl	%edi
++	ret
++.strstr_end:	
++	.size strstr,.strstr_end-strstr
++
++
++	# Find a substring in string, return index
++	# Arg: str,search
++
++.globl strinstr
++	.type strinstr,@function
++
++strinstr:
++	pushl	%ebp
++	movl	%esp,%ebp
++#ifdef __PIC__
++# undef __i686 /* gcc define gets in our way */
++        pushl   %ebx
++        call    __i686.get_pc_thunk.bx
++        addl    $_GLOBAL_OFFSET_TABLE_, %ebx
++#endif
++	pushl	12(%ebp)		#  search
++	pushl	8(%ebp)			#  str
++#ifdef __PIC__
++        call    strstr@PLT /*We need to be sure that ebx point to the got*/
++#else
++	call	strstr
++#endif
++	add	$8,%esp
++	or	%eax,%eax
++	jz	si_99			#  Not found, return NULL
++	sub	8(%ebp),%eax		#  Pos from start
++	inc	%eax			#  And first pos = 1
++si_99:	
++#ifdef __PIC__
++        popl	%ebx
++#endif
++	popl	%ebp
++	ret
++.strinstr_end:	
++	.size strinstr,.strinstr_end-strinstr
++
++	# Make a string of len length from another string
++	# Arg: dst,src,length
++	# ret: end of dst
++
++.globl strmake
++	.type strmake,@function
++
++strmake:	
++	pushl	%edi
++	pushl	%esi
++	mov	12(%esp),%edi		# dst
++	movl	$0,%edx
++	movl	20(%esp),%ecx		# length
++	movl	16(%esp),%esi		# src
++	cmpl	%edx,%ecx
++	jz	sm_90
++sm_00:	movb	(%esi,%edx),%al
++	cmpb	$0,%al
++	jz	sm_90
++	movb	%al,(%edi,%edx)
++	incl	%edx
++	cmpl	%edx,%ecx
++	jnz	sm_00
++sm_90:	movb	$0,(%edi,%edx)
++sm_99:	lea	(%edi,%edx),%eax	# Return pointer to end null
++	pop	%esi
++	pop	%edi
++	ret
++.strmake_end:	
++	.size strmake,.strmake_end-strmake
++
++	# Move a string with max len chars
++	# arg: dst,src,len
++	# ret: pos to first null or dst+len
++
++.globl strnmov
++	.type strnmov,@function
++strnmov:	
++	pushl	%edi
++	pushl	%esi
++	movl	12(%esp),%edi		#  dst
++	movl	16(%esp),%esi		#  src
++	movl	20(%esp),%ecx		#  Length of memory-area
++	jecxz	snm_99			#  Nothing to do
++	clrb	%al			#  For test of end-null
++
++snm_10:	cmpb	(%esi),%al		#  Next char to move
++	movsb				#  move arg
++	jz	snm_20			#  last char, fill with null
++	loop	snm_10			#  Continue moving
++	incl	%edi			#  Point two after last
++snm_20:	decl	%edi			#  Point at first null (or last+1)
++snm_99:	movl	%edi,%eax		#  Pointer at last char
++	popl	%esi
++	popl	%edi
++	ret
++.strnmov_end:	
++	.size strnmov,.strnmov_end-strnmov
++
++	
++.globl strmov
++	.type strmov,@function
++strmov:	
++	movl	%esi,%ecx		#  Save old %esi and %edi
++	movl	%edi,%edx
++	movl	8(%esp),%esi		#  get source pointer (s2)
++	movl	4(%esp),%edi		#  %edi -> s1
++smo_10:	movb	(%esi),%al
++	movsb				#  move arg
++	andb	%al,%al
++	jnz	smo_10			#  Not last
++	movl	%edi,%eax
++	dec	%eax
++	movl	%ecx,%esi		#  Restore
++	movl	%edx,%edi
++	ret
++.strmov_end:	
++	.size strmov,.strmov_end-strmov
++
++.globl strxmov
++	.type	 strxmov,@function
++strxmov:
++	movl	%ebx,%edx		#  Save %ebx, %esi and %edi
++	mov	%esi,%ecx
++	push	%edi
++	leal	8(%esp),%ebx		#  Get destination
++	movl	(%ebx),%edi
++	xorb	%al,%al
++	jmp	next_str		#  Handle source ebx+4
++
++start_str:
++	movsb
++	cmpb	-1(%edi),%al
++	jne	start_str
++	decl	%edi			#  Don't copy last null
++
++next_str:
++	addl	$4,%ebx
++	movl	(%ebx),%esi
++	orl	%esi,%esi
++	jne	start_str
++	movb	%al,0(%edi)		#  Force last to ASCII 0
++
++	movl	%edi,%eax		#  Return ptr to ASCII 0
++	pop	%edi			#  Restore registers
++	movl	%ecx,%esi
++	movl	%edx,%ebx
++	ret
++.strxmov_end:
++	.size	 strxmov,.strxmov_end-strxmov
++
++#ifdef __PIC__
++	.section	.gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
++	.globl __i686.get_pc_thunk.bx
++	.hidden	__i686.get_pc_thunk.bx
++	.type	__i686.get_pc_thunk.bx,@function
++__i686.get_pc_thunk.bx:
++	movl (%esp), %ebx
++	ret
++#endif
++	.section	.note.GNU-stack,"",@progbits
++

diff --git a/07341_all_mysql_hardened_x86_strings.patch b/07341_all_mysql_hardened_x86_strings.patch
new file mode 100644
index 0000000..f3afb26
--- /dev/null
+++ b/07341_all_mysql_hardened_x86_strings.patch
@@ -0,0 +1,517 @@
+2010-11-10	Magnus Granberg <zorry@gento.org>, Francisco Blas Izquierdo Riera <franxisco1988@mixmail.com>
+
+		#344031
+		* configure.in: 			Rename strings-x86.s to strings-x86.S
+		* strings/Makefile.am		Likewise.
+		* strings/Makefile.in		Likewise.
+		* strings/strings-x86.S	Copy of strings-x86.s to support -fPIC
+
+diff -urN a/configure.in b/configure.in
+--- a/configure.in	2010-11-09 21:29:31.806000076 +0100
++++ b/configure.in	2010-11-09 21:31:55.596000072 +0100
+@@ -673,7 +673,7 @@
+ 
+ AC_MSG_CHECKING(if we should use assembler functions)
+ # For now we only support assembler on i386 and sparc systems
+-AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386" && $AS strings/strings-x86.s -o checkassembler >/dev/null 2>&1 && test -f checkassembler && (rm -f checkassembler; exit 0;))
++AM_CONDITIONAL(ASSEMBLER_x86, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "i386" && $AS strings/strings-x86.S -o checkassembler >/dev/null 2>&1 && test -f checkassembler && (rm -f checkassembler; exit 0;))
+ AM_CONDITIONAL(ASSEMBLER_sparc32, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparc")
+ AM_CONDITIONAL(ASSEMBLER_sparc64, test "$ENABLE_ASSEMBLER" = "yes" -a "$BASE_MACHINE_TYPE" = "sparcv9")
+ AM_CONDITIONAL(ASSEMBLER, test "$ASSEMBLER_x86_TRUE" = "" -o "$ASSEMBLER_sparc32_TRUE" = "")
+diff -urN a/strings/Makefile.am b/strings/Makefile.am
+--- a/strings/Makefile.am	2010-11-09 21:29:32.195000076 +0100
++++ b/strings/Makefile.am	2010-11-09 21:33:18.545000075 +0100
+@@ -20,7 +20,7 @@
+ 
+ # Exact one of ASSEMBLER_X
+ if ASSEMBLER_x86
+-ASRCS		= strings-x86.s longlong2str-x86.s my_strtoll10-x86.s
++ASRCS		= strings-x86.S longlong2str-x86.s my_strtoll10-x86.s
+ CSRCS		= bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtod.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c str_alloc.c longlong2str_asm.c my_strchr.c strmov.c
+ else
+ if ASSEMBLER_sparc32
+@@ -44,7 +44,7 @@
+ EXTRA_DIST =		ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-win1250ch.c \
+ 			ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-utf8.c \
+ 			ctype-ucs2.c ctype-uca.c ctype-tis620.c ctype-ujis.c \
+-			xml.c decimal.c strto.c strings-x86.s \
++			xml.c decimal.c strto.c strings-x86.S \
+ 			longlong2str.c longlong2str-x86.s longlong2str_asm.c \
+ 			my_strtoll10.c my_strtoll10-x86.s \
+ 			strxmov.c bmove_upp.c strappend.c strcont.c strend.c \
+diff -urN a/strings/Makefile.in b/strings/Makefile.in
+--- a/strings/Makefile.in	2010-11-09 21:29:32.197000076 +0100
++++ b/strings/Makefile.in	2010-11-09 21:33:45.348000075 +0100
+@@ -103,7 +103,7 @@
+ libmystrings_la_DEPENDENCIES =
+ am__libmystrings_la_SOURCES_DIST = bmove_upp-sparc.s strappend-sparc.s \
+ 	strend-sparc.s strinstr-sparc.s strmake-sparc.s strmov-sparc.s \
+-	strnmov-sparc.s strstr-sparc.s strings-x86.s \
++	strnmov-sparc.s strstr-sparc.s strings-x86.S \
+ 	longlong2str-x86.s my_strtoll10-x86.s strxmov.c bmove_upp.c \
+ 	strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c \
+ 	strstr.c strinstr.c strmake.c strnmov.c strmov.c \
+@@ -621,7 +621,7 @@
+ @ASSEMBLER_sparc32_TRUE@@ASSEMBLER_x86_FALSE@ASRCS = bmove_upp-sparc.s strappend-sparc.s strend-sparc.s strinstr-sparc.s strmake-sparc.s strmov-sparc.s strnmov-sparc.s strstr-sparc.s
+ 
+ # Exact one of ASSEMBLER_X
+-@ASSEMBLER_x86_TRUE@ASRCS = strings-x86.s longlong2str-x86.s my_strtoll10-x86.s
++@ASSEMBLER_x86_TRUE@ASRCS = strings-x86.S longlong2str-x86.s my_strtoll10-x86.s
+ # These file MUST all be on the same line!! Otherwise automake
+ # generats a very broken makefile
+ @ASSEMBLER_sparc32_FALSE@@ASSEMBLER_x86_FALSE@CSRCS = strxmov.c bmove_upp.c strappend.c strcont.c strend.c strfill.c strcend.c is_prefix.c strstr.c strinstr.c strmake.c strnmov.c strmov.c longlong2str.c bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtod.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c my_strtoll10.c str_alloc.c my_strchr.c
+@@ -633,7 +633,7 @@
+ EXTRA_DIST = ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-win1250ch.c \
+ 			ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-utf8.c \
+ 			ctype-ucs2.c ctype-uca.c ctype-tis620.c ctype-ujis.c \
+-			xml.c decimal.c strto.c strings-x86.s \
++			xml.c decimal.c strto.c strings-x86.S \
+ 			longlong2str.c longlong2str-x86.s longlong2str_asm.c \
+ 			my_strtoll10.c my_strtoll10-x86.s \
+ 			strxmov.c bmove_upp.c strappend.c strcont.c strend.c \
+diff -urN a/strings/strings-x86.S b/strings/strings-x86.S
+--- a/strings/strings-x86.S	1970-01-01 01:00:00.000000000 +0100
++++ b/strings/strings-x86.S	2010-11-09 22:05:05.084000076 +0100
+@@ -0,0 +1,442 @@
++# Copyright (C) 2000 MySQL AB
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; version 2 of the License.
++#
++# This program 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 General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
++
++# Optimized string functions Intel 80x86  (gcc/gas syntax)
++
++	.file	"strings.S"
++	.version "1.01"
++
++.text
++
++#	Move a alligned, not overlapped, by (long) divided memory area
++#	Args: to,from,length
++
++.globl bmove_align
++	.type	 bmove_align,@function
++bmove_align:	
++	movl	%edi,%edx
++	push	%esi
++	movl	4(%esp),%edi		# to
++	movl	8(%esp),%esi		# from
++	movl	12(%esp),%ecx		# length
++	addw	$3,%cx			# fix if not divisible with long
++	shrw	$2,%cx
++	jz	.ba_20
++	.p2align 4,,7
++.ba_10:
++	movl	-4(%esi,%ecx),%eax
++	movl	 %eax,-4(%edi,%ecx)
++	decl	%ecx
++	jnz	.ba_10
++.ba_20:	pop	%esi
++	movl	%edx,%edi
++	ret
++
++.bmove_align_end:	
++	.size	 bmove_align,.bmove_align_end-bmove_align
++
++	# Move a string from higher to lower
++	# Arg from_end+1,to_end+1,length
++
++.globl bmove_upp
++	.type bmove_upp,@function
++bmove_upp:	
++	movl	%edi,%edx		# Remember %edi
++	push	%esi
++	movl	8(%esp),%edi		# dst
++	movl	16(%esp),%ecx		# length
++	movl	12(%esp),%esi		# source
++	test	%ecx,%ecx
++	jz	.bu_20
++	subl	%ecx,%esi		# To start of strings
++	subl	%ecx,%edi
++	
++	.p2align 4,,7
++.bu_10:	movb	-1(%esi,%ecx),%al
++	movb	 %al,-1(%edi,%ecx)
++	decl	%ecx
++	jnz	.bu_10
++.bu_20:	pop	%esi
++	movl	%edx,%edi
++	ret
++
++.bmove_upp_end:	
++	.size bmove_upp,.bmove_upp_end-bmove_upp
++
++	# Append fillchars to string
++	# Args: dest,len,fill
++
++.globl strappend
++	.type strappend,@function
++strappend:	
++	pushl	%edi
++	movl	8(%esp),%edi		#  Memory pointer
++	movl	12(%esp),%ecx		#  Length
++	clrl	%eax			#  Find end of string
++	repne
++	scasb
++	jnz	sa_99			#  String to long, shorten it
++	movzb	16(%esp),%eax		#  Fillchar
++	decl	%edi			#  Point at end null
++	incl	%ecx			#  rep made one dec for null-char
++
++	movb	%al,%ah			# (2) Set up a 32 bit pattern.
++	movw	%ax,%dx			# (2)
++	shll	$16,%eax		# (3)
++	movw	%dx,%ax			# (2) %eax has the 32 bit pattern.
++
++	movl	%ecx,%edx		# (2) Save the count of bytes.
++	shrl	$2,%ecx			# (2) Number of dwords.
++	rep
++	stosl				# (5 + 5n)
++	movb	$3,%cl			# (2)
++	and	%edx,%ecx		# (2) Fill in the odd bytes
++	rep
++	stosb				#  Move last bytes if any
++
++sa_99:	movb	$0,(%edi)		#  End of string
++	popl	%edi
++	ret
++.strappend_end:	
++	.size strappend,.strappend_end-strappend
++
++	# Find if string contains any char in another string
++	# Arg: str,set
++	# Ret: Pointer to first found char in str
++
++.globl strcont
++	.type strcont,@function
++strcont:	
++	movl	%edi,%edx
++	pushl	%esi
++	movl	8(%esp),%esi		#  str
++	movl	12(%esp),%ecx		#  set
++	clrb	%ah			#  For endtest
++	jmp	sc_60
++
++sc_10:	scasb
++	jz	sc_fo			#  Found char
++sc_20:	cmp	(%edi),%ah		#  Test if null
++	jnz	sc_10			#  Not end of set yet
++	incl	%esi			#  Next char in str
++sc_60:	movl	%ecx,%edi		#  %edi = Set
++	movb	(%esi),%al		#  Test if this char exist
++	andb	%al,%al
++	jnz	sc_20			#  Not end of string
++	clrl	%esi			#  Return Null
++sc_fo:	movl	%esi,%eax		#  Char found here
++	movl	%edx,%edi		#  Restore
++	popl	%esi
++	ret
++.strcont_end:	
++	.size strcont,.strcont_end-strcont
++
++	# Find end of string
++	# Arg: str
++	# ret: Pointer to end null
++
++.globl strend
++	.type strend,@function
++strend:	
++	movl	%edi,%edx		#  Save
++	movl	4(%esp),%edi		#  str
++	clrl	%eax			#  Find end of string
++	movl	%eax,%ecx
++	decl	%ecx			#  ECX = -1
++	repne
++	scasb
++	movl	%edi,%eax
++	decl	%eax			#  End of string
++	movl	%edx,%edi		#  Restore
++	ret
++.strend_end:	
++	.size strend,.strend_end-strend
++
++	# Make a string with len fill-chars and endnull
++	# Args: dest,len,fill
++	# Ret:  dest+len
++
++.globl strfill
++	.type strfill,@function
++strfill:
++	pushl	%edi
++	movl	8(%esp),%edi		#  Memory pointer
++	movl	12(%esp),%ecx		#  Length
++	movzb	16(%esp),%eax		#  Fill
++
++	movb	%al,%ah			# (2) Set up a 32 bit pattern
++	movw	%ax,%dx			# (2)
++	shll	$16,%eax		# (3)
++	movw	%dx,%ax			# (2) %eax has the 32 bit pattern.
++
++	movl	%ecx,%edx		# (2) Save the count of bytes.
++	shrl	$2,%ecx			# (2) Number of dwords.
++	rep
++	stosl				# (5 + 5n)
++	movb	$3,%cl			# (2)
++	and	%edx,%ecx		# (2) Fill in the odd bytes
++	rep
++	stosb				#  Move last bytes if any
++
++	movb	%cl,(%edi)		#  End NULL
++	movl	%edi,%eax		#  End i %eax
++	popl	%edi
++	ret
++.strfill_end:	
++	.size strfill,.strfill_end-strfill
++
++
++	# Find a char in or end of a string
++	# Arg: str,char
++	# Ret: pointer to found char or NullS
++
++.globl strcend
++	.type strcend,@function
++strcend:
++	movl	%edi,%edx
++	movl	4(%esp),%edi		# str
++	movb	8(%esp),%ah		# search
++	clrb	%al			# for scasb to find end
++
++se_10:	cmpb	(%edi),%ah
++	jz	se_20			# Found char
++	scasb
++	jnz	se_10			# Not end
++	dec 	%edi			# Not found, point at end of string
++se_20:	movl	%edi,%eax
++	movl	%edx,%edi		# Restore
++	ret
++.strcend_end:	
++	.size strcend,.strcend_end-strcend
++
++	# Test if string has a given suffix
++
++.globl is_prefix
++	.type is_prefix,@function
++is_prefix:	
++	movl	%edi,%edx		# Save %edi
++	pushl	%esi			# and %esi
++	movl	12(%esp),%esi		# get suffix
++	movl	8(%esp),%edi		# s1
++	movl	$1,%eax			# Ok and zero-test
++ip_10:	cmpb	(%esi),%ah
++	jz	suf_ok			# End of string/ found suffix
++	cmpsb				# Compare strings
++	jz	ip_10			# Same, possible prefix
++	xor	%eax,%eax		# Not suffix
++suf_ok:	popl	%esi
++	movl	%edx,%edi
++	ret
++.is_prefix_end:	
++	.size is_prefix,.is_prefix_end-is_prefix
++
++	# Find a substring in string
++	# Arg: str,search
++
++.globl strstr
++	.type strstr,@function
++
++strstr:	
++	pushl	%edi
++	pushl	%esi
++	movl	12(%esp),%esi		#  str
++	movl	16(%esp),%edi		#  search
++	movl	%edi,%ecx
++	incl	%ecx			#  %ecx = search+1
++	movb	(%edi),%ah		#  %ah = First char in search
++	jmp	sf_10
++
++sf_00:	movl	%edx,%esi		#  si = Current str-pos
++sf_10:	movb	(%esi),%al		#  Test if this char exist
++	andb	%al,%al
++	jz	sf_90			#  End of string, didn't find search
++	incl	%esi
++	cmpb	%al,%ah
++	jnz	sf_10			#  Didn't find first char, continue
++	movl	%esi,%edx		#  Save str-pos in %edx
++	movl	%ecx,%edi
++sf_20:	cmpb	$0,(%edi)
++	jz	sf_fo			#  Found substring
++	cmpsb
++	jz	sf_20			#  Char ok
++	jmp	sf_00			#  Next str-pos
++
++sf_90:	movl	$1,%edx			#  Return Null
++sf_fo:	movl	%edx,%eax		#  Char found here
++	decl	%eax			#  Pointed one after
++	popl	%esi
++	popl	%edi
++	ret
++.strstr_end:	
++	.size strstr,.strstr_end-strstr
++
++
++	# Find a substring in string, return index
++	# Arg: str,search
++
++.globl strinstr
++	.type strinstr,@function
++
++strinstr:
++	pushl	%ebp
++	movl	%esp,%ebp
++#ifdef __PIC__
++# undef __i686 /* gcc define gets in our way */
++        pushl   %ebx
++        call    __i686.get_pc_thunk.bx
++        addl    $_GLOBAL_OFFSET_TABLE_, %ebx
++#endif
++	pushl	12(%ebp)		#  search
++	pushl	8(%ebp)			#  str
++#ifdef __PIC__
++        call    strstr@PLT /*We need to be sure that ebx point to the got*/
++#else
++	call	strstr
++#endif
++	add	$8,%esp
++	or	%eax,%eax
++	jz	si_99			#  Not found, return NULL
++	sub	8(%ebp),%eax		#  Pos from start
++	inc	%eax			#  And first pos = 1
++si_99:	
++#ifdef __PIC__
++        popl	%ebx
++#endif
++	popl	%ebp
++	ret
++.strinstr_end:	
++	.size strinstr,.strinstr_end-strinstr
++
++	# Make a string of len length from another string
++	# Arg: dst,src,length
++	# ret: end of dst
++
++.globl strmake
++	.type strmake,@function
++
++strmake:	
++	pushl	%edi
++	pushl	%esi
++	mov	12(%esp),%edi		# dst
++	movl	$0,%edx
++	movl	20(%esp),%ecx		# length
++	movl	16(%esp),%esi		# src
++	cmpl	%edx,%ecx
++	jz	sm_90
++sm_00:	movb	(%esi,%edx),%al
++	cmpb	$0,%al
++	jz	sm_90
++	movb	%al,(%edi,%edx)
++	incl	%edx
++	cmpl	%edx,%ecx
++	jnz	sm_00
++sm_90:	movb	$0,(%edi,%edx)
++sm_99:	lea	(%edi,%edx),%eax	# Return pointer to end null
++	pop	%esi
++	pop	%edi
++	ret
++.strmake_end:	
++	.size strmake,.strmake_end-strmake
++
++	# Move a string with max len chars
++	# arg: dst,src,len
++	# ret: pos to first null or dst+len
++
++.globl strnmov
++	.type strnmov,@function
++strnmov:	
++	pushl	%edi
++	pushl	%esi
++	movl	12(%esp),%edi		#  dst
++	movl	16(%esp),%esi		#  src
++	movl	20(%esp),%ecx		#  Length of memory-area
++	jecxz	snm_99			#  Nothing to do
++	clrb	%al			#  For test of end-null
++
++snm_10:	cmpb	(%esi),%al		#  Next char to move
++	movsb				#  move arg
++	jz	snm_20			#  last char, fill with null
++	loop	snm_10			#  Continue moving
++	incl	%edi			#  Point two after last
++snm_20:	decl	%edi			#  Point at first null (or last+1)
++snm_99:	movl	%edi,%eax		#  Pointer at last char
++	popl	%esi
++	popl	%edi
++	ret
++.strnmov_end:	
++	.size strnmov,.strnmov_end-strnmov
++
++	
++.globl strmov
++	.type strmov,@function
++strmov:	
++	movl	%esi,%ecx		#  Save old %esi and %edi
++	movl	%edi,%edx
++	movl	8(%esp),%esi		#  get source pointer (s2)
++	movl	4(%esp),%edi		#  %edi -> s1
++smo_10:	movb	(%esi),%al
++	movsb				#  move arg
++	andb	%al,%al
++	jnz	smo_10			#  Not last
++	movl	%edi,%eax
++	dec	%eax
++	movl	%ecx,%esi		#  Restore
++	movl	%edx,%edi
++	ret
++.strmov_end:	
++	.size strmov,.strmov_end-strmov
++
++.globl strxmov
++	.type	 strxmov,@function
++strxmov:
++	movl	%ebx,%edx		#  Save %ebx, %esi and %edi
++	mov	%esi,%ecx
++	push	%edi
++	leal	8(%esp),%ebx		#  Get destination
++	movl	(%ebx),%edi
++	xorb	%al,%al
++	jmp	next_str		#  Handle source ebx+4
++
++start_str:
++	movsb
++	cmpb	-1(%edi),%al
++	jne	start_str
++	decl	%edi			#  Don't copy last null
++
++next_str:
++	addl	$4,%ebx
++	movl	(%ebx),%esi
++	orl	%esi,%esi
++	jne	start_str
++	movb	%al,0(%edi)		#  Force last to ASCII 0
++
++	movl	%edi,%eax		#  Return ptr to ASCII 0
++	pop	%edi			#  Restore registers
++	movl	%ecx,%esi
++	movl	%edx,%ebx
++	ret
++.strxmov_end:
++	.size	 strxmov,.strxmov_end-strxmov
++
++#ifdef __PIC__
++	.section	.gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
++	.globl __i686.get_pc_thunk.bx
++	.hidden	__i686.get_pc_thunk.bx
++	.type	__i686.get_pc_thunk.bx,@function
++__i686.get_pc_thunk.bx:
++	movl (%esp), %ebx
++	ret
++#endif
++	.section	.note.GNU-stack,"",@progbits
++



             reply	other threads:[~2011-03-02 19:55 UTC|newest]

Thread overview: 300+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-02 19:55 Jorge Manuel B. S. Vicetto [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-05-23 12:19 [gentoo-commits] proj/mysql-extras:master commit in: / Thomas Deutschmann
2020-03-17  0:57 Thomas Deutschmann
2020-02-03 17:50 Brian Evans
2020-01-25 19:42 Thomas Deutschmann
2020-01-25 19:42 Thomas Deutschmann
2020-01-22 18:27 Thomas Deutschmann
2020-01-22 18:27 Thomas Deutschmann
2020-01-22 18:27 Thomas Deutschmann
2020-01-20 18:28 Thomas Deutschmann
2020-01-20 18:19 Thomas Deutschmann
2020-01-20  2:21 Thomas Deutschmann
2019-10-31  0:50 Thomas Deutschmann
2019-10-30 23:49 Thomas Deutschmann
2019-10-30 23:47 Thomas Deutschmann
2019-10-30  1:24 Thomas Deutschmann
2019-10-30  1:01 Thomas Deutschmann
2019-10-30  1:01 Thomas Deutschmann
2019-10-29 23:58 Thomas Deutschmann
2019-10-29 23:58 Thomas Deutschmann
2019-10-17 18:34 Brian Evans
2019-10-15 17:00 Brian Evans
2019-10-15 16:48 Brian Evans
2019-10-15 16:40 Brian Evans
2019-10-14 19:15 Brian Evans
2019-10-14 18:28 Brian Evans
2019-08-22 19:08 Thomas Deutschmann
2019-08-17  0:24 Thomas Deutschmann
2019-08-17  0:24 Thomas Deutschmann
2019-08-17  0:24 Thomas Deutschmann
2019-08-02 15:49 Thomas Deutschmann
2019-08-02  0:31 Thomas Deutschmann
2019-08-02  0:13 Thomas Deutschmann
2019-07-22 19:21 Brian Evans
2019-06-04 11:30 Thomas Deutschmann
2019-05-24 10:51 Thomas Deutschmann
2019-05-21 18:03 Brian Evans
2019-03-10  2:57 Brian Evans
2019-03-05 20:47 Brian Evans
2019-03-05 20:39 Brian Evans
2019-03-05 20:22 Brian Evans
2019-03-03 18:52 Thomas Deutschmann
2019-03-03 18:44 Thomas Deutschmann
2019-03-03 18:44 Thomas Deutschmann
2019-01-26 19:21 Thomas Deutschmann
2019-01-20 23:10 Brian Evans
2019-01-20 18:22 Brian Evans
2019-01-19 20:42 Brian Evans
2019-01-19 20:38 Brian Evans
2018-12-11 17:34 Brian Evans
2018-11-11 23:17 Thomas Deutschmann
2018-11-04 22:52 Brian Evans
2018-10-23  0:12 Brian Evans
2018-10-17 22:22 Thomas Deutschmann
2018-10-17 22:22 Thomas Deutschmann
2018-10-17 12:24 Thomas Deutschmann
2018-10-17 10:37 Thomas Deutschmann
2018-10-17  0:45 Thomas Deutschmann
2018-10-16 16:17 Thomas Deutschmann
2018-10-16 15:19 Thomas Deutschmann
2018-10-14 23:20 Thomas Deutschmann
2018-10-14 21:03 Thomas Deutschmann
2018-10-13 23:31 Thomas Deutschmann
2018-10-13 23:31 Thomas Deutschmann
2018-10-13 23:31 Thomas Deutschmann
2018-10-13 23:31 Thomas Deutschmann
2018-10-13 23:31 Thomas Deutschmann
2018-08-09 17:01 Brian Evans
2018-08-04 23:23 Brian Evans
2018-06-28  1:08 Brian Evans
2018-06-27 14:29 Brian Evans
2018-06-21  2:05 Brian Evans
2018-06-21  2:02 Brian Evans
2018-05-29  0:35 Brian Evans
2018-05-29  0:35 Brian Evans
2018-05-28  1:05 Brian Evans
2018-05-28  1:03 Brian Evans
2018-05-28  0:28 Brian Evans
2018-05-15 13:34 Brian Evans
2018-05-15  0:59 Brian Evans
2018-03-28 20:33 Brian Evans
2018-03-12 19:54 Brian Evans
2018-03-12 19:54 Brian Evans
2018-03-12 18:10 Brian Evans
2018-03-12 16:39 Brian Evans
2018-03-12 16:26 Brian Evans
2018-03-09 15:32 Brian Evans
2018-03-09 15:12 Brian Evans
2018-03-09 14:02 Brian Evans
2018-03-08 19:38 Brian Evans
2018-03-08 19:38 Brian Evans
2018-02-28 16:11 Brian Evans
2018-02-14  0:43 Thomas Deutschmann
2018-02-14  0:43 Thomas Deutschmann
2018-02-09 21:42 Brian Evans
2017-11-21 15:00 Brian Evans
2017-11-08 20:50 Brian Evans
2017-10-18 19:48 Brian Evans
2017-10-18 13:40 Brian Evans
2017-10-18 13:24 Brian Evans
2017-09-26 13:18 Brian Evans
2017-08-30 12:08 Brian Evans
2017-08-20 22:45 Brian Evans
2017-08-03 18:14 Brian Evans
2017-07-29  1:13 Brian Evans
2017-07-29  1:00 Brian Evans
2017-07-27  0:36 Brian Evans
2017-07-27  0:26 Brian Evans
2017-07-19 16:30 Brian Evans
2017-07-19 13:35 Brian Evans
2017-07-19  1:08 Brian Evans
2017-07-19  1:08 Brian Evans
2017-06-28 18:47 Brian Evans
2017-06-28 17:40 Brian Evans
2017-06-28 17:21 Brian Evans
2017-05-29  2:02 Brian Evans
2017-03-16 13:55 Brian Evans
2017-03-16 13:40 Brian Evans
2017-03-10 14:26 Brian Evans
2017-03-01 21:39 Brian Evans
2017-03-01 20:41 Thomas Deutschmann
2017-01-29  1:26 Brian Evans
2016-12-03 20:41 Thomas Deutschmann
2016-10-19 19:14 Brian Evans
2016-10-19 18:53 Brian Evans
2016-08-18 17:25 Brian Evans
2016-08-18 17:20 Brian Evans
2016-07-21 15:26 Brian Evans
2016-07-21 15:26 Brian Evans
2016-06-28 14:22 Brian Evans
2016-06-28 14:15 Brian Evans
2016-04-27 18:40 Brian Evans
2016-04-27 18:06 Brian Evans
2016-04-27 17:32 Brian Evans
2016-03-07 18:54 Brian Evans
2016-03-07 18:49 Brian Evans
2016-02-12  2:33 Brian Evans
2016-02-12  2:26 Brian Evans
2016-01-31  1:57 Brian Evans
2016-01-31  1:46 Brian Evans
2016-01-21 13:50 Brian Evans
2015-12-22 21:38 Brian Evans
2015-11-23 16:43 Brian Evans
2015-11-17 20:40 Brian Evans
2015-11-05 20:51 Brian Evans
2015-10-19 17:25 Brian Evans
2015-09-11 15:05 Brian Evans
2015-08-05 16:09 Brian Evans
2015-07-29 18:46 Brian Evans
2015-07-17 17:04 Brian Evans
2015-07-10 19:09 Brian Evans
2015-05-09 18:16 Brian Evans
2015-04-10 18:53 Brian Evans
2015-03-10 20:43 Brian Evans
2015-03-04  3:35 git@oystercatcher mirror+tproxy
2015-03-04  3:35 Brian Evans
2015-02-10 17:50 Brian Evans
2015-02-10 17:50 Brian Evans
2015-02-10 15:02 Brian Evans
2015-01-27 13:51 Brian Evans
2015-01-13 18:54 Brian Evans
2014-12-15  2:02 Brian Evans
2014-12-15  1:44 Brian Evans
2014-12-09 23:20 Brian Evans
2014-12-03 19:36 Brian Evans
2014-12-03 19:04 Brian Evans
2014-12-03 18:22 Brian Evans
2014-12-03 18:16 Brian Evans
2014-11-25 14:15 Brian Evans
2014-11-25 13:52 Brian Evans
2014-11-25 13:51 Brian Evans
2014-11-25 13:47 Brian Evans
2014-10-25  2:42 Brian Evans
2014-10-22 20:44 Brian Evans
2014-10-22 19:12 Brian Evans
2014-10-21 17:41 Brian Evans
2014-10-19 19:27 Brian Evans
2014-10-19 19:21 Brian Evans
2014-10-18  0:15 Brian Evans
2014-10-17 14:20 Brian Evans
2014-10-09 14:50 Brian Evans
2014-09-09 18:03 Brian Evans
2014-09-03 19:11 Brian Evans
2014-08-18 23:37 Brian Evans
2014-08-18 23:37 Brian Evans
2014-08-18 23:37 Brian Evans
2014-08-18 23:37 Brian Evans
2014-08-18 20:21 Robin H. Johnson
2014-08-18 20:21 Robin H. Johnson
2014-08-18 20:21 Robin H. Johnson
2014-08-17 23:32 Brian Evans
2014-08-17 23:19 Brian Evans
2014-08-11 23:05 Brian Evans
2014-08-05 18:17 Brian Evans
2014-07-29 18:41 Brian Evans
2014-07-28 23:43 Brian Evans
2014-07-28 22:54 Brian Evans
2014-05-14  0:58 Brian Evans
2014-05-14  0:52 Brian Evans
2014-05-12 18:19 Brian Evans
2014-05-12 18:16 Brian Evans
2014-05-06 19:37 Brian Evans
2014-05-06 19:29 Brian Evans
2014-04-26  3:53 Brian Evans
2014-04-26  1:26 Brian Evans
2014-04-26  0:57 Brian Evans
2014-04-23 16:22 Brian Evans
2014-04-18 15:28 Brian Evans
2014-04-17 19:45 Brian Evans
2014-04-10 15:29 Brian Evans
2014-03-31 18:05 Brian Evans
2014-03-31 17:48 Brian Evans
2014-03-27 17:45 Brian Evans
2014-03-11 15:02 Brian Evans
2014-03-11 14:59 Brian Evans
2014-03-11 14:55 Brian Evans
2014-03-10 20:02 Brian Evans
2014-03-04 15:33 Brian Evans
2014-02-26 18:37 Brian Evans
2014-02-24 14:57 Brian Evans
2014-01-23  3:40 Brian Evans
2014-01-23  0:14 Brian Evans
2014-01-20 14:03 Jorge Manuel B. S. Vicetto
2014-01-20  2:05 Brian Evans
2014-01-20  1:35 Jorge Manuel B. S. Vicetto
2014-01-20  1:08 Jorge Manuel B. S. Vicetto
2014-01-20  1:04 Jorge Manuel B. S. Vicetto
2014-01-19  2:11 Brian Evans
2014-01-18 23:47 Jorge Manuel B. S. Vicetto
2014-01-18 22:40 Jorge Manuel B. S. Vicetto
2013-12-12 15:25 Brian Evans
2013-12-10 18:24 Brian Evans
2013-10-09 19:30 Brian Evans
2013-10-09 19:30 Brian Evans
2013-08-23 18:56 Brian Evans
2013-06-27 12:31 Brian Evans
2013-06-27 12:31 Brian Evans
2013-06-25 15:48 Jorge Manuel B. S. Vicetto
2013-06-06 20:32 Robin H. Johnson
2013-05-28 19:46 Robin H. Johnson
2013-05-28 19:42 Robin H. Johnson
2013-05-28 19:39 Robin H. Johnson
2013-05-28 19:34 Robin H. Johnson
2013-05-28 19:34 Robin H. Johnson
2013-05-28 19:34 Robin H. Johnson
2013-05-28 19:16 Robin H. Johnson
2013-05-01  0:07 Jorge Manuel B. S. Vicetto
2013-04-24 19:49 Jorge Manuel B. S. Vicetto
2013-04-23 23:26 Jorge Manuel B. S. Vicetto
2013-03-01  2:47 Robin H. Johnson
2013-01-28 17:27 Robin H. Johnson
2013-01-20 23:03 Robin H. Johnson
2013-01-19 22:38 Robin H. Johnson
2013-01-19 22:38 Robin H. Johnson
2013-01-18 18:10 Robin H. Johnson
2012-09-06 13:45 Jorge Manuel B. S. Vicetto
2012-09-05 15:11 Jorge Manuel B. S. Vicetto
2012-08-14  1:23 Jorge Manuel B. S. Vicetto
2012-08-07 17:42 Robin H. Johnson
2012-08-06 18:58 Robin H. Johnson
2012-08-02 19:27 Robin H. Johnson
2012-04-21 20:34 Robin H. Johnson
2012-04-21 20:34 Robin H. Johnson
2012-04-16 20:20 Robin H. Johnson
2012-04-01 17:59 Robin H. Johnson
2012-04-01 17:54 Robin H. Johnson
2012-04-01  5:13 Robin H. Johnson
2012-04-01  5:13 Robin H. Johnson
2011-11-18 20:58 Robin H. Johnson
2011-08-19  4:15 Jorge Manuel B. S. Vicetto
2011-08-19  4:04 Jorge Manuel B. S. Vicetto
2011-07-21  2:27 Jorge Manuel B. S. Vicetto
2011-07-21  2:20 Jorge Manuel B. S. Vicetto
2011-07-15 11:17 Jorge Manuel B. S. Vicetto
2011-06-16  2:20 Jorge Manuel B. S. Vicetto
2011-05-10 18:05 Jorge Manuel B. S. Vicetto
2011-04-26  9:51 Robin H. Johnson
2011-04-26  9:48 Robin H. Johnson
2011-04-26  9:23 Robin H. Johnson
2011-04-26  9:15 Robin H. Johnson
2011-04-17 22:42 Robin H. Johnson
2011-04-17 20:10 Robin H. Johnson
2011-04-17 20:10 Robin H. Johnson
2011-04-17 20:10 Robin H. Johnson
2011-04-17  3:40 Jorge Manuel B. S. Vicetto
2011-03-27 21:02 Jorge Manuel B. S. Vicetto
2011-03-27 20:58 Jorge Manuel B. S. Vicetto
2011-03-21  2:23 Jorge Manuel B. S. Vicetto
2011-03-04 12:53 Jorge Manuel B. S. Vicetto
2011-02-17 21:05 Jorge Manuel B. S. Vicetto
2011-02-17 21:05 Jorge Manuel B. S. Vicetto
2011-02-17 20:49 Jorge Manuel B. S. Vicetto
2011-02-17 20:36 Jorge Manuel B. S. Vicetto
2011-02-17 12:08 Jorge Manuel B. S. Vicetto
2011-02-17  2:04 Jorge Manuel B. S. Vicetto
2011-02-17  1:47 Jorge Manuel B. S. Vicetto
2011-02-17  1:42 Jorge Manuel B. S. Vicetto
2011-02-17  1:34 Jorge Manuel B. S. Vicetto
2011-02-17  1:25 Jorge Manuel B. S. Vicetto
2011-02-17  1:20 Jorge Manuel B. S. Vicetto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=efff8295e1e36824b88f09da2369db1333effd19.jmbsvicetto@gentoo \
    --to=jmbsvicetto@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox