GitHub user apesternikov opened a pull request:
https://github.com/apache/thrift/pull/106
THRIFT-2492 use tcxx instead of tr1 in test/cpp
THRIFT-2492
Now it complies, but fails to link later:
/Applications/Xcode.app/Contents/Developer/usr/bin/make TestServer
TestClient StressTest StressTestNonBlocking
/bin/sh ../../libtool --tag=CXX --mode=link g++ -Wall -std=c++11
-stdlib=libc++ -L/usr/local/lib -L/usr/local/opt/openssl/lib -o TestServer
TestServer.o libtestgencpp.la ../../lib/cpp/libthrift.la
../../lib/cpp/libthriftz.la ../../lib/cpp/libthriftnb.la -levent
-lboost_program_options -lssl -lcrypto -lpthread
libtool: link: g++ -Wall -std=c++11 -stdlib=libc++ -o .libs/TestServer
TestServer.o -Wl,-bind_at_load -L/usr/local/lib -L/usr/local/opt/openssl/lib
./.libs/libtestgencpp.a /Users/ap/thrift-dev/lib/cpp/.libs/libthrift.dylib
../../lib/cpp/.libs/libthrift.dylib ../../lib/cpp/.libs/libthriftz.dylib
../../lib/cpp/.libs/libthriftnb.dylib -levent -lboost_program_options -lssl
-lcrypto -lpthread
Undefined symbols for architecture x86_64:
"thrift::test::Insanity::operator<(thrift::test::Insanity const&) const",
referenced from:
std::__1::__tree_node_base<void*>*&
std::__1::__tree<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >,
std::__1::__map_value_compare<thrift::test::Insanity,
std::__1::__value_type<thrift::test::Insanity, std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > >,
std::__1::less<thrift::test::Insanity>, true>,
std::__1::allocator<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > > >
>::__find_equal<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >
>(std::__1::__tree_const_iterator<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >,
std::__1::__tree_node<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic
_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >,
void*>*, long>, std::__1::__tree_node_base<void*>*&,
std::__1::__value_type<thrift::test::Insanity, std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > > const&) in
libtestgencpp.a(ThriftTest_types.o)
std::__1::__tree_node_base<void*>*&
std::__1::__tree<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >,
std::__1::__map_value_compare<thrift::test::Insanity,
std::__1::__value_type<thrift::test::Insanity, std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > >,
std::__1::less<thrift::test::Insanity>, true>,
std::__1::allocator<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > > >
>::__find_equal<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > > >(std::__1::__tree_node_base<void*>*&,
std::__1::__value_type<thrift::test::Insanity, std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > > const&) in
libtestgencpp.a(ThriftTest_types.o)
bool
std::__1::__lexicographical_compare<std::__1::__less<std::__1::pair<thrift::test::Insanity
const, std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >, std::__1::pair<thrift::test::Insanity const,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > > >&,
std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >,
std::__1::__tree_node<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >, void*>*, long> >,
std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >,
std::__1::__tree_node<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_
string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >,
void*>*, long> >
>(std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >,
std::__1::__tree_node<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >, void*>*, long> >,
std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >,
std::__1::__tree_node<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >, void*>*, long> >,
std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_t
raits<char>, std::__1::allocator<char> > >,
std::__1::__tree_node<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >, void*>*, long> >,
std::__1::__map_const_iterator<std::__1::__tree_const_iterator<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >,
std::__1::__tree_node<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >, void*>*, long> >,
std::__1::__less<std::__1::pair<thrift::test::Insanity const,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >, std::__1::pair<thrift::test::Insanity const,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > > >&) in libtestgencpp.a(ThriftTest_types.o)
std::__1::__tree<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > >,
std::__1::__map_value_compare<thrift::test::Insanity,
std::__1::__value_type<thrift::test::Insanity, std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > >,
std::__1::less<thrift::test::Insanity>, true>,
std::__1::allocator<std::__1::__value_type<thrift::test::Insanity,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > > >
>::__find_leaf_high(std::__1::__tree_node_base<void*>*&,
std::__1::__value_type<thrift::test::Insanity, std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > > const&) in
libtestgencpp.a(ThriftTest_types.o)
std::__1::__tree<thrift::test::Insanity,
std::__1::less<thrift::test::Insanity>,
std::__1::allocator<thrift::test::Insanity>
>::__find_leaf_high(std::__1::__tree_node_base<void*>*&, thrift::test::Insanity
const&) in libtestgencpp.a(ThriftTest_types.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[1]: *** [TestServer] Error 1
make: *** [check-am] Error 2
Interestingly, "thrift::test::Insanity::operator<(thrift::test::Insanity
const&) const" is declared in ThriftTest_types.h as
bool operator < (const Insanity & ) const;
but never defined.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/apesternikov/thrift test_cpp_on_mac
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/thrift/pull/106.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #106
----
commit a6ed88196fbf4622a3b0261bbac0fe6b258bdd36
Author: Aleksey Pesternikov <[email protected]>
Date: 2014-04-22T14:19:13Z
use tcxx instead of tr1 in test/cpp
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---