Incubaid / arakoon

A consistent distributed key-value store
http://arakoon.org
Apache License 2.0
83 stars 16 forks source link

Doesn't compile on Mac OS X 10.11 #569

Closed ansiwen closed 3 years ago

ansiwen commented 8 years ago

On Mac OS X 10.11 the define is called bit_SSE42 instead of bit_SSE4_2:

#=== ERROR while installing arakoon.1.8.12 ====================================#
# opam-version 1.2.2
# os           darwin
# command      make
# path         /Users/sanders/.opam/4.02.3/build/arakoon.1.8.12
# compiler     4.02.3
# exit-code    2
# env-file     /Users/sanders/.opam/4.02.3/build/arakoon.1.8.12/arakoon-32116-1872ec.env
# stdout-file  /Users/sanders/.opam/4.02.3/build/arakoon.1.8.12/arakoon-32116-1872ec.out
# stderr-file  /Users/sanders/.opam/4.02.3/build/arakoon.1.8.12/arakoon-32116-1872ec.err
### stdout ###
# [...]
# ocamlfind ocamlc -g -ccopt -I../src/tools -ccopt -msse4.2 -ccopt -Wall -ccopt -Wextra -ccopt -Werror -ccopt -ggdb3 -ccopt -O2 -c src/tools/arakoon_crc32c.c
# ocamlfind ocamlc -g -ccopt -I../src/tools -ccopt -msse4.2 -ccopt -Wall -ccopt -Wextra -ccopt -Werror -ccopt -ggdb3 -ccopt -O2 -c src/tools/bsd_crc32c.c
# ocamlfind ocamlc -g -ccopt -I../src/tools -ccopt -msse4.2 -ccopt -Wall -ccopt -Wextra -ccopt -Werror -ccopt -ggdb3 -ccopt -O2 -c src/tools/arakoon_limits.c
# ocamlfind ocamlc -g -ccopt -I../src/tools -ccopt -msse4.2 -ccopt -Wall -ccopt -Wextra -ccopt -Werror -ccopt -ggdb3 -ccopt -O2 -c src/tools/tcp_info_stubs.c
# + ocamlfind ocamlc -g -ccopt -I../src/tools -ccopt -msse4.2 -ccopt -Wall -ccopt -Wextra -ccopt -Werror -ccopt -ggdb3 -ccopt -O2 -c src/tools/arakoon_crc32c.c
# src/tools/arakoon_crc32c.c:41:22: error: use of undeclared identifier 'bit_SSE4_2'
#   has_sse_4_2 = (c & bit_SSE4_2) != 0;
#                      ^
#1 error generated.
# Command exited with code 2.
toolslive commented 8 years ago

"Officially", OS X is not supported and none of the developers is using a mac. However, if you get it compiled, which is get the following to work on OS X:

and the unit tests succeed, we'd be happy to merge in a patch.

ansiwen commented 8 years ago

@toolslive: I would do that, but only to evaluate its usage with mirage OS. Is there some experience? I read somewhere that it should work, but wonder how tokyo cabinet would work in mirage OS.

toolslive commented 8 years ago

I'm not sure Arakoon will work on Mirage. Tokyo cabinet is a C library that uses mmap'ed files, so that will probably not work. Otherwise, the rest of Arakoon needs file system support, and I don't know the current state of that in Mirage (At one point, there was no file system support at all, just a block device API)