Hello, the following diff allows libev to build on m68k, m88k and superH systems (at least under OpenBSD ports to such platforms). It is relative to 4.15 but ought to apply cleanly to HEAD.
Rationale for ECB_MEMORY_FENCE: neither m68k nor superH need explicit synchronisation routines, while m88k does (especially when running on the superscalar 88110). Rationale for ECB_STDFP: m68k (when used with an FPU) and m88k are IEEE754 compatible. superH processors with an FPU (i.e. sh4 onwards) are IEEE754 compatible, except for the lack of two rounding modes, but that does not impact the layout of the floating point types. FPU-less m68k and superH systems are expected to have IEEE754-compatible software FPU emulation anyways. Thanks, Miod PS: I am not subscribed to the list. Please cc: me when replying. TIA --- ev.c Fri Mar 1 11:10:48 2013 +++ ev.c Wed Sep 4 21:14:53 2013 @@ -637,6 +637,12 @@ #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("") #elif defined __ia64__ #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mf" : : : "memory") + #elif defined __m68k__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("" : : : "memory") + #elif defined __m88k__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("tb1 0,%%r0,128" : : : "memory") + #elif defined __sh__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("" : : : "memory") #endif #endif #endif @@ -1053,6 +1059,9 @@ || defined __alpha__ \ || defined __hppa__ \ || defined __ia64__ \ + || defined __m68k__ \ + || defined __m88k__ \ + || defined __sh__ \ || defined _M_IX86 || defined _M_AMD64 || defined _M_IA64 #define ECB_STDFP 1 #include <string.h> /* for memcpy */ _______________________________________________ libev mailing list libev@lists.schmorp.de http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev