	+ Accelerating startup:
	    + svt #1 offender: 2841 -> 1136 [ remove sRTF, sHTML ]
	    + svx - #2 - 2655 [ of which 2015, _ZTV (700), _ZTI (700), _ZTS(600) ] 
	    + sw - #3 - 2290 [ only 723 are class/types ], [ 600 sRTF/sHTML ]
		+ Lots of: _ZN13SfxUInt32Item10StaticTypeEv ~ 100 instances.
		+ Lots of: _ZN19SfxStatusBarControl24RegisterStatusBarControlEP9SfxModuleP17SfxStbCtrlFactory
	    + icui18n - not using -Bsymb-functions (or vtrelocs?) ...
	    + sb - lots of _ZVTR_ exports
	    + configmgr
		+ most odd ! - why are we resolving these globally !?
		    + eg. _ZTIN9configmgr7backend11PropertyAddE
		+ is that what we want !? :-) [ no! ]
		    + can we add the '-Wbind-...' stuff only for libraries
		      without .def files [ !? :-]


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 = <true> ...
		+ 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=<anything but reloc> 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
...


* glibc/
    + dl-reloc.c
	+ _dl_relocate_object ...
    + where are copy relocs processed ?

    + build & get glibc testing working - go around a devel
      iteration & make it work nicely
    + use the 'gcc --with-linker' thing ? [ somehow ? ]
	+ and LD_LIBRARY_PATH etc.


* re-diff glibc
* re-diff binutils
* ... get gcc patched & working (!) ... *


* re-apply 'revert.diff' ?

* FIXME: lost elf-vtreloc.c [!] ...


(gdb) finish
Run till exit from #0  call_init (l=0xb7f222e8, argc=1, argv=0xbf93c964, env=0xbf93c96c) at dl-init.c:74
_dl_init (main_map=0xb7f3e660, argc=1, argv=0xbf93c964, env=0xbf93c96c) at dl-init.c:133
133       while (i-- > 0)
(gdb) p i
$2 = 7
(gdb) n
134         call_init (main_map->l_initfini[i], argc, argv, env);
(gdb) s
0x080486f0 in __do_global_dtors_aux ()
(gdb) s
Single stepping until exit from function __do_global_dtors_aux, 
which has no line number information.
0x08048787 in __i686.get_pc_thunk.bx ()
(gdb) s
Single stepping until exit from function __i686.get_pc_thunk.bx, 
which has no line number information.
0x080486f9 in __do_global_dtors_aux ()
(gdb) s
Single stepping until exit from function __do_global_dtors_aux, 
which has no line number information.
     11004:     symbol=__cxa_finalize;  lookup in file=/home/opt/gcc/src/vtable/tests/copyrel [0]
     11004:     symbol=__cxa_finalize;  lookup in file=/usr/lib/libstdc++.so.6 [0]
     11004:     symbol=__cxa_finalize;  lookup in file=./libfoo.so [0]
     11004:     symbol=__cxa_finalize;  lookup in file=/lib/libm.so.6 [0]
     11004:     symbol=__cxa_finalize;  lookup in file=/lib/libgcc_s.so.1 [0]
     11004:     symbol=__cxa_finalize;  lookup in file=/lib/libc.so.6 [0]
     11004:     binding file /home/opt/gcc/src/vtable/tests/copyrel [0] to /lib/libc.so.6 [0]: normal symbol `__cxa_finalize' [GLIBC_2.1.3]
__cxa_finalize (d=0x804b01c) at cxa_finalize.c:35
35        for (funcs = __exit_funcs; funcs; funcs = funcs->next)
(gdb) l
30      __cxa_finalize (void *d)
31      {
32        struct exit_function_list *funcs;
33
34       restart:
35        for (funcs = __exit_funcs; funcs; funcs = funcs->next)
36          {
37            struct exit_function *f;
38
39            for (f = &funcs->fns[funcs->idx - 1]; f >= &funcs->fns[0]; --f)


** Some exception got thrown ?? ! ?? **

(gdb) bt
#0  __cxa_finalize (d=0x804b01c) at cxa_finalize.c:35
#1  0x08048723 in __do_global_dtors_aux ()
(gdb) l
40              {
41                void (*cxafn) (void *arg, int status);
42                void *cxaarg;
43
44                if ((d == NULL || d == f->func.cxa.dso_handle)
45                    /* We don't want to run this cleanup more than once.  */
46                    && (cxafn = f->func.cxa.fn,
47                        cxaarg = f->func.cxa.arg,
48                        ! catomic_compare_and_exchange_bool_acq (&f->flavor, ef_free,
49                                                                 ef_cxa)))

The IA64 C++ ABI (and the new g++ ABI) require two additional routines
in the C library (__cxa_atexit and __cxa_finalize).  These routines
handle destructors for static objects when a shared library is
unloaded.


(gdb) c
Continuing.
     11591:     symbol=__cxa_finalize;  lookup in file=/home/opt/gcc/src/vtable/tests/copyrel [0]
     11591:     symbol=__cxa_finalize;  lookup in file=/usr/lib/libstdc++.so.6 [0]
     11591:     symbol=__cxa_finalize;  lookup in file=./libfoo.so [0]
     11591:     symbol=__cxa_finalize;  lookup in file=/lib/libm.so.6 [0]
     11591:     symbol=__cxa_finalize;  lookup in file=/lib/libgcc_s.so.1 [0]
     11591:     symbol=__cxa_finalize;  lookup in file=/lib/libc.so.6 [0]
     11591:     binding file /home/opt/gcc/src/vtable/tests/copyrel [0] to /lib/libc.so.6 [0]: normal symbol `__cxa_finalize' [GLIBC_2.1.3]

__do_global_dtors_aux - how did we get here !?
    + how/why are we called !?

080486f0 <__do_global_dtors_aux>:
 80486f0:       55                      push   %ebp
 80486f1:       89 e5                   mov    %esp,%ebp
 80486f3:       53                      push   %ebx
 80486f4:       e8 8e 00 00 00          call   8048787 <__i686.get_pc_thunk.bx>
 80486f9:       81 c3 fb 28 00 00       add    $0x28fb,%ebx
 80486ff:       83 ec 04                sub    $0x4,%esp
 8048702:       80 bb b8 00 00 00 00    cmpb   $0x0,0xb8(%ebx)
 8048709:       75 38                   jne    8048743 <__do_global_dtors_aux+0x53>
 804870b:       8b 83 fc ff ff ff       mov    -0x4(%ebx),%eax
 8048711:       85 c0                   test   %eax,%eax
 8048713:       74 1b                   je     8048730 <__do_global_dtors_aux+0x40>
 8048715:       8b 83 28 00 00 00       mov    0x28(%ebx),%eax
 804871b:       89 04 24                mov    %eax,(%esp)
 804871e:       e8 b5 ff ff ff          call   80486d8 <__cxa_finalize@plt>
 8048723:       eb 0b                   jmp    8048730 <__do_global_dtors_aux+0x40>
 8048725:       83 c0 04                add    $0x4,%eax
 8048728:       89 83 2c 00 00 00       mov    %eax,0x2c(%ebx)
 804872e:       ff d2                   call   *%edx
 8048730:       8b 83 2c 00 00 00       mov    0x2c(%ebx),%eax
 8048736:       8b 10                   mov    (%eax),%edx
 8048738:       85 d2                   test   %edx,%edx
 804873a:       75 e9                   jne    8048725 <__do_global_dtors_aux+0x35>
 804873c:       c6 83 b8 00 00 00 01    movb   $0x1,0xb8(%ebx)
 8048743:       83 c4 04                add    $0x4,%esp
 8048746:       5b                      pop    %ebx
 8048747:       5d                      pop    %ebp
 8048748:       c3                      ret    
 8048749:       8d b4 26 00 00 00 00    lea    0x0(%esi,%eiz,1),%esi

(gdb) bt
#0  _dl_lookup_symbol_x (undef_name=0x8048453 "__cxa_finalize", undef_map=0xb7f02660, ref=0xbfe0f5f4, symbol_scope=0xb7f0281c, version=0xb7ee6ee0, 
    type_class=1, flags=1, skip_map=0x0) at dl-lookup.c:414
#1  0xb7ef42ef in _dl_fixup (l=0xb7f02660, reloc_offset=<value optimized out>) at dl-runtime.c:105
#2  0xb7ef9b40 in _dl_runtime_resolve () from /lib/ld-linux.so.2
#3  0x08048723 in __do_global_dtors_aux ()

[ from where !? ... ]

** Is it some libstdc++ version mismatch foo ?
    + does it happen if we have no vtlink ?

collect2 version 4.2.1 (SUSE Linux) (i386 Linux/ELF)
ld_file_name        = /opt/gcc/bin/ld
c_file_name         = /opt/gcc/bin/g++
nm_file_name        = /opt/gcc/bin/nm
strip_file_name     = /opt/gcc/bin/strip
c_file              = /tmp/ccLjjwqC.c
o_file              = /tmp/ccq5w1G4.o
COLLECT_GCC_OPTIONS = '-shared' '-L../../unxlngi6.pro/lib' '-L../lib' '-L/opt/OpenOffice/ooh680-m1/solenv/unxlngi6/lib' '-L/opt/OpenOffice/ooh680-m1/solver/68
0/unxlngi6.pro/lib' '-L/opt/OpenOffice/ooh680-m1/solenv/unxlngi6/lib' '-L/usr/lib/jvm/java/lib' '-L/usr/lib/jvm/java/jre/lib/i386' '-L/usr/lib/jvm/java/jre/li
b/i386/client' '-L/usr/lib/jvm/java/jre/lib/i386/native_threads' '-L/usr/lib' '-L/usr/lib/xulrunner-1.8.1.4' '-o' '../../unxlngi6.pro/lib/libspl_unx680li.so' 
'-shared-libgcc' '-mtune=generic'
COLLECT_GCC         = g++
COMPILER_PATH       = /home/opt/gcc/bin/../libexec/gcc/i686-pc-linux-gnu/4.2.1/:/home/opt/gcc/bin/../libexec/gcc/:/opt/gcc/libexec/gcc/i686-pc-linux-gnu/4.2.1
/:/opt/gcc/libexec/gcc/i686-pc-linux-gnu/4.2.1/:/opt/gcc/libexec/gcc/i686-pc-linux-gnu/:/opt/gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/:/opt/gcc/lib/gcc/i686-pc-lin
ux-gnu/
LIBRARY_PATH        = /home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/:/home/opt/gcc/bin/../lib/gcc/:/opt/gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/:/home/opt/
gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/../../../:/opt/gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../:/lib/:/usr/lib/

/opt/gcc/bin/ld --eh-frame-hdr -m elf_i386 -shared -o ../../unxlngi6.pro/lib/libspl_unx680li.so /usr/lib/crti.o /home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu
/4.2.1/crtbeginS.o -L../../unxlngi6.pro/lib -L../lib -L/opt/OpenOffice/ooh680-m1/solenv/unxlngi6/lib -L/opt/OpenOffice/ooh680-m1/solver/680/unxlngi6.pro/lib -
L/opt/OpenOffice/ooh680-m1/solenv/unxlngi6/lib -L/usr/lib/jvm/java/lib -L/usr/lib/jvm/java/jre/lib/i386 -L/usr/lib/jvm/java/jre/lib/i386/client -L/usr/lib/jvm
/java/jre/lib/i386/native_threads -L/usr/lib -L/usr/lib/xulrunner-1.8.1.4 -L/home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1 -L/home/opt/gcc/bin/../lib/gc
c -L/opt/gcc/lib/gcc/i686-pc-linux-gnu/4.2.1 -L/home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/../../.. -L/opt/gcc/lib/gcc/i686-pc-linux-gnu/4.2.1/../../
.. -z noexecstack -z combreloc -z defs --hash-style=gnu -rpath $ORIGIN:$ORIGIN/../ure-link/lib -O1 --version-script ../../unxlngi6.pro/misc/exports_spl_unx680
li.map ../../unxlngi6.pro/slo/unxsplash.o ../../unxlngi6.pro/slo/services_unxsplash.o ../../unxlngi6.pro/slo/spl_unx_dflt_version.o -lvos3gcc3 -luno_cppuhelpe
rgcc3 -luno_cppu -luno_sal -ldl -lpthread -Bdynamic -lstlport_gcc -lstdc++ -lm -lgcc_s -lc -lgcc_s /home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/crtend
S.o /usr/lib/crtn.o
...
Reloc 'vtable for SvRefBase' 1 0 0 0 i:47 
Reloc 'vtable for SvWeakHdl' 0 1 0 0 i:-1 '.data.rel.ro._ZTV9SvWeakHdl' vma 0x5bb8 offset 0 output off 0
Reloc 'vtable for SvRefBase' 1 0 0 0 i:47 
Reloc 'vtable for SvCompatWeakHdl' 0 1 0 0 i:-1 '.data.rel.ro._ZTV15SvCompatWeakHdl' vma 0x5bb8 offset 0 output off 0
../../unxlngi6.pro/slo/unxsplash.o: In function `SvWeakHdl::~SvWeakHdl()':
unxsplash.cxx:(.text._ZN9SvWeakHdlD0Ev[SvWeakHdl::~SvWeakHdl()]+0x23): undefined reference to `SvRefBase::~SvRefBase()'
../../unxlngi6.pro/slo/unxsplash.o: In function `SvWeakHdl::~SvWeakHdl()':
unxsplash.cxx:(.text._ZN9SvWeakHdlD1Ev[SvWeakHdl::~SvWeakHdl()]+0x22): undefined reference to `SvRefBase::~SvRefBase()'
../../unxlngi6.pro/slo/unxsplash.o: In function `SvCompatWeakHdl::~SvCompatWeakHdl()':
unxsplash.cxx:(.text._ZN15SvCompatWeakHdlD0Ev[SvCompatWeakHdl::~SvCompatWeakHdl()]+0x23): undefined reference to `SvRefBase::~SvRefBase()'
../../unxlngi6.pro/slo/unxsplash.o: In function `SvCompatWeakHdl::~SvCompatWeakHdl()':
unxsplash.cxx:(.text._ZN15SvCompatWeakHdlD1Ev[SvCompatWeakHdl::~SvCompatWeakHdl()]+0x22): undefined reference to `SvRefBase::~SvRefBase()'
../../unxlngi6.pro/slo/unxsplash.o:(.data.rel.ro._ZTI9SvWeakHdl[typeinfo for SvWeakHdl]+0x8): undefined reference to `typeinfo for SvRefBase'
../../unxlngi6.pro/slo/unxsplash.o:(.data.rel.ro._ZTI15SvCompatWeakHdl[typeinfo for SvCompatWeakHdl]+0x8): undefined reference to `typeinfo for SvRefBase'


** FIXME:
    + generate a test from the splash thing it ...
	+ is it the map file ?
	+ what's going on !?


** FIXME:
    + how do we do the GC on this ?

$2 = {root = {root = {next = 0x0, string = 0x80f22e3 "_ZTV9SvRefBase", hash = 290430804}, type = bfd_link_hash_undefined, u = {undef = {next = 0x80f0f48, 
        abfd = 0x80f0508, weak = 0x0}, def = {next = 0x80f0f48, section = 0x80f0508, value = 0}, i = {next = 0x80f0f48, link = 0x80f0508, warning = 0x0}, 
      c = {next = 0x80f0f48, p = 0x80f0508, size = 0}}}, indx = -1, dynindx = -1, got = {refcount = -1, offset = 18446744073709551615, glist = 0xffffffff, 
    plist = 0xffffffff}, plt = {refcount = -1, offset = 18446744073709551615, glist = 0xffffffff, plist = 0xffffffff}, size = 0, type = 0, other = 0, 
  ref_regular = 1, def_regular = 0, ref_dynamic = 0, def_dynamic = 0, ref_regular_nonweak = 1, dynamic_adjusted = 0, needs_copy = 0, needs_plt = 0, 
  non_elf = 0, hidden = 0, forced_local = 0, dynamic = 0, mark = 0, non_got_ref = 1, dynamic_def = 0, dynamic_weak = 0, pointer_equality_needed = 1, 
  dynstr_index = 0, u = {weakdef = 0x0, elf_hash_value = 0}, verinfo = {verdef = 0x0, vertree = 0x0}, vtable = 0x0}


* test asm output ...


** FIXME:
    + the GC seems to be done in gcc here ...
	+ interesting [!]
    + our new reference / section screws that up unfortunately.
    + FIXME: we -know- that this isn't an issue with the stmt stuff
	+ only with the DECL generation - since we do the stmts
	  earlier

    + FIXME: we need to find a similar situation
	+ outputting some auto-generated foo, but only iff - used (eg.)

** TypeInfo - for RTTI (surely?) **
	+ if a vtable is not referred to:
	    + we don't want to construct it - surely (!?)
		+ must be a 'GC' phase here, where dead stuff is pruned
		+ find the code (?!)
		+ must avoid the built-in typeinfo: identically ...

    + are we doing this in the wrong place ?
	+ can we associate a constructor-list to each vtable (somehow)
	+ then do something clever as/when/if it's emitted



* Research rtti goodness:

/* 1 iff VAR_DECL node NODE is a type-info decl.  This flag is set for
   both the primary typeinfo object and the associated NTBS name.  */
#define DECL_TINFO_P(NODE) TREE_LANG_FLAG_4 (VAR_DECL_CHECK (NODE))

/* 1 iff VAR_DECL node NODE is virtual table or VTT.  */
#define DECL_VTABLE_OR_VTT_P(NODE) TREE_LANG_FLAG_5 (VAR_DECL_CHECK (NODE))

