summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author默默 <wangqiang1588@sina.com>2019-03-31 16:07:03 +0800
committerChristoph Müllner <christophm30@gmail.com>2019-04-26 00:52:31 +0200
commitc46c0efe7f9260adfdd1ed620143685b8dc26412 (patch)
tree6d7126e5cbb95858e7cd5e3238ec1bf75d21f97c
parent4aa4e2203d12217ff64a4aae0872acd61e00b535 (diff)
fix compile error on macOS Mojave
-rw-r--r--Makefile7
-rw-r--r--lib/bch.c9
2 files changed, 15 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index c1af9307b3..92e04dd689 100644
--- a/Makefile
+++ b/Makefile
@@ -291,6 +291,9 @@ DARWIN_MINOR_VERSION = $(shell sw_vers -productVersion | cut -f 2 -d '.')
os_x_before = $(shell if [ $(DARWIN_MAJOR_VERSION) -le $(1) -a \
$(DARWIN_MINOR_VERSION) -le $(2) ] ; then echo "$(3)"; else echo "$(4)"; fi ;)
+os_x_after = $(shell if [ $(DARWIN_MAJOR_VERSION) -ge $(1) -a \
+ $(DARWIN_MINOR_VERSION) -ge $(2) ] ; then echo "$(3)"; else echo "$(4)"; fi ;)
+
# Snow Leopards build environment has no longer restrictions as described above
HOSTCC = $(call os_x_before, 10, 5, "cc", "gcc")
HOSTCFLAGS += $(call os_x_before, 10, 4, "-traditional-cpp")
@@ -300,6 +303,10 @@ HOSTLDFLAGS += $(call os_x_before, 10, 5, "-multiply_defined suppress")
# in some host tools which is a problem then ... so disable ASLR for these
# tools
HOSTLDFLAGS += $(call os_x_before, 10, 7, "", "-Xlinker -no_pie")
+
+# macOS Mojave (10.14.X)
+# Undefined symbols for architecture x86_64: "_PyArg_ParseTuple"
+HOSTLDFLAGS += $(call os_x_after, 10, 14, "-lpython -dynamclib", "")
endif
# Decide whether to build built-in, modular, or both.
diff --git a/lib/bch.c b/lib/bch.c
index 20079eb9eb..c4fac77d61 100644
--- a/lib/bch.c
+++ b/lib/bch.c
@@ -62,6 +62,9 @@
#include <errno.h>
#if defined(__FreeBSD__)
#include <sys/endian.h>
+#elif defined(__APPLE__)
+#include <machine/endian.h>
+#include <libkern/OSByteOrder.h>
#else
#include <endian.h>
#endif
@@ -70,7 +73,11 @@
#include <string.h>
#undef cpu_to_be32
+#if defined(__APPLE__)
+#define cpu_to_be32 OSSwapHostToBigInt32
+#else
#define cpu_to_be32 htobe32
+#endif
#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
#define kmalloc(size, flags) malloc(size)
#define kzalloc(size, flags) calloc(1, size)
@@ -116,7 +123,7 @@ struct gf_poly_deg1 {
};
#ifdef USE_HOSTCC
-#if !defined(__DragonFly__) && !defined(__FreeBSD__)
+#if !defined(__DragonFly__) && !defined(__FreeBSD__) && !defined(__APPLE__)
static int fls(int x)
{
int r = 32;