mongofill / mongofill-hhvm

A mix of the original Mongofill extension + BSON implementation in C++
MIT License
32 stars 19 forks source link

It doesn't compile with hhvm 3.4.0 #15

Closed jruizoctanio closed 9 years ago

jruizoctanio commented 9 years ago

Hello,

mongofill-hhvm used to compile fine with hhvm 3.3.1, but with the new 3.4.0 it doesn't compile, throwing the following error:

./build.sh

* hphpize complete, now run cmake . && make to build -- Configuring for HHVM API version 20140829 -- bson Include dir: /usr/local/include/libbson-1.0 -- libbson library: /usr/local/lib/libbson-1.0.so -- Configuring done -- Generating done -- Build files have been written to: /usr/local/src/mongofill-hhvm [ 33%] Building CXX object CMakeFiles/mongo.dir/src/bson.cpp.o In file included from /usr/include/hphp/runtime/base/memory-manager.h:27:0, from /usr/include/hphp/runtime/base/types.h:37, from /usr/include/hphp/runtime/base/zend-functions.h:21, from /usr/include/hphp/runtime/base/hphp-system.h:27, from /usr/include/hphp/runtime/base/base-includes.h:24, from /usr/local/src/mongofill-hhvm/src/bson.cpp:1: /usr/include/hphp/util/alloc.h: In function 'void HPHP::lowfree(void)': /usr/include/hphp/util/alloc.h:115:39: error: 'MALLOCX_ARENA' was not declared in this scope dallocx(ptr, MALLOCX_ARENA(low_arena)); ^ In file included from /usr/include/hphp/third-party/folly/ThreadLocal.h:53:0, from /usr/include/hphp/third-party/folly/ThreadCachedInt.h:31, from /usr/include/hphp/third-party/folly/AtomicHashArray.h:41, from /usr/include/hphp/third-party/folly/AtomicHashMap.h:93, from /usr/include/hphp/runtime/vm/named-entity.h:26, from /usr/include/hphp/runtime/vm/type-constraint.h:20, from /usr/include/hphp/runtime/vm/preclass.h:28, from /usr/include/hphp/runtime/vm/class.h:31, from /usr/include/hphp/runtime/base/object-data.h:26, from /usr/include/hphp/runtime/base/type-object.h:20, from /usr/include/hphp/runtime/base/complex-types.h:26, from /usr/include/hphp/runtime/base/type-conversions.h:22, from /usr/include/hphp/runtime/base/hphp-system.h:29, from /usr/include/hphp/runtime/base/base-includes.h:24, from /usr/local/src/mongofill-hhvm/src/bson.cpp:1: /usr/include/hphp/third-party/folly/detail/ThreadLocalDetail.h: In static member function 'static void folly::threadlocal_detail::StaticMeta::reserve(int)': /usr/include/hphp/third-party/folly/detail/ThreadLocalDetail.h:354:67: error: 'MALLOCX_ZERO' was not declared in this scope success = (xallocx(threadEntry->elements, newByteSize, 0, MALLOCX_ZERO) ^ /usr/include/hphp/third-party/folly/detail/ThreadLocalDetail.h:361:42: error: 'MALLOCX_ZERO' was not declared in this scope mallocx(newByteSize, MALLOCX_ZERO))) != nullptr); ^ make[2]: _* [CMakeFiles/mongo.dir/src/bson.cpp.o] Error 1 make[1]: * [CMakeFiles/mongo.dir/all] Error 2 make: * [all] Error 2

Any help?

Thank you.

mcuadros commented 9 years ago

I will try to confirm this bug and maybe fixed, but currently I am very busy. Any help is more than welcome.

jruizoctanio commented 9 years ago

Thank you for your quick answer Maximo.

I'm giving more details about my scenario, if it helps somebody:

Versions: SO: Debian 7.7 hhvm: 3.4.0 mongofill-hhvm: 1.4.5 libbson: 1.0.3 google-glog: 0.3.3 gcc: 4.9.2

vlechemin commented 9 years ago

Did you try installing the jemalloc package?

jruizoctanio commented 9 years ago

I have these installed:

dpkg -l |grep jemall

ii libjemalloc-dev 3.0.0-3 amd64 development files and documentation for jemalloc ii libjemalloc1 3.0.0-3 amd64 general-purpose scalable concurrent malloc(3) implementation

Is this what you mean?

vlechemin commented 9 years ago

I had this error a few days ago, if I recall correctly it worked after the installation of jemalloc (3.6.0-3)

jruizoctanio commented 9 years ago

Right! After installation of libjemalloc-dev 3.6.0-3, now it compiles without problem.

Thank you!