< Previous by Date Date Index Next by Date >
  Thread Index Next in Thread >

[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