/* DECL_EXTERNAL must be set on a decl until the decl is actually emitted,
   so that assemble_external will work properly.  So we have this flag to
   tell us whether the decl is really not external.  */
#define DECL_NOT_REALLY_EXTERN(NODE) \
  (DECL_LANG_SPECIFIC (NODE)->decl_flags.not_really_extern)

[ interesting ! ;-]

    + maybe_emit_vtables ?
	+ do the goodness here ? ...
	    + unfortunately - this is still called for
	      vtables that are not (ultimately) emitted ! ;-)

    + can we force the vtable to refer to this, by appending
      a reference to us at the end ? ;->
	+ will that work ?
	+ will it keep us around ?
	    + can we do this another way ?

    ++ where does -Wunused-variable get triggered ? ++

  /* Before we remove the declarations first check for unused variables.  */
  if (warn_unused_variable
      && !processing_template_decl)
    for (decl = getdecls (); decl; decl = TREE_CHAIN (decl))
      if (TREE_CODE (decl) == VAR_DECL
	  && ! TREE_USED (decl)
	  && ! DECL_IN_SYSTEM_HEADER (decl)
	  && DECL_NAME (decl) && ! DECL_ARTIFICIAL (decl))
	warning (OPT_Wunused_variable, "unused variable %q+D", decl);

	+ TREE_USED ?

<richi> I suppose that happens somewhere in cgraph which analyzes the whole unit
*** <richi> look for cgraph_ and varpool_ there's sth like 'mark_needed'

<michael_> thanks;
<michael_> and, final - follow-on / silly question,
<michael_> I would like to have this strange relocation data (in a magic variable, in a '.vtreloc' section) dependant on the vtable,
<michael_> so if the vtable is dropped - the strange section is dropped too...
<michael_> .
<michael_> does that sound horribly hard
<richi> uh
<richi> so it's a separate decl?
<michael_> yep
<richi> if it is not referenced it should not be emitted -- if it is not marked extern
<michael_> I guess a little like rtti - although, there is no pointer in the vtable to it
<richi> so you need to make it local to the CU
<michael_> sure; OTOH - if the vtable is not emitted, I don't want to emit it :-) - hence the problem ...
<michael_> I guess I could perhaps add a bogus reference to this data at the end of the vtable (?)
<michael_> at least as a quick hack for now: that would work I guess (?)
<richi> how would an extra reference help?
<michael_> oh, it would then refer to this new decl
<michael_> so vtable -> (rtti and .vtreloc decl)
<michael_> so, hopefully if the vtable is not referenced, the compiler would notice all this was dead & throw it out.
<michael_> otherwise, if it is referenced, it'll be referenced & retained (?)
<richi> err, yes? ;)
<michael_> thanks :-)
* michael_ stops wasting time & starts typing again ...



** FIXME: follow RTTI ..
	+ unemitted_tinfo_decls ...
		+ get emitted one by one.

** FIXME:
	+ add our output to 'maybe_emit_vtables' ...
		+ [foo]

get_tinfo_decl
	+ sets 'CLASSTYPE_TYPEINFO_VAR' on type ...
	+ caches the beastie ... [ also a cache on the name though ... ]
		+ why have both ?

FIXME: changes & breaks the ABI ...
	+ but tests still run (apparently) ;-)
	+ will need to fix (somehow)
		+ pwrt. deriving classes etc.

gdb --args /home/opt/gcc/bin/../libexec/gcc/i686-pc-linux-gnu/4.2.1/cc1plus -quiet -I. -iprefix /home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/ -D_GNU_SOURCE unused.cxx -quiet -dumpbase unused.cxx -mtune=generic -auxbase-strip unused.S -O0 -fdump-tree-all -o unused.S

Breakpoint 1, cgraph_varpool_mark_needed_node (node=0xb7dd8498) at ../.././gcc/cgraph.c:931
931       if (getenv ("DEBUG"))
(gdb) n
932         fprintf (stderr, "Mark node '%s' as needed\n",
(gdb) 
Mark node '__vt_copy_slot_relocs _ZVTR9SvRefBase [2]' as needed
934       if (!node->needed && node->finalized
(gdb) bt
#0  cgraph_varpool_mark_needed_node (node=0xb7dd8498) at ../.././gcc/cgraph.c:934
#1  0x0841f088 in cgraph_varpool_finalize_decl (decl=0xb7cf3630) at ../.././gcc/cgraph.c:1009
#2  0x083db122 in rest_of_decl_compilation (decl=0xb7cf3630, top_level=1, at_end=0) at ../.././gcc/passes.c:162
#3  0x08059c4a in make_rtl_for_nonlocal_decl (decl=0xb7cf3630, init=0x0, asmspec=0x0) at ../.././gcc/cp/decl.c:5036
#4  0x08064845 in cp_finish_decl (decl=0xb7cf3630, init=0x0, init_const_expr_p=0 '\0', asmspec_tree=0x0, flags=0) at ../.././gcc/cp/decl.c:5394
#5  0x080659af in finish_decl (decl=0xb7cf3630, init=0x0, asmspec_tree=0x0) at ../.././gcc/cp/decl.c:5476
#6  0x080d56ee in pushdecl_top_level_1 (x=0xb7cf3630, init=0xbfcf97a4, is_friend=<value optimized out>) at ../.././gcc/cp/name-lookup.c:3405
#7  0x080d5742 in pushdecl_top_level_and_finish (x=0xb7cf3630, init=0x0) at ../.././gcc/cp/name-lookup.c:3433
#8  0x0807f47f in get_vtreloc_decl (t=0xb7dd59b4, slot_relocs=0xb7dd8450) at ../.././gcc/cp/class.c:6392
#9  0x08082fd7 in finish_vtbls (t=0xb7dd59b4) at ../.././gcc/cp/class.c:6699
#10 0x08083e0e in finish_struct_1 (t=0xb7dd59b4) at ../.././gcc/cp/class.c:5113
#11 0x08084a40 in finish_struct (t=0xb7dd59b4, attributes=0x0) at ../.././gcc/cp/class.c:5227
#12 0x08092c6c in cp_parser_type_specifier (parser=0xb7dbba5c, flags=<value optimized out>, decl_specs=0xbfcf9948, is_declaration=1 '\001', 
    declares_class_or_enum=0xbfcf9904, is_cv_qualifier=0xbfcf990b "") at ../.././gcc/cp/parser.c:13172
#13 0x08093349 in cp_parser_decl_specifier_seq (parser=0xb7dbba5c, flags=CP_PARSER_FLAGS_OPTIONAL, decl_specs=0xbfcf9948, declares_class_or_enum=0xbfcf9994)
    at ../.././gcc/cp/parser.c:7668
#14 0x08093770 in cp_parser_simple_declaration (parser=0xb7dbba5c, function_definition_allowed_p=1 '\001') at ../.././gcc/cp/parser.c:7370
#15 0x0809a3eb in cp_parser_block_declaration (parser=0xb7dbba5c, statement_p=0 '\0') at ../.././gcc/cp/parser.c:7331
#16 0x0809efa1 in cp_parser_declaration (parser=0xb7dbba5c) at ../.././gcc/cp/parser.c:7247
#17 0x0809f3de in cp_parser_declaration_seq_opt (parser=0xb7dbba5c) at ../.././gcc/cp/parser.c:7142
#18 0x0809f89c in c_parse_file () at ../.././gcc/cp/parser.c:2845
#19 0x08100d5a in c_common_parse_file (set_yydebug=0) at ../.././gcc/c-opts.c:1183
#20 0x083bb3c0 in toplev_main (argc=17, argv=0xbfcf9b94) at ../.././gcc/toplev.c:1042
#21 0x0810b19f in main (argc=Cannot access memory at address 0xffffffff

** FIXME:
	+ now it works ! ;-)
	+ can we avoid mangling the vtables ?
	+ .vtrelocs - can we get defined symbols out of these sections
	  & mangle them to point elsewhere ? :-)


FIXME:
	+ optimisation:
		+ elide 'zero' copies ... [ do we do that anyway ? ]
		+ can it be that we screw this up in gcc !? ...

	+ why does the beastie crash ?
	+ mismatching sizes (odd):
ERROR: mismatching vtreloc sec & reloc count 0x2d4, 0x22 -> 10
ERROR: mismatching vtreloc sec & reloc count 0x1b4, 0x18 -> 4
ERROR: mismatching vtreloc sec & reloc count 0xd0, 0xc -> 4

	+ Just broken !
		+ clearly ordering is broken, need to
		  copy stuff in a zane order:
     20074:	do copy 0xdeadbeef to 0xdeadbeef match [&0xb7c90bb4 -> &0xb7c90a54]

		+ we have got stray muck creeping in ...

* The plan:
	+ generate the inits earlier - so we know what they are
		+ keep them around, get the sizing perfect ...
		+ elide '0' copies ...
	+ build better tests:
		+ why is the ordering broken ?
	+ check numerical results from tests/
		+ call each vmethod etc. see what it returns.
	+ check linker: how do we get so many '00000s' in here ?
		+ sort out the 'internal' vs. 'external' symbol stuff.


* binutils error:

_ZVTRN17_GLOBAL__N_global1BE:
	.long	_ZTVN17_GLOBAL__N_global5VBaseE+28
	.long	_ZTVN17_GLOBAL__N_global1BE+324
	.long	3
	.long	_ZTVN17_GLOBAL__N_global1AE+140
	.long	_ZTVN17_GLOBAL__N_global1BE+232
	.long	183
	.long	_ZTVN17_GLOBAL__N_global1AE+12
	.long	_ZTVN17_GLOBAL__N_global1BE+104
	.long	1011087613
	.long	_ZTVN17_GLOBAL__N_global12VOffsetDerivE+20
	.long	_ZTVN17_GLOBAL__N_global1BE+20
	.long	7
	.zero	12
: vtable for (anonymous namespace)::VBase

	+ Can't get these right ... [!?]

	+ 2 purposes for the reloc info:
		+ a) to get the sorting / initialization right.
		+ b) to propagate this to the children ...

	+ this -used- to work (surely!?), why not now ?

	+ FIXME: surely we know what section the
	         reloc goes into, and it's offset (?)

** FIXME:
   + do we really want to be sorting relocations ?
	+ why can't we sort sections instead ?
		+ would make *lots* more sense ... [!]
		+ save re-writing the sections.
		+ => can do it with opaque addresses

   + can we do this with an <N> way tree of some sort.
	+ create a single ordering ...

   + can we terminate the section ?
   
* TODO:
	+ -ffunction-sections
		+ we want to emit a new .vtrelocs section -per- vtable
		+ we relocate, do we do that ?
			+ currently no.
		+ need to force it somehow.

	+ then - we need to look at the .text section sorting logic

	+ then - bingo ! ;-)
		+ we only have to ensure all .src and all .dest
		  are sorted & all is good.

<micha> Let's say end of february is feature freeze.
<micha> Bugfixes are possible till april.


(gdb) p m_pContext
$1 = (class ConfigurationErrorHandler::Context *) 0x814a588
(gdb) p *(m_pContext)
$2 = {<(anonymous namespace)::SimpleCurrentContext> = {<cppu::WeakImplHelper1<com::sun::star::uno::XCurrentContext>> = {<cppu::OWeakObject> = {<com::sun::star::uno::XWeak> = {<com::sun::star::uno::XInterface> = {_vptr.XInterface = 0x8097e88}, <No data fields>}, m_refCount = 0, m_pWeakConnectionPoint = 0x0, 
        m_pReserved = 0x5f564e45}, <com::sun::star::lang::XTypeProvider> = {<com::sun::star::uno::XInterface> = {
          _vptr.XInterface = 0x8097eb4}, <No data fields>}, <com::sun::star::uno::XCurrentContext> = {<com::sun::star::uno::XInterface> = {
          _vptr.XInterface = 0x8097ed0}, <No data fields>}, <No data fields>}, m_xChainedContext = {<com::sun::star::uno::BaseReference> = {
        _pInterface = 0x814112c}, <No data fields>}}, m_xHandler = {<com::sun::star::uno::BaseReference> = {_pInterface = 0x0}, <No data fields>}}
(gdb) bt
#0  0xdeadbeef in ?? ()
#1  0x0808d55c in ConfigurationErrorHandler::activate (this=0xbfb3f6d0) at /home/opt/OpenOffice/ooh680-m1/desktop/source/app/configinit.cxx:287
#2  0x0806e68e in desktop::Desktop::Main (this=0xbfb3f8c4) at /home/opt/OpenOffice/ooh680-m1/desktop/source/app/app.cxx:1337
#3  0xb7d03259 in ImplSVMain () from ./libvcl680li.so
#4  0xb7d03367 in SVMain () from ./libvcl680li.so
#5  0x080608ba in sal_main_with_args () at /home/opt/OpenOffice/ooh680-m1/desktop/source/app/main.cxx:61
#6  0x08060946 in main (argc=1, argv=0xbfb3f9d4) at /home/opt/OpenOffice/ooh680-m1/desktop/source/app/main.cxx:52
(gdb) up
#1  0x0808d55c in ConfigurationErrorHandler::activate (this=0xbfb3f6d0) at /home/opt/OpenOffice/ooh680-m1/desktop/source/app/configinit.cxx:287
287             m_pContext->acquire();
(gdb) l

** FIXME: related to a sorting issue:
	+ FIXME: surely we should get a 'Bug' warning here though ?

	+ this order observed:

ErrorHandlerContext VTR ! ( derived from SimpleCurrentContext )
	
_ZVTRN25ConfigurationErrorHandler7ContextE:
	.long	_ZTVN93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_E68E979820SimpleCurrentContextE+8
	.long	_ZTVN25ConfigurationErrorHandler7ContextE+8

SimpleCurrentContext VTR !
	
_ZVTRN93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_E68E979820SimpleCurrentContextE:
	.long	_ZTVN4cppu15WeakImplHelper1IN3com3sun4star3uno15XCurrentContextEEE+8
	.long	_ZTVN93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_E68E979820SimpleCurrentContextE+8
	.long	207

     29119:     copy from 0x8097d48 to 0x8097e88 mask 0xcf
     29119:     do copy 0xdeadbeef to 0xdeadbeef match [&0x8097d48 -> &0x8097e88]
     29119:     do copy 0xdeadbeef to 0xdeadbeef match [&0x8097d4c -> &0x8097e8c]
     29119:     do copy 0xdeadbeef to 0xdeadbeef match [&0x8097d50 -> &0x8097e90]
     29119:     do copy 0xdeadbeef to 0xdeadbeef match [&0x8097d54 -> &0x8097e94]



	.section	.vtrelocs._ZVTR_00000001_N25ConfigurationErrorHandler7ContextE,"aG",@progbits,_ZVTR_00000001_N25ConfigurationErrorHandler7ContextE,comdat
	.type	_ZVTR_00000001_N25ConfigurationErrorHandler7ContextE, @object
	.size	_ZVTR_00000001_N25ConfigurationErrorHandler7ContextE, 12
_ZVTR_00000001_N25ConfigurationErrorHandler7ContextE:
	.long	_ZTVN93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE+8
	.long	_ZTVN25ConfigurationErrorHandler7ContextE+8
	.long	207

	.section	.vtrelocs._ZVTR_00000001_N93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE,"aG",@progbits,_ZVTR_00000001_N93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE,comdat
	.type	_ZVTR_00000001_N93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE, @object
	.size	_ZVTR_00000001_N93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE, 12
_ZVTR_00000001_N93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE:
	.long	_ZTVN4cppu15WeakImplHelper1IN3com3sun4star3uno15XCurrentContextEEE+8
	.long	_ZTVN93_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_app_configinit.cxx_00000000_793747DB20SimpleCurrentContextE+8
	.long	207

