ooo-build r11396 - in trunk: . doc patches/src680
- From: michael svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r11396 - in trunk: . doc patches/src680
- Date: Thu, 24 Jan 2008 11:28:26 +0000 (GMT)
Author: michael
Date: Thu Jan 24 11:28:26 2008
New Revision: 11396
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11396&view=rev
Log:
2008-01-24 Michael Meeks <michael meeks novell com>
* patches/src680/suse-vtreloc-binutils.diff,
* patches/src680/suse-vtreloc-glibc.diff,
* patches/src680/suse-vtreloc-gcc.diff: add prototypes.
* patches/src680/link-symb-funct.diff,
* patches/src680/apply: add linking tweak, relegate -Bdirect to
ArkOnly and GentooOnly (it's really not a good win).
* doc/link.txt: scratch notes.
Modified:
trunk/ChangeLog
trunk/doc/bdirect.txt
trunk/doc/link.txt
trunk/patches/src680/apply
Modified: trunk/doc/bdirect.txt
==============================================================================
--- trunk/doc/bdirect.txt (original)
+++ trunk/doc/bdirect.txt Thu Jan 24 11:28:26 2008
@@ -164,7 +164,7 @@
+ add to glibc/version.h:
#define CVSDATE "cvsdate"
#define CONFHOST "i586-suse-linux"
- + hack glibc/Makeconfig - all-subdirs: put 'elf' first.
+ + hack sysd-sorted: move 'elf' to the front
+ binutils
+ readelf ...
Modified: trunk/doc/link.txt
==============================================================================
--- trunk/doc/link.txt (original)
+++ trunk/doc/link.txt Thu Jan 24 11:28:26 2008
@@ -465,4 +465,2255 @@
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
-...
\ No newline at end of file
+...
+
+
+* 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_REEN
TRANT -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 _ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE8getTypesEv
+ .long _ZThn16_N4cppu15WeakImplHelper6IN3com3sun4star3xml3sax24XExtendedDocumentHandlerENS3_4lang12XServiceInfoENS7_15XInitializationENS3_8document9XImporterENSA_7XFilterENS7_10XUnoTunnelEE19getImplementationIdEv
+ .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 _ZThn20_N11SvXMLImport10startCDATAEv
+ .long _ZThn20_N11SvXMLImport8endCDATAEv
+ .long _ZThn20_N11SvXMLImport7commentERKN3rtl8OUStringE
+ .long _ZThn20_N11SvXMLImport14allowLineBreakEv
+ .long _ZThn20_N11SvXMLImport7unknownERKN3rtl8OUStringE
+ .long -24
+ .long _ZTI18SvxXMLXTableImport
+ .long -559026176
+ .long -559026176
+ .long -559026176
+ .long _ZThn24_N11SvXMLImport21getImplementationNameEv
+ .long _ZThn24_N11SvXMLImport15supportsServiceERKN3rtl8OUStringE
+ .long _ZThn24_N11SvXMLImport24getSupportedServiceNamesEv
+ .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 [!]
Modified: trunk/patches/src680/apply
==============================================================================
--- trunk/patches/src680/apply (original)
+++ trunk/patches/src680/apply Thu Jan 24 11:28:26 2008
@@ -196,9 +196,6 @@
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20624
warning-return-values-stlport.diff, jholesov
-# Use -Bdirect linking - this is a really marginal win.
-speed-bdirect.diff, i#58119, brosenk
-
# Fix linkoo, the ultimate hacker tool
fix-linkoo.diff, i#83548, jholesov
@@ -883,6 +880,9 @@
# Push fonts into the ps stream always
pushfont-psstream.diff, i#84481, michael
+# accelerate run-time linking, somewhat experimental ...
+link-symb-funct.diff, michael
+
# search also /usr/share for icons
# it is a temporary hack; we should do more clean FHS compliant installation
# we need a good plan before, though ;-)
@@ -1040,6 +1040,9 @@
[ ArkOnly ]
SectionOwner => brosenk
+# Use -Bdirect linking - this is a really marginal win.
+speed-bdirect.diff, i#58119, brosenk
+
# Db 4.3/4.4 needs -lpthread
system-db-4.3-use-lpthread.diff, i#58474, rengelha
@@ -1251,6 +1254,8 @@
vcl_font-NO_LIST.diff
# linux-headers-2.6.22 issue?!
linux-headers.diff
+# Use -Bdirect linking - this is a really marginal win.
+speed-bdirect.diff, i#58119, brosenk
[ DebianBaseOnly ]
SectionOwner => rengelha
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]