opnsense-ports/java/openjdk8/files/patch-hotspot_src_os__cpu_b...

22 lines
753 B
C++

ARM: Substitute Linux atomic ops with FreeBSD/NetBSD atomic ops
--- hotspot/src/os_cpu/bsd_zero/vm/orderAccess_bsd_zero.inline.hpp.orig 2015-06-03 15:49:41 UTC
+++ hotspot/src/os_cpu/bsd_zero/vm/orderAccess_bsd_zero.inline.hpp
@@ -37,8 +37,16 @@
* and gcc __sync_synchronize(); implementation does not use the kernel
* helper for all gcc versions so it is unreliable to use as well.
*/
+#if defined(__FreeBSD__)
+#include <machine/atomic.h>
+#define __kernel_dmb dmb
+#elif defined(__NetBSD__)
+#include <sys/atomic.h>
+#define __kernel_dmb membar_sync
+#else
typedef void (__kernel_dmb_t) (void);
#define __kernel_dmb (*(__kernel_dmb_t *) 0xffff0fa0)
+#endif
#define FULL_MEM_BARRIER __kernel_dmb()
#define READ_MEM_BARRIER __kernel_dmb()