** Nice idea ! - but same number :-(

class ConfigurationErrorHandler::Context : public SimpleCurrentContext
{
public:
    Context()
    : SimpleCurrentContext( uno::getCurrentContext() )
    {
    }

FIXME:
	+ should warn on that in glibc [!] ...

** sort via the linker script ...
	+ ld/ldlang.c 'sort_common' ?

** FIXME:
	+ remove the __vtrelocs symbol in the link.

** FIXME:
	+ can we be cunning ! ;-)
		+ oh yes !

	+ can we add a magic-number in the symbol name
		+ max-distance-from-parent ?
	+ that will increment with inheritance ?
		+ we have the full inheritance graph

	+ is it is always the case that a derived class has more slots
	  than it's parent: no.

	+ slot_count is a pretty good approximation though,
		+ better ? a count of inherited parents ?

	+ then sort by that.
		+ we have a 'SortByName'
		+ so simply prepend a string to the section name:
			+ including the inherited table count.

	+ VCL problem:
		+ if outside 'me' don't fixup


./soffice.bin: Symbol `_ZTV8OKButton' has different size in shared object, consider re-linking
./soffice.bin: Symbol `_ZTV9FixedText' has different size in shared object, consider re-linking
./soffice.bin: Symbol `_ZTV7MessBox' has different size in shared object, consider re-linking
./soffice.bin: Symbol `_ZTV11Application' has different size in shared object, consider re-linking
./soffice.bin: Symbol `_ZTV6Dialog' has different size in shared object, consider re-linking
./soffice.bin: Symbol `_ZTV11IntroWindow' has different size in shared object, consider re-linking


* Debug svx compile-time crash ... [ garbage-collection ? / string management ? ]

* check ordering in soffice.bin fixes foo !

* Check that 

#0  0xdeadbeef in ?? ()
#1  0xa2d12bf1 in desktop::SplashScreen::initialize (this=0x814e938, aArguments=@0xbfbffe14)
    at /home/opt/OpenOffice/ooh680-m1/desktop/source/splash/splash.cxx:198
#2  0xb74f1fc7 in cppu::OSingleFactoryHelper::createInstanceWithArgumentsAndContext () from ./libuno_cppuhelpergcc3.so.3


    23241:     new vtcopy-reloc processing on './soffice.bin' offset 0x0 map 0x8048000
     23241:     vtreloc section found in '' at 0x80a3d14 (0x80a3d14) mapped at 0x0

order:
	'.vtrelocs._ZVTR_00000003_N7desktop7DesktopE':
	'.vtrelocs._ZVTR_00000004_N7desktop32SalMainPipeExchangeSignalHandlerE':
	'.vtrelocs._ZVTR_00000005_N7desktop15OfficeIPCThreadE':
	'.vtrelocs._ZVTR_00000007_11ModalDialog':
	'.vtrelocs._ZVTR_00000008_N7desktop16IntroWindow_ImplE':
	'.vtrelocs._ZVTR_00000008_N7desktop17CmdlineHelpDialogE':
	'.vtrelocs._ZVTR_00000009_7InfoBox':
	'.vtrelocs._ZVTR_00000009_8ErrorBox':
	'.vtrelocs._ZVTR_00000009_8QueryBox':


	'.vtrelocs._ZVTR_00000003_N7desktop7DesktopE':
     23241:     copy from 0x80a4c40 to 0x80957d8 mask 0x81ff
     23241:     do copy 0xb7d24592 to 0xdeadbeef match [&0x80a4c40 -> &0x80957d8]
     23241:     do copy 0xb7d245a4 to 0xdeadbeef match [&0x80a4c44 -> &0x80957dc]
     23241:     do copy 0xb7d245aa to 0xdeadbeef match [&0x80a4c48 -> &0x80957e0]
     23241:     do copy 0xb7d24598 to 0xdeadbeef match [&0x80a4c4c -> &0x80957e4]
     23241:     do copy 0xb7d245b0 to 0xdeadbeef match [&0x80a4c50 -> &0x80957e8]
     23241:     do copy 0xb7d2459e to 0xdeadbeef match [&0x80a4c54 -> &0x80957ec]
     23241:     do copy 0xb7d245b6 to 0xdeadbeef match [&0x80a4c58 -> &0x80957f0]
     23241:     do copy 0xb7d245bc to 0xdeadbeef match [&0x80a4c5c -> &0x80957f4]
     23241:     do copy 0xb7d245c2 to 0xdeadbeef match [&0x80a4c60 -> &0x80957f8]
     23241:     no copy 0xb7d245c8 to 0x8069f1a skip
     23241:     no copy 0xb7d245ce to 0x8060aaa skip
     23241:     no copy 0xb7d245d4 to 0x80671ae skip
     23241:     no copy 0xb7d24f52 to 0x8069b4c skip
     23241:     no copy 0xb7d245da to 0x8065bd0 skip
     23241:     no copy 0xb7d246b4 to 0x8069290 skip
     23241:     do copy 0xb7d24686 to 0xdeadbeef match [&0x80a4c7c -> &0x8095814]
     23241:     move to next vtrel entry

	'.vtrelocs._ZVTR_00000004_N7desktop32SalMainPipeExchangeSignalHandlerE':
     23241:     copy from 0x80a4ca0 to 0x80968f0 mask 0x1
     23241:     do copy 0xb7683e8e to 0xdeadbeef match [&0x80a4ca0 -> &0x80968f0]
     23241:     move to next vtrel entry

	'.vtrelocs._ZVTR_00000005_N7desktop15OfficeIPCThreadE':
     23241:     copy from 0x80a4b14 to 0x8096814 mask 0x1f
     23241:     do copy 0xb767f760 to 0xdeadbeef match [&0x80a4b14 -> &0x8096814]
     23241:     do copy 0xb767fb0a to 0xdeadbeef match [&0x80a4b18 -> &0x8096818]
     23241:     do copy 0xb767fbee to 0xdeadbeef match [&0x80a4b1c -> &0x809681c]
     23241:     do copy 0xb767fae4 to 0xdeadbeef match [&0x80a4b20 -> &0x8096820]
     23241:     do copy 0xb767f77c to 0xdeadbeef match [&0x80a4b24 -> &0x8096824]
     23241:     move to next vtrel entry

**** Herein lies the error ! ****
	'.vtrelocs._ZVTR_00000007_11ModalDialog':
     23241:     copy from 0x80a4d38 to 0x8098d30 mask 0x3fffffff
     23241:     do copy 0xdeadbeef to 0xdeadbeef match [&0x80a4d38 -> &0x8098d30]
     23241:     do copy 0xdeadbeef to 0xdeadbeef match [&0x80a4d3c -> &0x8098d34]
     23241:     do copy 0xdeadbeef to 0xdeadbeef match [&0x80a4d40 -> &0x8098d38]
     23241:     do copy 0xdeadbeef to 0xdeadbeef match [&0x80a4d44 -> &0x8098d3c]
     23241:     do copy 0xdeadbeef to 0xdeadbeef match [&0x80a4d48 -> &0x8098d40]
     23241:     do copy 0xdeadbeef to 0xdeadbeef match [&0x80a4d4c -> &0x8098d44]


** FIXME: test for shlibs, not for apps
	+ 'data' relocations [ are evil ! ]
	+ can that even be done ? how is the data one done ?
	  where does the data come from ?

** Chase the error !
	+ think - what is the order of relocations ?
	+ what is the linkage order ?
	+ when do 'copy' relocs get processed ?

soffice.bin's copy relocs:

Relocation section '.rel.dyn' at offset 0x16f44 contains 24 entries:
 Offset     Info    Type                Sym. Value  Symbol's Name
0808ffe0  00039f06 R_386_GLOB_DAT         08060174   _ZNSt9bad_allocD1Ev
0808ffe4  00004706 R_386_GLOB_DAT         00000000   _ZTVSt9exception
0808ffe8  00006a06 R_386_GLOB_DAT         00000000   __gmon_start__
0808ffec  0003bf06 R_386_GLOB_DAT         08090b20   _ZTVSt9bad_alloc
08090b20  0003bf05 R_386_COPY             08090b20   _ZTVSt9bad_alloc
0808fff0  00046306 R_386_GLOB_DAT         08090b64   _ZTISt9bad_alloc
08090b64  00046305 R_386_COPY             08090b64   _ZTISt9bad_alloc
08090880  0001f605 R_386_COPY             08090880   _ZTV8OKButton
08090980  00021b05 R_386_COPY             08090980   _ZTV9FixedText
08090a70  00019605 R_386_COPY             08090a70   _ZTVN4cppu11OWeakObjectE
08090aa0  00020605 R_386_COPY             08090aa0   _ZTVN10__cxxabiv121__vmi_class_type_infoE
08090ae0  00022c05 R_386_COPY             08090ae0   _ZTVN10__cxxabiv117__class_type_infoE
08090b38  00029b05 R_386_COPY             08090b38   _ZN19SvtTabAppearanceCfg12bInitializedE
08090b40  0004a405 R_386_COPY             08090b40   _ZTVN3utl22OConfigurationTreeRootE
08090b58  00032505 R_386_COPY             08090b58   _ZTI7MessBox
08090b70  00026b05 R_386_COPY             08090b70   _ZTIN4cppu11OWeakObjectE
08090b7c  0001f705 R_386_COPY             08090b7c   _ZTI5Timer
08090b88  00037005 R_386_COPY             08090b88   _ZTIN3vos7OThreadE
08090ba8  00027e05 R_386_COPY             08090ba8   stderr
08090bb0  0002ed05 R_386_COPY             08090bb0   _ZTI11Application
08090bc0  00024c05 R_386_COPY             08090bc0   _ZTVN10__cxxabiv120__si_class_type_infoE
08090bf0  00037205 R_386_COPY             08090bf0   _ZTI6Dialog
08090c00  0003a905 R_386_COPY             08090c00   _ZTIN3vos14OSignalHandlerE
08090c10  00038c05 R_386_COPY             08090c10   _ZTI11IntroWindow





* First: fix the gtk+ issue ...

** libvclplug_gtk ...

	'.vtrelocs._ZVTR_00000003_13GtkSalDisplay':
	'.vtrelocs._ZVTR_00000004_11GtkInstance':
	'.vtrelocs._ZVTR_00000004_12GtkSalSystem':
	'.vtrelocs._ZVTR_00000004_14GtkSalGraphics':
	'.vtrelocs._ZVTR_00000006_13GtkYieldMutex':
	'.vtrelocs._ZVTR_00000007_19GtkHookedYieldMutex':
	'.vtrelocs._ZVTR_00000011_11AtkListener':
	'.vtrelocs._ZVTR_00000011_21DocumentFocusListener':
	'.vtrelocs._ZVTR_00000012_N4cppu15WeakImplHelper1IN3com3sun4star13accessibility24XAccessibleEventListenerEEE':

     28115:	new vtcopy-reloc processing on '/opt/OOInstall/program/libvclplug_gtk680li.so' offset 0xb63d4000 map 0xb63d4000
     28115:	vtreloc section found in '/opt/OOInstall/program/libvclplug_gtk680li.so' at 0xb641831c (0x4431c) mapped at 0xb63d4000
     28115:	copy from 0xb5dd69a4 to 0xb64185cc mask 0x1
     28115:	do copy 0xb5db2aa4 to 0xdeadbeef match [&0xb5dd69a4 -> &0xb64185cc]
     28115:	move to next vtrel entry
     28115:	copy from 0xb5dd6a08 to 0xb6418668 mask 0x1ffefffd
     28115:	do copy 0xb5dbb89c to 0xdeadbeef match [&0xb5dd6a08 -> &0xb6418668]
     28115:	no copy 0xb5d901e2 to 0xb63e89c8 skip
     28115:	do copy 0xb5d8f4f0 to 0xdeadbeef match [&0xb5dd6a10 -> &0xb6418670]
     28115:	do copy 0xb5d96a1c to 0xdeadbeef match [&0xb5dd6a14 -> &0xb6418674]
     28115:	do copy 0xb5d96450 to 0xdeadbeef match [&0xb5dd6a18 -> &0xb6418678]
     28115:	do copy 0xb5da898c to 0xdeadbeef match [&0xb5dd6a1c -> &0xb641867c]
     28115:	do copy 0xb5da71ac to 0xdeadbeef match [&0xb5dd6a20 -> &0xb6418680]
     28115:	do copy 0xb5da80da to 0xdeadbeef match [&0xb5dd6a24 -> &0xb6418684]
     28115:	do copy 0xb5da71c8 to 0xdeadbeef match [&0xb5dd6a28 -> &0xb6418688]
     28115:	do copy 0xb5da9d78 to 0xdeadbeef match [&0xb5dd6a2c -> &0xb641868c]
     28115:	do copy 0xb5da71e4 to 0xdeadbeef match [&0xb5dd6a30 -> &0xb6418690]
     28115:	do copy 0xb5da895a to 0xdeadbeef match [&0xb5dd6a34 -> &0xb6418694]
     28115:	do copy 0xb5da72e2 to 0xdeadbeef match [&0xb5dd6a38 -> &0xb6418698]
     28115:	do copy 0xb5db2554 to 0xdeadbeef match [&0xb5dd6a3c -> &0xb641869c]
     28115:	do copy 0xb5dbb8b8 to 0xdeadbeef match [&0xb5dd6a40 -> &0xb64186a0]
     28115:	do copy 0xb5dae55c to 0xdeadbeef match [&0xb5dd6a44 -> &0xb64186a4]
     28115:	no copy 0xb5dbbf70 to 0xb63e948a skip
     28115:	do copy 0xb5d936ae to 0xdeadbeef match [&0xb5dd6a4c -> &0xb64186ac]
     28115:	do copy 0xb5dbb860 to 0xdeadbeef match [&0xb5dd6a50 -> &0xb64186b0]
     28115:	do copy 0xb5dbb9e2 to 0xdeadbeef match [&0xb5dd6a54 -> &0xb64186b4]
     28115:	do copy 0xb5dbb874 to 0xdeadbeef match [&0xb5dd6a58 -> &0xb64186b8]
     28115:	do copy 0xb5dbbc00 to 0xdeadbeef match [&0xb5dd6a5c -> &0xb64186bc]
     28115:	do copy 0xb5dbbdcc to 0xdeadbeef match [&0xb5dd6a60 -> &0xb64186c0]
     28115:	do copy 0xb5d90490 to 0xdeadbeef match [&0xb5dd6a64 -> &0xb64186c4]
     28115:	do copy 0xb5d90498 to 0xdeadbeef match [&0xb5dd6a68 -> &0xb64186c8]
     28115:	do copy 0xb5d904b4 to 0xdeadbeef match [&0xb5dd6a6c -> &0xb64186cc]
     28115:	do copy 0xb5d904bc to 0xdeadbeef match [&0xb5dd6a70 -> &0xb64186d0]
     28115:	do copy 0xb5dbe334 to 0xdeadbeef match [&0xb5dd6a74 -> &0xb64186d4]
     28115:	do copy 0xb5dbb954 to 0xdeadbeef match [&0xb5dd6a78 -> &0xb64186d8]
     28115:	move to next vtrel entry
     28115:	copy from 0xb5dd6ae8 to 0xb6418760 mask 0x7f
     28115:	do copy 0xb5dbc14c to 0xdeadbeef match [&0xb5dd6ae8 -> &0xb6418760]
     28115:	do copy 0xb5dbc1a8 to 0xdeadbeef match [&0xb5dd6aec -> &0xb6418764]
     28115:	do copy 0xb5dbc188 to 0xdeadbeef match [&0xb5dd6af0 -> &0xb6418768]
     28115:	do copy 0xb5dbc1e8 to 0xdeadbeef match [&0xb5dd6af4 -> &0xb641876c]
     28115:	do copy 0xb5dbbf50 to 0xdeadbeef match [&0xb5dd6af8 -> &0xb6418770]
     28115:	do copy 0xb5dbc2a4 to 0xdeadbeef match [&0xb5dd6afc -> &0xb6418774]
     28115:	do copy 0xb5dbc532 to 0xdeadbeef match [&0xb5dd6b00 -> &0xb6418778]
     28115:	move to next vtrel entry
     28115:	copy from 0xb5dd5d24 to 0xb6418b44 mask 0x7fffffc
     28115:	no copy 0xb5d94bb6 to 0xb63fcce6 skip
     28115:	no copy 0xb5d94b10 to 0xb63fcc9c skip
     28115:	do copy 0xb5d949f0 to 0xdeadbeef match [&0xb5dd5d2c -> &0xb6418b4c]
     28115:	do copy 0xb5d94ae0 to 0xdeadbeef match [&0xb5dd5d30 -> &0xb6418b50]
     28115:	do copy 0xb5d94a0c to 0xdeadbeef match [&0xb5dd5d34 -> &0xb6418b54]
     28115:	do copy 0xb5d95f84 to 0xdeadbeef match [&0xb5dd5d38 -> &0xb6418b58]
     28115:	do copy 0xb5d94a36 to 0xdeadbeef match [&0xb5dd5d3c -> &0xb6418b5c]
     28115:	do copy 0xb5d9576c to 0xdeadbeef match [&0xb5dd5d40 -> &0xb6418b60]
     28115:	do copy 0xb5d956f6 to 0xdeadbeef match [&0xb5dd5d44 -> &0xb6418b64]
     28115:	do copy 0xb5d9e8b4 to 0xdeadbeef match [&0xb5dd5d48 -> &0xb6418b68]
     28115:	do copy 0xb5d9f95c to 0xdeadbeef match [&0xb5dd5d4c -> &0xb6418b6c]
     28115:	do copy 0xb5d9f2ae to 0xdeadbeef match [&0xb5dd5d50 -> &0xb6418b70]
     28115:	do copy 0xb5d9e542 to 0xdeadbeef match [&0xb5dd5d54 -> &0xb6418b74]
     28115:	do copy 0xb5d9f1ea to 0xdeadbeef match [&0xb5dd5d58 -> &0xb6418b78]
     28115:	do copy 0xb5da09f0 to 0xdeadbeef match [&0xb5dd5d5c -> &0xb6418b7c]
     28115:	do copy 0xb5d9e0a8 to 0xdeadbeef match [&0xb5dd5d60 -> &0xb6418b80]
     28115:	do copy 0xb5d9e6b0 to 0xdeadbeef match [&0xb5dd5d64 -> &0xb6418b84]
     28115:	do copy 0xb5d9e504 to 0xdeadbeef match [&0xb5dd5d68 -> &0xb6418b88]
     28115:	do copy 0xb5d9e47e to 0xdeadbeef match [&0xb5dd5d6c -> &0xb6418b8c]
     28115:	do copy 0xb5d9e4d0 to 0xdeadbeef match [&0xb5dd5d70 -> &0xb6418b90]
     28115:	do copy 0xb5d9e4aa to 0xdeadbeef match [&0xb5dd5d74 -> &0xb6418b94]
     28115:	do copy 0xb5d9e440 to 0xdeadbeef match [&0xb5dd5d78 -> &0xb6418b98]
     28115:	do copy 0xb5d9f3aa to 0xdeadbeef match [&0xb5dd5d7c -> &0xb6418b9c]
     28115:	do copy 0xb5d9e0ae to 0xdeadbeef match [&0xb5dd5d80 -> &0xb6418ba0]
     28115:	do copy 0xb5d9ee16 to 0xdeadbeef match [&0xb5dd5d84 -> &0xb6418ba4]
     28115:	do copy 0xb5da026c to 0xdeadbeef match [&0xb5dd5d88 -> &0xb6418ba8]
     28115:	do copy 0xb7e2cc58 to 0xdeadbeef match [&0xb5dd5d8c -> &0xb6418bac]
     28115:	move to next vtrel entry
     28115:	copy from 0xb5dd5ca4 to 0xb6418ac4 mask 0x7e1ff7ff
     28115:	do copy 0xb5d953be to 0xdeadbeef match [&0xb5dd5ca4 -> &0xb6418ac4]
     28115:	do copy 0xb5d952e0 to 0xdeadbeef match [&0xb5dd5ca8 -> &0xb6418ac8]
     28115:	do copy 0xb5d95606 to 0xdeadbeef match [&0xb5dd5cac -> &0xb6418acc]
     28115:	do copy 0xb5d95be8 to 0xdeadbeef match [&0xb5dd5cb0 -> &0xb6418ad0]
     28115:	do copy 0xb5d955ac to 0xdeadbeef match [&0xb5dd5cb4 -> &0xb6418ad4]
     28115:	do copy 0xb5d95a66 to 0xdeadbeef match [&0xb5dd5cb8 -> &0xb6418ad8]
     28115:	do copy 0xb5d95902 to 0xdeadbeef match [&0xb5dd5cbc -> &0xb6418adc]
     28115:	do copy 0xb5d94a7c to 0xdeadbeef match [&0xb5dd5cc0 -> &0xb6418ae0]
     28115:	do copy 0xb5d94a84 to 0xdeadbeef match [&0xb5dd5cc4 -> &0xb6418ae4]
     28115:	do copy 0xb5d94a8c to 0xdeadbeef match [&0xb5dd5cc8 -> &0xb6418ae8]
     28115:	do copy 0xb5d9065a to 0xdeadbeef match [&0xb5dd5ccc -> &0xb6418aec]
     28115:	no copy 0xb5d91dda to 0xb63feffe skip
     28115:	do copy 0xb5d91124 to 0xdeadbeef match [&0xb5dd5cd4 -> &0xb6418af4]
     28115:	do copy 0xb5d906a2 to 0xdeadbeef match [&0xb5dd5cd8 -> &0xb6418af8]
     28115:	do copy 0xb5d910c2 to 0xdeadbeef match [&0xb5dd5cdc -> &0xb6418afc]
     28115:	do copy 0xb5d913ac to 0xdeadbeef match [&0xb5dd5ce0 -> &0xb6418b00]
     28115:	do copy 0xb5d9197e to 0xdeadbeef match [&0xb5dd5ce4 -> &0xb6418b04]
     28115:	do copy 0xb5d909e6 to 0xdeadbeef match [&0xb5dd5ce8 -> &0xb6418b08]
     28115:	do copy 0xb5d91320 to 0xdeadbeef match [&0xb5dd5cec -> &0xb6418b0c]
     28115:	do copy 0xb5d954f2 to 0xdeadbeef match [&0xb5dd5cf0 -> &0xb6418b10]
     28115:	do copy 0xb5d94a94 to 0xdeadbeef match [&0xb5dd5cf4 -> &0xb6418b14]
     28115:	no copy 0xb7e45890 to 0xb63fe328 skip
     28115:	no copy 0xb7e45898 to 0xb63fe750 skip
     28115:	no copy 0xb7e458a0 to 0xb63f7d8a skip
     28115:	no copy 0xb7e458a8 to 0xb63fd804 skip
     28115:	do copy 0xb5d9152c to 0xdeadbeef match [&0xb5dd5d08 -> &0xb6418b28]
     28115:	do copy 0xb5d91b28 to 0xdeadbeef match [&0xb5dd5d0c -> &0xb6418b2c]
     28115:	do copy 0xb5d95c72 to 0xdeadbeef match [&0xb5dd5d10 -> &0xb6418b30]
     28115:	do copy 0xb5d956b8 to 0xdeadbeef match [&0xb5dd5d14 -> &0xb6418b34]
     28115:	do copy 0xb5d956e6 to 0xdeadbeef match [&0xb5dd5d18 -> &0xb6418b38]
     28115:	do copy 0xb5d949d0 to 0xdeadbeef match [&0xb5dd5d1c -> &0xb6418b3c]
     28115:	move to next vtrel entry
     28115:	copy from 0xb5dd6a90 to 0xb6418618 mask 0x1
     28115:	do copy 0xb769b1fa to 0xdeadbeef match [&0xb5dd6a90 -> &0xb6418618]
     28115:	move to next vtrel entry
     28115:	copy from 0xb6418618 to 0xb64186f0 mask 0x1
     28115:	do copy 0xb769b1fa to 0xdeadbeef match [&0xb6418618 -> &0xb64186f0]
     28115:	move to next vtrel entry
     28115:	copy from 0xb6418858 to 0xb64187b8 mask 0xcf
     28115:	do copy 0xb63ee3d4 to 0xdeadbeef match [&0xb6418858 -> &0xb64187b8]
     28115:	do copy 0xb63ee3a2 to 0xdeadbeef match [&0xb641885c -> &0xb64187bc]
     28115:	do copy 0xb63ee370 to 0xdeadbeef match [&0xb6418860 -> &0xb64187c0]
     28115:	do copy 0xdeadbeef to 0xdeadbeef match [&0xb6418864 -> &0xb64187c4]
     28115:	no copy 0xb63ee2ec to 0xb63ecec6 skip
     28115:	no copy 0xb63ee2a8 to 0xb63ece60 skip
     28115:	do copy 0xb63ee25a to 0xdeadbeef match [&0xb6418870 -> &0xb64187d0]
     28115:	do copy 0xb63ee226 to 0xdeadbeef matchg [&0xb6418874 -> &0xb64187d4]
     28115:	move to next vtrel entry
     28115:	copy from 0xb6418858 to 0xb6418988 mask 0xcf
     28115:	do copy 0xb63ee3d4 to 0xdeadbeef match [&0xb6418858 -> &0xb6418988]
     28115:	do copy 0xb63ee3a2 to 0xdeadbeef match [&0xb641885c -> &0xb641898c]
     28115:	do copy 0xb63ee370 to 0xdeadbeef match [&0xb6418860 -> &0xb6418990]
     28115:	do copy 0xdeadbeef to 0xdeadbeef match [&0xb6418864 -> &0xb6418994]
     28115:	no copy 0xb63ee2ec to 0xb63f50dc skip
     28115:	no copy 0xb63ee2a8 to 0xb63f5076 skip
     28115:	do copy 0xb63ee25a to 0xdeadbeef match [&0xb6418870 -> &0xb64189a0]
     28115:	do copy 0xb63ee226 to 0xdeadbeef match [&0xb6418874 -> &0xb64189a4]
     28115:	move to next vtrel entry
     28115:	copy from 0x8090a84 to 0xb6418864 mask 0x1
     28115:	do copy 0x80619e4 to 0xdeadbeef match [&0x8090a84 -> &0xb6418864]
     28115:	move to next vtrel entry


These two are confused:

	'.vtrelocs._ZVTR_00000011_21DocumentFocusListener':

     28115:	copy from 0xb6418858 to 0xb6418988 mask 0xcf
     28115:	do copy 0xb63ee3d4 to 0xdeadbeef match [&0xb6418858 -> &0xb6418988]
     28115:	do copy 0xb63ee3a2 to 0xdeadbeef match [&0xb641885c -> &0xb641898c]
     28115:	do copy 0xb63ee370 to 0xdeadbeef match [&0xb6418860 -> &0xb6418990]
     28115:	do copy 0xdeadbeef to 0xdeadbeef match [***&0xb6418864*** -> &0xb6418994]
     28115:	no copy 0xb63ee2ec to 0xb63f50dc skip
     28115:	no copy 0xb63ee2a8 to 0xb63f5076 skip
     28115:	do copy 0xb63ee25a to 0xdeadbeef match [&0xb6418870 -> &0xb64189a0]
     28115:	do copy 0xb63ee226 to 0xdeadbeef match [&0xb6418874 -> &0xb64189a4]
     28115:	move to next vtrel entry

	'.vtrelocs._ZVTR_00000012_N4cppu15WeakImplHelper1IN3com3sun4star13accessibility24XAccessibleEventListenerEEE':
     28115:	copy from 0x8090a84 to 0xb6418864 mask 0x1
     28115:	do copy 0x80619e4 to 0xdeadbeef match [&0x8090a84 -> ***&0xb6418864***]

** Build a test:


	'.vtrelocs._ZVTR_00000008_8ErrorBox':
	'.vtrelocs._ZVTR_00000008_8QueryBox':

/home/opt/gcc/bin/../libexec/gcc/i686-pc-linux-gnu/4.2.1/cc1plus -quiet -I. -I../../unxlngi6.pro/inc/svdraw -I../inc -I../../inc/pch -I../../inc -I../../unx/inc -I../../unxlngi6.pro/inc -I. -I/opt/OpenOffice/ooh680-m1/solver/680/unxlngi6.pro/inc/stl -I/opt/OpenOffice/ooh680-m1/solver/680/unxlngi6.pro/inc/external -I/opt/OpenOffice/ooh680-m1/solver/680/unxlngi6.pro/inc -I/opt/OpenOffice/ooh680-m1/solenv/unxlngi6/inc -I/opt/OpenOffice/ooh680-m1/solenv/inc -I/opt/OpenOffice/ooh680-m1/res -I/opt/OpenOffice/ooh680-m1/solver/680/unxlngi6.pro/inc/stl -I/opt/OpenOffice/ooh680-m1/solenv/inc/Xp31 -I/usr/lib/jvm/java/include -I/usr/lib/jvm/java/include/linux -I/usr/lib/jvm/java/include/native_threads/include -I/usr/include -I/opt/OpenOffice/ooh680-m1/solver/680/unxlngi6.pro/inc/offuh -I. -I../../res -I. -iprefix /home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/ -D_GNU_SOURCE -DENABLE_GTK -DLINUX -DUNX -DVCL -DGCC -DC341 -DINTEL -DCVER=C341 -DNPTL -DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3 -DGXX_INCLUDE_PATH=/usr/include/c++/4.2.1 -DSUPD=680 -DPRODUCT -DNDEBUG -DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DGSTREAMER -DCUI -DSOLAR_JAVA -DOOH680=OOH680 -DSVX_DLLIMPLEMENTATION -DSHAREDLIB -D_DLL_ -DEXCEPTIONS_ON /home/opt/OpenOffice/ooh680-m1/svx/source/svdraw/svdobj.cxx -quiet -dumpbase svdobj.cxx -mtune=pentiumpro -auxbase-strip ../../unxlngi6.pro/slo/svdobj.o -Os -Wall -Wextra -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fmessage-length=0 -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -fpic -fexceptions -fno-enforce-eh-specs -o -

Generate vtreloc variable '_ZVTR_00000002_15SvCompatWeakHdl' comdat? 1name '_ZVTR_00000002_9SvWeakHdl'
Generate vtreloc variable '_ZVTR_00000002_9SvWeakHdl' comdat? 1
Program received signal SIGSEGV, Segmentation fault.
cgraph_node_remove_callees (node=0xb1713000) at ../.././gcc/cgraph.c:436
436       if (e->prev_caller)
(gdb) bt
#0  cgraph_node_remove_callees (node=0xb1713000) at ../.././gcc/cgraph.c:436
#1  0x084204ea in cgraph_remove_node (node=0xb1713000) at ../.././gcc/cgraph.c:535
#2  0x0842272e in cgraph_finalize_compilation_unit () at ../.././gcc/cgraphunit.c:1167
#3  0x080892f5 in cp_finish_file () at ../.././gcc/cp/decl2.c:3414
#4  0x0810102f in c_common_parse_file (set_yydebug=0) at ../.././gcc/c-opts.c:1184
#5  0x083bb5d0 in toplev_main (argc=87, argv=0xbf969944) at ../.././gcc/toplev.c:1033
#6  0x0810b46f in main (argc=1, argv=0x0) at ../.././gcc/main.c:35


SVX:

../unxlngi6.pro/slo/xmlxtexp.o:(.data.rel.ro._ZTV27SvxXMLXTableExportComponent[vtable
for SvxXMLXTableExportComponent]+0x16c): undefined reference to
`non-virtual thunk to
cppu::WeakImplHelper6<com::sun::star::document::XFilter,
com::sun::star::lang::XServiceInfo,
com::sun::star::document::XExporter,
com::sun::star::lang::XInitialization,
com::sun::star::container::XNamed,
com::sun::star::lang::XUnoTunnel>::release()'

_ZTV27SvxXMLXTableExportComponent:
->
	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star8document7XFilterENS3_4lang12XServiceInfoENS4_9XExporterENS6_15XInitializationENS3_9container6XNamedENS6_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	+ simply not in the .s file [ most odd ]


** Turn on & try construction vtable bits ? :-)

** FIXME:
	+ should we be copying thunks from our parents ?

method.c: 'emit_associated_thunks' ...
	+ hmm ;-)
method.c: 'make_thunk' ... - called from where ?

** FIXME: make_thunk - called, but not 'finish_thunk' ...

* we have 195 'make_thunk' calls
* we have 8 'generate thunk' calls.
	+ most odd [!]

grep '_ZThn' /tmp/xmlxtexp.s.pristine | wc -l
196
grep '_ZThn' /tmp/xmlxtexp.s-shrink | wc -l
81

	+ Interesting.


** Chase how thunks are generated
	+ can we defer our generation of _ZVTR stuff
	  until a -lot- later ?

** FIXME: why are we not generating thunks !?
	+ they seem to be associated with functions
	+ but ... why? they don't call functions.

** The --real-- question from xmlxtexp.cxx is:
	+ *Why* do we not get an SvXMLExport vtable ?

_ZVTR_00000006_27SvxXMLXTableExportComponent:
	.long	_ZTV11SvXMLExport+136
	.long	_ZTV27SvxXMLXTableExportComponent+136
	.long	4095

	+ *That* should have the missing thunks [!]
	+ Or better [!]
		+ we should generate copy relocs for the thunks
		+ they are after all - just the same ...
		+ *But* why are we missing that vtable too ?
		+ it is external ... [!?]

	+ FIXME:
		+ make test case:
		+ hide the parent classs
		+ first force some thunk generation (!?)

** FIXME:
	+ specified in libxo680li ... [!]

** FIXME:
	+ regression test with visibility markup ! ;-)


** FIXME:
	+ working nicely now -except- [!]
		+ define SAL_NO_VTABLE
	+ abstract base classes - don't need copying ?
		+ they won't have a vtable emitted ...



** FIXME:
   +
	../unxlngi6.pro/slo/xmlxtexp.o:(.data.rel.ro._ZTV27SvxXMLXTableExportComponent[vtable
	for SvxXMLXTableExportComponent]+0x16c): undefined reference
	to `non-virtual thunk to
	cppu::WeakImplHelper6<com::sun::star::document::XFilter,
	com::sun::star::lang::XServiceInfo,
	com::sun::star::document::XExporter,
	com::sun::star::lang::XInitialization,
	com::sun::star::container::XNamed,
	com::sun::star::lang::XUnoTunnel>::release()'


	.long	-40
	.long	_ZTI27SvxXMLXTableExportComponent
	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star8document7XFilterENS3_4lang12XServiceInfoENS4_9XExporterENS6_15XInitializationENS3_9container6XNamedENS6_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star8document7XFilterENS3_4lang12XServiceInfoENS4_9XExporterENS6_15XInitializationENS3_9container6XNamedENS6_10XUnoTunnelEE7acquireEv
	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star8document7XFilterENS3_4lang12XServiceInfoENS4_9XExporterENS6_15XInitializationENS3_9container6XNamedENS6_10XUnoTunnelEE7releaseEv
	.long	_ZThn40_N11SvXMLExport12getSomethingERKN3com3sun4star3uno8SequenceIaEE
	.long	_ZVTR_00000006_27SvxXMLXTableExportComponent

Thunk!: 1 1 1 1
 cppu::WeakImplHelper6<com::sun::star::document::XFilter,
 com::sun::star::lang::XServiceInfo,
 com::sun::star::document::XExporter,
 com::sun::star::lang::XInitialization,
 com::sun::star::container::XNamed,
 com::sun::star::lang::XUnoTunnel>::_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star8document7XFilterENS3_4lang12XServiceInfoENS4_9XExporterENS6_15XInitializationENS3_9container6XNamedENS6_10XUnoTunnelEE7releaseEv
 : com::sun::star::uno::XInterface !=?
 cppu::WeakImplHelper6<com::sun::star::document::XFilter,
 com::sun::star::lang::XServiceInfo,
 com::sun::star::document::XExporter,
 com::sun::star::lang::XInitialization,
 com::sun::star::container::XNamed, com::sun::star::lang::XUnoTunnel>
 0xb6a89bdc !=? 0xb4f84564 !=? 0xb4f82780 !=? 0xb4f82780 !=?
 0xb4f66e70 (nil) !=? 0x32040200 !=? 0xb4f66e70 !=? 0xb4f66e70 !=?
 (nil)

** Hard to determine overriding by thetimewe get here ...
so- instead-update_vtable_entry_for_fn (?)

finish_struct_1 ? ... :-)

