Bug 214574

Summary: devel/icu: icu-config and *.pc files underspecify dependencies for static linking
Product: Ports & Packages Reporter: Jan Beich <jbeich>
Component: Individual Port(s)Assignee: FreeBSD Office Team <office>
Status: Closed Works As Intended    
Severity: Affects Only Me CC: pavelivolkov, tijl
Priority: --- Keywords: needs-patch
Version: Latest   
Hardware: Any   
OS: Any   

Description Jan Beich freebsd_committer freebsd_triage 2016-11-16 16:09:24 UTC
$ pkg install -qy icu pkgconf
$ cat a.c
#include <unicode/ucol.h>

int main() {
  ucol_close(NULL);
  return 0;
}

$ cc a.c -static `pkg-config icu-i18n --cflags --libs --static`
/usr/local/lib/libicui18n.a(ucol.ao): In function `ucol_openBinary':
ucol.cpp:(.text+0x52): undefined reference to `__dynamic_cast'
/usr/local/lib/libicui18n.a(ucol.ao): In function `ucol_cloneBinary':
ucol.cpp:(.text+0xe4): undefined reference to `__dynamic_cast'
/usr/local/lib/libicui18n.a(ucol.ao): In function `ucol_getRules':
ucol.cpp:(.text+0x77f): undefined reference to `__dynamic_cast'
/usr/local/lib/libicui18n.a(ucol.ao): In function `ucol_getRulesEx':
ucol.cpp:(.text+0x832): undefined reference to `__dynamic_cast'
/usr/local/lib/libicui18n.a(ucol.ao): In function `ucol_getLocale':
ucol.cpp:(.text+0x904): undefined reference to `__dynamic_cast'
/usr/local/lib/libicui18n.a(ucol.ao):ucol.cpp:(.text+0x964): more undefined references to `__dynamic_cast' follow
/usr/local/lib/libicui18n.a(ucol.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(collationdatawriter.ao): In function `__clang_call_terminate':
collationdatawriter.cpp:(.text.__clang_call_terminate[__clang_call_terminate]+0xb): undefined reference to `__cxa_begin_catch'
collationdatawriter.cpp:(.text.__clang_call_terminate[__clang_call_terminate]+0x10): undefined reference to `std::terminate()'
/usr/local/lib/libicui18n.a(collationdatawriter.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(rulebasedcollator.ao):(.rodata+0x140): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(rulebasedcollator.ao):(.rodata+0x170): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(rulebasedcollator.ao):(.rodata+0x1c8): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(rulebasedcollator.ao):(.rodata+0x240): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(rulebasedcollator.ao):(.rodata+0x2c8): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(rulebasedcollator.ao):(.rodata+0x2d8): more undefined references to `vtable for __cxxabiv1::__si_class_type_info' follow
/usr/local/lib/libicui18n.a(rulebasedcollator.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(collationroot.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(ucln_in.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(coleitr.ao): In function `icu::CollationElementIterator::operator=(icu::CollationElementIterator const&)':
coleitr.cpp:(.text+0xde): undefined reference to `__dynamic_cast'
coleitr.cpp:(.text+0x13a): undefined reference to `__dynamic_cast'
/usr/local/lib/libicui18n.a(coleitr.ao):(.rodata+0x48): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(coleitr.ao):(.rodata+0xa8): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(coleitr.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x10): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x1c): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x24): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x2c): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x34): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x40): more undefined references to `__cxa_pure_virtual' follow
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0xf0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x150): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x1f0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x218): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x220): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x248): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x268): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(coll.ao):(.rodata+0x2e8): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(coll.ao):(.eh_frame+0x47): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(sortkey.ao):(.rodata+0x38): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(sortkey.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(ucol_res.ao):(.rodata._ZTIN3icu8CacheKeyINS_19CollationCacheEntryEEE[_ZTIN3icu8CacheKeyINS_19CollationCacheEntryEEE]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(ucol_res.ao):(.rodata._ZTIN3icu14LocaleCacheKeyINS_19CollationCacheEntryEEE[_ZTIN3icu14LocaleCacheKeyINS_19CollationCacheEntryEEE]+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(ucol_res.ao):(.eh_frame+0x7f): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(collationsettings.ao):(.rodata+0x40): undefined reference to `vtable for__cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(collationsettings.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(collationtailoring.ao):(.rodata+0x60): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(collationtailoring.ao):(.rodata+0x90): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(collationtailoring.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(collationdatareader.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(collationiterator.ao):(.rodata+0x58): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(collationiterator.ao):(.rodata+0x5c): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(collationiterator.ao):(.rodata+0x60): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(collationiterator.ao):(.rodata+0x64): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(collationiterator.ao):(.rodata+0x78): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(collationiterator.ao):(.rodata+0x7c): more undefined references to `__cxa_pure_virtual' follow
/usr/local/lib/libicui18n.a(collationiterator.ao):(.rodata+0xb0): undefined reference to `vtable for__cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(collationiterator.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(utf16collationiterator.ao):(.rodata+0xc0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(utf16collationiterator.ao):(.rodata+0xf8): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(utf16collationiterator.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(utf8collationiterator.ao):(.rodata+0xe0): undefined reference to `vtablefor __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(utf8collationiterator.ao):(.rodata+0x118): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(utf8collationiterator.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(uitercollationiterator.ao):(.rodata+0xc0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(uitercollationiterator.ao):(.rodata+0xf8): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(uitercollationiterator.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(collationsets.ao):(.rodata+0x50): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(collationsets.ao):(.rodata+0x54): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(collationsets.ao):(.rodata+0x90): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(collationsets.ao):(.rodata._ZTIN3icu7UMemoryE[_ZTIN3icu7UMemoryE]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/usr/local/lib/libicui18n.a(collationsets.ao):(.eh_frame+0x87): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicui18n.a(collationkeys.ao):(.rodata+0x5c): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(collationkeys.ao):(.rodata+0x60): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicui18n.a(collationkeys.ao):(.rodata+0x88): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(collationkeys.ao):(.rodata+0xe8): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicui18n.a(collationkeys.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(ucln_cmn.ao):(.eh_frame+0x7f): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(uobject.ao): In function `icu::UMemory::operator new(unsigned int)':
uobject.cpp:(.text+0x18): undefined reference to `__cxa_call_unexpected'
/usr/local/lib/libicuuc.a(uobject.ao): In function `icu::UMemory::operator delete(void*)':
uobject.cpp:(.text+0x3c): undefined reference to `__cxa_call_unexpected'
/usr/local/lib/libicuuc.a(uobject.ao): In function `icu::UMemory::operator new[](unsigned int)':
uobject.cpp:(.text+0x58): undefined reference to `__cxa_call_unexpected'
/usr/local/lib/libicuuc.a(uobject.ao): In function `icu::UMemory::operator delete[](void*)':
uobject.cpp:(.text+0x7c): undefined reference to `__cxa_call_unexpected'
/usr/local/lib/libicuuc.a(uobject.ao): In function `icu::UObject::~UObject()':
uobject.cpp:(.text+0x9c): undefined reference to `__cxa_call_unexpected'
/usr/local/lib/libicuuc.a(uobject.ao):(.rodata+0x28): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(uobject.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(charstr.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(udata.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(ustrenum.ao):(.rodata+0x18): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(ustrenum.ao):(.rodata+0x28): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(ustrenum.ao):(.rodata+0xf0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(ustrenum.ao):(.rodata+0x120): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(ustrenum.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(uvectr32.ao):(.rodata+0x38): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(uvectr32.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(uvectr64.ao):(.rodata+0x38): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(uvectr64.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(uresbund.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(uresdata.ao):(.rodata+0xe0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(locid.ao):(.rodata+0x68): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(locid.ao):(.rodata+0xa0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(locid.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(locutil.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(bytestream.ao):(.rodata+0x30): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(bytestream.ao):(.rodata+0x50): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(bytestream.ao):(.rodata+0x80): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(ucharstrie.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(ucharstrieiterator.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(unistr.ao):(.rodata+0xc0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(unistr.ao):(.rodata+0xe4): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unistr.ao):(.rodata+0xe8): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unistr.ao):(.rodata+0xec): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unistr.ao):(.rodata+0xf8): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unistr.ao):(.rodata+0xfc): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unistr.ao):(.rodata+0x100): more undefined references to `__cxa_pure_virtual' follow
/usr/local/lib/libicuuc.a(unistr.ao):(.rodata+0x128): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(unistr.ao):(.rodata+0x158): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(unistr.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(normalizer2impl.ao):(.rodata+0x38): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(normalizer2impl.ao):(.eh_frame+0x127): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(normalizer2.ao): In function `unorm2_normalize':
normalizer2.cpp:(.text+0x786): undefined reference to `__dynamic_cast'
/usr/local/lib/libicuuc.a(normalizer2.ao): In function `normalizeSecondAndAppend(UNormalizer2 const*, unsigned short*, int, int, unsigned short const*, int, signed char, UErrorCode*)':
normalizer2.cpp:(.text+0xa72): undefined reference to `__dynamic_cast'
/usr/local/lib/libicuuc.a(normalizer2.ao):(.rodata+0x3de8): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(normalizer2.ao):(.rodata+0x3e20): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(normalizer2.ao):(.rodata+0x3e44): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(normalizer2.ao):(.rodata+0x3e48): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(normalizer2.ao):(.rodata+0x3e4c): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(normalizer2.ao):(.rodata+0x3e50): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(normalizer2.ao):(.rodata+0x3e60): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(normalizer2.ao):(.rodata+0x3e64): more undefined references to `__cxa_pure_virtual' follow
/usr/local/lib/libicuuc.a(normalizer2.ao):(.rodata+0x3f60): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(normalizer2.ao):(.rodata+0x3ff0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(normalizer2.ao):(.rodata+0x4078): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(normalizer2.ao):(.rodata+0x40f8): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(normalizer2.ao):(.eh_frame+0x14b): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(propname.ao):(.eh_frame+0x8b): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(uset.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(uniset.ao): In function `icu::SymbolTable::~SymbolTable()':
uniset.cpp:(.text+0x5): undefined reference to `operator delete(void*)'
/usr/local/lib/libicuuc.a(uniset.ao):(.rodata+0xe8): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(uniset.ao):(.rodata+0x110): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(uniset.ao):(.rodata+0x114): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(uniset.ao):(.rodata+0x118): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(uniset.ao):(.rodata+0x138): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/usr/local/lib/libicuuc.a(uniset.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(usetiter.ao):(.rodata+0x40): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(usetiter.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(unifilt.ao): In function `icu::UnicodeMatcher::~UnicodeMatcher()':
unifilt.cpp:(.text+0x15): undefined reference to `operator delete(void*)'
/usr/local/lib/libicuuc.a(unifilt.ao):(.rodata+0x10): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifilt.ao):(.rodata+0x14): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifilt.ao):(.rodata+0x18): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifilt.ao):(.rodata+0x1c): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifilt.ao):(.rodata+0x38): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/usr/local/lib/libicuuc.a(unifilt.ao):(.rodata+0x50): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifilt.ao):(.rodata+0x54): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifilt.ao):(.rodata+0x64): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifilt.ao):(.rodata+0x80): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifilt.ao):(.rodata+0x84): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifilt.ao):(.rodata+0x88): more undefined references to `__cxa_pure_virtual' follow
/usr/local/lib/libicuuc.a(unifilt.ao):(.rodata+0xb0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'
/usr/local/lib/libicuuc.a(unifunct.ao):(.rodata+0x10): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifunct.ao):(.rodata+0x14): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifunct.ao):(.rodata+0x20): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifunct.ao):(.rodata+0x48): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(serv.ao): In function `icu::ICUService::acceptsListener(icu::EventListenerconst&) const':
serv.cpp:(.text+0x2239): undefined reference to `__dynamic_cast'
/usr/local/lib/libicuuc.a(serv.ao):(.rodata+0xa0): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(serv.ao):(.rodata+0xd8): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(serv.ao):(.rodata+0x108): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(serv.ao):(.rodata+0x134): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(serv.ao):(.rodata+0x138): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(serv.ao):(.rodata+0x13c): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(serv.ao):(.rodata+0x160): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(serv.ao):(.rodata+0x188): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(serv.ao):(.rodata+0x1b8): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(serv.ao):(.rodata+0x1e4): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(serv.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(servnotf.ao):(.rodata+0x1c): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(servnotf.ao):(.rodata+0x20): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(servnotf.ao):(.rodata+0x48): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(servnotf.ao):(.rodata+0x98): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(servnotf.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(servls.ao):(.rodata+0x40): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(servls.ao):(.rodata+0xd0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(servls.ao):(.rodata+0x100): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(servls.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(servlk.ao):(.rodata+0x58): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(servlk.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(servlkf.ao):(.rodata+0x50): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(servlkf.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(servrbf.ao):(.rodata+0x58): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(servrbf.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(servslkf.ao):(.rodata+0x50): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(servslkf.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(util.ao):(.eh_frame+0x10b): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(sharedobject.ao):(.rodata+0x14): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(sharedobject.ao):(.rodata+0x18): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(sharedobject.ao):(.rodata+0x1c): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(sharedobject.ao):(.rodata+0x40): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(sharedobject.ao):(.rodata+0x88): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(unifiedcache.ao):(.rodata+0x34): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifiedcache.ao):(.rodata+0x38): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifiedcache.ao):(.rodata+0x3c): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifiedcache.ao):(.rodata+0x40): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifiedcache.ao):(.rodata+0x44): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(unifiedcache.ao):(.rodata+0x68): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(unifiedcache.ao):(.rodata+0x98): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(unifiedcache.ao):(.eh_frame+0x63): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(uloc_keytype.ao):(.eh_frame+0x47): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(putil.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(uhash_us.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(uvector.ao):(.rodata+0x28): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(uvector.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(resource.ao):(.rodata+0x14): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(resource.ao):(.rodata+0x18): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(resource.ao):(.rodata+0x1c): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(resource.ao):(.rodata+0x20): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(resource.ao):(.rodata+0x24): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(resource.ao):(.rodata+0x28): more undefined references to `__cxa_pure_virtual' follow
/usr/local/lib/libicuuc.a(resource.ao):(.rodata+0x48): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(resource.ao):(.rodata+0xb0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(resource.ao):(.rodata+0x110): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(resbund.ao):(.rodata+0x38): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(resbund.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(bytestrie.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libicuuc.a(appendable.ao):(.rodata+0x14): undefined reference to `__cxa_pure_virtual'
/usr/local/lib/libicuuc.a(appendable.ao):(.rodata+0x48): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(bmpset.ao):(.rodata+0x28): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/local/lib/libicuuc.a(unisetspan.ao):(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
cc: error: linker command failed with exit code 1 (use -v to see invocation)
Comment 1 Jan Beich freebsd_committer freebsd_triage 2016-11-16 16:16:30 UTC
What the above means is *.pc files may need something like "Libs.private: -lc++" added.
Comment 2 Tijl Coosemans freebsd_committer freebsd_triage 2016-11-16 16:22:36 UTC
(In reply to Jan Beich (mail not working) from comment #1)
I've never seen a pkg-config file include runtime libraries like -lc++ or -lstdc++.  I suspect you have to link with c++ instead of cc.
Comment 3 Jan Beich freebsd_committer freebsd_triage 2016-11-16 16:36:03 UTC
Do you mean to patch every consumer of any C library that depends on ICU (e.g. sqlite3 with ICU=on) ? However, static linking in ports is rare and ICU usage in C libraries is rare as well.