From 2b8c7aa51f6ac7f79c4834e04b697c04afc8beaf Mon Sep 17 00:00:00 2001 From: Juro Bystricky Date: Thu, 29 Oct 2015 13:43:38 -0700 Subject: glibc: Allow 64 bit atomics for x86 The fix consist of allowing 64bit atomic ops for x86. This should be safe for i586 and newer CPUs. It also makes the synchronization more efficient. [YOCTO #8140] Signed-off-by: Juro Bystricky Signed-off-by: Richard Purdie --- .../glibc/glibc/use_64bit_atomics.patch | 24 ++++++++++++++++++++++ meta/recipes-core/glibc/glibc_2.22.bb | 1 + 2 files changed, 25 insertions(+) create mode 100644 meta/recipes-core/glibc/glibc/use_64bit_atomics.patch diff --git a/meta/recipes-core/glibc/glibc/use_64bit_atomics.patch b/meta/recipes-core/glibc/glibc/use_64bit_atomics.patch new file mode 100644 index 0000000000..eb7f2b29be --- /dev/null +++ b/meta/recipes-core/glibc/glibc/use_64bit_atomics.patch @@ -0,0 +1,24 @@ +This patch alows using 64 bit atomic instructions on a +32 bit platform. This is safe, providing x86 is Pentium or +later (would not work on i386, i486). Using 64 bit atomic +instructions bypasses code containing a bug as documented in +https://bugzilla.yoctoproject.org/show_bug.cgi?id=8140 + +Upstream-Status: TBD + +Signed-off-by: Juro Bystricky + + +Index: libc/sysdeps/i386/i486/bits/atomic.h +=================================================================== +--- libc.orig/sysdeps/i386/i486/bits/atomic.h ++++ libc/sysdeps/i386/i486/bits/atomic.h +@@ -54,7 +54,7 @@ typedef uintmax_t uatomic_max_t; + # endif + #endif + +-#define __HAVE_64B_ATOMICS 0 ++#define __HAVE_64B_ATOMICS 1 + #define USE_ATOMIC_COMPILER_BUILTINS 0 + + diff --git a/meta/recipes-core/glibc/glibc_2.22.bb b/meta/recipes-core/glibc/glibc_2.22.bb index 020e417dd5..2494ad7d97 100644 --- a/meta/recipes-core/glibc/glibc_2.22.bb +++ b/meta/recipes-core/glibc/glibc_2.22.bb @@ -50,6 +50,7 @@ SRC_URI_append_class-nativesdk = "\ file://0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch \ file://0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch \ file://0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch \ + file://use_64bit_atomics.patch \ " S = "${WORKDIR}/git" -- cgit 1.2.3-korg