../unxlngi6.pro/slo/xmlxtimp.o:(.vtrelocs._ZVTR_00000006_18SvxXMLXTableImport[_ZVTR_00000006_18SvxXMLXTableImport]+0x3c):
undefined reference to `vtable for com::sun::star::xml::sax::XExtendedDocumentHandler'

FIXME: this is just bogus !
SvxXMLXTableImport does indeed inherit from XExtendedDocumentHandler
	+ but not here
	+ and only 'via' a template class:
		.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE

	class SvxXMLXTableImport : public SvXMLImport

Copy SvXMLImport + 2 =>  SvxXMLXTableImport + 2 mask 0xfffffecf
Copy SvXMLImport + 34 =>  SvxXMLXTableImport + 34 mask 0x7f
Copy com::sun::star::lang::XTypeProvider + 2 =>  SvxXMLXTableImport + 43 mask 0x1f
Copy com::sun::star::xml::sax::XExtendedDocumentHandler + 2 =>  SvxXMLXTableImport + 50 mask 0xffff
Copy com::sun::star::lang::XServiceInfo + 2 =>  SvxXMLXTableImport + 68 mask 0x3f
Copy com::sun::star::lang::XInitialization + 2 =>  SvxXMLXTableImport + 76 mask 0xf
Copy com::sun::star::document::XImporter + 2 =>  SvxXMLXTableImport + 82 mask 0xf
Copy com::sun::star::document::XFilter + 2 =>  SvxXMLXTableImport + 88 mask 0x1f
Copy com::sun::star::lang::XUnoTunnel + 2 =>  SvxXMLXTableImport + 95 mask 0xf

** Just a nonsense ! :-)

FIXME: why so hard to generate test cases ?

FIXME: it's all rubbish!
	+ thunk namemangling *looks* like it's inheritingsomething,
 	  but it'snot.
	+there is (apparently) no vtablefor:
	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE


eg. xmlxtimp.s.pristine:
	.long	-20
	.long	_ZTI18SvxXMLXTableImport
	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv

	these guys above should be there.
	below - notso.

	.long	_ZThn20_N11SvXMLImport13startDocumentEv
	.long	_ZThn20_N11SvXMLImport11endDocumentEv
	.long	_ZThn20_N11SvXMLImport12startElementERKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
	.long	_ZThn20_N11SvXMLImport10endElementERKN3rtl8OUStringE
	.long	_ZThn20_N11SvXMLImport10charactersERKN3rtl8OUStringE
	.long	_ZThn20_N11SvXMLImport19ignorableWhitespaceERKN3rtl8OUStringE
	.long	_ZThn20_N11SvXMLImport21processingInstructionERKN3rtl8OUStringES3_
	.long	_ZThn20_N11SvXMLImport18setDocumentLocatorERKN3com3sun4star3uno9ReferenceINS2_3xml3sax8XLocatorEEE
	.long	_ZThn20_N11SvXMLImport10startCDATAEv
	.long	_ZThn20_N11SvXMLImport8endCDATAEv
	.long	_ZThn20_N11SvXMLImport7commentERKN3rtl8OUStringE
	.long	_ZThn20_N11SvXMLImport14allowLineBreakEv
	.long	_ZThn20_N11SvXMLImport7unknownERKN3rtl8OUStringE



hacked:

_ZTV18SvxXMLXTableImport:
	.long	0
	.long	_ZTI18SvxXMLXTableImport
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	_ZN18SvxXMLXTableImportD1Ev
	.long	_ZN18SvxXMLXTableImportD0Ev
	.long	-559038737
	.long	-559038737
	.long	_ZN18SvxXMLXTableImport13CreateContextEtRKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-559038737
	.long	-16
	.long	_ZTI18SvxXMLXTableImport
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-20
	.long	_ZTI18SvxXMLXTableImport
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-24
	.long	_ZTI18SvxXMLXTableImport
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	-28
	.long	_ZTI18SvxXMLXTableImport
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	_ZThn28_N11SvXMLImport10initializeERKN3com3sun4star3uno8SequenceINS3_3AnyEEE
	.long	-32
	.long	_ZTI18SvxXMLXTableImport
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	_ZThn32_N11SvXMLImport17setTargetDocumentERKN3com3sun4star3uno9ReferenceINS2_4lang10XComponentEEE
	.long	-36
	.long	_ZTI18SvxXMLXTableImport
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	_ZThn36_N11SvXMLImport6filterERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
	.long	_ZThn36_N11SvXMLImport6cancelEv
	.long	-40
	.long	_ZTI18SvxXMLXTableImport
	.long	-559026176
	.long	-559026176
	.long	-559026176
	.long	_ZThn40_N11SvXMLImport12getSomethingERKN3com3sun4star3uno8SequenceIaEE
	.long	_ZVTR_00000006_18SvxXMLXTableImport
	.hidden	_ZTV24SvxXMLTableImportContext

pristine:

_ZTV18SvxXMLXTableImport:
	.long	0
	.long	_ZTI18SvxXMLXTableImport
	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZN4cppu11OWeakObject12queryAdapterEv
	.long	_ZN18SvxXMLXTableImportD1Ev
	.long	_ZN18SvxXMLXTableImportD0Ev
	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE8getTypesEv
	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE19getImplementationIdEv
	.long	_ZN18SvxXMLXTableImport13CreateContextEtRKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
	.long	_ZN11SvXMLImport16CreateTextImportEv
	.long	_ZN11SvXMLImport17CreateShapeImportEv
	.long	_ZN11SvXMLImport17CreateChartImportEv
	.long	_ZN11SvXMLImport16CreateFormImportEv
	.long	_ZN11SvXMLImport13startDocumentEv
	.long	_ZN11SvXMLImport11endDocumentEv
	.long	_ZN11SvXMLImport12startElementERKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
	.long	_ZN11SvXMLImport10endElementERKN3rtl8OUStringE
	.long	_ZN11SvXMLImport10charactersERKN3rtl8OUStringE
	.long	_ZN11SvXMLImport19ignorableWhitespaceERKN3rtl8OUStringE
	.long	_ZN11SvXMLImport21processingInstructionERKN3rtl8OUStringES3_
	.long	_ZN11SvXMLImport18setDocumentLocatorERKN3com3sun4star3uno9ReferenceINS2_3xml3sax8XLocatorEEE
	.long	_ZN11SvXMLImport10startCDATAEv
	.long	_ZN11SvXMLImport8endCDATAEv
	.long	_ZN11SvXMLImport7commentERKN3rtl8OUStringE
	.long	_ZN11SvXMLImport14allowLineBreakEv
	.long	_ZN11SvXMLImport7unknownERKN3rtl8OUStringE
	.long	_ZN11SvXMLImport17setTargetDocumentERKN3com3sun4star3uno9ReferenceINS2_4lang10XComponentEEE
	.long	_ZN11SvXMLImport6filterERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
	.long	_ZN11SvXMLImport6cancelEv
	.long	_ZN11SvXMLImport10initializeERKN3com3sun4star3uno8SequenceINS3_3AnyEEE
	.long	_ZN11SvXMLImport12getSomethingERKN3com3sun4star3uno8SequenceIaEE
	.long	_ZN11SvXMLImport21getImplementationNameEv
	.long	_ZN11SvXMLImport15supportsServiceERKN3rtl8OUStringE
	.long	_ZN11SvXMLImport24getSupportedServiceNamesEv
	.long	_ZN11SvXMLImport22SetStatisticAttributesERKN3com3sun4star3uno9ReferenceINS2_3xml3sax14XAttributeListEEE
	.long	_ZN11SvXMLImport15SetViewSettingsERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
	.long	_ZN11SvXMLImport24SetConfigurationSettingsERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
	.long	_ZN11SvXMLImport14DisposingModelEv
	.long	_ZN11SvXMLImport10initXFormsEv
	.long	-16
	.long	_ZTI18SvxXMLXTableImport
	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE8getTypesEv
	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE19getImplementationIdEv
	.long	-20
	.long	_ZTI18SvxXMLXTableImport
	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn20_N11SvXMLImport13startDocumentEv
	.long	_ZThn20_N11SvXMLImport11endDocumentEv
	.long	_ZThn20_N11SvXMLImport12startElementERKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
	.long	_ZThn20_N11SvXMLImport10endElementERKN3rtl8OUStringE
	.long	_ZThn20_N11SvXMLImport10charactersERKN3rtl8OUStringE
	.long	_ZThn20_N11SvXMLImport19ignorableWhitespaceERKN3rtl8OUStringE
	.long	_ZThn20_N11SvXMLImport21processingInstructionERKN3rtl8OUStringES3_
	.long	_ZThn20_N11SvXMLImport18setDocumentLocatorERKN3com3sun4star3uno9ReferenceINS2_3xml3sax8XLocatorEEE
	.long	_ZThn20_N11SvXMLImport10startCDATAEv
	.long	_ZThn20_N11SvXMLImport8endCDATAEv
	.long	_ZThn20_N11SvXMLImport7commentERKN3rtl8OUStringE
	.long	_ZThn20_N11SvXMLImport14allowLineBreakEv
	.long	_ZThn20_N11SvXMLImport7unknownERKN3rtl8OUStringE
	.long	-24
	.long	_ZTI18SvxXMLXTableImport
	.long	_ZThn24_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn24_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn24_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn24_N11SvXMLImport21getImplementationNameEv
	.long	_ZThn24_N11SvXMLImport15supportsServiceERKN3rtl8OUStringE
	.long	_ZThn24_N11SvXMLImport24getSupportedServiceNamesEv
	.long	-28
	.long	_ZTI18SvxXMLXTableImport
	.long	_ZThn28_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn28_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn28_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn28_N11SvXMLImport10initializeERKN3com3sun4star3uno8SequenceINS3_3AnyEEE
	.long	-32
	.long	_ZTI18SvxXMLXTableImport
	.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn32_N11SvXMLImport17setTargetDocumentERKN3com3sun4star3uno9ReferenceINS2_4lang10XComponentEEE
	.long	-36
	.long	_ZTI18SvxXMLXTableImport
	.long	_ZThn36_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn36_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn36_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn36_N11SvXMLImport6filterERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
	.long	_ZThn36_N11SvXMLImport6cancelEv
	.long	-40
	.long	_ZTI18SvxXMLXTableImport
	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn40_N11SvXMLImport12getSomethingERKN3com3sun4star3uno8SequenceIaEE
	.hidden	_ZTV24SvxXMLTableImportContext
	.weak	_ZTV24SvxXMLTableImportContext
	.section	.data.rel.ro._ZTV24SvxXMLTableImportContext,"awG",@progbits,_ZTV24SvxXMLTableImportContext,comdat


parent:

_ZTV11SvXMLImport:
	.long	0
	.long	_ZTI11SvXMLImport
	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZN4cppu11OWeakObject12queryAdapterEv
	.long	_ZN11SvXMLImportD1Ev
	.long	_ZN11SvXMLImportD0Ev
	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE8getTypesEv
	.long	_ZN4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE19getImplementationIdEv
	.long	_ZN11SvXMLImport13CreateContextEtRKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
	.long	_ZN11SvXMLImport16CreateTextImportEv
	.long	_ZN11SvXMLImport17CreateShapeImportEv
	.long	_ZN11SvXMLImport17CreateChartImportEv
	.long	_ZN11SvXMLImport16CreateFormImportEv
	.long	_ZN11SvXMLImport13startDocumentEv
	.long	_ZN11SvXMLImport11endDocumentEv
	.long	_ZN11SvXMLImport12startElementERKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
	.long	_ZN11SvXMLImport10endElementERKN3rtl8OUStringE
	.long	_ZN11SvXMLImport10charactersERKN3rtl8OUStringE
	.long	_ZN11SvXMLImport19ignorableWhitespaceERKN3rtl8OUStringE
	.long	_ZN11SvXMLImport21processingInstructionERKN3rtl8OUStringES3_
	.long	_ZN11SvXMLImport18setDocumentLocatorERKN3com3sun4star3uno9ReferenceINS2_3xml3sax8XLocatorEEE
	.long	_ZN11SvXMLImport10startCDATAEv
	.long	_ZN11SvXMLImport8endCDATAEv
	.long	_ZN11SvXMLImport7commentERKN3rtl8OUStringE
	.long	_ZN11SvXMLImport14allowLineBreakEv
	.long	_ZN11SvXMLImport7unknownERKN3rtl8OUStringE
	.long	_ZN11SvXMLImport17setTargetDocumentERKN3com3sun4star3uno9ReferenceINS2_4lang10XComponentEEE
	.long	_ZN11SvXMLImport6filterERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
	.long	_ZN11SvXMLImport6cancelEv
	.long	_ZN11SvXMLImport10initializeERKN3com3sun4star3uno8SequenceINS3_3AnyEEE
	.long	_ZN11SvXMLImport12getSomethingERKN3com3sun4star3uno8SequenceIaEE
	.long	_ZN11SvXMLImport21getImplementationNameEv
	.long	_ZN11SvXMLImport15supportsServiceERKN3rtl8OUStringE
	.long	_ZN11SvXMLImport24getSupportedServiceNamesEv
	.long	_ZN11SvXMLImport22SetStatisticAttributesERKN3com3sun4star3uno9ReferenceINS2_3xml3sax14XAttributeListEEE
	.long	_ZN11SvXMLImport15SetViewSettingsERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
	.long	_ZN11SvXMLImport24SetConfigurationSettingsERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
	.long	_ZN11SvXMLImport14DisposingModelEv
	.long	_ZN11SvXMLImport10initXFormsEv
	.long	-16
	.long	_ZTI11SvXMLImport
	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE8getTypesEv
	.long	_ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE19getImplementationIdEv
	.long	-20
	.long	_ZTI11SvXMLImport
	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn20_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn20_N11SvXMLImport13startDocumentEv
	.long	_ZThn20_N11SvXMLImport11endDocumentEv
	.long	_ZThn20_N11SvXMLImport12startElementERKN3rtl8OUStringERKN3com3sun4star3uno9ReferenceINS6_3xml3sax14XAttributeListEEE
	.long	_ZThn20_N11SvXMLImport10endElementERKN3rtl8OUStringE
	.long	_ZThn20_N11SvXMLImport10charactersERKN3rtl8OUStringE
	.long	_ZThn20_N11SvXMLImport19ignorableWhitespaceERKN3rtl8OUStringE
	.long	_ZThn20_N11SvXMLImport21processingInstructionERKN3rtl8OUStringES3_
	.long	_ZThn20_N11SvXMLImport18setDocumentLocatorERKN3com3sun4star3uno9ReferenceINS2_3xml3sax8XLocatorEEE
	.long	_ZThn20_N11SvXMLImport10startCDATAEv
	.long	_ZThn20_N11SvXMLImport8endCDATAEv
	.long	_ZThn20_N11SvXMLImport7commentERKN3rtl8OUStringE
	.long	_ZThn20_N11SvXMLImport14allowLineBreakEv
	.long	_ZThn20_N11SvXMLImport7unknownERKN3rtl8OUStringE
	.long	-24
	.long	_ZTI11SvXMLImport
	.long	_ZThn24_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn24_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn24_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn24_N11SvXMLImport21getImplementationNameEv
	.long	_ZThn24_N11SvXMLImport15supportsServiceERKN3rtl8OUStringE
	.long	_ZThn24_N11SvXMLImport24getSupportedServiceNamesEv
	.long	-28
	.long	_ZTI11SvXMLImport
	.long	_ZThn28_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn28_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn28_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn28_N11SvXMLImport10initializeERKN3com3sun4star3uno8SequenceINS3_3AnyEEE
	.long	-32
	.long	_ZTI11SvXMLImport
	.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn32_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn32_N11SvXMLImport17setTargetDocumentERKN3com3sun4star3uno9ReferenceINS2_4lang10XComponentEEE
	.long	-36
	.long	_ZTI11SvXMLImport
	.long	_ZThn36_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn36_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn36_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn36_N11SvXMLImport6filterERKN3com3sun4star3uno8SequenceINS2_5beans13PropertyValueEEE
	.long	_ZThn36_N11SvXMLImport6cancelEv
	.long	-40
	.long	_ZTI11SvXMLImport
	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE14queryInterfaceERKNS3_3uno4TypeE
	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7acquireEv
	.long	_ZThn40_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE7releaseEv
	.long	_ZThn40_N11SvXMLImport12getSomethingERKN3com3sun4star3uno8SequenceIaEE
	.hidden	_ZTV24SvXMLImportEventListener
	.weak	_ZTV24SvXMLImportEventListener

// Herein lies the problem:
// 
Init vtable idx 2:  
     t - (SvxXMLXTableImport)
     binfo - (com::sun::star::xml::sax::XExtendedDocumentHandler)
     orig_binfo - (com::sun::star::xml::sax::XExtendedDocumentHandler)
     rtti-binfo - (SvxXMLXTableImport)
     primary-binfo (com::sun::star::xml::sax::XDocumentHandler)** 2 inits **

  /* Write details about vtable inheritance, if we have any parent entries */
  if (slot_relocs)
  {
      unsigned i;
      tree copy_parent = orig_binfo;
      if (orig_binfo == TYPE_BINFO (t))
          copy_parent = get_primary_binfo (orig_binfo);


** FIXME:intests,definekey method in.cxx ...

crashes on:
86        pWeak->getTypes();

(gdb) p (void (void) **)&_ZTV15DerivedFromWeak


** Broken copy offset: [!?]

(gdb) p $17[8]
$43 = (void (*)(void)) 0x8048fe4 <typeinfo for DerivedFromWeak>
(gdb) p $17[9]
$44 = (void (*)(void)) 0x804876c <XTypeProvider::getTypes()>
(gdb) p $17[10]
$45 = (void (*)(void)) 0xffffffec

From XTypeProvider [!]

_ZVTR_00000005_15DerivedFromWeak:
	.long	_ZTV15WeakImplHelper1I24XAccessibleEventListenerE+8
	.long	_ZTV15DerivedFromWeak+8
	.long	14723

should be:
	.long	-12
	.long	_ZTI15DerivedFromWeak
	.long	_ZN13XTypeProvider7acquireEv
	.long	_ZN13XTypeProvider8getTypesEv

_ZTV15WeakImplHelper1I24XAccessibleEventListenerE:
	.long	0
	.long	_ZTI15WeakImplHelper1I24XAccessibleEventListenerE
	.long	_ZN5XWeak7acquireEv
	.long	_ZN5XWeak12queryAdapterEv
	.long	_ZN15WeakImplHelper1I24XAccessibleEventListenerED1Ev
	.long	_ZN15WeakImplHelper1I24XAccessibleEventListenerED0Ev
	.long	-12
	.long	_ZTI15WeakImplHelper1I24XAccessibleEventListenerE
	.long	_ZN13XTypeProvider7acquireEv
	.long	_ZN13XTypeProvider8getTypesEv
	.long	-20
	.long	_ZTI15WeakImplHelper1I24XAccessibleEventListenerE
	.long	_ZN14XEventListener7acquireEv
	.long	_ZN14XEventListener9disposingEv
	.long	_ZN24XAccessibleEventListener11notifyEventEv
	[end]

_ZTV15DerivedFromWeak:
	.long	0
	.long	_ZTI15DerivedFromWeak
	.long	_ZN5XWeak7acquireEv
	.long	_ZN5XWeak12queryAdapterEv
	.long	_ZN15DerivedFromWeakD1Ev
	.long	_ZN15DerivedFromWeakD0Ev
	.long	_ZN15DerivedFromWeak9thunkfestEv  !!!!!!!!!!! new method !!!!!!!!!!
	.long	-12
	.long	_ZTI15DerivedFromWeak
	.long	_ZN13XTypeProvider7acquireEv
	.long	_ZN13XTypeProvider8getTypesEv
	.long	-20
	.long	_ZTI15DerivedFromWeak
	.long	_ZN14XEventListener7acquireEv
	.long	_ZN14XEventListener9disposingEv
	.long	_ZN24XAccessibleEventListener11notifyEventEv
	[end]

ie. vtables can grow in the middle - *because* we find
    vmethods from the instance, and this has fixed up
    pointers.
	+ the instance fixup numbers are stored in
	  BINFO_OFFSET - but this is an instance fixup
	  offset: not what we want in fact.

* What data do we have to hand ? *
	* What data do we need to get through to this thing ? *

* FIXME: how does a virtual function call, find which fn
  it is in a vtable ?

	* FIXME: if we could just compare lists of
	  inits straight ? would that be easier ?
		* and zap them later ?
		* could include the int csts etc. ?
		* very simple & generic ?

DerivedFromWeak (0xb7dd4740) 0
  WeakImplHelper1<XAccessibleEventListener> (0xb7dd1510) 0
      primary-for DerivedFromWeak (0xb7dd4740)
    OWeakObject (0xb7dd4780) 0
        primary-for WeakImplHelper1<XAccessibleEventListener> (0xb7dd1510)
      XWeak (0xb7dd47c0) 0
          primary-for OWeakObject (0xb7dd4780)
        XInterface (0xb7dd4800) 0 nearly-empty
            primary-for XWeak (0xb7dd47c0)
    XTypeProvider (0xb7dd4840) 12
      XInterface (0xb7dd4880) 12 nearly-empty
          primary-for XTypeProvider (0xb7dd4840)
    XAccessibleEventListener (0xb7dd48c0) 20
      XEventListener (0xb7dd4900) 20
          primary-for XAccessibleEventListener (0xb7dd48c0)
        XInterface (0xb7dd4940) 20 nearly-empty
            primary-for XEventListener (0xb7dd4900)

ie.
	+ We cannot do a linear copy from 
		_ZTV15WeakImplHelper1I24XAccessibleEventListenerE:
	+ to 
		_ZTV15DerivedFromWeak:

	+ we need to skip pieces ... ! :-)
		+ our new vtable is longer.
		+ SOOoooo .... :-)
		+ need to notice & calc the difference [?]

Mismatch vs:
	from WeakImplHelper1<XAccessibleEventListener> (16) entries
	  0	NULL
	  1	NULL
	  2	XWeak::acquire [ 0 ]
	  3	XWeak::queryAdapter [ 1 ]
	  4	NULL
	  5	NULL
	  6	NULL
	  7	NULL	** One too many here ! **
	  8	NULL
	  9	XTypeProvider::acquire [ 0 ]
	 10	XTypeProvider::getTypes [ 1 ]
	 11	NULL
	 12	NULL
	 13	XEventListener::acquire [ 0 ]
	 14	XEventListener::disposing [ 1 ]
	 15	XAccessibleEventListener::notifyEvent [ 2 ]


*** FIXME:
	+ a nice generic algorithm for comparing classes ...

	+ a set of inits can be seen as:
		+ [[<offsets>]+<type-info>[method+]]+
		+ => we can use the type-info pieces to
		     thunk this pleasantly.
		+ this substantially shrinks the search space ...
		+ <type-info> is prolly optional - 

	+ FIXME: print-out a set of examples & hack up an algorithm ...
	+ compile a.cxx and b.cxx etc.


VTable for 'VVirt'
	0     28u
	4     (int (*)(...))0
	8     (int (*)(...))(& _ZTI5VVirt)
	12    XTypeProvider::acquire
	16    XTypeProvider::getTypes
	20    VVirt::~VVirt
	24    VVirt::~VVirt
	28    16u
	32    (int (*)(...))-0x00000000c
	36    (int (*)(...))(& _ZTI5VVirt)
	40    XEventListener::acquire
	44    XEventListener::disposing
	48    XAccessibleEventListener::notifyEvent
	52    VVirt::_ZThn12_N5VVirtD1Ev
	56    VVirt::_ZThn12_N5VVirtD0Ev
	60    -28u
	64    0u
	68    0u
	72    (int (*)(...))-0x00000001c
	76    (int (*)(...))(& _ZTI5VVirt)
	80    XWeak::acquire
	84    XWeak::queryAdapter
	88    VVirt::_ZTv0_n20_N5VVirtD1Ev
	92    VVirt::_ZTv0_n20_N5VVirtD0Ev
	96    -267522035u
Inherited from:
VTable for 'VBase1'
	0     12u
	4     (int (*)(...))0
	8     (int (*)(...))(& _ZTI6VBase1)
	12    XTypeProvider::acquire
	16    XTypeProvider::getTypes
	20    VBase1::~VBase1
	24    VBase1::~VBase1
	28    -12u
	32    0u
	36    0u
	40    (int (*)(...))-0x00000000c
	44    (int (*)(...))(& _ZTI6VBase1)
	48    XWeak::acquire
	52    XWeak::queryAdapter
	56    VBase1::_ZTv0_n20_N6VBase1D1Ev
	60    VBase1::_ZTv0_n20_N6VBase1D0Ev
	64    -267522035u
same ? 0 or super-type
VTable for 'VBase2'
	0     16u
	4     (int (*)(...))0
	8     (int (*)(...))(& _ZTI6VBase2)
	12    XEventListener::acquire
	16    XEventListener::disposing
	20    XAccessibleEventListener::notifyEvent
	24    VBase2::~VBase2
	28    VBase2::~VBase2
	32    -16u
	36    0u
	40    0u
	44    (int (*)(...))-0x000000010
	48    (int (*)(...))(& _ZTI6VBase2)
	52    XWeak::acquire
	56    XWeak::queryAdapter
	60    VBase2::_ZTv0_n20_N6VBase2D1Ev
	64    VBase2::_ZTv0_n20_N6VBase2D0Ev
	68    -267522035u

FIXME: bitmask or bitmap ? ...
FIXME: Look at construction vtables: turn them off ? ...
	+ or does it work ok ?


Compiling desktop, we get horrors like:

vtcopies: 2 records
	copy from MessBox+3 to MessBox+3 mask 0xffffffff
	copy from MessBox+36 to MessBox+36 mask 0x7fffffff


../../unxlngi6.pro/slo/dp_package.o:(.data.rel.ro+0x1f0): undefined reference to `non-virtual thunk to dp_registry::backend::bundle::(anonymous namespace)::BackendImpl::PackageImpl::getVersion()'

