Package: gauche
Version: 0.9.4-6
Tags: patch

Since gauche uses an old embedded copy of (libgc and) libatomic-ops,
it fails to build on the hppa/parisc platform.

The attached trivial patch (which affects hppa only!) fixes it.
(Same patch has been applied to upstream libatomic-ops already).

Can you please apply the patch to the next upload?

Thanks,
Helge
diff -up ./gauche-0.9.4/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/hppa.h.org ./gauche-0.9.4/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/hppa.h
--- ./gauche-0.9.4/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/hppa.h.org	2015-12-26 16:50:56.140000000 +0100
+++ ./gauche-0.9.4/gc/libatomic_ops/src/atomic_ops/sysdeps/gcc/hppa.h	2015-12-26 16:50:59.588000000 +0100
@@ -20,6 +20,18 @@
  * SOFTWARE.
  */
 
+
+#define AO_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > x || __GNUC__ == x && __GNUC_MINOR__ >= y)
+
+#if defined(__GNUC__) && AO_GCC_VERSION_AT_LEAST(4,9)
+
+#include "../test_and_set_t_is_ao_t.h"
+/* We do not want to enable the atomic add/sub functions yet - they are slow */
+#define AO_PREFER_GENERALIZED
+#include "generic.h"
+
+#else
+
 #include "../all_atomic_load_store.h"
 
 /* Some architecture set descriptions include special "ordered" memory  */
@@ -87,3 +99,6 @@ AO_pa_clear(volatile AO_TS_t * addr)
   *a = 1;
 }
 #define AO_CLEAR(addr) AO_pa_clear(addr)
+
+#endif /* __GNUC__ >= 4.9 */
+

Reply via email to