facebookarchive/extension-example

Can't build on MacOS 10.12 Sierra

Opened this issue · 2 comments

Installed HHVM via Homebrew.
Then run ./build.sh and get errors:

[100%] Linking CXX shared library example.so
Undefined symbols for architecture x86_64:
  "HPHP::StringData::Make(char const*, unsigned long, HPHP::CopyStringMode)", referenced from:
      HPHP::Extension::moduleInfo(HPHP::Array&) in example.cpp.o
  "HPHP::bstrcaseeq(char const*, char const*, unsigned long)", referenced from:
      std::__1::unordered_map<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo, HPHP::string_data_hash, HPHP::string_data_isame, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::Native::BuiltinFunctionInfo> > >::operator[](HPHP::StringData const*&&) in example.cpp.o
      std::__1::__hash_table<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, std::__1::__unordered_map_hasher<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, HPHP::string_data_hash, true>, std::__1::__unordered_map_equal<HPHP::StringData const*, std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo>, HPHP::string_data_isame, true>, std::__1::allocator<std::__1::__hash_value_type<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo> > >::__rehash(unsigned long) in example.cpp.o
  "HPHP::g_destructors", referenced from:
      HPHP::Extension::moduleInfo(HPHP::Array&) in example.cpp.o
  "HPHP::makeStaticString(char const*)", referenced from:
      HPHP::ExampleExtension::moduleInit() in example.cpp.o
  "HPHP::makeStaticString(HPHP::String const&)", referenced from:
      HPHP::ExampleExtension::moduleInit() in example.cpp.o
  "HPHP::Array::set(HPHP::String const&, HPHP::Variant const&, bool)", referenced from:
      HPHP::Extension::moduleInfo(HPHP::Array&) in example.cpp.o
  "HPHP::Class::atomicRelease()", referenced from:
      HPHP::Class::ExtraData::~ExtraData() in example.cpp.o
  "HPHP::Native::s_builtinFunctions", referenced from:
      HPHP::ExampleExtension::moduleInit() in example.cpp.o
  "HPHP::String::~String()", referenced from:
      HPHP::Extension::moduleInfo(HPHP::Array&) in example.cpp.o
      HPHP::ExampleExtension::moduleInit() in example.cpp.o
  "HPHP::Extension::loadSystemlib(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      HPHP::ExampleExtension::moduleInit() in example.cpp.o
  "HPHP::Extension::Extension(char const*, char const*)", referenced from:
      __GLOBAL__sub_I_example.cpp in example.cpp.o
  "HPHP::type_scan::detail::g_metadata_table", referenced from:
      HPHP::MixedArray::Elm::_type_scan_custom_(HPHP::type_scan::Scanner&) const in example.cpp.o
  "HPHP::StringData::hashHelper() const", referenced from:
      std::__1::unordered_map<HPHP::StringData const*, HPHP::Native::BuiltinFunctionInfo, HPHP::string_data_hash, HPHP::string_data_isame, std::__1::allocator<std::__1::pair<HPHP::StringData const* const, HPHP::Native::BuiltinFunctionInfo> > >::operator[](HPHP::StringData const*&&) in example.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [example.so] Error 1
make[1]: *** [CMakeFiles/example.dir/all] Error 2
make: *** [all] Error 2```

What I am doing wrong? Thank you.

My guess is a lot of the args passed to the HHVM cmake (brew does this for you) will need to be passed to the cmake call in ./build.sh.
https://docs.hhvm.com/hhvm/installation/building-from-source#mac-os-x-homebrew__build-hhvm

As far as I know, no one has built this example on OS X.

Thank you for the answer!
It not helps...
Built HHVM from source, all is the same.
So there is any possible to build any extension on osx??