** FIXME: we're clobbering the wrong things ! :-)

	0     (int (*)(...))0
!!	1     (int (*)(...))(& _ZTIN11dp_registry7backend6bundle117_GLOBAL__N__home_opt_OpenOffice_ooh680_m1_desktop_source_deployment_registry_package_dp_package.cxx_00000000_CEA456DD11BackendImpl11PackageImplE)
!!	2     cppu::WeakComponentImplHelper1<Ifc1>::queryInterface [with Ifc1 = com::sun::star::deployment::XPackage]
!!	3     cppu::WeakComponentImplHelper1<Ifc1>::acquire [with Ifc1 = com::sun::star::deployment::XPackage]
!!	4     cppu::WeakComponentImplHelper1<Ifc1>::release [with Ifc1 = com::sun::star::deployment::XPackage]
	5     cppu::OWeakObject::queryAdapter
	6     dp_registry::backend::bundle::<unnamed>::BackendImpl::PackageImpl::~PackageImpl
	7     dp_registry::backend::bundle::<unnamed>::BackendImpl::PackageImpl::~PackageImpl
!!	8     dp_registry::backend::bundle::<unnamed>::BackendImpl::PackageImpl::disposing
!!	9     dp_registry::backend::Package::dispose
!!	10    dp_registry::backend::Package::addEventListener
!!	11    dp_registry::backend::Package::removeEventListener
!!	12    cppu::WeakComponentImplHelper1<Ifc1>::getTypes [with Ifc1 = com::sun::star::deployment::XPackage]
	13    cppu::WeakComponentImplHelper1<Ifc1>::getImplementationId [with Ifc1 = com::sun::star::deployment::XPackage]
	14    dp_registry::backend::bundle::<unnamed>::BackendImpl::PackageImpl::isRegistered_
