You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by wo...@apache.org on 2018/07/18 15:21:04 UTC

[couchdb-hyper] branch fix-windows-build created (now 55414a3)

This is an automated email from the ASF dual-hosted git repository.

wohali pushed a change to branch fix-windows-build
in repository https://gitbox.apache.org/repos/asf/couchdb-hyper.git.


      at 55414a3  Fix hyper build for win32

This branch includes the following new commits:

     new 55414a3  Fix hyper build for win32

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[couchdb-hyper] 01/01: Fix hyper build for win32

Posted by wo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

wohali pushed a commit to branch fix-windows-build
in repository https://gitbox.apache.org/repos/asf/couchdb-hyper.git

commit 55414a376f2e85e281cf43f8dc1209fa7f577624
Author: Joan Touzet <wo...@apache.org>
AuthorDate: Wed Jul 18 11:19:11 2018 -0400

    Fix hyper build for win32
---
 .gitignore           |  7 ++++++-
 c_src/hyper_carray.c | 12 +++++++++++-
 rebar.config         |  5 +++--
 3 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/.gitignore b/.gitignore
index 425b33e..5cc0eb6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,4 +8,9 @@ erl_crash.dump
 *.so
 *.o
 *.d
-.rebar
\ No newline at end of file
+*.dll
+*.exp
+*.lib
+*.pdb
+*.swp
+.rebar
diff --git a/c_src/hyper_carray.c b/c_src/hyper_carray.c
index 896f409..1db1377 100644
--- a/c_src/hyper_carray.c
+++ b/c_src/hyper_carray.c
@@ -55,7 +55,11 @@ struct hyper_carray {
 	uint8_t *items;
 };
 
+#ifdef _WIN32
+typedef struct hyper_carray *carray_ptr;
+#else
 typedef struct hyper_carray *restrict carray_ptr;
+#endif
 
 #define HYPER_CARRAY_SIZE sizeof(struct hyper_carray)
 
@@ -84,16 +88,22 @@ static void carray_alloc(unsigned int precision, carray_ptr * arr)
 	memset(*arr, 0, header_size);
 	(*arr)->precision = precision;
 	(*arr)->size = nitems;
-	(*arr)->items = res + header_size;
+	(*arr)->items = (uint8_t *) res + header_size;
 }
 
 /*
  * Given an hyper_carray and a valid index, set the value at that index to
  * max(current value, given value).
  */
+#ifdef _WIN32
+static void carray_merge_item(carray_ptr arr,
+				     unsigned int index,
+				     unsigned int value)
+#else
 static inline void carray_merge_item(carray_ptr arr,
 				     unsigned int index,
 				     unsigned int value)
+#endif
 {
 	uint8_t *item = arr->items + index;
 	*item = (value > *item) ? value : *item;
diff --git a/rebar.config b/rebar.config
index 6015992..6d6df3c 100644
--- a/rebar.config
+++ b/rebar.config
@@ -9,6 +9,7 @@
              ]}.
 
 {port_env, [
-            {"CC", "cc"},
-            {"CFLAGS", "$CFLAGS -std=c99 -Wall -Werror -O3"}
+            {"(linux|solaris|freebsd|netbsd|openbsd|dragonfly|darwin|gnu)",
+                "CFLAGS", "$CFLAGS -std=c99 -Wall -Werror -O3"},
+            {"win32", "CXXFLAGS", "$CXXFLAGS /O2 /DNDEBUG"}
            ]}.