Currently boehm-gc doesn't build on alpha. Only an extremely limited
subset of the AO_* functions is implemented, resulting in libatomic_ops
trying to build fallback code for the missing bits, for which it relies
on the CPU_SET() family of functions, which (afaik) OpenBSD doesn't
implement.
I'm not too interested in optimizing here for alpha, and just want the
things I need to build, so I tried building with only the generic
fallback implementation, which seems to work just fine (including
make test).
>From reading the code it looks like generic.h should be included from
alpha.h, but that would mean I have to remove the bits that are
implemented. Simply removing the #if alpha bits and jumping straight
to the generic fallback looks like the shortest diff.
Since this should only affect alpha, I don't think that a REVISION
bump is needed.
OK?
martijn@
diff /usr/ports
path + /usr/ports
commit - 3eff4995526c542b34b298dfecc2ca0816223f67
blob - /dev/null
file + devel/boehm-gc/patches/patch-libatomic_ops_src_atomic_ops_h (mode 644)
--- /dev/null
+++ devel/boehm-gc/patches/patch-libatomic_ops_src_atomic_ops_h
@@ -0,0 +1,15 @@
+Disable alpha specific code: The compatibility code requires CPU_SET()
+family of functions, which OpenBSD doesn't support.
+Index: libatomic_ops/src/atomic_ops.h
+--- libatomic_ops/src/atomic_ops.h.orig
++++ libatomic_ops/src/atomic_ops.h
+@@ -365,9 +365,6 @@ struct AO_uintptr_t_size_static_assert {
+ # elif defined(__hppa__)
+ # include "atomic_ops/sysdeps/gcc/hppa.h"
+ # define AO_CAN_EMUL_CAS
+-# elif defined(__alpha__)
+-# include "atomic_ops/sysdeps/gcc/alpha.h"
+-# define AO_GENERALIZE_TWICE
+ # elif defined(__s390__)
+ # include "atomic_ops/sysdeps/gcc/s390.h"
+ # elif defined(__sparc)