!!	15    dp_registry::backend::bundle::<unnamed>::BackendImpl::PackageImpl::processPackage_
!!	16    dp_registry::backend::Package::addModifyListener
!!	17    dp_registry::backend::Package::removeModifyListener
!!	18    dp_registry::backend::Package::createAbortChannel
	19    dp_registry::backend::Package::isRegistered

An offset of 1 (somehow) [urgh!] - why ? mismatch with bitmask ?



** Well !!!
	+ now we have it working well ...
		+ everything is broken :-)
	+ and we get the copy-relocs problem again ...
	+ [ FIXME: should we just have a hidden visibility
	    symbol / label that points into the vtable
	    and link our vtrelocs to that ? ]


** FIXME:
	+ build test 
		+ why do our tests not work here ?
		+ ho hum ...


** Binutils hack:
	+ post-process the section, and downgrade the reloc ?
		+ in per-backend specific foo ?
	+ re-write the relocs ?

	+ load the section - force in the relocs,
		+ clobber them just before we sort relocs (?)
		+ doesn't change the section size of course.

	+ FIXME: chase visibility through linking ...
		+ look at reloc sorting etc.
		+ look at targets ...
			+ can we easily locate .suse.vtrelocs ?
			+ can we find relocations into it ?
			+ can we determine -which- are the 'dest'
			  relocs %3 or something ?

A typical soffice.bin symbol search:

	* what is obvious:
		+ ordering is *totally* crack smoking ...
		+ if a vtable is defined - then we have the info to fix it up.

		+ the problem is ...
			+ copy relocs [!]

		+ if *dest* is clobbered ...
			+ we still -copy- **from** (potentially) soffice.bin ...
				+ can give a chain-of-poisoning - that runs
				  well outside soffice.bin ...
			+ *so* !?
			+ urgh ... do we need to manual symbol lookup
			  avoiding soffice.bin ?
				+ does that fix it ?

	* Apparently ...
		+ relocation processing happens in a pseudo-random
		  order too [!]
		+ ** Surely **
			+ there must be an 'init' order that we can
			  bootstrap off ?
			+ perhaps that happens after copy-reloc
			  processing too !?
			+ can we re-use that order in advance ?

lookup in file=/usr/lib/ooo-2.0/program/soffice.bin [0]

lookup in file=/usr/lib/ooo-2.0/program/libvcl680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libsvl680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libsvt680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libutl680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libtl680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libi18nisolang1gcc3.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libcomphelp4gcc3.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libucbhelper4gcc3.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libvos3gcc3.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libuno_cppuhelpergcc3.so.3 [0]
lookup in file=/usr/lib/ooo-2.0/program/libuno_cppu.so.3 [0]
lookup in file=/usr/lib/ooo-2.0/program/libuno_sal.so.3 [0]
lookup in file=/usr/lib/ooo-2.0/program/libtk680li.so [0]
lookup in file=/usr/lib/libXext.so.6 [0]
lookup in file=/usr/lib/libSM.so.6 [0]
lookup in file=/usr/lib/libICE.so.6 [0]
lookup in file=/usr/lib/libX11.so.6 [0]
lookup in file=/lib/libdl.so.2 [0]
lookup in file=/lib/libpthread.so.0 [0]
lookup in file=/usr/lib/libstdc++.so.6 [0]
lookup in file=/lib/libm.so.6 [0]
lookup in file=/lib/libgcc_s.so.1 [0]
lookup in file=/lib/libc.so.6 [0]
lookup in file=/usr/lib/ooo-2.0/program/libpsp680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libsot680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libbasegfx680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libicuuc.so.36 [0]
lookup in file=/usr/lib/ooo-2.0/program/libicule.so.36 [0]
lookup in file=/usr/lib/ooo-2.0/program/libjvmaccessgcc3.so.3 [0]
lookup in file=/usr/lib/libfreetype.so.6 [0]
lookup in file=/lib/libz.so.1 [0]
lookup in file=/usr/lib/libjpeg.so.62 [0]
lookup in file=/usr/lib/ooo-2.0/program/libjvmfwk.so.3 [0]
lookup in file=/usr/lib/ooo-2.0/program/libuno_salhelpergcc3.so.3 [0]
lookup in file=/lib/libcrypt.so.1 [0]
lookup in file=/usr/lib/libXau.so.6 [0]
lookup in file=/usr/lib/libxcb-xlib.so.0 [0]
lookup in file=/usr/lib/libxcb.so.1 [0]
lookup in file=/lib/ld-linux.so.2 [0]
lookup in file=/usr/lib/ooo-2.0/program/libicudata.so.36 [0]
lookup in file=/usr/lib/libxml2.so.2 [0]
lookup in file=/usr/lib/dri/fglrx_dri.so [0]
lookup in file=/usr/lib/libstdc++.so.5 [0]
lookup in file=/lib/librt.so.1 [0]
lookup in file=/usr/lib/xorg/libGL.so.1 [0]
lookup in file=/usr/lib/ooo-2.0/program/libgcc3_uno.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libexlink680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libreg.so.3 [0]
lookup in file=/usr/lib/ooo-2.0/program/libstore.so.3 [0]
lookup in file=/usr/lib/ooo-2.0/program/libunsafe_uno_uno.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libuno_purpenvhelpergcc3.so.3 [0]
lookup in file=/usr/lib/ooo-2.0/program/desktopbe1.uno.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libspl_unx680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libfwl680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libfwi680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libsfx680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libfwe680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libsb680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libxcr680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libj680li_g.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libfwk680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libspl680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libfilterconfig1.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libsvx680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libavmedia680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libxo680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libgo680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/liblng680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libi18nutilgcc3.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libdtransX11680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libuui680li.so [0]
lookup in file=/usr/lib/ooo-2.0/program/libsw680li.so [0]

