Issue 28110 - linux sparc UNO Changes for Multiple-Inheritance Interface Types
Summary: linux sparc UNO Changes for Multiple-Inheritance Interface Types
Status: CLOSED DUPLICATE of issue 37423
Alias: None
Product: porting
Classification: Code
Component: code (show other issues)
Version: 680
Hardware: Sun Linux, all
: P3 Trivial (vote)
Target Milestone: OOo 2.0
Assignee: sparcmoz
QA Contact: issues@porting
URL:
Keywords:
Depends on: 30219
Blocks: 24507
  Show dependency tree
 
Reported: 2004-04-20 20:01 UTC by sparcmoz
Modified: 2004-12-15 11:26 UTC (History)
4 users (show)

See Also:
Issue Type: TASK
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
diff from 645 to 680 latest (40.30 KB, patch)
2004-04-24 08:17 UTC, sparcmoz
no flags Details | Diff
diff from cvs to my latest 680 (2.88 KB, patch)
2004-04-24 08:18 UTC, sparcmoz
no flags Details | Diff
some more editing, diff to SRC680_m39 (7.25 KB, patch)
2004-05-23 10:27 UTC, sparcmoz
no flags Details | Diff
diff against 645 (includes changes in previous attachment) (39.53 KB, patch)
2004-05-23 10:43 UTC, sparcmoz
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description sparcmoz 2004-04-20 20:01:15 UTC
follows from 24507
Comment 1 sparcmoz 2004-04-20 20:02:59 UTC
This issue fortrcking linux sparc UNO Changes for Multiple-Inheritance Interface
Types
Comment 2 sparcmoz 2004-04-20 20:05:05 UTC
bazik@gentoo.org is away for a while but we shall cc to him 
Comment 3 sparcmoz 2004-04-20 20:38:19 UTC
bazik@gentoo.org is away for a while but we shall cc to him 
Comment 4 sparcmoz 2004-04-24 08:16:11 UTC
I have done some tidyup on the bridges code. Attached is a diff between 645
bridges (that works) and my 680 bridges (that segfaults in testcppu). Also a
diff from the cvs to my latest
Comment 5 sparcmoz 2004-04-24 08:17:38 UTC
Created attachment 14746 [details]
diff from 645 to 680 latest
Comment 6 sparcmoz 2004-04-24 08:18:59 UTC
Created attachment 14747 [details]
diff from cvs to my latest 680
Comment 7 sparcmoz 2004-05-23 10:27:47 UTC
Created attachment 15399 [details]
some more editing, diff to SRC680_m39
Comment 8 sparcmoz 2004-05-23 10:43:56 UTC
Created attachment 15400 [details]
diff against 645 (includes changes in previous attachment)
Comment 9 sparcmoz 2004-06-04 12:34:51 UTC
Some little progress.

(a) the patches attached here (bridges_2405.diff) allow the bridges code to run.
I put extensive traces in the bridges code and can see when it is called from
cpputest there is looping through the codeSnippets and all the other functions
run and return values succesfully, (but I do not know if they are valid). So I
will commit those patches so there is a common base for further testing.

(b) two segfaults have been noticed in cpputest. the problem is these crash with
no stacktrace - just 0x0000. Extensive tracing again has revealed the following
issues.

(1) in cppu/test/test_di.cxx there is a segfault at checkInvalidInterfaceQuery
when it is called from perform_test. The offending code is here:

 Any aRet( xObj->queryInterface( ::getCppuType( (const
lang::IllegalArgumentException *)0 ) ) );

I have been unable to trace this further in gdb or with printf statements as it
appears to call into idl generated code which I cannot trace, or such as
Reference.h ??

(2) If I comment out that call to  checkInvalidInterfaceQuery from perform_test,
then execution proceeds and runs through bridges code snippets and other bridges
code until it will crash in test_di.cxx function performTest (no underscore in
this one). The offending code is at

xLBT->setValues(
aSetData.Bool, aSetData.Char, aSetData.Byte, aSetData.Short, aSetData.UShort,
aSetData.Long, aSetData.ULong, aSetData.Hyper, aSetData.UHyper, aSetData.Float,
aSetData.Double, aSetData.Enum, aSetData.String, aSetData.Interface,
aSetData.Any, aSetData.Sequence, aSetData );



