Opened 5 years ago

Closed 5 years ago

#58719 closed defect (fixed)

folly @2019.06.17.00: Undefined symbols

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: beauby (Lucas Hosseini)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: beauby (Lucas Hosseini)
Port: folly

Description

folly does not build on macOS 10.13 or earlier:

Undefined symbols for architecture x86_64:
  "folly::dynamic::TypeInfo<folly::dynamic::ObjectImpl>::name", referenced from:
      folly::dynamic::operator[](folly::Range<char const*>) & in dynamic.cpp.o
      folly::dynamic::getDefault(folly::Range<char const*>, folly::dynamic const&) const & in dynamic.cpp.o
      folly::dynamic::getDefault(folly::Range<char const*>, folly::dynamic&&) const & in dynamic.cpp.o
      folly::dynamic::getDefault(folly::Range<char const*>, folly::dynamic const&) && in dynamic.cpp.o
      folly::dynamic::getDefault(folly::Range<char const*>, folly::dynamic&&) && in dynamic.cpp.o
      folly::dynamic::merge_diff(folly::dynamic const&, folly::dynamic const&) in dynamic.cpp.o
      std::__1::enable_if<(!(std::is_convertible<folly::dynamic const&, folly::Range<char const*> >::value)) && (std::is_convertible<folly::dynamic const&, folly::dynamic>::value), folly::dynamic::const_item_iterator>::type folly::dynamic::find<folly::dynamic const&>(folly::dynamic const&&&) const in dynamic.cpp.o
      ...
  "folly::dynamic::TypeInfo<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::name", referenced from:
      folly::jsonschema::(anonymous namespace)::SchemaValidator::loadSchema(folly::jsonschema::(anonymous namespace)::SchemaValidatorContext&, folly::dynamic const&) in JSONSchema.cpp.o
      folly::jsonschema::(anonymous namespace)::PropertiesValidator::PropertiesValidator(folly::jsonschema::(anonymous namespace)::SchemaValidatorContext&, folly::dynamic const*, folly::dynamic const*, folly::dynamic const*) in JSONSchema.cpp.o
      folly::jsonschema::(anonymous namespace)::DependencyValidator::DependencyValidator(folly::jsonschema::(anonymous namespace)::SchemaValidatorContext&, folly::dynamic const&) in JSONSchema.cpp.o
      folly::bser::parseBser(folly::io::Cursor&) in Load.cpp.o
  "folly::dynamic::TypeInfo<std::__1::vector<folly::dynamic, std::__1::allocator<folly::dynamic> > >::name", referenced from:
      folly::dynamic::erase(std::__1::__wrap_iter<folly::dynamic const*>, std::__1::__wrap_iter<folly::dynamic const*>) in dynamic.cpp.o
      folly::json::(anonymous namespace)::Printer::operator()(folly::dynamic const&) const in json.cpp.o
      folly::json::(anonymous namespace)::parseValue(folly::json::(anonymous namespace)::Input&, std::__1::unordered_map<folly::dynamic const*, folly::json::parse_metadata, std::__1::hash<folly::dynamic const*>, std::__1::equal_to<folly::dynamic const*>, std::__1::allocator<std::__1::pair<folly::dynamic const* const, folly::json::parse_metadata> > >*) in json.cpp.o
      folly::(anonymous namespace)::do_remove(folly::Expected<folly::dynamic::json_pointer_resolved_value<folly::dynamic>, folly::dynamic::json_pointer_resolution_error<folly::dynamic> >&) in json_patch.cpp.o
      folly::(anonymous namespace)::do_add(folly::Expected<folly::dynamic::json_pointer_resolved_value<folly::dynamic>, folly::dynamic::json_pointer_resolution_error<folly::dynamic> >&, folly::dynamic const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in json_patch.cpp.o
      folly::jsonschema::(anonymous namespace)::ArrayUniqueValidator::validate(folly::jsonschema::(anonymous namespace)::ValidationContext&, folly::dynamic const&) const in JSONSchema.cpp.o
      folly::jsonschema::(anonymous namespace)::DependencyValidator::DependencyValidator(folly::jsonschema::(anonymous namespace)::SchemaValidatorContext&, folly::dynamic const&) in JSONSchema.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)

I also noticed that [e616a815a0672cd42149715ccb8f5753750dafa0/macports-ports] specifies that C++14 is required, but the compiler blacklisting was not adjusted to take that into account. For C++14 we usually add compiler.blacklist-append {clang < 602}.

Change History (1)

comment:1 Changed 5 years ago by beauby (Lucas Hosseini)

Owner: set to Lucas Hosseini <hoss@…>
Resolution: fixed
Status: newclosed

In f54a887e83940255d794e5ed7b458a6e18ca3600/macports-ports (master):

folly: blacklist incompatible compilers

Fixes: #58719

Note: See TracTickets for help on using tickets.