** Processing relocs **

      9962:	relocation processing: /usr/lib/libxml2.so.2 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libicudata.so.36 (lazy)
      9962:	relocation processing: /usr/lib/libxcb.so.1 (lazy)
      9962:	relocation processing: /usr/lib/libxcb-xlib.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libXau.so.6 (lazy)
      9962:	relocation processing: /lib/libcrypt.so.1 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libuno_salhelpergcc3.so.3 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libjvmfwk.so.3 (lazy)
      9962:	relocation processing: /usr/lib/libjpeg.so.62 (lazy)
      9962:	relocation processing: /lib/libz.so.1 (lazy)
      9962:	relocation processing: /usr/lib/libfreetype.so.6 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libjvmaccessgcc3.so.3 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libicule.so.36 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libicuuc.so.36 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libbasegfx680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsot680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libpsp680li.so (lazy)
      9962:	relocation processing: /lib/libc.so.6 (lazy)
      9962:	relocation processing: /lib/libgcc_s.so.1 (lazy)
      9962:	relocation processing: /lib/libm.so.6 (lazy)
      9962:	relocation processing: /usr/lib/libstdc++.so.6 (lazy)
      9962:	relocation processing: /lib/libpthread.so.0 (lazy)
      9962:	relocation processing: /lib/libdl.so.2 (lazy)
      9962:	relocation processing: /usr/lib/libX11.so.6 (lazy)
      9962:	relocation processing: /usr/lib/libICE.so.6 (lazy)
      9962:	relocation processing: /usr/lib/libSM.so.6 (lazy)
      9962:	relocation processing: /usr/lib/libXext.so.6 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libtk680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libuno_sal.so.3 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libuno_cppu.so.3 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libuno_cppuhelpergcc3.so.3 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libvos3gcc3.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libucbhelper4gcc3.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libcomphelp4gcc3.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libi18nisolang1gcc3.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libtl680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libutl680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsvt680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsvl680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libvcl680li.so (lazy)
      9962:	relocation processing: ./soffice.bin (lazy)
      9962:	relocation processing: /lib/ld-linux.so.2
      9962:	relocation processing: /usr/lib/libogg.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libjack.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libasound.so.2 (lazy)
      9962:	relocation processing: /usr/lib/libFLAC.so.8 (lazy)
      9962:	relocation processing: /lib/libexpat.so.1 (lazy)
      9962:	relocation processing: /usr/lib/libstartup-notification-1.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libportaudio.so.2 (lazy)
      9962:	relocation processing: /usr/lib/libsndfile.so.1 (lazy)
      9962:	relocation processing: /usr/lib/libpcre.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libxcb-render.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libxcb-render-util.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libpng12.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libglitz.so.1 (lazy)
      9962:	relocation processing: /usr/lib/libpangoft2-1.0.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libXcursor.so.1 (lazy)
      9962:	relocation processing: /usr/lib/libXrandr.so.2 (lazy)
      9962:	relocation processing: /usr/lib/libXi.so.6 (lazy)
      9962:	relocation processing: /usr/lib/libXinerama.so.1 (lazy)
      9962:	relocation processing: /usr/lib/libXrender.so.1 (lazy)
      9962:	relocation processing: /usr/lib/libfontconfig.so.1 (lazy)
      9962:	relocation processing: /usr/lib/libXfixes.so.3 (lazy)
      9962:	relocation processing: /usr/lib/libXdamage.so.1 (lazy)
      9962:	relocation processing: /usr/lib/libXcomposite.so.1 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libvclplug_gen680li.so (lazy)
      9962:	relocation processing: /usr/lib/libglib-2.0.so.0 (lazy)
      9962:	relocation processing: /lib/librt.so.1 (lazy)
      9962:	relocation processing: /usr/lib/libgthread-2.0.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libgmodule-2.0.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libgobject-2.0.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libcairo.so.2 (lazy)
      9962:	relocation processing: /usr/lib/libpango-1.0.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libpangocairo-1.0.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libgdk_pixbuf-2.0.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libatk-1.0.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libgdk-x11-2.0.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libgtk-x11-2.0.so.0 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libvclplug_gtk680li.so (lazy)
      9962:	relocation processing: /lib/libnsl.so.1 (lazy)
      9962:	relocation processing: /lib/libnss_compat.so.2 (lazy)
      9962:	relocation processing: /lib/libnss_files.so.2 (lazy)
      9962:	relocation processing: /lib/libnss_nis.so.2 (lazy)
      9962:	relocation processing: /usr/lib/libelf.so.1 (lazy)
      9962:	relocation processing: /usr/lib/bug-buddy/libbreakpad.so.0 (lazy)
      9962:	relocation processing: /usr/lib/gtk-2.0/modules/libgnomebreakpad.so (lazy)
      9962:	relocation processing: /usr/lib/gconv/ISO8859-1.so (lazy)
      9962:	relocation processing: /usr/lib/xorg/libGL.so.1
      9962:	relocation processing: /usr/lib/libstdc++.so.5
      9962:	relocation processing: /usr/lib/dri/fglrx_dri.so
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libgcc3_uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libstore.so.3 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libreg.so.3 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libexlink680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/servicemgr.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/shlibloader.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/simplereg.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/nestedreg.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/typemgr.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/implreg.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/security.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libuno_purpenvhelpergcc3.so.3 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libunsafe_uno_uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/regtypeprov.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/configmgr2.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/typeconverter.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/sysmgr1.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/desktopbe1.uno.so (lazy)
      9962:	relocation processing: /usr/lib/libORBit-2.so.0 (lazy)
      9962:	relocation processing: /usr/lib/libgconf-2.so.4 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/gconfbe1.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/behelper.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/sax.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/localebe1.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/uriproc.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libspl680li.so (lazy)
      9962:	relocation processing: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so (lazy)
      9962:	relocation processing: /usr/lib/gtk-2.0/2.10.0/engines/libpixmap.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libpackage2.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfwi680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfwl680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfileacc.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libucb1.so (lazy)
      9962:	relocation processing: /lib/libutil.so.1 (lazy)
      9962:	relocation processing: /lib/libresolv.so.2 (lazy)
      9962:	relocation processing: /usr/lib/libavahi-client.so.3 (lazy)
      9962:	relocation processing: /usr/lib/libavahi-common.so.3 (lazy)
      9962:	relocation processing: /usr/lib/libavahi-glib.so.1 (lazy)
      9962:	relocation processing: /usr/lib/libcrypto.so.0.9.8 (lazy)
      9962:	relocation processing: /usr/lib/libssl.so.0.9.8 (lazy)
      9962:	relocation processing: /lib/libdbus-1.so.3 (lazy)
      9962:	relocation processing: /usr/lib/libdbus-glib-1.so.2 (lazy)
      9962:	relocation processing: /usr/lib/libgnomevfs-2.so.0 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/ucpgvfs1.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libucpfile1.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libj680li_g.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libxcr680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsb680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfwe680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsfx680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfwk680li.so (lazy)
      9962:	relocation processing: /usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so (lazy)
      9962:	relocation processing: /usr/lib/pango/1.6.0/modules/pango-basic-fc.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libi18nutilgcc3.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/liblng680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libgo680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libxo680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libavmedia680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsvx680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libuui680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfilterconfig1.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libdtransX11680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libsw680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libicui18n.so.36 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/i18npool.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/liblocaledata_en.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/fsstorage.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libxstor.so (lazy)
      9962:	relocation processing: /usr/lib/libcups.so.2 (lazy)
      9969:	relocation processing: /lib/libc.so.6 (lazy)
      9969:	relocation processing: /lib/libdl.so.2 (lazy)
      9969:	relocation processing: /lib/libncurses.so.5 (lazy)
      9969:	relocation processing: /lib/libhistory.so.5 (lazy)
      9969:	relocation processing: /lib/libreadline.so.5 (lazy)
      9969:	relocation processing: sh (lazy)
      9969:	relocation processing: /lib/ld-linux.so.2
      9962:	relocation processing: /usr/lib/libsasl2.so.2 (lazy)
      9962:	relocation processing: /usr/lib/liblber-2.4.so.2 (lazy)
      9962:	relocation processing: /usr/lib/libldap-2.4.so.2 (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/ldapbe2.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/vbaevents680li.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libdbtools680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libfrm680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/introspection.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/reflection.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libevtatt.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libmcnttype.so (lazy)
      9962:	relocation processing: /usr/lib/libdb-4.5.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/libdeploymentmisc680li.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/deployment680li.uno.so (lazy)
      9962:	relocation processing: /usr/lib/ooo-2.0/program/ucpexpand1.uno.so (lazy)




ldd ./libvcl680li.so 
        linux-gate.so.1 =>  (0xffffe000)
        libpsp680li.so => /opt/OOInstall/program/./libpsp680li.so (0xb7c15000)
        libsot680li.so => /opt/OOInstall/program/./libsot680li.so (0xb7bc7000)
        libutl680li.so => /opt/OOInstall/program/./libutl680li.so (0xb7b56000)
        libtl680li.so => /opt/OOInstall/program/./libtl680li.so (0xb7ad2000)
        libi18nisolang1gcc3.so => /opt/OOInstall/program/./libi18nisolang1gcc3.so (0xb7acb000)
        libcomphelp4gcc3.so => /opt/OOInstall/program/./libcomphelp4gcc3.so (0xb79f1000)
        libucbhelper4gcc3.so => /opt/OOInstall/program/./libucbhelper4gcc3.so (0xb7994000)
        libuno_cppuhelpergcc3.so.3 => /opt/OOInstall/program/./libuno_cppuhelpergcc3.so.3 (0xb7911000)
        libuno_cppu.so.3 => /opt/OOInstall/program/./libuno_cppu.so.3 (0xb78e3000)
        libvos3gcc3.so => /opt/OOInstall/program/./libvos3gcc3.so (0xb78c0000)
        libuno_sal.so.3 => /opt/OOInstall/program/./libuno_sal.so.3 (0xb787a000)
        libbasegfx680li.so => /opt/OOInstall/program/./libbasegfx680li.so (0xb7825000)
        libicuuc.so.36 => /opt/OOInstall/program/./libicuuc.so.36 (0xb7714000)
        libicule.so.36 => /opt/OOInstall/program/./libicule.so.36 (0xb76d4000)
        libjvmaccessgcc3.so.3 => /opt/OOInstall/program/./libjvmaccessgcc3.so.3 (0xb76cb000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb763f000)
        libz.so.1 => /lib/libz.so.1 (0xb762c000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xb7511000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xb7502000)
        libdl.so.2 => /lib/libdl.so.2 (0xb74fe000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb74e6000)
        libstlport_gcc.so => /opt/OOInstall/program/./libstlport_gcc.so (0xb741c000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb732e000)
        libm.so.6 => /lib/libm.so.6 (0xb7309000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb72fb000)
        libc.so.6 => /lib/libc.so.6 (0xb71c8000)
        libjvmfwk.so.3 => /opt/OOInstall/program/./libjvmfwk.so.3 (0xb71af000)
        libuno_salhelpergcc3.so.3 => /opt/OOInstall/program/./libuno_salhelpergcc3.so.3 (0xb71aa000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7178000)
        libicudata.so.36 => /opt/OOInstall/program/./libicudata.so.36 (0xb6b56000)
        libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb6b53000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb6b3a000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xb6b36000)
        /lib/ld-linux.so.2 (0x80000000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb69f6000)

** FIXME: 'inits' **
   ... are a far better fit ...

	OTOH - memory protection etc. ? ... ;-)



     10963:	calling init: /lib/libpthread.so.0
     10963:	calling init: /lib/libc.so.6
     10963:	calling init: /usr/lib/libXau.so.6
     10963:	calling init: /usr/lib/libxcb.so.1
     10963:	calling init: /usr/lib/libxcb-xlib.so.0
     10963:	calling init: /lib/libcrypt.so.1
     10963:	calling init: /usr/lib/libjpeg.so.62
     10963:	calling init: /lib/libz.so.1
     10963:	calling init: /usr/lib/libfreetype.so.6
     10963:	calling init: /lib/libgcc_s.so.1
     10963:	calling init: /lib/libm.so.6
     10963:	calling init: /usr/lib/libstdc++.so.6
     10963:	calling init: /usr/lib/ooo-2.0/program/libicuuc.so.36
     10963:	calling init: /usr/lib/ooo-2.0/program/libicule.so.36
     10963:	calling init: /lib/libdl.so.2
     10963:	calling init: /usr/lib/libxml2.so.2
     10963:	calling init: /usr/lib/libX11.so.6
     10963:	calling init: /usr/lib/libICE.so.6
     10963:	calling init: /usr/lib/libSM.so.6
     10963:	calling init: /usr/lib/libXext.so.6
     10963:	calling init: /usr/lib/ooo-2.0/program/libuno_sal.so.3
     10963:	calling init: /usr/lib/ooo-2.0/program/libuno_salhelpergcc3.so.3
     10963:	calling init: /usr/lib/ooo-2.0/program/libuno_cppu.so.3
     10963:	calling init: /usr/lib/ooo-2.0/program/libjvmaccessgcc3.so.3
     10963:	calling init: /usr/lib/ooo-2.0/program/libuno_cppuhelpergcc3.so.3
     10963:	calling init: /usr/lib/ooo-2.0/program/libjvmfwk.so.3
     10963:	calling init: /usr/lib/ooo-2.0/program/libbasegfx680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libvos3gcc3.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libucbhelper4gcc3.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libcomphelp4gcc3.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libi18nisolang1gcc3.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libtl680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libutl680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libsot680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libpsp680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libvcl680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libtk680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libsvl680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libsvt680li.so
     10963:	initialize program: ./soffice.bin
     10963:	calling init: /usr/lib/libogg.so.0
     10963:	calling init: /lib/libexpat.so.1
     10963:	calling init: /usr/lib/libpcre.so.0
     10963:	calling init: /usr/lib/libxcb-render.so.0
     10963:	calling init: /usr/lib/libxcb-render-util.so.0
     10963:	calling init: /usr/lib/libfontconfig.so.1
     10963:	calling init: /usr/lib/libFLAC.so.8
     10963:	calling init: /usr/lib/libsndfile.so.1
     10963:	calling init: /usr/lib/libpng12.so.0
     10963:	calling init: /usr/lib/libglitz.so.1
     10963:	calling init: /usr/lib/libglib-2.0.so.0
     10963:	calling init: /lib/librt.so.1
     10963:	calling init: /usr/lib/libgthread-2.0.so.0
     10963:	calling init: /usr/lib/libjack.so.0
     10963:	calling init: /usr/lib/libasound.so.2
     10963:	calling init: /usr/lib/libportaudio.so.2
     10963:	calling init: /usr/lib/libstartup-notification-1.so.0
     10963:	calling init: /usr/lib/libXrender.so.1
     10963:	calling init: /usr/lib/libXfixes.so.3
     10963:	calling init: /usr/lib/libXcursor.so.1
     10963:	calling init: /usr/lib/libXdamage.so.1
     10963:	calling init: /usr/lib/libXrandr.so.2
     10963:	calling init: /usr/lib/libXi.so.6
     10963:	calling init: /usr/lib/libXinerama.so.1
     10963:	calling init: /usr/lib/libXcomposite.so.1
     10963:	calling init: /usr/lib/ooo-2.0/program/libvclplug_gen680li.so
     10963:	calling init: /usr/lib/libgmodule-2.0.so.0
     10963:	calling init: /usr/lib/libgobject-2.0.so.0
     10963:	calling init: /usr/lib/libcairo.so.2
     10963:	calling init: /usr/lib/libpango-1.0.so.0
     10963:	calling init: /usr/lib/libpangoft2-1.0.so.0
     10963:	calling init: /usr/lib/libpangocairo-1.0.so.0
     10963:	calling init: /usr/lib/libgdk_pixbuf-2.0.so.0
     10963:	calling init: /usr/lib/libatk-1.0.so.0
     10963:	calling init: /usr/lib/libgdk-x11-2.0.so.0
     10963:	calling init: /usr/lib/libgtk-x11-2.0.so.0
     10963:	calling init: /usr/lib/ooo-2.0/program/libvclplug_gtk680li.so
     10963:	calling init: /lib/libnsl.so.1
     10963:	calling init: /lib/libnss_compat.so.2
     10963:	calling init: /lib/libnss_files.so.2
     10963:	calling init: /lib/libnss_nis.so.2
     10963:	calling init: /usr/lib/libelf.so.1
     10963:	calling init: /usr/lib/bug-buddy/libbreakpad.so.0
     10963:	calling init: /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
     10963:	calling init: /usr/lib/gconv/ISO8859-1.so
     10963:	calling init: /usr/lib/xorg/libGL.so.1
     10963:	calling init: /usr/lib/libstdc++.so.5
     10963:	calling init: /usr/lib/dri/fglrx_dri.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libgcc3_uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libstore.so.3
     10963:	calling init: /usr/lib/ooo-2.0/program/libreg.so.3
     10963:	calling init: /usr/lib/ooo-2.0/program/libexlink680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/servicemgr.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/shlibloader.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/simplereg.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/nestedreg.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/typemgr.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/implreg.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/security.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libuno_purpenvhelpergcc3.so.3
     10963:	calling init: /usr/lib/ooo-2.0/program/libunsafe_uno_uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/regtypeprov.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/configmgr2.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/typeconverter.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/sysmgr1.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/desktopbe1.uno.so
     10963:	calling init: /usr/lib/libORBit-2.so.0
     10963:	calling init: /usr/lib/libgconf-2.so.4
     10963:	calling init: /usr/lib/ooo-2.0/program/gconfbe1.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/behelper.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/sax.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/localebe1.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/uriproc.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libspl680li.so
     10963:	calling init: /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so
     10963:	calling init: /usr/lib/gtk-2.0/2.10.0/engines/libpixmap.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libpackage2.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libfwi680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libfwl680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libfileacc.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libucb1.so
     10963:	calling init: /lib/libutil.so.1
     10963:	calling init: /lib/libresolv.so.2
     10963:	calling init: /lib/libdbus-1.so.3
     10963:	calling init: /usr/lib/libavahi-common.so.3
     10963:	calling init: /usr/lib/libavahi-glib.so.1
     10963:	calling init: /usr/lib/libdbus-glib-1.so.2
     10963:	calling init: /usr/lib/libavahi-client.so.3
     10963:	calling init: /usr/lib/libcrypto.so.0.9.8
     10963:	calling init: /usr/lib/libssl.so.0.9.8
     10963:	calling init: /usr/lib/libgnomevfs-2.so.0
     10963:	calling init: /usr/lib/ooo-2.0/program/ucpgvfs1.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libucpfile1.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libj680li_g.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libxcr680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libsb680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libfwe680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libsfx680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libfwk680li.so
     10963:	calling init: /usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so
     10963:	calling init: /usr/lib/pango/1.6.0/modules/pango-basic-fc.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libi18nutilgcc3.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libgo680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libxo680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/liblng680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libavmedia680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libsvx680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libuui680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libfilterconfig1.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libdtransX11680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libsw680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libicui18n.so.36
     10963:	calling init: /usr/lib/ooo-2.0/program/i18npool.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/liblocaledata_en.so
     10963:	calling init: /usr/lib/ooo-2.0/program/fsstorage.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libxstor.so
     10963:	calling init: /usr/lib/ooo-2.0/program/vbaevents680li.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libdbtools680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libfrm680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/introspection.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/reflection.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libevtatt.so
     10963:	calling init: /usr/lib/libcups.so.2
     10970:	calling init: /lib/libc.so.6
     10970:	calling init: /lib/libdl.so.2
     10970:	calling init: /lib/libncurses.so.5
     10970:	calling init: /lib/libhistory.so.5
     10970:	calling init: /lib/libreadline.so.5
     10963:	calling init: /usr/lib/libdb-4.5.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libdeploymentmisc680li.so
     10963:	calling init: /usr/lib/ooo-2.0/program/deployment680li.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/ucpexpand1.uno.so
     10963:	calling init: /usr/lib/liblber-2.4.so.2
     10963:	calling init: /usr/lib/libsasl2.so.2
     10963:	calling init: /usr/lib/libldap-2.4.so.2
     10963:	calling init: /usr/lib/ooo-2.0/program/ldapbe2.uno.so
     10963:	calling init: /usr/lib/ooo-2.0/program/libmcnttype.so


