Hi Amos,
At 14.32 02/06/2009, Amos Jeffries wrote:
>Do you have "nm" utility under MingW to test the built .libs/libident.a
>to see if its actually exporting the right symbols?
Yes, this is the output of nm --demangle ident/.libs/libident.a on Linux:
AclIdent.o:
00000000 r .LC0
0000000c r .LC1
0000003c r .LC10
0000000e r .LC2
00000011 r .LC3
00000000 r .LC4
00000014 r .LC5
0000001d r .LC6
00000020 r .LC7
00000029 r .LC8
00000054 r .LC9
00000000 V DW.ref.__gxx_personality_v0
U _GLOBAL_OFFSET_TABLE_
00000140 t global constructors keyed to _ZN8ACLIdentD2Ev
U _Unwind_Resume
U SkipBuildPrefix(char const*)
000000b0 t __static_initialization_and_destruction_0(int, int)
00000000 V guard variable for ACLUserData::Pool()::thePool
00000000 V guard variable for ACLRegexData::Pool()::thePool
00000000 V guard variable for HttpHdrRange::Pool()::thePool
00000000 V guard variable for HttpHeaderEntry::Pool()::thePool
00000000 V guard variable for HttpHdrRangeSpec::Pool()::thePool
00000000 V guard variable for acl_proxy_auth_match_cache::Pool()::thePool
00000000 V guard variable for ACLList::Pool()::thePool
00000000 V guard variable for ACLIdent::Pool()::thePool
00000000 V guard variable for ev_entry::Pool()::thePool
00000000 V guard variable for wordlist::Pool()::thePool
00000000 W ACLUserData::Pool()
000004a0 T IdentLookup::LookupDone(char const*, void*)
00000090 T IdentLookup::Instance()
00000000 B IdentLookup::instance_
00000000 W IdentLookup::~IdentLookup()
00000000 W IdentLookup::~IdentLookup()
00000000 W ACLChecklist::AsyncState::~AsyncState()
00000000 W ACLChecklist::AsyncState::~AsyncState()
U ACLChecklist::changeState(ACLChecklist::AsyncState*)
U ACLChecklist::markFinished()
U ACLChecklist::currentAnswer(allow_t)
U ACLChecklist::asyncInProgress(bool)
U ACLChecklist::check()
U ACLChecklist::NullState::Instance()
U MemAllocatorProxy::free(void*)
U MemAllocatorProxy::alloc()
U ACL::matchForCache(ACLChecklist*)
00000000 W ACL::prepareForUse()
U ACL::ACL()
U ACL::~ACL()
U Debug::finishDebug()
U Debug::getDebugOut()
U Debug::level
U Debug::Levels
U Ident::Start(IpAddress&, IpAddress&, void (*)(char
const*, void*), void*)
00000000 W ACLData<char const*>::prepareForUse()
00000000 W ACLData<char const*>::~ACLData()
00000000 W ACLData<char const*>::~ACLData()
00000000 W ACLIdent::Pool()
00000190 T ACLIdent::match(ACLChecklist*)
000007e0 T ACLIdent::parse()
00000320 T ACLIdent::ACLIdent(ACLData<char const*>*, char const*)
000003c0 T ACLIdent::ACLIdent(ACLIdent const&)
00000370 T ACLIdent::ACLIdent(ACLData<char const*>*, char const*)
00000430 T ACLIdent::ACLIdent(ACLIdent const&)
00000ab0 T ACLIdent::~ACLIdent()
00000780 T ACLIdent::~ACLIdent()
00000a50 T ACLIdent::~ACLIdent()
00000000 T ACLIdent::operator=(ACLIdent const&)
000005d0 T IdentLookup::checkForAsync(ACLChecklist*) const
U ACLChecklist::asyncState() const
U ACLFilledChecklist::conn() const
U ACL::requiresReply() const
U ACL::requiresRequest() const
U ACL::valid() const
00000040 T ACLIdent::typeString() const
00000000 W ACLIdent::isProxyAuth() const
00000050 T ACLIdent::dump() const
00000970 T ACLIdent::clone() const
00000070 T ACLIdent::empty() const
U std::ostream::operator<<(int)
U std::ios_base::Init::Init()
U std::ios_base::Init::~Init()
00000004 b std::__ioinit
U std::basic_ostream<char, std::char_traits<char> >&
std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*)
00000000 V typeinfo for IdentLookup
U typeinfo for ACLChecklist
U typeinfo for ACLFilledChecklist
U typeinfo for ACL
00000000 V typeinfo for ACLData<char const*>
00000000 V typeinfo for ACLIdent
00000000 V typeinfo for ACLChecklist::AsyncState
00000000 V typeinfo name for IdentLookup
00000000 V typeinfo name for ACLData<char const*>
00000000 V typeinfo name for ACLIdent
00000000 V typeinfo name for ACLChecklist::AsyncState
U vtable for ACLUserData
00000000 V vtable for IdentLookup
00000000 V vtable for ACLData<char const*>
00000000 V vtable for ACLIdent
U vtable for __cxxabiv1::__class_type_info
U vtable for __cxxabiv1::__si_class_type_info
00000000 V vtable for ACLChecklist::AsyncState
00000000 V ACLUserData::Pool()::thePool
00000000 V ACLIdent::Pool()::thePool
0000000e r ACLIdent::match(ACLChecklist*)::__FUNCTION__
00000014 r ACLIdent::parse()::__FUNCTION__
00000000 r IdentLookup::checkForAsync(ACLChecklist*) const::__FUNCTION__
U __cxa_atexit
U __cxa_call_unexpected
U __cxa_guard_acquire
U __cxa_guard_release
U __cxa_pure_virtual
U __dso_handle
U __dynamic_cast
U __gxx_personality_v0
00000000 T __i686.get_pc_thunk.bx
00000000 T __i686.get_pc_thunk.cx
00000160 t __tcf_0
00000940 t __tcf_1
U dash_str
U xassert
U xfree
U xstrncpy
Ident.o:
00000000 r .LC0
00000000 r .LC1
00000068 r .LC10
0000006a r .LC11
00000071 r .LC12
00000006 r .LC2
0000000c r .LC3
0000001b r .LC4
0000002d r .LC5
00000030 r .LC6
00000039 r .LC7
0000004b r .LC8
0000005f r .LC9
00000010 b CBDATA_IdentStateData
00000000 V DW.ref.__gxx_personality_v0
U Squid_MaxFD
U _GLOBAL_OFFSET_TABLE_
00000060 t global constructors keyed to _ZN5Ident9TheConfigE
U _Unwind_Resume
U _comm_close(int, char const*, int)
U cbdataInternalFree(void*)
U cbdataInternalLock(void const*)
U cbdataInternalAlloc(cbdata_type)
U cbdataReferenceValid(void const*)
U cbdataInternalAddType(cbdata_type, char const*, int, void
(*)(void*))
U comm_add_close_handler(int, void (*)(int, void*), void*)
U cbdataInternalReferenceDoneValid(void**, void**)
00000000 t __static_initialization_and_destruction_0(int, int)
U comm_read(int, char*, int, void (*)(int, char*, unsigned
int, comm_err_t, int, void*), void*)
00000000 V guard variable for HttpHdrRange::Pool()::thePool
00000000 V guard variable for HttpHeaderEntry::Pool()::thePool
00000000 V guard variable for HttpHdrRangeSpec::Pool()::thePool
00000000 V guard variable for acl_proxy_auth_match_cache::Pool()::thePool
00000000 V guard variable for ACLList::Pool()::thePool
00000000 V guard variable for ev_entry::Pool()::thePool
00000000 V guard variable for wordlist::Pool()::thePool
U Debug::finishDebug()
U Debug::getDebugOut()
U Debug::level
U Debug::Levels
0000000c b Ident::ident_hash
000007f0 t Ident::ConnectDone(int, comm_err_t, int, void*)
00000540 t Ident::identCallback(Ident::_IdentStateData*, char*)
000000a0 T Ident::Init()
00000780 t Ident::Close(int, void*)
000001c0 T Ident::Start(IpAddress&, IpAddress&, void (*)(char const*,
void*), void*)
00000470 t Ident::Timeout(int, void*)
00000140 t Ident::ClientAdd(Ident::_IdentStateData*, void (*)(char
const*, void*), void*)
000005e0 t Ident::ReadReply(int, char*, unsigned int, comm_err_t, int, void*)
00000000 B Ident::TheConfig
U MemBuf::init()
U MemBuf::clean()
U MemBuf::Printf(char const*, ...)
U IpAddress::SetPort(unsigned short)
U IpAddress::IpAddress(IpAddress const&)
U IpAddress::~IpAddress()
U IpAddress::operator=(IpAddress const&)
U IpAddress::NtoA(char*, unsigned int, int) const
U IpAddress::ToURL(char*, unsigned int) const
U IpAddress::GetPort() const
U std::ostream::operator<<(int)
U std::ios_base::Init::Init()
U std::ios_base::Init::~Init()
00000008 b std::__ioinit
U std::basic_ostream<char, std::char_traits<char> >&
std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*)
U __cxa_atexit
U __dso_handle
U __gxx_personality_v0
00000000 T __i686.get_pc_thunk.bx
00000070 t __tcf_0
U commConnectStart
U commSetTimeout
U comm_open_listener
U comm_write_mbuf
U hash4
U hashPrime
U hash_create
U hash_join
U hash_lookup
U hash_remove_link
U isspace
U snprintf
U strchr
U strcmp
U strrchr
U strstr
U xassert
U xcalloc
U xfree
U xstrdup
And this on MinGW ....
AclIdent.o:
00000000 b .bss
00000000 d .data
00000000 N .stab
00000000 N .stabstr
00000000 t .text
Ident.o:
00000000 b .bss
00000000 d .ctors
00000000 d .data
00000000 d .data$_ZGVZN12HttpHdrRange4PoolEvE7thePool
00000000 d .data$_ZGVZN15HttpHeaderEntry4PoolEvE7thePool
00000000 d .data$_ZGVZN16HttpHdrRangeSpec4PoolEvE7thePool
00000000 d .data$_ZGVZN26acl_proxy_auth_match_cache4PoolEvE7thePool
00000000 d .data$_ZGVZN7ACLList4PoolEvE7thePool
00000000 d .data$_ZGVZN8ev_entry4PoolEvE7thePool
00000000 d .data$_ZGVZN8wordlist4PoolEvE7thePool
00000000 d .dtors
00000000 r .gcc_except_table
00000000 r .rdata
00000000 N .stab
00000000 N .stabstr
00000000 t .text
00000028 b CBDATA_IdentStateData
U Squid_MaxFD
00000b00 t global destructors keyed to _ZN5Ident9TheConfigE
00000af0 t global constructors keyed to _ZN5Ident9TheConfigE
U _Unwind_SjLj_Register
U _Unwind_SjLj_Resume
U _Unwind_SjLj_Unregister
U _comm_close(int, char const*, int)
U cbdataInternalFree(void*)
U cbdataInternalLock(void const*)
U cbdataInternalAlloc(cbdata_type)
U cbdataReferenceValid(void const*)
U cbdataInternalAddType(cbdata_type, char const*, int, void
(*)(void*))
U comm_add_close_handler(int, void (*)(int, void*), void*)
U cbdataInternalReferenceDoneValid(void**, void**)
00000a80 t __static_initialization_and_destruction_0(int, int)
U comm_read(int, char*, int, void (*)(int, char*, unsigned
int, comm_err_t, int, void*), void*)
00000000 D guard variable for HttpHdrRange::Pool()::thePool
00000000 D guard variable for HttpHeaderEntry::Pool()::thePool
00000000 D guard variable for HttpHdrRangeSpec::Pool()::thePool
00000000 D guard variable for acl_proxy_auth_match_cache::Pool()::thePool
00000000 D guard variable for ACLList::Pool()::thePool
00000000 D guard variable for ev_entry::Pool()::thePool
00000000 D guard variable for wordlist::Pool()::thePool
U Debug::finishDebug()
U Debug::getDebugOut()
U Debug::level
U Debug::Levels
00000018 b Ident::ident_hash
000000d0 t Ident::ConnectDone(int, comm_err_t, int, void*)
00000000 t Ident::identCallback(Ident::_IdentStateData*, char*)
00000360 T Ident::Init()
00000070 t Ident::Close(int, void*)
000003e0 T Ident::Start(IpAddress&, IpAddress&, void (*)(char const*,
void*), void*)
00000980 t Ident::Timeout(int, void*)
000002f0 t Ident::ClientAdd(Ident::_IdentStateData*, void (*)(char
const*, void*), void*)
000007a0 t Ident::ReadReply(int, char*, unsigned int, comm_err_t, int, void*)
00000000 B Ident::TheConfig
U MemBuf::init()
U MemBuf::clean()
U MemBuf::Printf(char const*, ...)
U IpAddress::SetPort(unsigned short)
U IpAddress::IpAddress(IpAddress const&)
U IpAddress::~IpAddress()
U IpAddress::operator=(IpAddress const&)
U IpAddress::NtoA(char*, unsigned int, int) const
U IpAddress::ToURL(char*, unsigned int) const
U IpAddress::GetPort() const
U std::ostream::operator<<(long)
U std::ostream::operator<<(unsigned long)
U std::ios_base::Init::Init()
U std::ios_base::Init::~Init()
00000008 b std::__ioinit
U std::basic_ostream<char, std::char_traits<char> >&
std::operator<< <std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*)
U __gxx_personality_sj0
U _imp____mb_cur_max
U _imp___pctype
U _isctype
U commConnectStart
U commSetTimeout
U comm_open_listener
U comm_write_mbuf
U hash4
U hashPrime
U hash_create
U hash_join
U hash_lookup
U hash_remove_link
U snprintf
U strchr
U strcmp
U strrchr
U strstr
U xassert
U xcalloc
U xfree
U xstrdup
It seems that AclIdent.o is exporting nothing (even running nm
without --demangle) ...
Really cannot understand this ...
Regards
Guido
-
========================================================
Guido Serassio
Acme Consulting S.r.l. - Microsoft Certified Partner
Via Lucia Savarino, 1 10098 - Rivoli (TO) - ITALY
Tel. : +39.011.9530135 Fax. : +39.011.9781115
Email: guido.serassio_at_acmeconsulting.it
WWW: http://www.acmeconsulting.it/
Received on Tue Jun 02 2009 - 13:53:01 MDT
This archive was generated by hypermail 2.2.0 : Tue Jun 02 2009 - 12:00:02 MDT