Comment 10 sander_traveling 2004-06-25 13:02:49 UTC
whats the status of this in ooo20040620? 
Comment 11 sparcmoz 2004-06-25 13:26:23 UTC
sparcmoz-->svesik: The patches attached to this issue (bridges_2405.diff) have
been committed to ooo20040620. 

This code compiles and runs OK, by inserting traces I can see it loops through
the bridges code and returns when called from testcppu. Further progress with
debugging is blocked by a segfault in testcppu see IZ 30219. I have built this
code by copy and paste from other platforms plus assembler provided by sb, but I
do not have the technical know-how to complete this alone. 

I have continued to build 680 from cvs up-to-date and the setup installer runs
until it hits uno bridges code where it will crash. This uno problem also
prevents building setup2 with java enabled.   
Comment 12 sparcmoz 2004-08-23 12:34:54 UTC
Currently building in cws_src680_ooo64bit02

Now I got a better backtrace, any comments would be appreciated.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 4080)]
0x74a2bd34 in cpp_mediate (nFunctionIndex=1, nVtableOffset=-268444272,
pCallStack=0x0,
    pRegisterReturn=0xefffdd80)
    at /home/jim/680/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx:290
290                     =
bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
Current language:  auto; currently c++
(gdb) list
285
286             // pCallStack: this, params
287             // eventual [ret*] lies at pCallStack -1
288             // so count down pCallStack by one to keep it simple
289             bridges::cpp_uno::shared::CppInterfaceProxy * pCppI
290                     =
bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy(
291                     static_cast< char * >(*pCallStack) - nVtableOffset);
292             if ((nFunctionIndex & 0x80000000) != 0) {
293                     nFunctionIndex &= 0x7FFFFFFF;
294                     --pCallStack;
(gdb) bt
#0  0x74a2bd34 in cpp_mediate (nFunctionIndex=1, nVtableOffset=-268444272,
pCallStack=0x0,
    pRegisterReturn=0xefffdd80)
    at /home/jim/680/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx:290
#1  0x74a2c550 in cpp_vtable_call(long, long, void**) (nFunctionIndex=1,
    nVtableOffset=-268444272, pCallStack=0x0)
    at /home/jim/680/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx:420
#2  0x70c213d4 in cppu::throwException(com::sun::star::uno::Any const&) ()
   from ./libcppuhelpergcc3.so.3
#3  0x70bb124c in
ucbhelper::cancelCommandExecution(com::sun::star::ucb::IOErrorCode,
com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&,
com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&,
rtl::OUString const&,
com::sun::star::uno::Reference<com::sun::star::ucb::XCommandProcessor> const&)
() from ./libucbhelper3gcc3.so
#4  0x74a02fbc in component_getFactory () from ./libucpfile1.so
#5  0x749e5b98 in component_getFactory () from ./libucpfile1.so
#6  0x749c8844 in component_getFactory () from ./libucpfile1.so
#7  0x70b6d230 in ucb::Content_Impl::executeCommand(com::sun::star::ucb::Command
const&) ()
   from ./libucbhelper3gcc3.so
#8  0x70b65cc0 in ucb::Content::executeCommand(rtl::OUString const&,
com::sun::star::uno::Any const&) () from ./libucbhelper3gcc3.so
#9  0x70935e38 in utl::UCBContentHelper::Kill(String const&) () from
./libutl680ls.so
#10 0x0003a2f8 in desktop::Desktop::CreateTemporaryDirectory() ()
#11 0x00039528 in
desktop::Desktop::RegisterServices(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory>&)
()
#12 0x0002a554 in desktop::Desktop::Main() ()
#13 0x700dd8c8 in SVMain() () from ./libvcl680ls.so
#14 0x7027cf30 in main () from ./libvcl680ls.so
#15 0x71600dac in __libc_start_main () from /lib/libc.so.6
#16 0x000253c8 in _start ()
(gdb)      
Comment 13 sparcmoz 2004-11-18 21:48:57 UTC
cleanup linux sparc briges issues in issuezilla

*** This issue has been marked as a duplicate of 37423 ***
Comment 14 sparcmoz 2004-12-15 11:26:18 UTC
fixed in cws_src680_unxlngs01