From 12042753582473582c62db93f0080bfe0d033339 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Fri, 11 Feb 2011 08:15:45 +0000 Subject: [PATCH] - rel 2; fix memmove-ssse3 static linking (from gentoo) Changed files: glibc-2.13-static-memmove-ssse3.patch -> 1.1 glibc.spec -> 1.892 --- glibc-2.13-static-memmove-ssse3.patch | 62 +++++++++++++++++++++++++++ glibc.spec | 4 +- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 glibc-2.13-static-memmove-ssse3.patch diff --git a/glibc-2.13-static-memmove-ssse3.patch b/glibc-2.13-static-memmove-ssse3.patch new file mode 100644 index 0000000..63a0f23 --- /dev/null +++ b/glibc-2.13-static-memmove-ssse3.patch @@ -0,0 +1,62 @@ +From 5d480f5343de00e54b8602c6787640f9831f46b7 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Sun, 6 Feb 2011 12:39:08 -0500 +Subject: [PATCH] memcpy-ssse3: enable chk symbols in static builds + +Building static apps on x86_64 systems which use memmove such as: + #include + char buf[8192]; + main(int argc, char **argv) { memmove(buf, buf + argc, argc % 4); } + +Result in linking errors along the lines of: + .../libc.a(memmove_chk.o): In function `__memmove_chk': + (.text+0x1b4): undefined reference to `__memmove_chk_ssse3_back' + .../libc.a(memmove_chk.o): In function `__memmove_chk': + (.text+0x1b9): undefined reference to `__memmove_chk_ssse3' + collect2: ld returned 1 exit status + +This is due to the new ssse3 funcs only enabling their chk symbols when +being compiled into shared code. + +URL: https://bugs.gentoo.org/353816 +Signed-off-by: Mike Frysinger + +2011-02-06 Mike Frysinger + + * sysdeps/x86_64/multiarch/memcpy-ssse3.S: Delete SHARED ifdef check + around MEMCPY_CHK symbol. + * sysdeps/x86_64/multiarch/memcpy-ssse3-back.S: Likewise. +--- + sysdeps/x86_64/multiarch/memcpy-ssse3-back.S | 2 +- + sysdeps/x86_64/multiarch/memcpy-ssse3.S | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S b/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S +index 48c974e..a6a01a8 100644 +--- a/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S ++++ b/sysdeps/x86_64/multiarch/memcpy-ssse3-back.S +@@ -49,7 +49,7 @@ + ud2 + + .section .text.ssse3,"ax",@progbits +-#if defined SHARED && !defined NOT_IN_libc ++#if !defined NOT_IN_libc + ENTRY (MEMCPY_CHK) + cmpq %rdx, %rcx + jb HIDDEN_JUMPTARGET (__chk_fail) +diff --git a/sysdeps/x86_64/multiarch/memcpy-ssse3.S b/sysdeps/x86_64/multiarch/memcpy-ssse3.S +index 9a878d3..ce84e3f 100644 +--- a/sysdeps/x86_64/multiarch/memcpy-ssse3.S ++++ b/sysdeps/x86_64/multiarch/memcpy-ssse3.S +@@ -49,7 +49,7 @@ + ud2 + + .section .text.ssse3,"ax",@progbits +-#if defined SHARED && !defined NOT_IN_libc ++#if !defined NOT_IN_libc + ENTRY (MEMCPY_CHK) + cmpq %rdx, %rcx + jb HIDDEN_JUMPTARGET (__chk_fail) +-- +1.7.4.rc2 + diff --git a/glibc.spec b/glibc.spec index 4528144..120b8ca 100644 --- a/glibc.spec +++ b/glibc.spec @@ -34,7 +34,7 @@ Summary(tr.UTF-8): GNU libc Summary(uk.UTF-8): GNU libc версії Name: glibc Version: 2.13 -Release: 1 +Release: 2 Epoch: 6 License: LGPL v2.1+ Group: Libraries @@ -78,6 +78,7 @@ Patch29: %{name}-arm-alignment-fix.patch Patch30: %{name}-static-glro-init.patch Patch31: %{name}-origin.patch Patch32: %{name}-Os-fail-workaround.patch +Patch33: %{name}-2.13-static-memmove-ssse3.patch URL: http://www.gnu.org/software/libc/ %{?with_selinux:BuildRequires: audit-libs-devel} BuildRequires: autoconf @@ -926,6 +927,7 @@ mv %{name}-ports-%{ports_version} ports %patch30 -p1 %patch31 -p1 %patch32 -p1 +%patch33 -p1 # cleanup backups after patching find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f -- 2.44.0