** FIXME:
	+ working well ... but we now export a -load- of named relocs to
	  vtables that we didn't (apparently) before (?)
		+ is this good in the long run ? (comdat?)
		+ how can that have changed ? [ of course our own relocations ... but ... ;-]
	+ diff /tmp/old -> /tmp/new ...
	+ will this clobber linking in fact ?
		+ all these are 'dest' vtables ...
		+ [ FIXME: ugly hacks to resolve internally ? ;-]
			+ falls over the copy-reloc problem again ... ;-)
		+ unless we re-do glibc foo ...



FIXME use:
	-Wl,--Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
	
FIXME: why does it crash ?


FIXME:
	PropertySetMixin ...
		+ has no vtable to copy from ! :-)
		+ but then defines no virtual methods either ...
		+ so - surely, we should copy from the next parent up ?
			+ how does gcc know not to emit a vtable ?
			+ is there just no trigger method ?
		+ can we build a test ? ...
	


TODO:
	gcc - do we need the custom 'decl' logic ?
		+ is it enough just to initialize the decl in class.c ?
		+ add a command-line option, and bin the environment variables ...
			+ add a 'debug foo' env. var in 1 place
	binutils ...
		+ SEC_EXCLUDE - if we don't have anything in the section ...


** FIXME: 
     29526:     binding file /opt/NNInstall/program/libsvt680li.so [0] to /opt/NNInstall/program/libsvt680li.so [0]: normal symbol `sRTF_SHADOW'

	svtools/source/svrtf/rtfkeywd.hxx [ fix me ! ]
		+ broken - linking wise...
cf.	sw/source/filter/rtf/ ...

	svtools/inc/htmlkeywd

		+ 2.5% of the total ! ;-)
		+ 1481 unique named relocs ... [!]
			+ and a ton of symbols and size etc.

		+ 911 - 'sHTML' relocations as well [!]


** FIXME:
	+ construction vtables:
		+ need a regression test
		+ ensure the vtrelocs refer to the right symbol
			+ (they do not !) ;-)

michael@linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> MOREDEBUG=1 g++  -fmessage-length=0 -S -Os -fno-strict-aliasing   -fvisibility=hidden -I.  -I../../unxlngi6.pro/inc/svcontnr -I../inc -I../../inc/pch -I../../inc -I../../unx/inc -I../../unxlngi6.pro/inc -I. -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc/stl -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc/external -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solenv/unxlngi6/inc -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solenv/inc -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/res -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc/stl -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solenv/inc/Xp31 -I/usr/lib/jvm/java/include -I/usr/lib/jvm/java/include/linux -I/usr/lib/jvm/java/include/native_threads/include -I/usr/include     -I/home/opt/OpenOffice/HEAD/build/ooh680-m3/solver/680/unxlngi6.pro/inc/offuh -I. -I../../res -I. -pipe -mtune=pentiumpro -fvisibility-inlines-hidden -Wall -Wextra -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy     -Wno-non-virtual-dtor   -fpic -DLINUX -DUNX -DVCL -DGCC -DC341 -DINTEL -DCVER=C341 -DNPTL -DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DHAVE_GCC_VISIBILITY_FEATURE -D__DMAKE -DUNIX -DCPPU_ENV=gcc3 -DGXX_INCLUDE_PATH=/home/opt/gcc/bin/../lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../include/c++/4.2.1 -DSUPD=680 -DPRODUCT -DNDEBUG -DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DGSTREAMER -DCUI -DSOLAR_JAVA -DOOH680=OOH680   -DSVT_DLLIMPLEMENTATION -DSHAREDLIB -D_DLL_   -fexceptions -fno-enforce-eh-specs -DEXCEPTIONS_ON  -o /tmp/fileview.s /home/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr/fileview.cxx >& /tmp/fileview.s.output
michael@linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTv0_n12_N3vos6OTimerD1Ev
virtual thunk to vos::OTimer::~OTimer()
michael@linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTCN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE0_N3vos6OTimerE:
_ZTCN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE0_N3vos6OTimerE:
michael@linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTVN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE:
_ZTVN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE:
michael@linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTVN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE 
vtable for (anonymous namespace)::CallbackTimer
michael@linux:/opt/OpenOffice/HEAD/build/ooh680-m3/svtools/source/contnr> c++filt _ZTCN105_GLOBAL__N__home_opt_OpenOffice_HEAD_build_ooh680_m3_svtools_source_contnr_fileview.cxx_00000000_BCEF14CA13CallbackTimerE0_N3vos6OTimerE 
construction vtable for vos::OTimer-in-(anonymous namespace)::CallbackTimer



../unxlngi6.pro/slo/basdoc.o:(.data.rel.ro._ZTC13BasicDocShell48_9SotObject[vtable
for BasicDocShell]+0x74): undefined reference to `virtual thunk to
SotObject::~SotObject()'

Basically bogus: ... :-)

Constr VTable for SotObject-in-BasicDocShell
	0     0u
	1     0u
	2     0u
	3     0u
	4     0u
	5     0u
	6     0u
	7     0u
	8     0u
	9     0u
	10    16u
	11    (int (*)(...))0
	12    (int (*)(...))(& _ZTI9SotObject)
	13    SotObject::~SotObject
	14    SotObject::~SotObject
	15    SotObject::Close
	16    SotObject::GetSvFactory
	17    SotObject::Cast
	18    SotObject::TestObjRef
	19    SotObject::TestInvariant
	20    SotObject::GetInterface
	21    SotObject::QueryDelete
	22    SotObject::CreateAggObj
	23    SotObject::FuzzyLock
	24    -16u
	25    -16u
	26    (int (*)(...))-0x000000010
	27    (int (*)(...))(& _ZTI9SotObject)
	28    SotObject::_ZTv0_n12_N9SotObjectD1Ev
	29    SotObject::_ZTv0_n12_N9SotObjectD0Ev
	30    SotObject::_ZTv0_n16_N9SotObject11QueryDeleteEv
Inherited from:
VTable for SfxObjectShell
	0     60u
	1     44u
	2     (int (*)(...))0
	3     (int (*)(...))(& _ZTI14SfxObjectShell)
	4     SfxBroadcaster::ListenersGone
	5     SfxObjectShell::Type
	6     SfxObjectShell::IsA
	7     SfxObjectShell::~SfxObjectShell
	8     SfxObjectShell::~SfxObjectShell
	9     SfxShell::GetGlobalName
	10    SfxObjectShell::GetInterface
	11    SfxShell::GetUndoManager
	12    SfxObjectShell::Invalidate
	13    SfxShell::Activate
	14    SfxShell::Deactivate
	15    SfxShell::ParentActivate
	16    SfxShell::ParentDeactivate
	17    SfxShell::HasUIFeature
	18    SfxObjectShell::GetObjectShell
	19    SfxShell::CreateItemSet
	20    SfxShell::ApplyItemSet
	21    SfxObjectShell::ModifyChanged
	22    SfxObjectShell::Close
	23    __cxa_pure_virtual
	24    SfxObjectShell::GetAPIName
	25    SfxObjectShell::DoSaveCompleted
	26    SfxObjectShell::LoadOwnFormat
	27    SfxObjectShell::SaveAsOwnFormat
	28    SfxObjectShell::ConvertFrom
	29    SfxObjectShell::ConvertTo
	30    SfxObjectShell::InitNew
	31    SfxObjectShell::Load
	32    SfxObjectShell::LoadFrom
	33    SfxObjectShell::Save
	34    SfxObjectShell::SaveAs
	35    SfxObjectShell::SaveCompleted
	36    SfxObjectShell::SwitchPersistance
	37    SfxObjectShell::UpdateLinks
	38    SfxObjectShell::QueryTitle
	39    SfxObjectShell::CreateDocumentInfoDialog
	40    SfxObjectShell::ViewAssigned
	41    SfxObjectShell::PrepareClose
	42    SfxObjectShell::IsInformationLost
	43    SfxObjectShell::GetHiddenInformationState


Mis comparison:

p src_fn->decl_minimal->context->type.name


* Is this a bogus warning: ?

Making: ../../../unxlngi6.pro/slo/ViewTabBar.obj
In file included from /home/opt/OpenOffice/HEAD/build/ooh680-m3/sd/source/ui/view/ViewTabBar.cxx:50:
../inc/DrawController.hxx:130: warning: 'sd::DrawController' has a field 'sd::DrawController::<anonymous>' whose type uses the anonymous namespace
../inc/DrawController.hxx:130: warning: 'sd::DrawController' has a base '<unnamed>::BroadcastHelperOwner' whose type uses the anonymous namespace



These numbers are from a dlopen of libsvx:

After: -Bsym with vtreloc & no thunks: HHInstall

==6245== 
==6245== Events    : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
==6245== Collected : 93792593 30621698 12509521 5348 982519 40248 4415 106999 21671
==6245== 
==6245== I   refs:      93,792,593
==6245== I1  misses:         5,348
==6245== L2i misses:         4,415
==6245== I1  miss rate:        0.0%
==6245== L2i miss rate:        0.0%
==6245== 
==6245== D   refs:      43,131,219  (30,621,698 rd + 12,509,521 wr)
==6245== D1  misses:     1,022,767  (   982,519 rd +     40,248 wr)
==6245== L2d misses:       128,670  (   106,999 rd +     21,671 wr)
==6245== D1  miss rate:        2.3% (       3.2%   +        0.3%  )
==6245== L2d miss rate:        0.2% (       0.3%   +        0.1%  )
==6245== 
==6245== L2 refs:        1,028,115  (   987,867 rd +     40,248 wr)
==6245== L2 misses:        133,085  (   111,414 rd +     21,671 wr)
==6245== L2 miss rate:         0.0% (       0.0%   +        0.1%  )


After: (-Bsym with vtreloc) NNInstall

==5654== Events    : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
==5654== Collected : 93934554 30683111 12523945 5401 1042727 39626 4460 108467 21739
==5654== 
==5654== I   refs:      93,934,554
==5654== I1  misses:         5,401
==5654== L2i misses:         4,460
==5654== I1  miss rate:        0.0%
==5654== L2i miss rate:        0.0%
==5654== 
==5654== D   refs:      43,207,056  (30,683,111 rd + 12,523,945 wr)
==5654== D1  misses:     1,082,353  ( 1,042,727 rd +     39,626 wr)
==5654== L2d misses:       130,206  (   108,467 rd +     21,739 wr)
==5654== D1  miss rate:        2.5% (       3.3%   +        0.3%  )
==5654== L2d miss rate:        0.3% (       0.3%   +        0.1%  )
==5654== 
==5654== L2 refs:        1,087,754  ( 1,048,128 rd +     39,626 wr)
==5654== L2 misses:        134,666  (   112,927 rd +     21,739 wr)
==5654== L2 miss rate:         0.0% (       0.0%   +        0.1%  )

Before: (-Bsym - no vtreloc) OOInstall

==5757== 
==5757== Events    : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
==5757== Collected : 103124440 33576208 13653348 5330 1063384 46609 4394 115172 21304
==5757== 
==5757== I   refs:      103,124,440
==5757== I1  misses:          5,330
==5757== L2i misses:          4,394
==5757== I1  miss rate:         0.0%
==5757== L2i miss rate:         0.0%
==5757== 
==5757== D   refs:       47,229,556  (33,576,208 rd + 13,653,348 wr)
==5757== D1  misses:      1,109,993  ( 1,063,384 rd +     46,609 wr)
==5757== L2d misses:        136,476  (   115,172 rd +     21,304 wr)
==5757== D1  miss rate:         2.3% (       3.1%   +        0.3%  )
==5757== L2d miss rate:         0.2% (       0.3%   +        0.1%  )
==5757== 
==5757== L2 refs:         1,115,323  ( 1,068,714 rd +     46,609 wr)
==5757== L2 misses:         140,870  (   119,566 rd +     21,304 wr)
==5757== L2 miss rate:          0.0% (       0.0%   +        0.1%  )

Without -Bsymb-function: PPInstall

==6021== 
==6021== Events    : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
==6021== Collected : 150810465 47775963 19058259 5441 1550394 53953 4440 155020 22712
==6021== 
==6021== I   refs:      150,810,465
==6021== I1  misses:          5,441
==6021== L2i misses:          4,440
==6021== I1  miss rate:         0.0%
==6021== L2i miss rate:         0.0%
==6021== 
==6021== D   refs:       66,834,222  (47,775,963 rd + 19,058,259 wr)
==6021== D1  misses:      1,604,347  ( 1,550,394 rd +     53,953 wr)
==6021== L2d misses:        177,732  (   155,020 rd +     22,712 wr)
==6021== D1  miss rate:         2.4% (       3.2%   +        0.2%  )
==6021== L2d miss rate:         0.2% (       0.3%   +        0.1%  )
==6021== 
==6021== L2 refs:         1,609,788  ( 1,555,835 rd +     53,953 wr)
==6021== L2 misses:         182,172  (   159,460 rd +     22,712 wr)
==6021== L2 miss rate:          0.0% (       0.0%   +        0.1%  )


** So - instead go for size savings ! ;-)
	+ call.c
	+ is there an optimisation that converts a
	  virtual call, to a direct one - if the type is
	  fully known ? [!?]



So - LD_DEBUG=bindings output:

After:

cat /tmp/linklog | sed 's/.*file '// | sed 's/ \[.*//' | sort | uniq -c | sort -n

    456 /usr/lib/libgtk-x11-2.0.so.0
    466 /opt/HHInstall/program/libfwe680li.so
    479 /opt/HHInstall/program/bootstrap.uno.so
    481 /opt/HHInstall/program/liblng680li.so
    515 /usr/lib/libxml2.so.2
    518 /opt/HHInstall/program/i18npool.uno.so
    521 /usr/lib/libORBit-2.so.0
    664 /usr/lib/libdb-4.5.so
    694 /opt/HHInstall/program/libicuuc.so.36
    929 /opt/HHInstall/program/libvcl680li.so
    938 /opt/HHInstall/program/libsfx680li.so
   1061 /opt/HHInstall/program/libfwk680li.so
   1070 /opt/HHInstall/program/libstlport_gcc.so
   1121 /usr/lib/libstdc++.so.6
   1178 /opt/HHInstall/program/configmgr2.uno.so
   1195 /opt/HHInstall/program/libsb680li.so
   1667 /opt/HHInstall/program/libicui18n.so.36
   2308 /opt/HHInstall/program/libsw680li.so
   2664 /opt/HHInstall/program/libsvx680li.so
   2855 /opt/HHInstall/program/libsvt680li.so

with -Bsym-fn
    687 /opt/OOInstall/program/libicuuc.so.36
    943 /opt/OOInstall/program/libvcl680li.so
   1075 /opt/OOInstall/program/libsb680li.so
   1091 /opt/OOInstall/program/libstlport_gcc.so
   1121 /usr/lib/libstdc++.so.6
   1214 /opt/OOInstall/program/configmgr2.uno.so
   1436 /opt/OOInstall/program/libsfx680li.so
   1509 /opt/OOInstall/program/libfwk680li.so
   1637 /opt/OOInstall/program/libicui18n.so.36
   3553 /opt/OOInstall/program/libsvt680li.so
   4037 /opt/OOInstall/program/libsw680li.so
   4418 /opt/OOInstall/program/libsvx680li.so

** so - why not a greater speedup ? - **

before:

   1091 /opt/PPInstall/program/libstlport_gcc.so
   1121 /usr/lib/libstdc++.so.6
   1174 /opt/PPInstall/program/libfwe680li.so
   1181 /opt/PPInstall/program/libtk680li.so
   1214 /opt/PPInstall/program/configmgr2.uno.so
   1266 /opt/PPInstall/program/libcomphelp4gcc3.so
   1509 /opt/PPInstall/program/libfwk680li.so
   1637 /opt/PPInstall/program/libicui18n.so.36
   2591 /opt/PPInstall/program/libsb680li.so
   2801 /opt/PPInstall/program/libsfx680li.so
   3088 /opt/PPInstall/program/libvcl680li.so
   5132 /opt/PPInstall/program/libsw680li.so
   5472 /opt/PPInstall/program/libsvt680li.so
  11718 /opt/PPInstall/program/libsvx680li.so
