Linker hacking: + LD hacks ? + LD_WEAKMAP=lib... + instant relocations if not in there (?) + much reduced lookup penalty + much warmer cache (?) + might be useful. + + objcopy - nearest thing to what we want in binutils. + special code to keep symbols with relocations ... --prune-relocs = ... + libbfd + seems not to bother with dynamic relocs (!?) + API for setting / removing them falls down ? + use native elf bits ? + write simpler separate code to massage it ? + add a 'weak library' thing full of weak symbols + elf code - (libelf?) + read all relocations, + uniqify all symbols + remove duplicate / weak symbols + do we need to even read the symbol tables ? + either + tag them as such in syms + or elide them from the table (built-in relocs?) + perl [?] + stub-map + 1 symbol - .out: 660 .so 1236 (stripped) + 2 symbol - .out: 688 .so 1324 (stripped) + 32 syms - .out: 1605 .so 2440 (stripped) + exrapolate; 10k syms == 744k [ at least !] + Loads of (weak?) symbols, very few necessary + Duplicates: 9328 of total 93569 + re-write the relocations [!] + TODO: + dig into SdrObject:: symbols. + What does the 'info' field contain + 'weak-ness' hint ? + Relocation processing 50-70% of the time ... ELF_DYNAMIC_DO_REL ((map), edr_lazy); -> _ELF_DYNAMIC_DO_RELOC (REL, rel, map, lazy, _ELF_CHECK_REL) * ELF_MACHINE_PLTREL_OVERLAP - not defined for i386 + the .lazy - code / data range (?) for (ranges_index = 0; ranges_index < 2; ++ranges_index) \ elf_dynamic_do_##reloc ((map), \ ranges[ranges_index].start, \ ranges[ranges_index].size, \ ranges[ranges_index].lazy); \ } \ + No relocation processing - only PLT processing can be lazy. + thousands of calls to elf_dynamic_do_reloc + + libsvx - 65k relocations ... + symbol analysis: + 1357 'vtable' + 4400 'non-virtual thunk' + Type analysis: + 1200 - R_386_RELATIVE + 5600 - R_386_GLOB_DAT + 12600 - R_386_JUMP_SLOT + 47100 - R_386_32 Relocation section '.rel.dyn' contains 53848 entries: SvxLineSpacingItem::GetPresentation(SfxItemPresentation, SfxMapUnit, SfxMapUnit, String&, IntlWrapper const*) const + Thunks: - multiple inheritance 'This' adjustors: + http://www.usenix.org/publications/library/proceedings/c++94/full_papers/baumgartner.a + http://66.102.9.104/search?q=cache:ayKhh8VT-DsJ:www.research.att.com/~bs/performanceTR.pdf+%22non-virtual%22+thunk+rational&hl=en + Only functions can be lazy linked ... + all pointers to global variables, functions etc. + must be resolved at link time. * we do cache relocations, such that symbol lookups are reduced * however - the symbol lookup scope contains duplicates [!?] + potentially two scopes ? * can we resolve if a relocation is to + a weak or strong symbol in advance ? + could look up in our own table 1st and work it out (?) + what is a relocation ? ;-) + this reloc is an: R_386_32 + 47k of them are R_386_32 relocs. libsvx - 65k relocations ... 248 ZNK6Window7GetTextEv 250 ZN6Window4MoveEv 262 ZN6Window8ActivateEv 264 ZN6Window10DeactivateEv 264 ZN6Window5KeyUpERK8KeyEvent 265 ZN6Window9UserEventEmPv 266 ZN6Window12GetClipboardEv 266 ZN6Window12GetSelectionEv 266 ZN6Window13GetDragSourceEv 266 ZN6Window13GetDropTargetEv 266 ZN6Window21GetComponentInterfaceEh 266 ZN6Window21SetComponentInterfaceEN3com3sun4star3uno9ReferenceINS2_3awt11XWindowPeerEEE 266 ZN6Window24GetDragGestureRecognizerEv 266 ZNK6Window17GetParentLabelForEPKS_ 266 ZNK6Window18GetParentLabeledByEPKS_ 274 ZN11SfxPoolItem12ScaleMetricsEll 274 ZNK11SfxPoolItem10HasMetricsEv 281 ZNK11SfxPoolItem10GetVersionEt 321 ZNK11SfxPoolItem7CompareERKS_RK11IntlWrapper 342 ZNK11SfxPoolItem10GetVersionEv 342 ZNK11SfxPoolItem5StoreER8SvStream 1006 _cxa_pure_virtual Looks like the re-location processing is horribly slow + lots of these relocations are for the same symbol (adjcently) + are we caching those lookups [!?] 5283: total time ('libfwl645li.so'): 0:130947 flags 0x101 5283: dl_open_worker fresh2 'libwrp645li.so' 1097237469:960576 5283: 5283: dl_open_worker 'libwrp645li.so' before map deps 1097237469:960965 5283: 5283: dl_open_worker 'libwrp645li.so' after map deps 1097237469:963210 5283: 5283: dl_open_worker 'libwrp645li.so' before relocate 1097237469:963390 5283: 5283: dl_open_worker 'libwrp645li.so' relocate './libj645li_g.so' 1097237469:963425 5283: 5283: dl_open_worker 'libwrp645li.so' relocate './libxcr645li.so' 1097237469:964026 5283: 5283: dl_open_worker 'libwrp645li.so' relocate './libxo645li.so' 1097237469:996123 5283: 5283: dl_open_worker 'libwrp645li.so' relocate './libgo645li.so' 1097237470:204004 5283: 5283: dl_open_worker 'libwrp645li.so' relocate './libsb645li.so' 1097237470:217921 5283: 5283: dl_open_worker 'libwrp645li.so' relocate './libfwe645li.so' 1097237470:283186 5283: 5283: dl_open_worker 'libwrp645li.so' relocate './libsfx645li.so' 1097237470:309325 5283: 5283: dl_open_worker 'libwrp645li.so' relocate './libsvx645li.so' 1097237470:519584 5283: 5283: dl_open_worker 'libwrp645li.so' relocate './libofa645li.so' 1097237471:289441 5283: 5283: dl_open_worker 'libwrp645li.so' relocate './libso645li.so' 1097237471:317938 5283: 5283: dl_open_worker 'libwrp645li.so' relocate './libwrp645li.so' 1097237471:368879 5283: 5283: dl_open_worker 'libwrp645li.so' after relocate 1097237471:372310 5283: 5283: dl_open_worker 'libwrp645li.so' after bump open count 1097237471:374122 5283: 5283: dl_open_worker end 'libwrp645li.so' 1097237471:374201 5283: total time ('libwrp645li.so'): 1:544618 flags 0x101 + dl-open.c (dl_open_worker): -> dl-reloc.c (_dl_relocate_object) -> dynamic-link.h etc. #0 _dl_lookup_symbol_x (undef_name=Variable "undef_name" is not available. ) at dl-lookup.c:233 #1 0x4000a3e4 in _dl_relocate_object (l=0x81a7e20, scope=0x81a7fc0, lazy=1, consider_profiling=0) at dl-machine.h:426 #2 0x413ff8b7 in dl_open_worker (a=0xbfffc690) at dl-open.c:322 ie. lazy == 1 - but still doing lots of symbol lookups (?) [ debug relocs ] dl-machine.h uses the 'RESOLVE*' macros to do lookups, from (inlined) elf_machine_rel* function. ELF_DYNAMIC_RELOCATE(...) -> elf_machine_runtime_setup() ... -> ELF_DYNAMIC_DO_REL() \ must do lots of chewing -> ELF_DYNAMIC_DOR_RELA() / do-rel.h (elf_dynamic_do_rel) + does most of the work ... Doing a 'full' make - it seems big chunks are included in libc: dl-open.c etc. make -C .. objdir=`pwd` -C elf subdir_lib include/link.h: linker structures. struct link_map - describes a loaded shared object; has lots of struct r_scope_elem core: do-lookup.h (do_lookup_x) + looks through a single scope (list of link maps / libraries) for a symbol. dl-lookup.c (_dl_lookup_symbol_x) + passed a NULL terminated array of scopes (4th arg) callers: dl-reloc.c (RESOLVE, RESOLVE_MAP) dl-rtld.c + (dl_main): debugging code + (struct: .dl_lookup_symbol_x) - hook dl-runtime.c + (profile_fixup) - profiling only + (fixup) - the real entry point called per PLT entry via. the trampoline. dl-open.c + _dl_open_worker - _Loads_ of OO.o linkage calls from here. dl-deps.c (_dl_map_object_deps) + builds the dep list we want into l_searchlist + only seems to work for dlopened' stuff. ( & deps ) + called from: + rtld _dl_map_object_deps vtable const ElfW(Sym) *sym = &symtab[ELFW(R_SYM) (reloc->r_info)]; + our local symbol info: elf/elf.h: typedef struct { Elf32_Word st_name; /* Symbol name (string tbl index) */ Elf32_Addr st_value; /* Symbol value */ Elf32_Word st_size; /* Symbol size */ unsigned char st_info; /* Symbol type and binding */ unsigned char st_other; /* Symbol visibility */ Elf32_Section st_shndx; /* Section index */ } Elf32_Sym; st_info: /* Legal values for ST_BIND subfield of st_info (symbol binding). */ #define STB_LOCAL 0 /* Local symbol */ #define STB_GLOBAL 1 /* Global symbol */ #define STB_WEAK 2 /* Weak symbol */ #define STB_NUM 3 /* Number of defined types. */ #define STB_LOOS 10 /* Start of OS-specific */ #define STB_HIOS 12 /* End of OS-specific */ #define STB_LOPROC 13 /* Start of processor-specific */ #define STB_HIPROC 15 /* End of processor-specific */ #define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) if (*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) _dl_lookup_symbol_skip (...) + only looks at objects loaded after the described object - pretty pants, but better. fixup: passed 'link_map' l -> scope Have Sym *symtab; & local sym; ie. can: if (ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) ... do something fast ... switch (l->l_info[VERSYMIDX (DT_VERSYM)] != NULL) { is or is not versioned ... [ versioned symbols can be dog slow too ] } Passes l->l_scope for _both_ methods. + l_searchlist (?) - DT_NEEDED dependencies & their deps in order :-) + ... looks ideal ... [ dependency order ? ] LD_DEBUG= stops 'fixup' being called; + also stops things working nastily. Relocation processing: 5524: dl_open_worker 'libwrp645li.so' relocate './libsvx645li.so' 1097239792:994007 5524: 5524: symbol=_ZNK11SfxPoolItem5StoreER8SvStream; nurk lookup in file=./soffice.newlink 5524: symbol=_ZNK11SfxPoolItem5StoreER8SvStream; nurk lookup in file=./libvcl645li.so 5524: symbol=_ZNK11SfxPoolItem5StoreER8SvStream; nurk lookup in file=./libsvl645li.so 5524: symbol=_ZNK11SfxPoolItem10GetVersionEv; nurk lookup in file=./soffice.newlink 5524: symbol=_ZNK11SfxPoolItem10GetVersionEv; nurk lookup in file=./libvcl645li.so 5524: symbol=_ZNK11SfxPoolItem10GetVersionEv; nurk lookup in file=./libsvl645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./soffice.newlink 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libvcl645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsvl645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsvt645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libutl645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libtl645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libcomphelp3gcc3.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libucbhelper2gcc3.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libvos3gcc3.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libcppuhelpergcc3.so.3 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libcppu.so.3 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsal.so.3 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libtk645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libXext.so.6 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libSM.so.6 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libICE.so.6 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libX11.so.6 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/lib/libdl.so.2 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/lib/libpthread.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/lib/libm.so.6 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libstlport_gcc.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libstdc++.so.5 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/chroot/lib/libc.so.6 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsot645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libicuuc.so.22 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libicule.so.22 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libfreetype.so.6 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/lib/libz.so.1 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libart_lgpl_2.so.2 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgnomevfs-2.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libbonobo-activation.so.4 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libORBit-2.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgmodule-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgthread-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libglib-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsalhelpergcc3.so.3 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/chroot/lib/ld.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/lib/libgcc_s.so.1 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libicudata.so.22 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgconf-2.so.4 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libbonobo-2.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libxml2.so.2 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libssl.so.0.9.7 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libcrypto.so.0.9.7 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/lib/librt.so.1 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libORBitCosNaming-2.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgobject-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libpopt.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/servicemgr.uno.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/shlibloader.uno.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/shlibloader.uno.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/simplereg.uno.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/nestedreg.uno.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/typemgr.uno.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/implreg.uno.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/security.uno.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/PPInstall/program/regtypeprov.uno.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libcfgmgr2.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./typeconverter.uno.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./sax.uno.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./streams.uno.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libspl645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/gtk-2.0/engines/libindustrial.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgtk-x11-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgdk-x11-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libatk-1.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libgdk_pixbuf-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libpangoxft-1.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libpangox-1.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libpango-1.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libXrandr.so.2 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libXi.so.6 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libXft.so.2 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/X11R6/lib/libXrender.so.1 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libfontconfig.so.1 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/opt/gnome/lib/libpangoft2-1.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=/usr/lib/libexpat.so.0 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libucb1.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libfwl645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libfwi645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libucpfile1.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libucpgvfs1.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libwrp645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libutl645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsvt645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libso645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsot645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libvos3gcc3.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libofa645li.so 5524: symbol=_ZNK18SvxWritingModeItem4TypeEv; nurk lookup in file=./libsvx645li.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./soffice.newlink 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libvcl645li.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsvl645li.so ** 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsvt645li.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libutl645li.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libtl645li.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libcomphelp3gcc3.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libucbhelper2gcc3.so ** 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libvos3gcc3.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libcppuhelpergcc3.so.3 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libcppu.so.3 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsal.so.3 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libtk645li.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libXext.so.6 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libSM.so.6 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libICE.so.6 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libX11.so.6 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/lib/libdl.so.2 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/lib/libpthread.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/lib/libm.so.6 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libstlport_gcc.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libstdc++.so.5 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/chroot/lib/libc.so.6 ** 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsot645li.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libicuuc.so.22 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libicule.so.22 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libfreetype.so.6 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/lib/libz.so.1 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libart_lgpl_2.so.2 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgnomevfs-2.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libbonobo-activation.so.4 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libORBit-2.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgmodule-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgthread-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libglib-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsalhelpergcc3.so.3 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/chroot/lib/ld.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/lib/libgcc_s.so.1 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libicudata.so.22 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgconf-2.so.4 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libbonobo-2.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libxml2.so.2 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libssl.so.0.9.7 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libcrypto.so.0.9.7 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/lib/librt.so.1 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libORBitCosNaming-2.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgobject-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libpopt.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/servicemgr.uno.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/shlibloader.uno.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/simplereg.uno.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/nestedreg.uno.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/typemgr.uno.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/implreg.uno.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/security.uno.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/PPInstall/program/regtypeprov.uno.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libcfgmgr2.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./typeconverter.uno.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./sax.uno.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./streams.uno.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libspl645li.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/gtk-2.0/engines/libindustrial.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgtk-x11-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgdk-x11-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libatk-1.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libgdk_pixbuf-2.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libpangoxft-1.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libpangox-1.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libpango-1.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libXrandr.so.2 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libXi.so.6 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libXft.so.2 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/X11R6/lib/libXrender.so.1 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libfontconfig.so.1 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/opt/gnome/lib/libpangoft2-1.0.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=/usr/lib/libexpat.so.0 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libucb1.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libfwl645li.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libfwi645li.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libucpfile1.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libucpgvfs1.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libwrp645li.so ** 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libutl645li.so ** 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsvt645li.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libso645li.so ** 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsot645li.so ** 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libvos3gcc3.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libofa645li.so 5524: symbol=_ZNK18SvxWritingModeItem3IsAEPFPvvE; nurk lookup in file=./libsvx645li.so 5524: symbol=_ZN18SvxWritingModeItemD1Ev; nurk lookup in file=./soffice.newlink 5524: symbol=_ZN18SvxWritingModeItemD1Ev; nurk lookup in file=./libvcl645li.so 5524: symbol=_ZN18SvxWritingModeItemD1Ev; nurk lookup in file=./libsvl645li.so 5524: symbol=_ZN18SvxWritingModeItemD1Ev; nurk lookup in file=./libsvt645li.so ...