Please apply this patch.

libev-using programs are otherwise undebuggagble wih valgrind on i386.


-- 
-- Matthias Urlichs

From: Matthias Urlichs <matth...@urlichs.de>
Date: Tue, 14 Mar 2017 01:44:51 +0100
X-Dgit-Generated: 1:4.22-2 9775ccac9c1ba148676b5b97658b4728647aab16
Subject: Don't use -1(%esp). It upsets valgrind and violates the i386 ABI.

Unfortunately, the author of libev refuses to fix this.

---

--- libev-4.22.orig/ev.c
+++ libev-4.22/ev.c
@@ -656,8 +656,8 @@ struct signalfd_siginfo
 #ifndef ECB_MEMORY_FENCE
   #if ECB_GCC_VERSION(2,5) || defined __INTEL_COMPILER || (__llvm__ && __GNUC__) || __SUNPRO_C >= 0x5110 || __SUNPRO_CC >= 0x5110
     #if __i386 || __i386__
-      #define ECB_MEMORY_FENCE         __asm__ __volatile__ ("lock; orb $0, -1(%%esp)" : : : "memory")
-      #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ (""                        : : : "memory")
+      #define ECB_MEMORY_FENCE         __asm__ __volatile__ ("lock; orb $0, 0(%%esp)" : : : "memory")
+      #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ (""                       : : : "memory")
       #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("")
     #elif ECB_GCC_AMD64
       #define ECB_MEMORY_FENCE         __asm__ __volatile__ ("mfence"   : : : "memory")

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to