[reSIProcate] repro linking problem
Hi there,
I'm trying to compile and run the repro proxy from the SVN main tree today on
my up-to-date Gentoo system. After fixing a lot of things by hand, I'm able
to compile it, but it fails when trying to link against the resiprocate and
dom libs. Any hints what I did wrong are appreciated.
Thanks
Nils
What I did:
- checkout main tree from SVN
- changed to autoconf make environment according to README.autoconf
(BTW: autoconf-2.59 and automake-1.9)
- removed the test directory from SUBDIRS variable in resiprocate/Makefile.am
- ran 'autoreconf-2.59'
- 'make' called in the sip dir now builds resiprocate successfully
For repro I did this:
- fixed the db_cxx.h include in BerkleyDb.cxx to from db4 to db4.2
- fixed DUM_ and RESIPROCATE_LIBDIRS in build/Makefile.pkg to point to
the .libs directories
- changed in build/Makefile.pkg DUM_LIBNAME to resipdum
Then finally I can compile but during linking I get the following errors:
g++ -o bin.debug.Linux.i686/repro
obj.debug.Linux.i686/repro.o obj.debug.Linux.i686/RouteStore.o
obj.debug.Linux.i686/UserStore.o obj.debug.Linux.i686/ConfigStore.o
obj.debug.Linux.i686/AclStore.o obj.debug.Linux.i686/Store.o
obj.debug.Linux.i686/AbstractDb.o obj.debug.Linux.i686/BerkleyDb.o
obj.debug.Linux.i686/CommandLineParser.o obj.debug.Linux.i686/HttpBase.o
obj.debug.Linux.i686/HttpConnection.o obj.debug.Linux.i686/WebAdmin.o
obj.debug.Linux.i686/WebAdminThread.o obj.debug.Linux.i686/Proxy.o
obj.debug.Linux.i686/Registrar.o
obj.debug.Linux.i686/ReproServerAuthManager.o
obj.debug.Linux.i686/RequestContext.o obj.debug.Linux.i686/ResponseContext.o
obj.debug.Linux.i686/RequestProcessor.o
obj.debug.Linux.i686/RequestProcessorChain.o
obj.debug.Linux.i686/monkeys/DigestAuthenticator.o
obj.debug.Linux.i686/monkeys/RouteProcessor.o
obj.debug.Linux.i686/monkeys/AmIResponsible.o
obj.debug.Linux.i686/monkeys/LocationServer.o
obj.debug.Linux.i686/monkeys/ConstantLocationMonkey.o
obj.debug.Linux.i686/monkeys/RouteMonkey.o
obj.debug.Linux.i686/stateAgents/CertServer.o
obj.debug.Linux.i686/stateAgents/CertPublicationHandler.o
obj.debug.Linux.i686/stateAgents/CertSubscriptionHandler.o
obj.debug.Linux.i686/stateAgents/PrivateKeyPublicationHandler.o
obj.debug.Linux.i686/stateAgents/PrivateKeySubscriptionHandler.o
-L../build/../resiprocate/dum/.libs -L../build/../resiprocate/.libs
-L/usr/local/ssl/lib -L../build/../contrib/ares -lresipdum -lresiprocate
-lssl -lcrypto -lares -ldb_cxx-4.2 -lpthread -lpopt -lpopt
obj.debug.Linux.i686/repro.o(.text+0x15f0): In function `main':
/home/ohlmeini/resiprocate/main/sip/repro/repro.cxx:142: undefined reference
to `resip::MasterProfile::MasterProfile[in-charge]()'
obj.debug.Linux.i686/repro.o(.text+0x1f18):/home/ohlmeini/resiprocate/main/sip/repro/repro.cxx:223:
undefined reference to `resip::MasterProfile::clearSupportedMethods()'
obj.debug.Linux.i686/repro.o(.text+0x1f3a):/home/ohlmeini/resiprocate/main/sip/repro/repro.cxx:224:
undefined reference to
`resip::MasterProfile::addSupportedMethod(resip::MethodTypes const&)'
obj.debug.Linux.i686/repro.o(.text+0x1f69):/home/ohlmeini/resiprocate/main/sip/repro/repro.cxx:225:
undefined reference to `resip::MasterProfile::addSupportedScheme(resip::Data
const&)'
obj.debug.Linux.i686/repro.o(.text+0x2289):/home/ohlmeini/resiprocate/main/sip/repro/repro.cxx:251:
undefined reference to
`resip::MessageFilterRule::MessageFilterRule[in-charge]
(std::vector<resip::Data, std::allocator<resip::Data> >,
resip::MessageFilterRule::HostpartTypes, std::vector<resip::MethodTypes,
std::allocator<resip::MethodTypes> >, std::vector<resip::Data,
std::allocator<resip::Data> >)'
obj.debug.Linux.i686/repro.o(.text+0x25ce):/home/ohlmeini/resiprocate/main/sip/repro/repro.cxx:265:
undefined reference to
`resip::MessageFilterRule::MessageFilterRule[in-charge]
(std::vector<resip::Data, std::allocator<resip::Data> >,
resip::MessageFilterRule::HostpartTypes, std::vector<resip::MethodTypes,
std::allocator<resip::MethodTypes> >, std::vector<resip::Data,
std::allocator<resip::Data> >)'
obj.debug.Linux.i686/repro.o(.text+0x28ca):/home/ohlmeini/resiprocate/main/sip/repro/repro.cxx:281:
undefined reference to `resip::DumThread::DumThread[in-charge]
(resip::DialogUsageManager&)'
obj.debug.Linux.i686/repro.o(.gnu.linkonce.t._ZN5resip13MasterProfileD1Ev+0xc):
In function `resip::MasterProfile::~MasterProfile [in-charge]()':
/home/ohlmeini/resiprocate/main/sip/repro/repro.cxx:142: undefined reference
to `vtable for resip::MasterProfile'
obj.debug.Linux.i686/repro.o(.gnu.linkonce.t._ZN5resip11UserProfileD2Ev+0xc):
In function `resip::UserProfile::~UserProfile [not-in-charge]()':
/home/ohlmeini/resiprocate/main/sip/repro/repro.cxx:142: undefined reference
to `vtable for resip::UserProfile'
obj.debug.Linux.i686/UserStore.o(.text+0x134): In function
`repro::UserStore::requestUserAuthInfo(resip::Data const&, resip::Data
const&, resip::Data const&, resip::TransactionUser&) const':
/home/ohlmeini/resiprocate/main/sip/repro/UserStore.cxx:45: undefined
reference to `resip::UserAuthInfo::UserAuthInfo[in-charge](resip::Data
const&, resip::Data const&, resip::Data const&, resip::Data const&)'
obj.debug.Linux.i686/monkeys/DigestAuthenticator.o(.text+0x44a): In function
`repro::DigestAuthenticator::handleRequest(repro::RequestContext&)':
monkeys/DigestAuthenticator.cxx:48: undefined reference to `typeinfo for
resip::UserAuthInfo'
obj.debug.Linux.i686/monkeys/DigestAuthenticator.o(.text+0x507):monkeys/DigestAuthenticator.cxx:66:
undefined reference to `resip::UserAuthInfo::getA1() const'
obj.debug.Linux.i686/monkeys/DigestAuthenticator.o(.text+0x51b):monkeys/DigestAuthenticator.cxx:67:
undefined reference to `resip::UserAuthInfo::getRealm() const'
obj.debug.Linux.i686/monkeys/DigestAuthenticator.o(.text+0x52f):monkeys/DigestAuthenticator.cxx:68:
undefined reference to `resip::UserAuthInfo::getUser() const'
../build/../resiprocate/.libs/libresiprocate.so: undefined reference to
`resip::MessageFilterRule::matches(resip::SipMessage const&) const'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`resip::NetworkAssociation::~NetworkAssociation [in-charge]()'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`resip::KeepAliveManager::process(resip::KeepAliveTimeout&)'
../build/../resiprocate/.libs/libresiprocate.so: undefined reference to
`resip::TransactionUserMessage::TransactionUserMessage[in-charge]
(resip::TransactionUserMessage::Type, resip::TransactionUser*)'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`resip::DestroyUsage::DestroyUsage[in-charge]
(resip::Handle<resip::BaseUsage>)'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`resip::operator<<(std::basic_ostream<char, std::char_traits<char> >&,
resip::UserProfile const&)'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`resip::DestroyUsage::DestroyUsage[in-charge](resip::Dialog*)'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`typeinfo for resip::TransactionUserMessage'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`typeinfo for resip::KeepAliveTimeout'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`typeinfo for resip::DestroyUsage'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`resip::NetworkAssociation::update(resip::SipMessage const&, int)'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`resip::DestroyUsage::destroy()'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`resip::operator<<(std::basic_ostream<char, std::char_traits<char> >&,
resip::UserAuthInfo const&)'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`resip::UserProfile::DigestCredential::DigestCredential[in-charge]()'
../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
`resip::DestroyUsage::DestroyUsage[in-charge](resip::DialogSet*)'
collect2: ld returned 1 exit status
make: *** [bin.debug.Linux.i686/repro] Error 1